阻止 ssh 远程转发端口的 iptables 规则

Oli*_*son 3 ssh iptables forwarding

我正在尝试设置一个 iptables 规则,该规则将阻止通过 ssh 本地远程转发连接访问 ssh 远程转发连接。所以,爱荷华州:

客户端 A 连接到服务器:
ssh -R 10000:localhost:23 someserver

客户端 B 连接到服务器:
ssh -L 23:localhost:10000 某个服务器

我无法让 iptables 阻止这个。在某些 sshd_config 设置无法覆盖的情况下,我需要转发(我将有一个程序专门分发客户端可以转发的端口,希望该程序随后会添加一个 iptables 规则以允许这样做)。

我试过了:

iptables --flush

iptables -A 输入 -i lo -p tcp --dport 0:1024 -j 接受
iptables -A 输出 -o lo -p tcp --dport 0:1024 -j 接受
iptables --policy INPUT DROP
iptables --policy 输出下降

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

但它仍然允许 ssh 本地转发连接访问远程转发端口。关于如何让 iptables 处理这个问题的任何想法?


编辑:尝试更改为:

 
iptables --flush
iptables --policy INPUT DROP 
iptables --policy 输出下降 

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A 输入 -i eth1 -p tcp --dport 22 -j 接受 
iptables -A 输出 -o eth1 -p tcp --sport 22 -j 接受 
iptables -A 输入 -j 拒绝 

我仍然可以建立转发的连接。很显然,这并不完全是这样。不过还是谢谢你的回答。你对我有什么其他想法吗?

Cia*_*ian 5

在 ssh 服务器上关闭 ssh 转发不是更容易吗?只需AllowTcpForwarding在您的 /etc/ssh/sshd_config 中从 yes更改为 no。如果这不适合,你可以尝试一些类似的东西

iptables -A OUTPUT -o eth1 -p tcp --cmd-owner "sshd" -j DROP
Run Code Online (Sandbox Code Playgroud)