我正在使用两个 WAN 链路。新的链路很贵,我只想将其用于 ssh。新链路位于 eth1,192.168.8.1。
我正在尝试使用 ip 表来阻止所有传入和传出连接,除了 ssh 和到 192.168.8.1 的流量之外。
每当我应用 iprules 时,我都无法再连接到路由器,并且停止接收 ssh 连接。我的规则中一定有错误。有人能帮我找到它吗?
# 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
任何帮助,将不胜感激。
谢谢!
答案1
我确信iptables
使用了“首次匹配”标准。重新排列规则,以便例外情况优先出现。