Prévia do material em texto
Segurança em Servidores Linux! Instrutor: Vitor Mazuco http://facebook.com/vitormazuco Email:vitor.mazuco@gmail.com WebSite: http://vmzsolutions.com.br http://facebook.com/vitormazuco mailto:vitor.mazuco@gmail.com http://vmzsolutions.com.br/ Configurando e usando o Wrapper TCP Proteger um servidor Linux restringindo o acesso é uma medida delicada e importante. Ao usar o TCP Wrappers, podemos ter um controle de acesso que possibilita aos administradores para permitir ou negar acesso aos serviços. Para isso, é usado dois tipos de arquivos de regras primárias para exploração, o /etc/hosts.allow e /etc/hosts.deny. https://pt.wikipedia.org/wiki/TCP_Wrapper Configurando e usando o Wrapper TCP Nessa aula, vamos dar uma olhada em como configurar o TCP Wrappers para definir o acesso para diferentes hosts. Primeiro, precisamos verificar se um programa suporta o TCP Wrappers ou não. Para fazer isso, primeiro procure o caminho de um programa executável usando o comando: Vamos usar o SSH como o nosso exemplo # which sshd Configurando e usando o Wrapper TCP Logo depois, vamos usar o programa ldd para verificar a compatibilidade do programa SSH com TCP Wrappers: Se o resultado do comando, houver o libwrap.so, isso significa que o programa é suportado pelo TCP Wrappers. # ldd /usr/sbin/sshd Ou # ldd /usr/sbin/sshd | grep libwrap Configurando e usando o Wrapper TCP Agora, sempre que um programa SSH tenta se conectar ao servidor usando TCP Wrappers, dois arquivos são verificados nesta seguinte ordem: 1) /etc/hosts.allow: se uma regra de correspondência for encontrada neste arquivo para o programa, será dado acesso 2) /etc/hosts.deny: se uma regra de correspondência for encontrada neste arquivo para o programa, o acesso será negado Configurando e usando o Wrapper TCP Se nenhuma regra correspondente for encontrada em qualquer um dos dois arquivos para o programa específico, o acesso será dado. Primeiro, vamos fazer o teste de SSH e depois vamos editar o arquivo /etc/hosts.deny e colocar o seguinte algum tipo de conteúdo segundo a sua necessidade: Configurando e usando o Wrapper TCP # SERVICE(S) : CLIENT(S) [: ACTION(S) ] # sshd : 192.168.1.210 # sshd : jumpbox.example.com # sshd : .example.com # sshd : jumpbox*.example.com # sshd : jumpbox0?.example.com **jumpbox03.example.com** # sshd, imapd : 192.168.1.210 # sshd, imapd : 192.168.1.210, 192.168.1.211 Configurando e usando o Wrapper TCP # SERVICE(S) : CLIENT(S) [: ACTION(S) ] # sshd : 192.168.1. # sshd : 192. # sshd : 192.168.1.0/255.255.0.0 # sshd : ALL EXCEPT .hackers.net # ALL : 192.168.1.210 Configurando e usando o Wrapper TCP Agora, se tentarmos fazer a conexão novamente, irá dar um erro: Configurando e usando o Wrapper TCP Se quisermos permitir acesso para todos os serviços de um cliente específico que tenha o endereço IP 192.168.1.210, adicionamos a seguinte linha ao /etc/hosts.allow # vim /etc/hosts.allow ALL : 192.168.1.210 Configurando e usando o Wrapper TCP Se quisermos permitir que todos os clientes de uma rede específica acessem o SSH, exceto para um IP específico que tenha o endereço IP 192.168.1.210, podemos fazer as seguintes alterações no arquivo /etc/hosts.allow: Agora, façam os testes de conexões de seus IP para ver a conexão com o SSH # vim /etc/hosts.allow sshd : 192.168.1.210 : DENY sshd : 192.168.1.0/255.255.255.0 : ALLOW Configurando e usando o Wrapper TCP As etapas anteriores bloqueiam as regras de serviços definidas no arquivo /etc/hosts.allow. Porém, não sabemos em qual cliente tentou acessar o servidor e quando. Logo, se queremos manter um registro de todas as tentativas de conexão pelo cliente, podemos editar novamente o arquivo /etc/hosts.allow, como mostrado aqui: # vim /etc/hosts.allow sshd : 192.168.1.210 : spawn /bin/echo `/bin/date` from %h > /conn.log : deny Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13