Iptables

iptables + telnet 不阻塞埠

  • December 10, 2021

我有一個 Debian 伺服器,我想阻止所有傳入和傳出埠(尤其是所有傳出電子郵件埠),除了我專門添加到 iptables 中的那些。我目前的設置正在工作並且似乎足夠嚴格,但是當我啟動一個telnet會話來測試例如埠 25 的 smtp 時,它似乎連接沒有問題,即使我沒有專門打開埠 25 作為 OUTPUT 埠。我注意到當我用 刷新 iptables 時iptables -F,連接被阻止,但是 DNS 解析和 http 流量也不起作用。值得一提的是,我也在這台伺服器上執行 Docker,這意味著 Docker 維護自己的 iptables 鏈,我不會在這個問題中具體列出。所有 Docker 規則中都沒有埠 25,

我還沒有找到一種簡單的方法來實際嘗試將電子郵件發送到 smtp 埠 25,但我猜想成功建立 telnet 會話也將允許使用相同的連接來發送郵件。

有人能指出我正確的方向嗎?

遠端登錄輸出:

$ telnet smtp-relay.gmail.com 25
Trying 2a00:1450:4013:c03::1c...
Connected to smtp-relay.gmail.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP k6sm844273wms.37 - gsmtp

我目前 iptables 的 INPUT 和 OUTPUT 鏈:

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             match-set blacklist src
ACCEPT     icmp --  192.168.4.0/24       anywhere             icmp echo-request
ACCEPT     tcp  --  192.168.4.0/24       anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp echo-reply state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:domain state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport sports http,https state RELATED,ESTABLISHED

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     icmp --  anywhere             192.168.4.0/24       icmp echo-reply state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             192.168.4.0/24       tcp spt:ssh state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https
$ telnet smtp-relay.gmail.com 25
Trying 2a00:1450:4013:c03::1c...

您的系統啟用了 IPv6,並正在使用它連接到遠端伺服器。

您只顯示 IPv4 防火牆的摘錄,所以我猜您沒有正確配置 IPv6 防火牆。

引用自:https://serverfault.com/questions/1085932