2008/10/06

[ LOS ] Mail Attack & Delete Postfix selected mailq

上星期遇到我替公司架設的 CentOS Mail Gateway 遭到大量灌信,我發現後已經過了半個多小時的時間,整個 MailQ 中就已經有 4000 多封來自 service@kcg.gov.tw 高雄市政府 Service 的來信而且不斷的成長,我們的 Server 是 P4 2.8 算是已經不錯,Mail Gateway 上面有跑 Amavisd-new 及 ClamAV 和 Spamassassin,每天的報表統計 Mail Gateway 大約會處理約 40 萬封來信 ( 9成5是垃圾信 )。

攻擊發生後 CPU 幾乎 100% 大量 Mailq 會造成整個公司的正常信都嚴重延遲,感覺起來這樣的攻擊行為比較像是一種 Mail 的 DoS ( Deny of Service ) 攻擊,它讓正常的服務幾近攤瘓,平常經驗告訴我若攻擊行為停止我們這台 Mail Gateway 要處理這些佇列中的信是需要再花上 4 ~ 5 個小時以上時間來慢慢消化 MailQ,雖然我可以等信但是長官可不能等,現在是個 凡事都求快的光世代,若是我告訴長官說信要等半天才收得到 ~ 這可嚴重了,哈哈 ~ 搞不好因此損失上百萬的定單,這下子不黑掉才怪。

還好攻擊者的 Mail From: 都來自 service@kcg.gov.tw 因此還算好處理,可先在 Postfix 的 header_checks 中擋掉 service@kcg.gov.tw 的來信,接著再下行指令就可清掉那些垃圾 MailQ。個人覺得像這樣的攻擊方式 Mail 的 From: service@kcg.gov.tw 很有可能是假造的,也很有可能是收 service@kcg.gov.tw 的那個 User 電腦中毒因而造成大量發信攻擊。

# vi /etc/postfix/header_checks # 加入要擋掉的來原信
/^From:.service\@kcg\.gov\.tw/ DISCARD Attack Mail

# postmap -q - regexp:/etc/postfix/header_checks < /etc/postfix/header_checks # 重新讓 Postfix 新 header_checks 生效

# mailq | grep "service@kcg.gov.tw" | cut -d " " -f1 | cut -d'*' -f1 | postsuper -d - # 刪掉所有來自service@kcg.gov.tw的MailQ

0 意見: