Port knocking utilizando iptables
Port Knocking é uma técnica que consiste em enviar uma sequência pré-determinada de pacotes em portas específicas para abrir conexão com algum host.
Não vou me aprofundar sobre o assunto, caso queira fazer isto, o google é seu amigo =). O que irei fazer é demonstrar como utilizar o iptables para realizar esta tarefa.
Supondo que a sua política padrão é DROP e que a porta do ssh é 22 (porta padrão), vamos criar uma regra para liberar o ssh por 20 segundos quando chegar uma conexão tcp na porta 65535:
iptables -A INPUT -i eth0 -p tcp -m state --state NEW --dport 22 -m recent --rcheck --seconds 20 --name SSH --rsource -j ACCEPT iptables -A INPUT -i eth0 -p tcp -m state --state NEW --dport 65535 -m recent --set --name SSH --rsource -j DROP
Supondo que o ip do servidor onde você acabou de implementar as regras acima seja 187.10.223.67, digite:
telnet 187.10.223.67 65535
Logo em seguida, pressione CTRL + C e tente conectar no ssh, você terá somente 20 segundos após ter utilizado o telnet.
Simples né? com estas duas regras acima, você criou um port knocking em iptables :).