Como proteger serviços de rede usando invólucros TCP no Linux

Como proteger serviços de rede usando invólucros TCP no Linux

Neste artigo, explicaremos o que são os invólucros do TCP e como configurá -los para restringir o acesso a serviços de rede em execução em um servidor Linux. Antes de começarmos, no entanto, devemos esclarecer que o uso de invólucros de TCP não elimina a necessidade de um firewall adequadamente configurado.

Nesse sentido, você pode pensar nessa ferramenta como uma lista de controle de acesso baseada em host, e não como a medida de segurança final para o seu sistema. Ao usar um firewall e invólucros de TCP, em vez de favorecer um sobre o outro, você garantirá que seu servidor não fique com um único ponto de falha.

Entendendo os anfitriões.permitir e hosts.negar

Quando uma solicitação de rede chega ao seu servidor, o TCP Wrappers usa anfitriões.permitir e anfitriões.negar (nessa ordem) para determinar se o cliente deve usar um determinado serviço.

Por padrão, esses arquivos estão vazios, todos comentados ou não existem. Assim, tudo é permitido através da camada de Wrappers TCP e seu sistema é deixado depender do firewall para proteção total. Como isso não é desejado, devido ao motivo pelo qual declaramos na introdução, verifique se os dois arquivos existem:

# ls -l /etc /hosts.permitir /etc /hosts.negar 

A sintaxe de ambos os arquivos é a mesma:

 : [::::…] 

onde,

  1. Serviços é uma lista de serviços separados por vírgula, a regra atual deve ser aplicada a.
  2. clientes Representar a lista de nomes de hosts se separados por vírgula ou endereços IP afetados pela regra. Os seguintes curingas são aceitos:
    1. TODOS combina tudo. Aplica -se a clientes e serviços.
    2. LOCAL combina hospedeiros sem um período em seu Fqdn, como localhost.
    3. CONHECIDO Indique uma situação em que o nome do host, o endereço do host ou o usuário é conhecido.
    4. DESCONHECIDO é o oposto de CONHECIDO.
    5. Paranóico faz com que uma conexão seja descartada se as pesquisas reversas do DNS (primeiro no endereço IP para determinar o nome do host e depois no nome do host para obter os endereços IP) retornar um endereço diferente em cada caso.
  3. Finalmente, uma lista opcional de ações separadas pelo cólon indica o que deve acontecer quando uma determinada regra é acionada.

Você pode ter em mente que uma regra que permite o acesso a um determinado serviço em /etc/hosts.permitir tem precedência sobre uma regra em /etc/hosts.negar proibindo -o. Além disso, se duas regras se aplicarem ao mesmo serviço, apenas a primeira será levada em consideração.

Infelizmente, nem todos os serviços de rede suportam o uso de invólucros de TCP. Para determinar se um determinado serviço os suporta, faça:

# ldd/caminho/para/binário | Grep Libwrap 

Se o comando acima retornar a saída, poderá ser embrulhado em TCP. Um exemplo disso são sshd e vsftpd, Como mostrado aqui:

Encontre serviços suportados no wrapper TCP

Como usar os invólucros de TCP para restringir o acesso aos serviços

Enquanto você edita /etc/hosts.permitir e /etc/hosts.negar, Certifique -se de adicionar uma nova linha pressionando Digitar Depois da última linha não vazia.

Para permitir o acesso SSH e FTP apenas a 192.168.0.102 e LocalHost e negar todos os outros, adicione essas duas linhas em /etc/hosts.negar:

sshd, vsftpd: tudo: tudo 

e a seguinte linha em /etc/hosts.permitir:

sshd, vsftpd: 192.168.0.102, local 
Wrappers TCP - hosts.negar arquivo
# # hosts.negar este arquivo contém regras de acesso que são usadas para # negar conexões aos serviços de rede que usam # a biblioteca TCP_WRAPERS ou que foram # iniciados por meio de um xinetd habilitado para TCP_wrappers. # # As regras neste arquivo também podem ser configuradas em # /etc /hosts.Permitir com uma opção 'negar' em vez disso. # # Veja 'man 5 hosts_options' e 'man 5 hosts_access' # para obter informações sobre a sintaxe da regra. # Consulte 'Man TCPD' para obter informações sobre tcp_wrappers # sshd, vsftpd: tudo: tudo 
Wrappers TCP - hosts.Permitir arquivo
# # hosts.Permitir este arquivo contém regras de acesso que são usadas para # permitir ou negar conexões aos serviços de rede que # usam a biblioteca TCP_WRAPERS ou que foram # iniciados por meio de um XINETD habilitado para TCP_WAPERS. # # Veja 'man 5 hosts_options' e 'man 5 hosts_access' # para obter informações sobre a sintaxe da regra. # Consulte 'Man TCPD' para obter informações sobre tcp_wrappers # sshd, vsftpd: 192.168.0.102, local 

Essas mudanças ocorrem imediatamente sem a necessidade de reiniciar.

Na imagem a seguir, você pode ver o efeito de remover a palavra LOCAL Da última linha: o servidor FTP ficará indisponível para LocalHost. Depois de adicionarmos o curinga de volta, o serviço fica disponível novamente.

Verifique o acesso do FTP

Para permitir que todos os serviços sejam hosts onde o nome contém exemplo.com, Adicione esta linha em anfitriões.permitir:

TODOS : .exemplo.com 

e negar o acesso a vsftpd a máquinas em 10.0.1.0/24, Adicione esta linha em anfitriões.negar:

vsftpd: 10.0.1. 

Nos dois últimos exemplos, observe o ponto no início e no final da lista de clientes. É usado para indicar "todos os hosts e / ou clientes onde o nome ou o IP contém essa string".

Este artigo foi útil para você? Voce tem alguma pergunta ou comentario? Sinta -se à vontade para nos deixar uma nota usando o formulário de comentário abaixo.