最近我们的一个客户遇到了这样的问题,服务器反应异常的慢,cpu负载90%以上。我登陆他的服务器,命令等了很长时间才显示出来。我使用top命令检查了下服务器负载,发现负载95以上,内存也是90以上,而且占cpu和内存的进程都是jdmail进程,

这种情况一般是由于jdmail目录下logs或是spool某个文件夹特别大,使得cpu占用严重,清理下logs以数字命名的文件夹下的文件和spool下的文件,cpu负载就下降了,服务变得正常了。
   但是这个用户的服务器中这两个文件夹大小都很正常,都是几百k左右,(du -sh /jdmail/logs or  du -sh /jdmail/spools)。
   然后我查看了下连接SMTP服务的用户数(lsof -i:25 | wc -l)
   (ps:也可以使用管理台页面查看系统监控smtp使用信息,可惜他的网站太卡,根本进不去。)
   发现连接数有700多,
   [root@mail jdmail]# lsof -i:25 |wc -l
    765
    所以,该服务器被攻击的可能性很大。然后我登陆服务器管理后台,查看了邮件服务器配置,发现系统设置下SMTP服务连接设置,一分钟内同一ip连接数和同一ip同时连接数都未做限制,这样攻击者能一直使用你的邮件服务器发送邮件,占用大量cpu,所以,最好设置为默认值或是比默认值小,一般为32,并且启动智能反垃圾ip功能。
   通过限制,再次查看SMTP用户数,为100多,服务器恢复正常。
   

    [root@mail jdmail]# lsof -i:25 |wc -l
    170
    最后提醒大家提高安全意识,给大家三个建议。
   1邮件服务器后台管理平台密码
    我发现很多用户设置的后台管理密码都很简单,甚至有些直接使用域名为密码,更有甚者,没有设定密码。这样,您的服务器很容易被恶意破解,作为垃圾邮件发送的场所,最终导致ip域名被列入邮件垃圾名单。所以,一个好的后台管理密码很重要,最好是字母数字标点的组合。
   2linux服务器,设定iptables规则,保护好服务器主机和网络(下面的22和2222是ssh端口,建议关闭22端口,将ssh端口更改为自己设定的端口,第三种策略将介绍)
       ############ 防火墙规则 ######################
80 8080 25 110 22 2222 53 
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT 
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT 
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT 
#iptables -A INPUT -p tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -P INPUT DROP 
3ssh端口更改
    首先,查看下都有谁登陆过您的服务器,试图破解计算您的服务器密码
    vim /var/log/secure
     下面介绍更改ssh端口方法
    vim /etc/ssh/sshd_config
     35 #   Port 22
     将井号去掉,然后将22更改为您自定义的端口即可