在本教程中,我将与大家分享我的技巧和窍门,以保护电子邮件服务器免受自托管VPN服务器的黑客攻击。许多垃圾邮件发送者试图侵入他人的电子邮件服务器。如果成功,他们将使用被黑客攻击的电子邮件服务器发送大量垃圾邮件或窃取有价值的数据。为什么我们要使用自托管VPN服务器?因为它允许您启用白名单,所以只有连接到VPN服务器的受信任用户才能访问您的邮件服务器。
先决条件
假设您有一个电子邮件服务器正在运行。如果没有,请按照下面的教程之一设置您自己的邮件服务器。
- 如何使用iRedMail在Ubuntu20.04上轻松设置完整的邮件服务器
- 如何使用iRedMail在Debian 10 Buster上轻松设置邮件服务器
还假设您已经设置了VPN服务器。如果没有,请遵循以下教程之一。邮件服务器和VPN服务器可以在不同的主机上运行,也可以在同一台主机上运行。
- 在Ubuntu上设置自己的WireGuard VPN服务器
- 在Debian上设置自己的WireGuard VPN服务器
提示:建议在不同的主机上运行VPN服务器和邮件服务器,以降低操作复杂性。如果邮件服务器和VPN服务器在同一台主机上运行,则需要执行其他步骤,即在VPN服务器上设置响应策略区域,以覆盖邮件服务器主机名的DNS a记录。
- 在Debian/Ubuntu上的绑定解析程序中设置响应策略区域(RPZ)
假设DNS是邮件的记录。你的地盘。com解析为12.34.56.78,则需要在响应策略区域中创建一条记录,以将其解析为VPN服务器的专用IP地址10.10.10.1。
在下面的文本中,我使用12.34.56.78作为VPN服务器的公共IP地址。如果VPN服务器和邮件服务器在同一台主机上运行,则需要将12.34.56.78替换为VPN服务器的专用IP地址10.10.10.1。
步骤1:将VPN服务器IP地址添加到防火墙白名单
一旦邮件服务器和VPN服务器启动并运行,就应该将VPN服务器的IP地址添加到邮件服务器防火墙的白名单中。如果您使用UFW防火墙(Debian/Ubuntu),请在邮件服务器上运行以下命令。将12.34.56.78替换为VPN服务器的IP地址。
sudo ufw插件1允许从12.34.56.78开始插入
您还可以将其他服务器的IP地址列入白名单。例如,有些人可能有另一个web服务器,需要通过电子邮件服务器发送电子邮件。然后也将其添加到白名单中。
sudo ufw insert 1允许从其他web服务器的IP地址进入
步骤2:关闭提交端口、IMAP端口和POP3端口
- 提交端口:587和465
- IMAP端口:143和993
- POP3端口:110和995
Mozilla Thunderbird和Microsoft Outlook等邮件客户端使用587和465端口提交发送的电子邮件。黑客可以对587和465端口进行暴力攻击。
下面是我的邮件日志中的一个例子(Debian/Ubuntu上的/var/log/mail.log,CentOS/RHEL上的/var/log/maillog)。坏演员试图登录,但每次都未能通过SASL身份验证。
postfix/smtps/smtpd[18071]:从未知[92.118.38.56]:TLSv1建立的匿名TLS连接。2使用密码ECDHE-RSA-AES256-GCM-SHA384(256/256位)后缀/smtps/smtpd[18071]:警告:未知[92.118.38.56]:SASL登录身份验证失败:UGFzc3dvcmQ6后缀/smtps/smtpd[18071]:从未知[92.118.38.56]后缀/smtps/smtpd[18071]身份验证后失去连接:从未知[92.118.38.56]ehlo=1身份验证=0/1 rset=1=2/3后缀/smtps/smtpd[18071]:从未知命令连接[92.118.38.56]后缀/smtps/smtpd[18071]:从未知[92.118.38.56]:TLSv1建立的匿名TLS连接。2使用密码ECDHE-RSA-AES256-GCM-SHA384(256/256位)后缀/smtps/smtpd[18071]:警告:未知[92.118.38.56]:SASL登录身份验证失败:UGFzc3dvcmQ6后缀/smtps/smtpd[18071]:从未知[92.118.38.56]后缀/smtps/smtpd[18071]身份验证后失去连接:从未知[92.118.38.56]ehlo=1身份验证=0/1 rset=1=2/3后缀/smtps/smtpd[18071]:从未知命令连接[92.118.38.56]后缀/smtps/smtpd[18071]:从未知[92.118.38.56]:TLSv1建立的匿名TLS连接。2使用密码ECDHE-RSA-AES256-GCM-SHA384(256/256位)后缀/smtps/smtpd[18071]:警告:未知[92.118.38.56]:SASL登录身份验证失败:UGFzc3dvcmQ6后缀/smtps/smtpd[18071]:从未知[92.118.38.56]后缀/smtps/smtpd[18071]进行身份验证后失去连接:断开与未知[92.118.38.56]ehlo=1身份验证=0/1 rset=2/3命令
我不想在邮件日志中看到这种活动,所以我只需关闭防火墙中的587、465、143、993、110和995端口。因为我的VPN服务器的IP地址被列入了白名单,所以只有连接到我的VPN服务器的用户才能访问这些端口。
要关闭UFW防火墙中的这些端口,请首先列出防火墙规则。
sudo ufw状态编号
样本输出
如您所见,IPv4和IPv6规则都有。要关闭587端口,我需要删除规则#16和#6。(应首先删除索引号较高的规则。)
然后,您应该再次运行sudo ufw status number命令,以获得新的防火墙规则列表。请注意,某些规则的索引编号已更改。
这次我想关闭465端口,所以我需要删除规则#15和#6。
sudo ufw delete 15 sudo ufw delete 6
然后使用相同的方法关闭端口143、993、110和995。当然,您需要保持端口25打开以接收来自其他SMTP服务器的电子邮件。
第3步:保护管理面板和网络邮件
我们可以关闭端口80和443,以保护管理面板和网络邮件免受黑客攻击。然而,这将禁止公众访问所有虚拟主机。有些人可能在Apache/Nginx中有需要向Internet开放的虚拟主机。我们可以使用Apache/Nginx中的内置访问控制功能,而不是关闭防火墙中的端口80和443。
Nginx
编辑webmail的虚拟主机文件,例如
sudo nano/etc/nginx/conf.d/mail。你的领域。通用域名格式。形态
将以下行添加到SSL服务器块。这将只允许IP地址12.34.56.78访问webmail,并拒绝所有其他IP地址。
允许12.34.56.78;否认一切;
如果您有多个VPN服务器,可以添加多个IP地址,如下所示:
允许12.34.56.78;允许12.34.56.79;否认一切;
服务器租用网-天坛机房,天坛数据中心,天坛服务器租用
oa服务器租用,金蝶服务器租用,档案服务器租用,财务系统服务器租用,crm服务器租用,vpn服务器租用
机房位置:北京市东城区天坛东路31号铜牛信息大厦(金坛大厦)
fwqtg.net
服务器租用促销热线:董先生13051898268(同微信)