当 Iptables 仅允许端口 22 时,本地端口转发不起作用

当 Iptables 仅允许端口 22 时,本地端口转发不起作用

我正在尝试使用 SSH 隧道执行本地端口转发。

机器 1:iptables 的规则是:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

机器2:ssh 服务器(sshd)接受来自端口 22 的流量。

SSH 命令:

远程控制[电子邮件保护]-L 8080:209.188.89.221:80

其中:209.188.89.221 是一个随机 HTTP 网页,10.0.2.6 是机器 2 的 IP(lub2 是用户名)

这样我就可以使用以下方式访问网页(209.188.89.221)http://127.0.0.1:8080作为 URL(来自机器 1),但它加载并且没有结果。

简而言之,如果我打开机器 1 上的所有端口,端口转发就会起作用,但是当我只打开 22 个端口(其他所有端口都关闭)时,端口转发就不起作用。你能解释一下吗?

干杯

答案1

您的OUTPUT链将数据包丢弃到除 80 之外的所有端口。当您在 加载网页时http://127.0.0.1:8080,其目的地是端口 8080,而这在链中是不允许的OUTPUT

localhost您可以使用以下行允许所有来往的流量:

iptables -I INPUT 1 -i lo -j ACCEPT
iptables -I OUTPUT 1 -o lo -j ACCEPT

这不会影响您计算机的外部安全。

相关内容