melphos
(usa Debian)
Enviado em 12/10/2005 - 15:03h
Olá GNU !
Bom, o exemplo acima já faz isso, depois de 3 tentativas de conexão nas portas denominadas, o iptables abre a conexão apenas para aquele ip. Há um pequeno erro no exemplo acima, mas estou cosertndo ele agora no de baixo !!!
Veja:
1)iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --rcheck --name SSH --rsource --seconds 60 --hitcount 3 -j ACCEPT
1.1) Libere para a lista ( --name SSH ) as tentativas de conexão que tentam acessar ( destino ) a porta 22 do protocolo tcp verificando no módulo recent ( --rcheck ) que tenham 3 ou mais entradas ( --hitcount 3 ) na lista ( --name SSH ).
2)iptables -A INPUT -p tcp -m tcp --dport 22323 -m state --state NEW -m recent --name SSH --remove -j DROP
2.1) Negue as tentativas de novas conexões ( -m state --state NEW ) a porta ( destino ) 22323 e remova ( --remove ) da lista ( --name SSH ) o ip da tentativa de conexão.
3)iptables -A INPUT -p tcp -m tcp --dport 22324 -m state --state NEW -m recent --set --name SSH --rsource -j DROP
3.1) Negue a tentativa de novas conexões ( -m state --state NEW ) de acesso ( destino ) à porta 9837 e adicione ( --set ) o ip da tentativa ( --rsource ) a lista ( --name SSH ).
4)iptables -A INPUT -p tcp -m tcp --dport 22325 -m state --state NEW -m recent --name SSH --remove -j DROP
4.1) Negue as tentativas de novas conexões ( -m state --state NEW ) a porta ( destino ) 22323 e remova ( --remove ) da lista ( --name SSH ) o ip da tentativa de conexão.
Então, quando alguém tentar se conectar no ssh, porta 22, o firewall irá negar a tentativa de conexão, agora se você der um telnet, ou melhor, enviar um pacote tcp com a flag syn setada (Sinônimo de nova conexão) a porta 22324, o iptables irá colocar o seu ip em um arquivo, denominado SSH em /proc/net/ipt_recent, se neste arquivo o ip das tentativas estiver se repetindo 3 vezes em um periodo de tempo de 60 segundos, o iptables abrirá a porta 22 ( SSH ) para o ip. E quando o ip enviar um pacote com a flag syn setada ( telnet por exemplo ) para a porta 22323 ou 22325 o iptables retirará a regra que abre a porta e retirará o ip da lista ( /proc/net/ipt_recent/SSH ). Outra coisa interessante de se citar, é o fato de ter duas portas fechando e estarem antes e depois da porta que abre. Com esse esquema, se alguém der um namp em seu firewall, ele passará pela porta 22323, como o ip não está na lista o firewall não faz nada, depois passa na porta 22324, ai sim o firewall adiciona o ip do cara na lista, mas logo em seguida o cara passa pela porta 22325 e o firewall o retira da lista, ficando assim muito dificil de alguém coseguir abrir a porta ssh do seu firewall, e ainda mais, ele tem que tentar 3 conexões na porta 22324 para o firewall poder abrir a 22. Eu particularmente acho "QUASE IMPOSSÍVEL" de alguém conseguir abrir a porta. Ma svc sabe né, segurança é cruel, quanto mais vc tenta deixar seguro, sempre descobre algo novo !!!
Um abraço,
Ivan Santos