如何使用 iptables 将除 SSH 之外的所有流量重定向到一个本地端口

如何使用 iptables 将除 SSH 之外的所有流量重定向到一个本地端口

主机操作系统:Ubuntu 16.06 LTS
我的服务器监听端口 1233。我必须将除 SSH 端口之外的所有 TCP 和 UDP 流量重定向到端口 1233。我使用以下 IPTable 规则成功将所有端口重定向到 1233。

*filter 
:INPUT ACCEPT [89:12442] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [114:10536] 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
COMMIT 
*nat 
:PREROUTING ACCEPT [2:64] 
:INPUT ACCEPT [2:261] 
:OUTPUT ACCEPT [8:524] 
:POSTROUTING ACCEPT [8:524] 
-A PREROUTING -p tcp -m tcp -j REDIRECT --to-ports 1233 
-A PREROUTING -p udp -j REDIRECT --to-ports 1233 
COMMIT

我还为 SSH 端口添加了一条规则,但由于链会先执行,因此无法成功与服务器建立 SSH 连接PREROUTING。搜索后,我发现很多问题看起来与此相关,但没有一个问题涉及这种情况。

您可能想知道这种实现的用例。这是一个蜜罐服务器,我们的想法是设置蜜罐来监听除 SSH 之外的所有流量。我知道我可以定义一系列端口或使用 iptables 的多端口功能,但我必须重定向除 22 之外的所有端口。

答案1

我的 SSH 是服务器在端口 22 上监听。我使用以下 IPTables 规则获得了成功。

iptables -t nat -A PREROUTING -p tcp --dport 1:21 -j REDIRECT --to-port 5000 iptables -t nat -A PREROUTING -p tcp --dport 23:65389 -j REDIRECT --to-port 5000 iptables -t nat -A PREROUTING -p udp -j REDIRECT --to-port 5000 service iptables-persistent save service iptables-persistent reload

相关内容