大量垃圾邮件通过我的邮件服务器发送。垃圾邮件使用的别名不属于注册用户。邮件命令输出显示如下消息:
487A1600698C2 1901 1月27日星期五 09:35:15 [电子邮件保护](主机 mx-eu.mail.am0.yahoodns.net[188.125.69.79] 说:421 4.7.0 [TSS04] 来自 www.xxx.yyy.zzz 的消息由于用户投诉而暂时推迟 - 4.16.55.1;参见 https://help.yahoo.com/kb/postmaster/SLN3434.html(回复 MAIL FROM 命令)) [电子邮件保护]
491A4600698AE 1265 1月27日星期五 09:36:43 [电子邮件保护] (交付暂时中止:发送 RCPT TO 时与 mta5.am0.yahoodns.net[66.196.118.36] 失去连接) [电子邮件保护]
4888D600698B9 1280 1月27日 星期五 09:34:58 [电子邮件保护] (交付暂时中止:发送 RCPT TO 时与 mta5.am0.yahoodns.net[66.196.118.36] 失去连接) [电子邮件保护]
如您所见,甚至用户 www-data 也在发送垃圾邮件。我运行命令postsuper-d ALL删除所有队列电子邮件,但这也包括有效的电子邮件。
我使用 /etc/postfix/sender_access 将所有别名或未经授权的发件人列入黑名单,实际上该文件有超过 8000 个条目
这是输出后配置-n命令
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
disable_vrfy_command = no
inet_interfaces = all
mailbox_size_limit = 0
mydestination = mail, localhost.localdomain, localhost
myhostname = mail.mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24 172.16.16.0/24
readme_directory = no
reception_delimiter = +
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = mydomain.com Microsoft Exchange Server 2003
smtpd_client_restrictions = rejection_rbl_client bl.spamcop.net, rejection_rbl_client sbl.spamhaus.org,
smtpd_data_restrictions = rejection_multi_recipient_bounce,reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_helo_hostname,reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/sender_access, permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,check_policy_service inet:127.0.0.1:10023
smtpd_sasl_auth_enable = 是
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = hash:/etc/postfix/sender_access,check_sender_access hash:/etc/postfix/sender_access,permit_mynetworks,reject_sender_login_mismatch,reject_unknown_sender_domain,reject_non_fqdn_sender,permit_sasl_authenticated
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = 是
virtual_alias_maps = ldap:/etc/postfix/ldap-alias-maps.cf
virtual_gid_maps = 静态:5000
virtual_mailbox_base = /
virtual_mailbox_domains = mydomain.com
virtual_mailbox_maps = ldap:/etc/postfix/ldap-mailbox-maps.cf
virtual_minimum_uid = 100
virtual_uid_maps = 静态:5000
我需要帮助来阻止这些垃圾邮件
/var/log/mail.log 的示例
Jan 29 16:33:22 mail postfix/pickup[1960]: 312676037EE39: uid=33 from=<www-data>
Jan 29 16:33:22 mail postfix/cleanup[64497]: 312676037EE39: message-id=<[email protected]>
Jan 29 16:33:22 mail postfix/qmgr[60188]: 312676037EE39: from=<[email protected]>, size=783, nrcpt=1 (queue active)
Jan 29 16:33:22 mail dovecot: imap-login: Login: user=<validuser>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=2213, secured, session=<MjoQnEFH3AB/AAAB>
Jan 29 16:33:22 mail dovecot: imap(validuser): Disconnected: Logged out in=93 out=837
Jan 29 16:33:22 mail postfix/pickup[1960]: 4DBEB6037EE3A: uid=33 from=<www-data>
Jan 29 16:33:22 mail postfix/cleanup[61997]: 4DBEB6037EE3A: message-id=<[email protected]>
Jan 29 16:33:22 mail postfix/qmgr[60188]: 4DBEB6037EE3A: from=<[email protected]>, size=844, nrcpt=1 (queue active)
我使用的是 debian 7,安装了 maldet 我运行命令maldet -m /usr/local/并返回:
Linux Malware Detect v1.5
(C) 2002-2016, R-fx Networks <[email protected]>
(C) 2016, Ryan MacDonald <[email protected]>
This program may be freely redistributed under the terms of the GNU GPL v2
maldet(13019): {mon} existing inotify process detected (try -k): 53745
但我不知道如何使用这些信息来检测恶意脚本
答案1
我找到了解决方案
当 apache2 服务停止时,朝着最终解决方案迈出了第一大步,垃圾邮件的发送也停止了,也就是说,邮件是从 php 脚本发送的。
下一步是将以下几行添加到 php.ini
mail.add_x_header = On
mail.log = /var/log/phpmail.log
这个页面帮助我:https://blog.rimuhosting.com/2012/09/20/finding-spam-sending-scripts-on-your-server/
将 var/log/phpmail.log 文件分配给用户和组 www-data
chgrp -R www-data /var/log/phpmail.log
chown -R www-data /var/log/phpmail.log
重新启动 apache2 服务时,垃圾邮件再次出现,但这次它们已注册到文件 /var/log/phpmail.log 中
停止 apache2 服务并在 /var/log/phpmail.log 中查找导致垃圾邮件的脚本,它们是 apache 服务器 (/var/www/) 上的 wordpress 文件夹中标记为 php.suspected 的 php 文件。删除所有这些文件,由于我没有使用该 wordpress 文件夹,我授予它 440 权限以保持只读状态。
重新启动服务 apache2,垃圾邮件就彻底消失了。
答案2
好吧,如果 www-data 正在发送垃圾邮件,这意味着您的网络服务器已被入侵。
您应该立即停止您的网络服务器并检查是否存在用于发送垃圾邮件的不需要的脚本和后门。
您可以使用 maldet (https://www.rfxn.com/projects/linux-malware-detect/) 查找可疑文件。
或者使用这种方法:https://blog.rimuhosting.com/2012/09/20/finding-spam-sending-scripts-on-your-server/
如果您想要真正保存,也请检查您的数据库或进行全新安装。