AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 705434
Accepted
HippoMan
HippoMan
Asked: 2022-06-09 08:05:40 +0800 CST2022-06-09 08:05:40 +0800 CST 2022-06-09 08:05:40 +0800 CST

iptables 不阻止通过端口访问?

  • 772

我正在Debian 8.11运行iptables v1.4.21and ipset v6.23, protocol version: 6。

我试图阻止除一小组主机之外的所有主机访问某些端口,但它似乎不起作用。

首先,我将一小部分 IP 地址放入一个ipset名为allowed-hosts. 然后,在运行sudo /sbin/iptables -Fand之后sudo /sbin/iptables -X,我发出以下命令:

sudo /sbin/iptables -I INPUT -p tcp -m multiport --destination-port 110,143,993,995 -j DROP
sudo /sbin/iptables -I INPUT -p tcp -m multiport --destination-port 110,143,993,995 -m set --match-set allowed-hosts src -j ACCEPT

但是,即使在这样做之后,来自不存在 IP 地址的客户端allowed-hosts仍然成功连接到所有命名端口。

没有其他有效的iptables规则。

以下是sudo /sbin/iptables -L...的结果

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             multiport dports pop3,imap2,imaps,pop3s match-set allowed-hosts src
DROP       tcp  --  anywhere             anywhere             multiport dports pop3,imap2,imaps,pop3s

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

这是sudo /sbin/iptables-save...的结果

# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*security
:INPUT ACCEPT [16777464:2727427757]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*raw
:PREROUTING ACCEPT [21444955:3000669583]
:OUTPUT ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*mangle
:PREROUTING ACCEPT [21444955:3000669583]
:INPUT ACCEPT [21444952:3000669415]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18889599:33356814491]
:POSTROUTING ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*filter
:INPUT ACCEPT [2130649:527089827]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4465281:1887206637]
-A INPUT -p tcp -m multiport --dports 110,143,993,995 -m set --match-set allowed-hosts src -j ACCEPT
-A INPUT -p tcp -m multiport --dports 110,143,993,995 -j DROP
COMMIT
# Completed on Wed Jun  8 11:53:09 2022

我可能做错了什么?

先感谢您。

**更新**

首先,确实指定了“src”,这与下面评论中的建议相反。它出现在上面的“... src -j ACCEPT”行中。

iptables其次,我使用的这些命令的语法来自iptables文档和通过网络搜索找到的讨论中显示的内容。

第三,看上面的iptables -L输出。source=anywhere这清楚地表明,对于列表destination=anywhere中的 IP 地址,应该接受到端口的连接allowed-hosts。这也清楚地表明,对于不在列表中的 IP 地址,应该从source=anywhere到断开与端口的连接。destination=anywhereallowed-hosts

至少这iptables似乎是在告诉我。但是,从不在列表中的 IP 地址到这些端口的连接allowed-hosts仍然在我的机器上被接受。

此外,如果我这样做ipset test allowed-hosts aaa.bbb.ccc.ddd,其中“aaa.bbb.ccc.ddd”表示不在的IP 地址allowed-hosts,我正确地得到以下输出:

aaa.bbb.ccc.ddd is NOT in set allowed-hosts.

如果我这样做ipset test allowed-hosts www.xxx.yyy.zzz了,其中“www.xxx.yyy.zzz”代表一个 IP 地址,我allowed-hosts正确地得到以下输出:

www.xxx.yyy.zzz is in set allowed-hosts.

查看iptables-save上面的输出,我的配置中还有什么可能导致这些与端口的连接不allowed-hosts被接受?

再次感谢您,提前。

iptables port
  • 1 1 个回答
  • 96 Views

1 个回答

  • Voted
  1. Best Answer
    HippoMan
    2022-06-12T10:08:24+08:002022-06-12T10:08:24+08:00

    事实证明,这毕竟是有效的。对于误报,我非常非常抱歉。

    我错误地认为它无法正常工作,原因如下......

    我同时使用postfix和dovecot,并且我已设置postfix用于dovecot执行其身份验证服务。

    我已经设置dovecot将其调试和日志消息写入一个名为 的文件/var/log/mailclient.log,同时postfix配置为通过syslog.

    我没有想清楚,忘记了postfix' 的身份验证尝试也会导致条目出现在同一个dovecot日志文件中,因为这dovecot是执行此postfix身份验证的那个。

    我只是使用我的iptables规则来阻止pop3和imap(端口 110、143、993 和 995),我没有阻止postfix的端口。

    鉴于我设置身份验证的这种方式,该文件中有所有登录尝试以及登录尝试postfix的条目。在阅读此日志文件中的这些条目时,我没有好好注意,我错误地认为它们是and的登录尝试,而不是登录尝试。因此,我将这些登录尝试(我没有阻止)误认为是登录尝试。/var/log/mailclient.logpostfixdovecotpop3imapsmtpsmtppop3imap

    一旦我理解了我的错误,我就更仔细地检查和分析了我的dovecot日志文件,我现在意识到,确实,除了那些源自我放入我的主机的一小部分主机的连接之外,没有任何pop3nor连接会进入 dovecot。 imap“允许的主机”ipset列表。

    因此,毕竟iptables我上面列出的条目确实可以正常工作。

    再次,我为我的误报道歉,我很高兴这是有效的。

    也许这个问题和讨论可以帮助将来可能犯与我相同错误的其他人。

    • 0

相关问题

  • 关于 MASQUERADE 和 SNAT/DNAT 的一点疑问

  • iptables 不过滤桥接流量

  • 持久的 iptables

  • Iptables 规则允许 appVM 通过配置为仅通过 QubesOS 中的 VPN 的 proxyVM

  • 如何在 Linux 中让所有流量通过一个接口

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve