Você precisa definir a política padrão como DROP nas cadeias INPUT e OUTPUT.
Para permitir o SSH, você precisa dos seguintes comandos:
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Os dois últimos comandos permitem o tráfego de loopback, pois isso é requerido por alguns aplicativos para funcionar corretamente.
Você pode restringir o acesso SSH de um IP específico usando a opção -s source_ip
.
Executar os comandos na ordem mostrada acima fará com que sua sessão SSH atual seja interrompida. Isso ocorre porque os comandos do iptables entram em vigor imediatamente. Você precisa executá-los em um shell script para evitar perder a capacidade de se conectar à sua máquina ao executá-los remotamente.