Tenho certeza de que iptables
usa critérios de "primeira correspondência". Reordene suas regras para que as exceções ocorram primeiro.
Eu estou correndo com dois links wan. O novo é caro, e eu só quero usá-lo para o ssh. O novo link está em eth1, 192.168.8.1.
Eu estou tentando usar tabelas ip para bloquear todas as conexões de entrada e saída, exceto para ssh e exceto tráfego para 192.168.8.1.
Sempre que eu aplico meus iprules, não consigo mais conectar ao meu roteador e paro de receber conexões ssh. Eu devo ter um erro nas minhas regras em algum lugar. Alguém pode me ajudar a encontrá-lo?
# Prevent all traffic on eth1
iptables -A INPUT -i eth1 -j DROP
iptables -A OUTPUT -o eth1 -j DROP
# But make an exception for incoming SSH
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# ...and an exception for outgoing SSH
iptables -A OUTPUT -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# ...and an exception for any communication with the router
iptables -A INPUT -i eth1 -p tcp -d 192.168.8.1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -d 192.168.8.1 -m state --state ESTABLISHED -j ACCEPT
Qualquer ajuda seria apreciada.
Obrigado!
Tags iptables