SPAM対策として、Sender Policy Freamwork(SPF)を設定して久しいのだけど、どう効いているのかまでは、あんまり気にしてなかったのだが、MuninのPluginを流用すると簡単にグラフ化できることに気が付いたので、やってみた。
SPFの効果をMuninでグラフにしてみる
準備と前提
SPFに対応するためのパッケージとmuninのパッケージがインストールされているのが前提。
ちなみに、sidで動いているので、そのあたりも注意のこと。
eswat2:~# aptitude search spf | grep ^i i libmail-spf-perl - Perl implementation of Sender Policy Frame i libmail-spf-query-perl - query SPF (Sender Policy Framework) to val i libspf-dev - the ANSI C SPF reference library (developm i libspf-doc - the ANSI C SPF reference library (document i libspf0 - the ANSI C SPF reference library (runtime i libspf2-2 - library for validating mail senders with S i libspf2-dev - Header and development libraries for libsp i postfix-policyd-spf-perl - pure-Perl Postfix policy server for RFC 44 i spf-tools-perl - SPF tools (spfquery, spfd) based on the Ma eswat2:~# aptitude search munin | grep ^i i munin - network-wide graphing framework (grapher/g i munin-node - network-wide graphing framework (node)
SPF関連とmuninパッケージのインストールと設定
SPF関連とmuninのパッケージのインストールと設定に関しては、今回は割愛。機会を見て、このあたりもエントリーにまとめたいな、と・・・。
とりあえず、記憶ではそれほど問題となるような点はなかったと思うので、どちらも付属するドキュメントを読めば、大丈夫。(なはず・・・。)
muninにSPF用のpluginを準備、設定する
SPF用のスクリプトは、一からじゃなくて、これをベースに修正していく。
修正ポイントは、「ログの中の、どのキーワードで集計するのか」ということになるので、postfixのログを確認してみると・・・。
Dec 8 16:54:46 eswat2 postfix/policy-spf[12781]: : Policy action=550 Please see http://www.openspf.org/Why?s=mfrom&id=prashant%40paratype.com&ip=82.131.186.125&r=eswat2.downtown.jp
"Policy action=
"のあたりが集計に使えそうなので、実際に"action=
"のうしろにどんなキーワードが来るのかを確認。
eswat2:/var/log# grep 'Policy action' mail.log | perl -pe 's/ +/\t/g' | cut -f8 | sort | uniq -c
51 action=550
884 action=DEFER_IF_PERMIT
17 action=DUNNO
2169 action=PREPEND
と、4種類が抽出されたので、これを元にスクリプトを修正。
元々のスクリプト自体が、そんなに複雑なことをやっているわけではないので、見ればある程度どんなことをやっているのか判ると思うけど、修正したスクリプト(munin-spf.txt)を公開しておきます。これを、適当な名前(spfとか)を付けて、/usr/share/munin/plugins
に保存をしてください。保存したら、"chmod 755 /usr/share/munin/plugins/spf
"を実行して、実行権限を付けておくのを忘れずに。
続いて、munin-nodeが、spfのpluginを実行できるように設定していきます。
基本的には、/usr/share/munin/plugins
に保存したspfスクリプトに、/etc/munin/plugins
からリンクを張ればOK。
eswat2:~# cd /etc/munin/plugins/
eswat2:/etc/munin/plugins# ln -s /usr/share/munin/plugins/spf .
eswat2:/etc/munin/plugins# ls -l spf
lrwxrwxrwx 1 root root 28 2007-12-09 19:12 spf -> /usr/share/munin/plugins/spf
あとは、/etc/munin/plugin-conf.d/munin-node
に、次の2行を追加したら、準備完了。
[spf]
group adm
最後に、起動スクリプトを使って、munin-nodeを再起動。
eswat2:/etc/munin/plugins# /etc/init.d/munin-node restart Stopping Munin-Node: done. Starting Munin-Node: done.
再起動後、しばらく待ってから、自分のサーバのmuninのページをチェック、グラフが書かれていればOK、となります。
やり方さえ判れば、他のものでも、グラフ化できると思うので、色々試してみてください。
コメントする