Minha Conta
Recuperar Senha

Digite seu endereço de e-mail que foi cadastrado e enviaremos seus dados de acesso.

Minha Conta

A senha deve conter no mínimo 6 caracteres.

Ao se cadastrar, você concorda com a Política de Privacidade e Segurança

Mudar Data: Photoshop CS6 Módulo I
Preço
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
  Itens Preço
Carrinho de Compras
O carrinho está vazio.
INVESTIMENTO TOTAL:0,00

Esqueci minha senha

Foi enviado um e-mail para com os dados de acesso.

Knocking on Servers door: evite ataques de brute force

O objetivo desse tutorial é mostrar uma forma de mascarar as portas de serviços dos servidores, como por exemplo, a porta de SSH, para que ela fique fechada e abra somente após o cliente que quer ter acesso enviar uma sequência de “batidas” em portas específicas para que a porta do SSH ou qualquer outra se abra para receber conexões. Essa técnica é muito útil, pois não deixa essas portas abertas a todo o momento, passíveis de receberem ataques de brute force. O knokcd é um pequeno daemon que já vem por padrão no GNU/Linux Debian e é muito simples de ser configurado. O primeiro passo é fazer a instalação do knockd no servidor: # aptitude install knockd Após a instalação, o sistema emitirá um aviso informando que o daemon do knockd não foi iniciado e que é preciso editar o arquivo /etc/default/knockd. Isso acontece porque o mesmo pacote pode ser usado tanto para o servidor como para o cliente. No caso do cliente, não é necessário que o daemon esteja em execução. Editar o arquivo /etc/default/knockd: # vim /etc/default/knockd Mudar o valor da variável START_KNOKCD para 1. START_KNOCKD=1 O arquivo de configuração do knockd fica em /etc/knockd.conf. Podemos verificar esse arquivo: # vim /etc/knockd.conf [options] UseSyslog [openSSH] sequence    = 7000,8000,9000 seq_timeout = 5 command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags    = syn [closeSSH] sequence    = 9000,8000,7000 seq_timeout = 5 command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags    = syn O arquivo trabalha com seções onde cada seção é definida por um nome que fica entre colchetes, como [openSSH]. Qualquer nome pode ser usado para a seção, o que vai definir realmente o seu funcionamento são as configurações feitas dentro dela. Dentro de cada seção, podemos ter as seguintes opções:
  • sequence: Define a sequência de portas que precisam ser “batidas” para que a ação seja tomada.
  • seq_timeout: Definição do tempo em segundos, para que a sequence seja feita.
  • command: Comando ou comandos que serão realizados ao receber a sequence.
  • tcp_flags: A Flag que ele precisa receber na sequence, no caso a SYN, que é início de conexões TCP.
Da forma como está, quando o servidor receber as “batidas” nas portas 7000, 8000 e 9000, ele executará o comando do iptables que criaria uma regra de Input para a porta 22 (SSH) liberando o Accept. E quando recebesse as “batidas” nas portas 9000, 8000 e 7000 ele removeria essa regra. Com isso, o Firewall só deixaria a porta 22 acessível quando a sequência de batidas for feita. Podemos melhorar um pouco mais esse arquivo de configuração, deixando-o da seguinte maneira: [options] UseSyslog [openSSH] sequence    = 7000,8000,9000 seq_timeout = 5 command     = /usr/sbin/sshd ; /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT ; /sbin/iptables -I OUTPUT -d %IP% -p tcp --sport 22 -j ACCEPT tcpflags    = syn [closeSSH] sequence    = 9000,8000,7000 seq_timeout = 5 command     = kill -9 $(pgrep sshd); /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT ; /sbin/iptables -D OUTPUT -d %IP% -p tcp --sport 22 -j ACCEPT tcpflags    = syn Dessa maneira, a funcionalidade ficou um pouco mais refinada. A idéia é que o daemon do SSH fique parado e quando o command da seção [openSSH] for executado, ele inicie o daemon do  SSH e crie as regras de Input e Output no firewall iptables, e quando a sequência do [closeSSH] for feita, ele “mate” o processo do SSH e retire as regras do firewall iptables, liberando o acesso a porta do SSH. Com esse arquivo modificado, inicie o knockd no servidor: # /etc/init.d/knockd start Ainda no servidor, pare o serviço do SSH: # /etc/init.d/ssh stop No cliente, instale também o knockd, mas não edite o arquivo /etc/default/knockd, pois ele trabalhará como servidor. Após instalar o knockd no cliente, faça o seguinte comando: # knock IP_SERVIDOR 7000 8000 9000 Verifique se o daemon do SSH foi iniciado no servidor e se as regras do iptables foram inseridas: # ps ax | grep ssh # iptables -n -L Faça um teste de conexão SSH para o servidor: # ssh IP_SERVIDOR Depois faça o processo para fechar o SSH: # knock IP_SERVIDOR 9000 8000 7000 Novamente, verifique no servidor se o daemon do SSH foi parado e as regras do iptables retiradas: # ps ax | grep ssh # iptables -n -L O knockd pode ser usado para qualquer porta, não somente para a do SSH. A sequência de portas não precisa ser uma sequência exata, pode ser qualquer mistura de portas, de protocolos UDP ou TCP. No man do comando knock, é possível ver exemplos utilizando os dois protocolos. O knockd não vem nativamente em todas as distribuições, então se for necessários usar o comando knock para abrir as portas do servidor e ele não estiver disponível na sua distribuição, pode ser usado o comando nc (netcat). Mas como o netcat não passa a sequência das portas de uma vez em uma única linha de comando, pode-se aumentar o timeout das seções e fazer uma linha para cada porta. Espero que essa dica seja útil para aumentar a segurança dos seus servidores. Caso queira saber mais sobre como deixar os seus servidores Linux mais seguros, conheçam o curso de Segurança da Impacta Tecnologia: http://bit.ly/17g6kth.
[fbcomments url="" width="100%" count="off" num="3" countmsg="wonderful comments!"]

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Artigos Relacionados