作者 主題: Debian lenny 安裝與設定 pflogsumm for Postfix  (閱讀 1489 次)

0 會員 與 1 訪客 正在閱讀本文。

phantom

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 2185
    • 檢視個人資料
做為一位系統管理者,一定要時常注意系統的健康狀態。

前一陣子公司有位同仁的 email 密碼設的太簡單了,所以,被猜到並且被盜用來濫發垃圾信件。Mail 的 log 量又非常的大,所以也不可能每天去檢視所有的紀錄。一直到幾天後,收到有寄出的 email 被退件,而原因就是我們的 mail server 被列在某個黑名單上。我再進一步去查,才發現原來有帳號已經被盜用了好幾天。由於使用的流量/頻寬與時間都沒有太大,所以,從流量上來看,並不能很容易的察覺有異常。

其他系統方面的善後與設定我就不多著墨了。但是,我就開始思考與尋找適合的工具來幫我處理這部份的問題。在努力的尋找下(迷之音,先前不夠努力,Orz),我找到了 pflogsumm!

由於該套件有包含在 Debian 內,所以安裝非常簡單:

    apt-get install pglogsumm

安裝好後,先寫一個 bash script,我定的路徑及檔名(/usr/local/sbin/postfix_report.sh):

    #!/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    pflogsumm /var/log/你的maillog檔 | formail -c -I"Subject: Mail Statistics" -I"From: pflogsumm@example.com" -I"To: 收件人@example.com" -I"Received: from mx.example.com ([192.168.xxx.xxx])" | sendmail postmaster@example.com

    exit 0

以上的 script,請將所有的 domain / email / IP,更改為適當資訊。存檔後再 chmod 即可。

Script 寫好後,現在剩下的就是如何執行,什麼時候執行?

由於資料的來源是 mail log,所以我們必須要檢視一下 mail log 的設定,不同 distribution 的 mail log 的設定方式可能會有些許不同。Debian 使用的是 rsyslog。所以,postfix 的 mail log 是在 /etc/logrotate.d/rsyslog 進行設定:

    /var/log/mail.info
    /var/log/mail.warn
    /var/log/mail.err
    /var/log/mail.log
    {
    rotate 14
    daily
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    prerotate
    /usr/local/sbin/postfix_report.sh
    endscript
    postrotate
    invoke-rc.d rsyslog reload > /dev/null
    endscript
    }

 

上面的範例,可以自己的需求來進行調整。而且,直接在 rotate 之前呼叫我的 shell script,會比使用 crontab 來呼叫更為簡單而且乾淨。

以上,所有的設定就完成了。

之後,收到信件的內容大致如下:

    Grand Totals
    ------------
    messages

    1923 received
    3131 delivered
    4 forwarded
    8 deferred (68 deferrals)
    3 bounced
    6673 rejected (68%)
    0 reject warnings
    0 held
    0 discarded (0%)
    253674k bytes received
    372125k bytes delivered
    551 senders
    297 sending hosts/domains
    163 recipients
    67 recipient hosts/domains


    Per-Day Traffic Summary
    date received delivered deferred bounced rejected
    --------------------------------------------------------------------
    Sep 8 2010 1555 2597 47 3 4597

    Per-Hour Traffic Daily Average
    time received delivered deferred bounced rejected
    --------------------------------------------------------------------
    0000-0100 29 52 2 0 137

    Host/Domain Summary: Message Delivery
    sent cnt bytes defers avg dly max dly host/domain
    -------- ------- ------- ------- ------- -----------
    2589 315653k 42 2.4 s 62.3 h example.com

    Host/Domain Summary: Messages Received
    msg cnt bytes host/domain
    -------- ------- -----------
    586 116367k example.com

    Senders by message count
    ------------------------
    156 webmaster@example.com

    Recipients by message count
    ---------------------------
    374 example@example.com

    Senders by message size
    -----------------------
    26552k example@example.com

    Recipients by message size
    --------------------------
    39781k example@example.com

    message deferral detail
    -----------------------
    smtp (total: 68)

    message bounce detail (by relay)
    --------------------------------
    gmail-smtp-in.l.google.com[74.125.127.27]:25 (total: 1)

    message reject detail
    ---------------------
    cleanup
    header (total: 29)
    29 Date: Tue, 19 Jan 2038 11:14:07 +0800

    message reject warning detail: none

    message hold detail: none

    message discard detail: none

    smtp delivery failures: none

它所整理出來的資訊非常容易閱讀,而且,有異常就很容易發現。系統管理者就可以進一步的去做追查及因應。

參考資料來源:
http://www.howtoforge.com/postfix-monitoring-with-mailgraph-and-pflogsumm-on-debian-lenny
Linux 非萬能, 沒 Linux 萬萬不能.
root = God
apt-get install ultimate-horsepower