http://packages.clear-code.com/centos/README.txt
$ sudo rpm -Uvh http://packages.clear-code.com/centos/clear-code-repository-1.0.0-0.noarch.rpm
して追加しておいた.
http://packages.clear-code.com/centos/README.txt
$ sudo rpm -Uvh http://packages.clear-code.com/centos/clear-code-repository-1.0.0-0.noarch.rpm
して追加しておいた.
CentOS 5.4 上で.
SPF の判定をしたいので,libspf2 をインストールし,
libspf2 を有効にしてビルド.
$ wegt http://www.city-fan.org/ftp/contrib/libraries/libspf2-1.2.9-2.rhel5.x86_64.rpm http://www.city-fan.org/ftp/contrib/libraries/libspf2-devel-1.2.9-2.rhel5.x86_64.rpm $ sudo rpm -Uvh libspf2-1.2.9-2.rhel5.x86_64.rpm libspf2-devel-1.2.9-2.rhel5.x86_64.rpm $ wget -nd ftp://ftp.espci.fr/pub/milter-greylist/milter-greylist-4.3.7.tgz $ rpm -ti milter-greylist-4.3.7.tgz $ rpmbuild -tp milter-greylist-4.3.7.tgz $ vim /path/to/SPECS/milter-greylist.spec # spf を有効にする $ rpmbuild -ba /path/to/SPECS/milter-greylist.spec
spec file は以下の %define 行の 0 を 1 に変更.
%define libspf2 0 %{?build_libspf2:%define libspf2 1}
いろいろと試したいことの覚え書き.
milter-manager で taRgrey を試すとか.
- libspf2 をインストール
- milter-greylist の開発版をインストール
- spf を有効にする
- spec ファイルではデフォルトでオフになっているので書き換えが必要
- tarpit について確認
- milter-manager 1.5.0 をインストール
- taRgrey の設定
- [milter-manager-users-ja:00077] [ANN] milter manager 1.5.0
- ruby-milter-toolkit
- Rubyでmilter開発
- milter-groonga
あたりを読んで,何か書く.
http://milter-manager.sourceforge.net/index.html.ja
とりあえず,メモ.
あとでアップデートする.
Momonga Linux のアカウントとったんだし,そっちもやらないと.
milter manager 1.3.1 から『評価モード』が追加されました.
milter manager 1.3.1リリース - ククログ(2009-09-16)によると,
評価モードを用いると、実際にmilterを動かしますが結果は無視します。実際にmilterを動かしているので、milter managerやmilter自身が出力するログなどでどのように動作したかを確認することができます。milter managerはログからグラフを生成する機能もあるので、視覚的に効果を確認することもできます。というものらしいです.
で,設定.次の一行を加えるだけ.
milter.evaluation_mode = true
- milterを使った効果的な迷惑メール対策 - milter manager
http://milter-manager.sourceforge.net/index.html.ja
- milter manager 1.1.1 [2009-07-04-2]
- milter manager が Momonga Linux でも動くように [2009-06-25-2]
- milter manager の trunk を試す [2009-06-24-6]
- milter-manager-log-analyzer の設定 [2009-06-24-2]
- milter manager を CentOS にインストール [2009-06-24-1]
- milter manager 1.1.0 を試す [2009-06-23-3]
- milter manager を install しようとしてみた(失敗編) [2009-06-17-1]
- wanderlust で GMail 風、新着レス順にソート - mtbrの日記
http://d.hatena.ne.jp/mtbr/20090723/emacswanderlustGMail
github からファイルを取ってきて,~/.wl に追記してみたけど,
以下のようなエラーがでてしまう.
wl-thread-get-entity: Format specifier doesn't match argument type
via: Hena Hena Nikki ~悔い倒れの日々~(2009-07-23)
http://quruli.ivory.ne.jp/diary/?date=20090723#p02
milter manager 1.1.1(開発版)がリリースされました.
http://milter-manager.sourceforge.net/index.html.ja
* Momonga Linuxのサポート [となかさんによる提案]なんか提案したことになってますが,動かないと報告しただけです.
* となかさんがMomongaのパッケージを作ってくれました。
(本家に入ったわけではありません。)
http://www.ftnk.jp/~fumi/cl/2009-06-25-2.html
とりあえず,Momonga 用 srpm.
milter-manager-1.1.1-1.src.rpm
- milterを使った効果的な迷惑メール対策 - milter manager
http://milter-manager.sourceforge.net/index.html.ja
- milter manager が Momonga Linux でも動くように [2009-06-25-2]
- milter manager の trunk を試す [2009-06-24-6]
- milter-manager-log-analyzer の設定 [2009-06-24-2]
- milter manager を CentOS にインストール [2009-06-24-1]
- milter manager 1.1.0 を試す [2009-06-23-3]
- milter manager を install しようとしてみた(失敗編) [2009-06-17-1]
milter manager の trunk で Momonga Linux でも動くようになりました(多分).
ということで,srpm を置いておきます.
milter-manager-1.1.1-0.20090625.src.rpm
Momonga の clamav-milter と clamd がうまく動いていないようなので,
rpmforge から milter-greylist
http://packages.sw.be/milter-greylist/milter-greylist-3.0-2.el5.rf.x86_64.rpm
を取得して試しています.
- milterを使った効果的な迷惑メール対策 - milter manager
http://milter-manager.sourceforge.net/index.html.ja
- milter manager の trunk を試す [2009-06-24-6]
- milter-manager-log-analyzer の設定 [2009-06-24-2]
- milter manager を CentOS にインストール [2009-06-24-1]
- milter manager 1.1.0 を試す [2009-06-23-3]
- milter manager を install しようとしてみた(失敗編) [2009-06-17-1]
trunk (revision 3131) で clamav-milter-0.9.5 に対応したそうなので,
早速試してみました.
Momonga 上でビルド & インストールして --show-config.
define_milter("clamav-milter") do |milter| milter.connection_spec = "inet:11121@[127.0.0.1]" milter.description = nil milter.enabled = true milter.fallback_status = "accept" milter.applicable_conditions = [] milter.command = "/sbin/start" milter.command_options = "clamav-milter" milter.user_name = nil milter.connection_timeout = 300.0 milter.writing_timeout = 10.0 milter.reading_timeout = 10.0 milter.end_of_message_timeout = 300.0 end
ちゃんと,milter.connection_spec が取得できるようになっている.
milter-manager-log-analyzer は milter-manager のパッケージに含まれるので,
Apache の設定をしてやるだけ.
/etc/httpd/conf.d/milter-manager-log-analizer.conf を以下の内容で作成
Alias /milter-manager-log/ /var/lib/milter-manager/public_html/log/ <Directory /var/lib/milter-manager/public_html/log> Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.0.0/24 </Directory>
で reload してやれば OK.
この程度の設定でもパッケージに入っていると楽でいいんだけど.
- milter manager を CentOS にインストール [2009-06-24-1]
Momonga への milter manager のインストールがうまくいかないので,
おとなしくドキュメントに従って CentOS にインストールしてみる.
http://milter-manager.sourceforge.net/reference/ja/install-to-centos.html
[ Read More... ]
Momonga 上で milter manager 1.0.1 がうまく動かなかったので,
開発版の milter manager 1.1.0 を試してみました.
milter manager 1.0.1 が入っている状態で 1.1.0 をビルドしたら,
ld 関係で build に失敗.
libtool: link: x86_64-momonga-linux-gcc -DLOCALEDIR=\"/usr/share/locale\" -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DG_DISABLE_DEPRECATED -DCONFIGURATION_MODULE_DIR=\"/usr/lib64/milter-manager/module/configuration\" -DBINDING_EXT_DIR=\"/usr/lib64/milter-manager/binding/ext\" -DBINDING_LIB_DIR=\"/usr/lib64/milter-manager/binding/lib\" -DCONFIG_DIR=\"/etc/milter-manager\" -DCONFIG_FILE_NAME=\"milter-manager.conf\" -DCUSTOM_CONFIG_FILE_NAME=\"milter-manager.custom.conf\" -DMILTER_MANAGER_PACKAGE_PLATFORM=\"redhat\" -DMILTER_MANAGER_PACKAGE_OPTIONS=NULL -I/usr/lib64/ruby/site_ruby/1.8/x86_64-linux -I/usr/lib/ruby/1.8/1.8/x86_64-linux -I/usr/lib64/ruby/1.8/x86_64-linux -O2 -mtune=generic -fPIC -fstack-protector -Wall -fPIC -O2 -g -m64 -mtune=generic -Wall -Wmissing-declarations -Wmissing-prototypes -Wpointer-arith -Wcast-align -o .libs/milter-manager milter-manager.o ../milter/core/.libs/libmilter-core.so ../milter/client/.libs/libmilter-client.so ../milter/manager/.libs/libmilter-manager.so -lruby -lpthread -ldl -lcrypt -lm -pthread -Wl,-rpath -Wl,/usr/lib64 ../milter/manager/.libs/libmilter-manager.so: undefined reference to `milter_server_quit' ../milter/manager/.libs/libmilter-manager.so: undefined reference to `milter_server_context_set_status' ../milter/manager/.libs/libmilter-manager.so: undefined reference to `milter_server_init' collect2: ld returned 1 exit status make[2]: *** [milter-manager] エラー 1
1.0.1 をアンインストールしてビルドしなおすとうまくいった
(1.1.0 がインストールされた状態ではビルドできる).
で,インストールして show-config.
/usr/sbin/milter-manager --show-config
すると,やはり,clamav-milter の設定がとれない.
define_milter("clamav-milter") do |milter| milter.connection_spec = nil milter.description = "A virus scanning milter" milter.enabled = false milter.fallback_status = "accept" milter.applicable_conditions = [] milter.command = "/etc/init.d/clamav-milter" milter.command_options = "start" milter.user_name = nil milter.connection_timeout = 300.0 milter.writing_timeout = 10.0 milter.reading_timeout = 10.0 milter.end_of_message_timeout = 300.0 end
次に test server.
sudo -u milter-manager milter-test-server -s unix:/var/run/milter-manager/milter-manager.sock -v [2009-06-23T11:47:57Z]: [1] [server][established] milter-test-server: 5:unix:/var/run/milter-manager/milter-manager.sock [2009-06-23T11:47:57Z]: [1] [server][send][negotiate] #<MilterOption version=<8> action=<add-headers|change-body|add-envelope-recipient|delete-envelope-recipient|change-headers|quarantine|change-envelope-from|add-envelope-recipient-with-parameters|set-symbol-list> step=<no-connect|no-helo|no-envelope-from|no-envelope-recipient|no-body|no-headers|no-end-of-header|no-reply-header|no-unknown|no-data|skip|envelope-recipient-rejected|no-reply-connect|no-reply-helo|no-reply-envelope-from|no-reply-envelope-recipient|no-reply-data|no-reply-unknown|no-reply-end-of-header|no-reply-body|header-value-with-leading-space>>: milter-test-server [2009-06-23T11:48:07Z]: [1] [server][send][abort] milter-test-server [2009-06-23T11:48:07Z]: [1] [server][send][quit] milter-test-server [2009-06-23T11:48:07Z]: [1] [reader] shutdown requested. [2009-06-23T11:48:07Z]: [1] [reader] removing reader watcher. reading timeout
こちらは,segmentation fault しなくなったけど,
timeout してしまう.
- milter manager を install しようとしてみた(失敗編) [2009-06-17-1]
とりあえず,rpm をでっちあげてみた.
まだ動作確認してない.
[2009-06-13] に開催した第 2 回 静岡 IT Pro 勉強会での
須藤さんの発表を受けて,milter manger を試してみることにしました.
- milterを使った効果的な迷惑メール対策 - milter manager
http://milter-manager.sourceforge.net/index.html.ja
では
- Ubuntu
- CentOS
- FreeBSD
- 上記以外
の環境でのインストール方法が書かれている.
CentOS でのインストール方法を確認したところ,
Momonga なら Ruby 関連のパッケージが用意されているし,
他所からパッケージをとってくる必要がなくて楽だろう
ということで,Momonga にインストールしてみました.
Momonga なので,CentOS の srpm をビルドしてやればいいはず
ということで,まずは srpm の取得.
wget -nd http://jaist.dl.sourceforge.net/sourceforge/milter-manager/milter-manager-1.0.1-0.src.rpm
で,build.
rpmbuild --rebuild milter-manager-1.0.1-0.src.rpm
build が終わったらインストール.
sudo rpm -Uvh milter-manager-1.0.1-0.x86_64.rpm
とかすると ruby-rrdtool がないと言われる.
Momonga では rrdtool-ruby となっているので,
spec file の該当部分を変更
(素直に CentOS でやっておけばよかったと思いつつも,そのまま続行)
Requires: rrdtool-ruby
で,build しなおして インストール.
rpmbuild -ba milter-manager.spec sudo rpm -Uvh ~/rpm/RPMS/x86_64/milter-manager-1.0.1-2.x86_64.rpm
milter の準備
milter manger で扱う milter を準備する.
Momonga でパッケージが提供されている milter は以下のような感じ.
$ yum search milter Loaded plugins: installonlyn, refresh-packagekit Excluding Packages in global exclude list Finished =============================== Matched: milter ================================ clamav-milter.x86_64 : Milter module for the Clam Antivirus scanner clamav-milter-sysvinit.x86_64 : SysV initscripts for the clamav sendmail-milter clamav-milter-upstart.x86_64 : Upstart initscripts for the clamav sendmail- : milter clamav-scanner.x86_64 : Clamav scanner daemon enma.x86_64 : A sender authentication milter supporting SPF and Sender ID milter-manager.x86_64 : A milter to use milters effectively sendmail-devel.x86_64 : エキストラ開発用の include ファイルと開発ファイル
とりあえず,clamav-milter をインストール
yum install clamav-milter
clamav-milter が認識されているか確認
/usr/sbin/milter-manager --show-config
で,出力に以下のような部分が含まれる.
define_milter("clamav-milter") do |milter| milter.connection_spec = nil milter.description = "A virus scanning milter" milter.enabled = false milter.applicable_conditions = [] milter.command = "/etc/init.d/clamav-milter" milter.command_options = "start" milter.user_name = nil milter.connection_timeout = 300.0 milter.writing_timeout = 10.0 milter.reading_timeout = 10.0 milter.end_of_message_timeout = 300.0 end
clamav-milter が認識されているけど,
- milter.connection_spec = nil
- milter.enabled = false
になっているので,設定まではできていないよう.
ということで,/etc/milter-manager/milter-manager.conf に下記を追記
define_milter("clamav-milter") do |milter| milter.connection_spec = "inet:11121@localhost" milter.enabled = true end
これで,milter-manager --show-config すると
define_milter("clamav-milter") do |milter| milter.connection_spec = "inet:11121@localhost" milter.description = "A virus scanning milter" milter.enabled = true milter.applicable_conditions = [] milter.command = "/etc/init.d/clamav-milter" milter.command_options = "start" milter.user_name = nil milter.connection_timeout = 300.0 milter.writing_timeout = 10.0 milter.reading_timeout = 10.0 milter.end_of_message_timeout = 300.0 end
milter-manager の起動.
smmsp グループがないと怒られるのでつくっておく.
groupadd smmsp
milter manager の起動
/etc/init.d/milter-manager start
で,テスト
sudo -u milter-manager milter-test-server \ -s unix:/var/run/milter-manager/milter-manager.sock
すると,
(milter-test-server:5596): GLib-WARNING **: Invalid file descriptor.
と何行もでて,最終的に Segmentation fault で終了.
ちなみに,関連しそうなもののバージョンは以下.
- glib2-2.16.6-2m.mo5.x86_64
- ruby-glib2-0.17.0-1m.mo5.x86_64
- ruby-1.8.7.72-1m.mo5.x86_64
結果としては,素直に CentOS で試しておけばよかった.
ということで,近日中に CentOS で再挑戦!!
なんとなく感じはつかめたので,いけるんじゃないかと.
関連
- 第2回静岡IT Pro勉強会の資料公開 - ククログ(2009-06-16)
http://www.clear-code.com/blog/2009/6/16.html
[2009-06-13]に行なわれた須藤さんの milter manager の発表資料が
公開されています.
- 第2回 静岡 IT Pro 勉強会、無事終了しました - 静岡 IT Pro 勉強会日誌
http://d.hatena.ne.jp/ftnk/20090613/1244937199
勉強会のまとめ
某メールサーバの Mailer Daemon からのメールが多いと思ったら,
/var/spool/mail/bar のサイズが 2GB になっていた.
- レッドハット | オープンソース・カンパニー
http://www.jp.redhat.com/support/errata/RHBA/RHBA-2007-0706J.html
によると
procmailが、32ビットアーキテクチャ上で、2 GBを超えるサイズのメールボックスにメールを配信できませんでした。とある.
問題のあった環境は,
# cat /etc/issue Red Hat Enterprise Linux ES release 3 (Taroon) Kernel \r on an \m # rpm -q procmail procmail-3.22-9
RHEL で eratta がでたのが 2007 年.
procmail-3.22-9 は 2003 年のもの.
今回は queue を HDD 上に置く場合と tmpfs 上に置く場合で比較してみた
(sendmail は queue を tmpfs 上に置けなかった).
client -> Postfix -> Postfix(送信先)
という構成で,真ん中の Postfix が 10,000 件のメールをさばくのに,
HDD 上と tmpfs では 3 倍ほど tmpfs の方が高速だった.
これだけだと,tmpfs を使えばいいという話になりかねないけど,
電源切れると tmpfs 上のデータが消えてしまうので,
未配送のメールが消えてしまう可能性があり,
そのままでは使いたくない.
となると,SSD かなぁ……と.
Postfix は 2.3 系を使ったけど,
2.5 系でパフォーマンスが変わるかの確認もしないと.
Vista な PC を client として使ってるんだけど,
数千件以上の smtp 接続を行なっていると,
新規にセッションを張れなくなることがある.
そのため,1 回テストするたびに再起動しなくてはならず,
非常に効率が悪い.
- Postfix のパフォーマンス その2 [2009-04-08-1]
- Postfix のパフォーマンス [2009-04-07-1]
昨日([2009-04-07-1])に続き,Postfix いじり.
環境としては,1 台のサーバに,
送信用 Postfix,受信用 Postfix x 4
計 5 個の仮想環境を用意.
queue は tmpfs 上に置いてみた.
- Postfixパフォーマンスチューニング
http://www.postfix-jp.info/trans-2.3/jhtml/TUNING_README.html
を読んでみたけど,ここに書いてある設定はだいたいやっていたし,
sysctl をいじるあたりは,CentOS 5.3 のデフォルトで
上記ドキュメントの設定より大きな値となっていた.
昨日は 32KB のメールを 4 つの host 宛に 500 件ずつするのに
8 分ほどかかるというところまで.
メールのサイズを 4KB に下げたところ,
90 秒で 2000 件を送信できた.
さらに,1 つの host 宛に 4KB のメールを 2000 件送ったところ,
60 秒で送信できた.
ということで,複数のホスト宛に送ると遅くなるので,
1 台のマシン上で複数の仮想環境を動かしているのが
ボトルネックになっているもよう
やっぱり,実機で確認した方がよさそうなので,
明日は実機で確認する方向で.
あと,10000 件など大量に送信しようとすると,
送信用 Postfix の smtpd 部分でタイムアウトしてしまうようなので,
このあたりの設定も調べる.
- Postfix のパフォーマンス [2009-04-07-1]
仕事で Postfix のパフォーマンスを調査中.
VM を作ってテストしているんだけど,
32KB のメールを 2000 件送るのに,8 分近くかかってしまう.
log にでる delay の値は数秒なので,
qmgr から smtp の部分は問題なくて,
送信要求を受けつける smtpd の部分が遅いのだろうけど,
どうすればいいんだろう?
とりあえず,/var/spool/postfix 以下を tmpfs に置いてみたけど,
数十秒程度しか速くならなかった.
やっぱり,実機で試した方がいいのか?
確認してないけど,VMware の仮想 NIC の帯域ってどうなってるんだっけ?
あと,はじめはメールのサイズを気にせず,
for i in `seq 1 2000` do echo $i | mail -s "test mail $i" [email protected] done
とかやってたけど,これだと process が立ち上がりすぎて
load average がはね上がるので,
Ruby で 4 threads で投げるスクリプトを書いてみたり,
別のマシンでスクリプトを実行したり.
明日は
- Postfixパフォーマンスチューニング
http://www.postfix-jp.info/trans-2.3/jhtml/TUNING_README.html
あたりを見ながらいじっていく方向で.
sysctl については,以下のあたりにメモしてある.
- Linuxでネットワークスループットを改善する [2008-02-14-1]
仕事で必要なので再読.
忘れていることが多過ぎ.
この本は Postfix 2.1 対応のもので,
最新の 2.5 までの間の変更を調べないと.
Amazon で見たかぎり,
2006 年出版の『Postfix 辞典 / とみた まさひろ』が
一番新しい Postfix 本のよう.
商品説明によると
本書は、携帯して使いやすい辞典形式で、約400のパラメータ、約60種のコマンド/設定ファイルなど、Postfixのほとんどの機能を網羅し、利用方法別にまとめました。基本的な設定方法のほか、各項目の索引、「○○するには?」などの逆引きリファレンスなども添付しています。筆者の経験に基づくセキュリティに関する設定や、外部ソフトウェアとの連携についても押えます。メールサーバーの管理者のための実用的なリファレンスブックとして、 Postfixを利用する際に手許に置いておきたい1冊です。ということなので,目を通しておいた方がよさげ.
- The Postfix Home Page
http://www.postfix.org/
- Wikipedia - Postfix
- Postfixのぺーじ-ホーム
http://www.postfix-jp.info/
- Postfix 詳解 [2004-10-29-1]