主机操作系统: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