You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Dovecot的访问网络范围?配置无效问题求助

解决Dovecot指定允许访问网段的问题

你搞错了login_trusted_networks的作用——这个参数不是用来限制非信任网段访问的,它的核心是标记可信网段,允许这些网段的客户端跳过某些安全限制(比如明文认证、信任客户端IP用于代理转发),完全不会阻止其他网段的连接请求。

要实现只允许指定网段访问Dovecot,有三种可靠方案:

方案1:用防火墙限制(推荐,最安全高效)

直接通过防火墙拦截非授权网段的imap(143端口)和pop3(110端口)请求:

如果你用firewalld:

# 添加允许192.168.10.0/24访问imap的规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="143" protocol="tcp" accept'
# 添加允许该网段访问pop3的规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="110" protocol="tcp" accept'

# 对172.18.16.0/24执行同样操作
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.18.16.0/24" port port="143" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.18.16.0/24" port port="110" protocol="tcp" accept'

# 重载防火墙规则生效
firewall-cmd --reload

如果你用iptables:

# 先允许指定网段访问imap和pop3
iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -s 172.18.16.0/24 --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -s 172.18.16.0/24 --dport 110 -j ACCEPT

# 拒绝其他所有网段访问这两个端口
iptables -A INPUT -p tcp --dport 143 -j DROP
iptables -A INPUT -p tcp --dport 110 -j DROP

# 保存规则(不同系统命令可能不同,比如CentOS用service iptables save,Debian用iptables-save > /etc/iptables/rules.v4)

方案2:修改Dovecot监听地址

如果你的服务器有多个网卡(比如内网IP属于目标网段),可以让Dovecot只监听这些内网IP,拒绝其他地址的连接:

编辑/etc/dovecot/dovecot.conf,把listen = *, ::改成:

# 替换成你的服务器在内网两个网段的IP,比如192.168.10.10和172.18.16.10,保留[::1]用于本地IPv6访问(可选)
listen = 192.168.10.10, 172.18.16.10, [::1]

重启Dovecot生效:systemctl restart dovecot

方案3:Dovecot内置访问控制

通过Dovecot的访问规则直接拒绝非授权IP,适合无法用防火墙的场景:

  1. 编辑/etc/dovecot/conf.d/10-auth.conf,添加:

    auth_access_path = /etc/dovecot/access.conf
    
  2. 创建/etc/dovecot/access.conf文件,写入规则:

    192.168.10.0/24 allow
    172.18.16.0/24 allow
    * deny
    
  3. 重启Dovecot:systemctl restart dovecot

最后验证配置是否生效:执行dovecot -n查看参数是否正确加载,同时用非授权网段的设备测试是否无法连接。

内容的提问来源于stack exchange,提问作者RedIce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:30:59