Bem, para ser honesto, há uma curva de aprendizado para o iptables.
Primeiro, você pode usar o ufw para começar. O ubw é uma poderosa ferramenta de linha de comando e a vantagem é que a sintaxe é semelhante ao iptables.
sudo ufw enable
sudo ufw limit 22
Aqui estou limitando a porta 22, você pode usar qualquer porta que desejar.
link
Mais uma vez, a vantagem é que o ufw irá automatizar muito isso e facilitar o seu processo de aprendizagem.
Se você quiser usar o iptables, você precisará, no mínimo, aprender a salvar e restaurar suas regras.
sudo iptables-save > /etc/iptables.save
sudo iptables-restore /etc/iptables.save
Você pode editar /etc/iptables.save
, a sintaxe é direta o suficiente.
Ao tentar regras de controle remoto, use iptables-apply
para evitar um bloqueio
sudo iptables-apply /etc/iptables.save
Para restaurar suas regras na inicialização, um dos vários métodos é adicioná-lo ao /etc/rc.local
iptables-restore /etc/iptables.save
Outras opções listadas na página wiki do Ubuntu iptables (veja abaixo).
A sintaxe do iptables é
iptables -I INPUT -p tcp -m state --state NEW -m limit --limit 30/minute --limit-burst 5 -j ACCEPT
Para LOG, adicione um LOG, mas, a menos que você monitore seus logs, use snort. logging iptables, IMO, é mais útil para depuração.
Veja man iptables, wiki do Ubuntu iptables
Algumas pessoas acham que a minha página da Web do iptables é útil para começar.
Para responder ao seu comentário, veja estas regras
iptables -A INPUT -p tcp -m tcp --dport 22 -m tcp -m state --state NEW -m recent --set --name SSH --rsource
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 600 --hitcount 8 --rttl --name SSH --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
link
A ressalva é, depende do serviço. O ssh é configurado para permitir tantas tentativas de autenticação de senha 9see /etc/ssh/sshd_config
), portanto cada conexão fornece 6 tentativas de senha.