我的服务器IP因发送垃圾邮件而被列入黑名单,我正在追踪发送垃圾邮件的程序。
我这样做了netstat
,它显示很多程序正在使用端口 25
例如
tcp 0 182 10.205.3.7:38995 xxx.55.92.168:25 ESTABLISHED 31909/smtp
tcp 0 0 127.0.0.1:443 127.0.0.1:52160 TIME_WAIT -
tcp 0 0 10.205.3.7:53001 xxx.186.99.50:25 TIME_WAIT -
tcp 0 0 127.0.0.1:52171 127.0.0.1:443 TIME_WAIT -
tcp 0 0 127.0.0.1:443 127.0.0.1:52254 TIME_WAIT -
tcp 0 0 127.0.0.1:52251 127.0.0.1:443 TIME_WAIT -
tcp 0 0 127.0.0.1:443 127.0.0.1:52049 TIME_WAIT -
tcp 0 0 127.0.0.1:52091 127.0.0.1:443 TIME_WAIT -
tcp 0 0 10.205.3.7:59762 xxx.17.41.47:25 ESTABLISHED 2147/smtp
tcp 0 1 10.205.3.7:50400 xxx.88.180.116:25 SYN_SENT 2151/smtp
tcp 0 0 127.0.0.1:52083 127.0.0.1:443 TIME_WAIT -
tcp 0 0 10.205.3.7:55824 xxx.127.217.16:25 TIME_WAIT -
tcp 0 0 10.205.3.7:35888 xxx.27.42.58:25 ESTABLISHED 1913/smtp
tcp 0 0 127.0.0.1:443 127.0.0.1:52242 TIME_WAIT -
tcp 0 0 10.205.3.7:80 xxx.76.138.169:25703 TIME_WAIT -
tcp 0 0 10.205.3.7:51114 xxx.54.188.110:25 ESTABLISHED 31424/smtp
tcp 0 0 127.0.0.1:443 127.0.0.1:52059 TIME_WAIT -
tcp 0 149 10.205.3.7:34686 xxx.125.136.27:25 ESTABLISHED 703/smtp
tcp 0 0 10.205.3.7:34669 xxx.125.136.27:25 ESTABLISHED 32586/smtp
tcp 0 0 127.0.0.1:443 127.0.0.1:52238 TIME_WAIT -
tcp 0 0 127.0.0.1:443 127.0.0.1:52150 TIME_WAIT -
tcp 0 0 127.0.0.1:52038 127.0.0.1:443 TIME_WAIT -
tcp 0 0 10.205.3.7:37635 xxx.115.11.16:25 ESTABLISHED 31093/smtp
tcp 0 0 10.205.3.7:59959 xx.127.217.21:25 ESTABLISHED 690/smtp
postfix 是唯一应该使用端口 25 的程序吗,或者这个词是smtp
postfix 所有进程的别名?
- - - 编辑 - -
谢谢大家的帮助,只是为了澄清一下:
- 我检查过了,我没有运行开放中继。
- 从
netstat
输出来看,无法清楚哪个进程属于 postfix。
答案1
使用端口 25 的任何程序都应该是经过验证的 SMTP 程序,并且您知道并且已授权。就您而言,这仅是postfix
。您应该知道,开放中继也可能导致您不知不觉地发送垃圾邮件。
检查一下以确定哪些程序正在使用哪些端口:http://www.cyberciti.biz/faq/what-process-has-open-linux-port/- 然后检查以确保 postfix 未配置为开放中继 -http://www.postfix.org/SMTPD_ACCESS_README.html
解决这些问题后,您就可以开始了。如果您位于 NAT 防火墙后面(网络内的计算机共享您的公共 IP),则应阻止任何未经授权发送邮件的计算机使用出站端口 25,因为您的 IP 将再次被 CBL 阻止。
答案2
您需要区分本地和远程端口以及传入和传出连接。
一次只能有一个进程监听本地端口 25,因此只有一个程序可以接受传入的 SMTP 连接。如果您尝试启动另一个进程,它将中止并显示“端口已在使用中”错误。(我在这里忽略了不同的程序使用不同的本地地址监听同一端口的可能例外情况,因为这与我的论点无关。)
任意数量的程序都可以打开到相同或不同远程服务器上的端口 25 的传出连接。这有合法用途。
netstat
显示打开连接的 PID 和进程名称(如果使用该-a
选项,则显示监听端口的 PID 和进程名称)。进程名称不可靠,因为进程可以将其自己的名称设置为任意字符串。因此,为了识别进程,您应该只依赖 PID,并使用命令ps
检索有关该进程的其他信息。
答案3
对您的问题的回答是肯定的,postfix
或者类似的邮件传输代理MTA
,应该监听端口 25,该端口是用于传入邮件的专用端口。
每当您的服务器被用来发送垃圾邮件时,它都不会使用您的传入端口,而是建立传出连接。