Como proteger serviços de rede usando invólucros TCP no Linux
- 1970
- 469
- Arnold Murray
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,
- Serviços é uma lista de serviços separados por vírgula, a regra atual deve ser aplicada a.
- 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:
- TODOS combina tudo. Aplica -se a clientes e serviços.
- LOCAL combina hospedeiros sem um período em seu Fqdn, como localhost.
- CONHECIDO Indique uma situação em que o nome do host, o endereço do host ou o usuário é conhecido.
- DESCONHECIDO é o oposto de CONHECIDO.
- 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.
- 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 TCPComo 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, localWrappers 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: tudoWrappers 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.
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.