我正在尝试在路由器上允许从 WAN 到 LAN ip 的传入 SSH 连接,但阻止从 LAN 到 WAN 的传出流量。我让路由器上的端口 80 开放,以允许从 LAN 进行 Web 管理员访问。
以下内容允许在路由器上从 WAN 到 LAN 的传入 SSH 连接,并让路由器上的端口 80 打开,以允许从 LAN 进行 Web 管理员访问。
br0 是 LAN
vlan1 是 WAN
192.168.2.33 是 LAN ip,端口 22 开放
端口 2222 是从 WAN 进行 ssh 端口转发
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t filter -A INPUT -i br0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 2222 -j DNAT --to 192.168.2.33:22
iptables -I FORWARD -p tcp -d 192.168.2.33 --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
从 WAN
ssp user@routerip -p 2222
作品
但是当我尝试使用以下命令阻止传入流量时
iptables -A FORWARD -i br0 -o vlan1 -j DROP
从 WAN 进行 SSH 访问失败。
出了什么问题?在这种情况下,如何阻止传出的流量?
另外,如何防止通过路由器从 WAN 转发,但允许从 WAN 传入 SSH 到 LAN?我的 WAN 在另一个路由器后面。
答案1
根据您在问题中发布的规则,该FORWARD
链将具有以下规则:
-A FORWARD -p tcp -d 192.168.2.33 --dport 22 -j ACCEPT
-A FORWARD -i br0 -o vlan1 -j DROP
您实际上允许发往 IP 192.168.2.33 端口 22 的流量,并且拒绝从 LAN-i br0
接口到 WAN 的回复流量-o vlan1
。要解决这个问题,您需要使用如下规则允许回复:
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
对于你问题的最后一点,我没有完全理解你的意思。