最简单的防火墙不起作用

我尝试redirectssh-traffic从一台机器到另一个bash sctipt:

IPTABLES="/usr/sbin/iptables" $IPTABLES -F $IPTABLES -X $IPTABLES -F -t nat $IPTABLES -X -t nat $IPTABLES -F -t mangle $IPTABLES -X -t mangle $IPTABLES --policy INPUT ACCEPT $IPTABLES --policy FORWARD ACCEPT $IPTABLES --policy OUTPUT ACCEPT $IPTABLES -t nat -A POSTROUTING --out-interface ppp0 -j MASQUERADE $IPTABLES -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.2.2 echo 1 > /proc/sys/net/ipv4/ip_forward 

但是当我input

 ssh user@localhost 

要么

 ssh [email protected] # (address of local host) 

我收到错误“连接被拒绝”。

请帮帮我。

ssh user@localhost将不起作用,至less不会使用你所使用的规则。

PREROUTING链对进入机器的数据包起作用,而如果连接到本地主机,则数据包在本地生成。

不过,好处是你的configuration应该可以用于外部连接。 你从别的地方试过了吗?

编辑:这是netfilterstream程的一个有用的图表:

在这里输入图像说明