首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UFW阻塞邮件服务器流量(dovecot,后缀,MariaDB,Rspamd)

UFW阻塞邮件服务器流量(dovecot,后缀,MariaDB,Rspamd)
EN

Server Fault用户
提问于 2019-06-25 17:13:33
回答 2查看 1.6K关注 0票数 0

如标题所述,我正在运行一个dovecot/后缀/Rspamd,后面有一个MariaDB。

我注意到,在过去的几天里,我无法从我的电子邮件客户端接收/发送任何邮件。雷鸟也注意到了:不可能再连接到SMTP服务器了。

这个时候我唯一改变的是:

  • 我从apache2服务器添加了一个phpmyadmin访问权限,并提供了额外的linux用户查询。
  • (根据“朋友”的建议)安装了fail2ban,作为针对the服务的暴力请求的附加保护。我把它放在默认设置中,只把时间更改为1小时。

从那时起,我删除并清除了fail2ban,当然这就是问题所在。不是的。(?)

在阅读了syslog的以下输出后,我将其追溯到UFW:

( syslog输出(蒙面)

UFW本身具有以下配置:

代码语言:javascript
复制
# cat /etc/ufw/user.rules
*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-logging-deny - [0:0]
:ufw-logging-allow - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###

### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 22 -j ACCEPT

### tuple ### allow tcp 2222 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 2222 -j ACCEPT

### tuple ### allow tcp 25 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 25 -j ACCEPT

### tuple ### allow tcp 465 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 465 -j ACCEPT

### tuple ### allow tcp 587 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 587 -j ACCEPT

### tuple ### allow tcp 143 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 143 -j ACCEPT

### tuple ### allow tcp 993 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 993 -j ACCEPT

### tuple ### allow tcp 4190 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 4190 -j ACCEPT

### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 80 -j ACCEPT

### tuple ### allow tcp 443 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 443 -j ACCEPT

### END RULES ###

### LOGGING ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###

### RATE LIMITING ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT
-A ufw-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT

正如您在最后几个条目中所看到的,它似乎是由ufw后日志输入、ufw日志后转发或ufw日志记录拒绝触发的。然而,这就是我的“知识”现在结束的地方。我唯一额外注意到的是,下面的一行在user.rules中标记为红色,但这可能不是什么.

CLI中的User.rules

我重新安装了fail2ban以完成以下操作:

代码语言:javascript
复制
# fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   sshd

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     158
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   112.xxx.xxx.xxx

# fail2ban-client set sshd unbanip 112.xxx.xxx.xxx
112.xxx.xxx.xxx

# fail2ban-client status sshd
[...]
   `- Banned IP list:

/var/log/auth.log列出了许多这类条目,它们都来自同一个IP:

代码语言:javascript
复制
Jun 25 19:56:51 mail sshd[26691]: Connection closed by 112.xxx.xxx.xxx port 60391 [preauth]
Jun 25 19:56:52 mail sshd[26693]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=112.xxx.xxx.xxx  user=root
Jun 25 19:56:54 mail sshd[26693]: Failed password for root from 112.xxx.xxx.xxx port 64328 ssh2
Jun 25 19:56:54 mail sshd[26693]: Connection closed by authenticating user root 112.xxx.xxx.xxx port 64328 [preauth]
Jun 25 19:57:03 mail sshd[26697]: Connection closed by 112.xxx.xxx.xxx port 50264 [preauth]

这不可能是我,因为我从来没有登录到根。

我搜索了很多网站,但没有找到任何有用的线索来解决这个问题。它似乎真的来自于我最近所做的一个改变,尽管我想不出有什么比清除和删除fail2ban之后可能仍然存在的未删除的规则更多的东西了。

在修复它的过程中,我也尝试了一些东西:-重新启动和停止/启动UFW -重新启动apache2 -重新启动dovecot -查看Rspamd在发送的测试邮件中的事件条目(自从我做出更改以来没有收到任何消息!)--使用另一个邮件客户端--向UFW添加了25端口的验收规则(没有改变任何内容)。

这个服务器正在运行Ubuntu。

有什么办法让我的装置恢复正常状态吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-06-26 16:59:57

经过多次努力,我现在似乎已经解决了我的问题。解决这一问题的一些提示:

不,这和那些飞碟块无关。首先,检查您是否正在使用正确的服务名称!我忘了,因为一个bug,我用了另一个服务名作为后缀。

通过比较服务器上systemctl status <servicename>.service的这一部分是否相同,可以很好地看出您是否有错误的服务名称:

代码语言:javascript
复制
   CGroup: /system.slice/system-postfix.slice/<servicename>.service
           ├─5832 /usr/lib/postfix/sbin/master -w
           ├─5833 pickup -l -t unix -u -c
           └─5834 qmgr -l -t unix -u

我的错误服务只出现在CGroup上。

在获得正确的服务名称之后,我可以很快发现问题所在,因为systemctl status <servicename>.service现在发布了正确的错误消息:

代码语言:javascript
复制
Jun 26 18:32:40 mail postmulti[6814]: /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mua_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
Jun 26 18:32:40 mail postmulti[6814]: /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mua_sender_restrictions=permit_mynetworks,reject_non_fqdn_sender,reject_sender_login_mismatch,permit_sasl_authenticated,reject
Jun 26 18:32:40 mail postmulti[6814]: /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mua_relay_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject

这是main.cf和master.cf配置错误的结果。这两个信任相互依赖,如果您复制/粘贴,您将需要从一个单一的来源!

我还得到了以下错误,这些错误提示后缀-mysql包缺少(在我的情况下是损坏的)实现。然后只有apt-get remove postfix-mysqlapt-get install postfix-mysql

代码语言:javascript
复制
Jun 26 18:20:41 mail postfix/submission/smtpd[6252]: error: unsupported dictionary type: mysql
Jun 26 18:20:41 mail postfix/submission/smtpd[6252]: message repeated 3 times: [ error: unsupported dictionary type: mysql]
Jun 26 18:20:41 mail postfix/submission/smtpd[6252]: fatal: in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of: reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains
Jun 26 18:20:42 mail postfix/master[5832]: warning: process /usr/lib/postfix/sbin/smtpd pid 6252 exit status 1
Jun 26 18:20:42 mail postfix/master[5832]: warning: /usr/lib/postfix/sbin/smtpd: bad command startup -- throttling

另一件可以做到这一点的事情是重做mysql用户。我首先将用户添加到mysqldb,方法是使用命令行上的根访问服务器并输入grant select on dbname.* to 'username'@'localhost' identified by 'verystrongpassword';。我现在删除了这个用户,用我用phpmyadmin添加的一个用户替换它,并显式地将它添加到'username'@'%'而不是'username'@'localhost'中。

我从中学到的最后一件事是,如果您向服务器添加新包,请检查是否存在可能干扰或替换已配置服务的依赖关系。(sendmail也可能是阻止我的后缀服务器的问题之一,遗憾的是,在所有其他尝试之后,我无法确认这一点)

票数 0
EN

Server Fault用户

发布于 2019-06-25 17:32:23

UFW配置看起来是正确的。

您可能成功地在fail2ban中禁止了自己的IP。

使用fail2ban-client status查看启用了哪些监狱,然后使用fail2ban-client status <jail>查看是否列出了您的IP地址。如果你找到你的IP,你可以解除它。

代码语言:javascript
复制
[root@localhost ~]# fail2ban-client status 
Status
|- Number of jail:      1
`- Jail list:   sshd

[root@localhost ~]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 3
|  |- Total failed:     762
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 13
   |- Total banned:     86
   `- Banned IP list:   121.136.181.58 212.224.124.98 65.94.147.197 176.159.245.52 68.32.77.29 112.17.128.44 220.81.48.50 104.210.60.66 104.211.60.207 104.211.46.110 212.64.98.92 59.144.137.186 90.3.202.234

[root@localhost ~]# fail2ban-client set sshd unbanip 203.0.113.187
203.0.113.187
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/972848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档