iptables - 仅允许来自 WAN 的传入 SSH 并阻止来自 LAN 的传出流量

iptables - 仅允许来自 WAN 的传入 SSH 并阻止来自 LAN 的传出流量

我正在尝试在路由器上允许从 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

对于你问题的最后一点,我没有完全理解你的意思。

相关内容