![使用 Web 服务器日志保护外发电子邮件](https://linux22.com/image/664500/%E4%BD%BF%E7%94%A8%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A5%E5%BF%97%E4%BF%9D%E6%8A%A4%E5%A4%96%E5%8F%91%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6.png)
在 Web 服务器上,我将运行 rkhunter、tripwire、OSSEC、fail2ban 和 psad。所有这些应用程序都需要能够发送电子邮件来通知系统管理员。
因此,我:
sudo apt-get install -y mailutils postifx
然后我配置了 postfix 来捕获发送到 root@localhost 的邮件,并将这些邮件发送到[电子邮件保护]:
sudo nano /etc/aliases
并且我添加了这个别名(之后postmaster: root
):
root: [email protected]
我已允许端口 25/tcp 上的传出流量(因为我的默认 UFW 策略对 INPUT、OUPUT 和 FORWARD 均采用 DROP)
sudo ufw allow out 25/tcp
我现在能够发送仅电子邮件,并且我将仅使用 postifx/mail 来处理上面列出的应用程序,而我将使用phpmailer 插件对于 Web 应用程序本身(登录通知、电子邮件验证、密码更改通知等)。
此时,我很好奇:
- 就安全而言,postfix/mail 是否是一种安全的日志发送方式?假设攻击者想要获取我的日志,在我当前的配置下,对他来说有多难?
- 有人知道一个好的链接,可以在哪里学到一些可以帮助我的东西吗?
我的 postfix TLS 配置行:
smtp_enforce_tls=yes
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_tls_mandatory_ciphers = high
smtp_tls_loglevel = 1
smtp_tls_session_cache_timeout = 3600s
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
tls_random_source = dev:/dev/urandom
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
答案1
您当前设置的安全性是否能够防止您的邮件在从服务器发送到目标邮箱的过程中被拦截,从而防止邮件被泄露和修改,取决于您服务器的 DNS 解析的安全性。如果攻击者能够伪造对您服务器的 DNS 回复,她就可以将您的邮件转移到她自己的启用了 TLS 的 SMTP 服务器。您的 Postfix 守护程序将记录证书验证失败,但仍然会传递邮件。为了防止此类攻击,您需要使用较高的 smtp_tls_security_level 值之一(dane-only、fingerprint、verify、secure)和/或使用 DNSSEC。
防止邮件被拦截的安全性主要取决于互联网连接的可靠性和安全性,也取决于 DNS 解析,当然还取决于托管邮件的目标邮件服务器[电子邮件保护]邮箱。例如,如果目标服务器的反垃圾邮件策略过于严格,则可能会通过错误地将您的服务器报告为垃圾邮件来源来阻止您的邮件。
最后但同样重要的是,一旦邮件被递送到[电子邮件保护]邮箱的安全性当然完全取决于邮箱的安全性。例如,如果攻击者获得该邮箱的访问凭证(通过网络钓鱼),她就可以阅读、删除或替换其中的任何邮件。