Iptables + telnet 不阻止端口

Iptables + telnet 不阻止端口

我有一台 Debian 服务器,我想从中阻止所有传入和传出端口(特别是所有传出电子邮件端口),除了那些我专门在 iptables 中添加的端口。我当前的设置可以运行并且似乎足够严格,但是当我启动会话telnet来测试例如 smtp 的端口 25 时,它似乎可以毫无问题地连接,即使我没有专门打开端口 25 作为 OUTPUT 端口。我注意到当我用 刷新 iptables 时iptables -F,连接被阻止,但 DNS 解析和 http 流量也不起作用。值得一提的是,我也在这台服务器上运行 Docker,这意味着 Docker 维护自己的 iptables 链,我不会在这个问题中特别列出。没有任何 Docker 规则包含端口 25,但也许 Docker 设置的整体规则太松了?

我还没有找到一种简单的方法来实际尝试将电子邮件发送到 smtp 端口 25,但我猜测成功建立 telnet 会话也将允许使用相同的连接来发送邮件。

有人能给我指明正确的方向吗?

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

答案1

$ telnet smtp-relay.gmail.com 25
Trying 2a00:1450:4013:c03::1c...

您的系统已启用 IPv6 并正在使用它连接到远程服务器。

您只显示了 IPv4 防火墙的摘录,所以我猜您没有适当地配置 IPv6 防火墙。

相关内容