1

我的公司有一个托管的 CentOS 服务器,托管了十几个网站。我们使用 Plesk 进行管理,但我个人主要通过终端工作。本周末,我们客户的一个域的电子邮件帐户遭到入侵,服务器开始发送垃圾邮件。我们因垃圾邮件而被列入黑名单,这导致我们的一些网站在我弄清楚发生了什么时关闭。

显然,我想避免这种情况再次发生。我一开始没有设置服务器——在同一个 IP 上为多个网站运行 http 托管和邮件托管可能不是最好的设置,因为只需要一个愚蠢的客户端,用一个弱电子邮件密码来管理多个网站.

作为一个短期修复,我想知道是否可以让脚本监控 SMTP 进程的数量,如果超过某个阈值则给我发电子邮件?当服务器发送垃圾邮件时,它正在运行大约 80 个 SMTP 进程,这让我知道它被用作垃圾邮件服务器。另外,对长期处理这种情况有什么想法吗?服务器有一个 8 个 IP 块。

感谢您的帮助,欢迎任何建议/意见。我是 LAMP 开发人员,而不是全职 *nix 管理员。我在想

每 5 分钟触发一次 cron 作业
管道 #ps -A 输出到文件
读取文件并通过正则表达式计算字符串“SMTP”的出现次数
如果需要发送电子邮件

但是该死,这似乎有点令人费解:/

4

1 回答 1

1

搞定了 这是计算 SMTP 进程数的 shell 脚本,如果超过 10 个,则发送带有计数的电子邮件:

#!/bin/bash  <- change as appropriate for your shell
NUMSMTP = $(ps ax | grep 'smtp' | wc -l)
if [[ $NUMSMTP -gt 10 ]] ; then
    echo "the server has $NUMSMTP processes running" | mail -s "subject" admin@example.com
fi

通过 cron 安排它通过 /etc/crontab 中的 crontab 每五分钟运行一次,使用

*/5 * * * * /path/to/script.sh

并赢得:)

于 2012-07-13T19:34:49.420 回答