Seu problema com a linha SSH é que você está tentando permitir a porta de origem 22
de sua máquina local. No entanto, quando você se conecta a um servidor SSH remoto, sua máquina não usa a porta 22 para isso. Está usando uma porta aleatória, geralmente no intervalo de portas mais alto. Isso faz sentido porque, se fosse usar a porta 22 para conexões SSH de saída, você só poderia se conectar a um servidor SSH de cada vez.
Para corrigir isso, a maneira mais simples é usar --dport
em vez de --sport
, permitindo cada conexão que tenha uma porta de destino de 22
(ssh).
sudo iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Por favor, note que você tem que adicionar esta linha em vez de substituí-la, como @ bcs78 apontou nos comentários.
Também é geralmente uma má ideia bloquear o tráfego para a conexão de loopback interna. Alguns programas dependem dessa conexão e não funcionam corretamente sem ela. Adicione isso ao início do seu script:
sudo iptables -A INPUT -i lo -j ACCEPT