uzullaがブログ

uzullaがブログです。

XMailをつかってみないか?

Sendmail → セキュリティUZEE!!       → qmail  → こりゃ楽だわ!
qmail   → パッチ地獄UZEE!!ぬぬ      → postfix → こりゃ楽だわー
postfix  → pop3sとかVhostの設定UZE!ぬん! → ????

送受信をちゃんとやるメールサーバー立ち上げるのクソ面倒臭いですね!

メールサーバーの要求・要件は増えてきていて、最初から入ってるsendmailとか、ローカルのCronか、phpからメールを送信するのにしか使えない時代ですね。
具体的には、pop3sとか、SMTP認証とか、サブミッションポートとか全部用意しないと、メールサーバーとは言えないわけです。

しかしながら、そこらのLinuxで一番使われているであろうpostfixは設定が本当に面倒臭い。saslの設定とかなんで毎回イチイチやらなければならないのか、もうPostfixに最初からはいってればいいじゃねえか、と全国10万人のLinuxインストールマニアの皆様は思っている事でしょう。


…みんなXMailつかうといいよ!

XMailとは

http://www.xmailserver.org/
詳しくはググれ


端的にいえば、SMTP(S),POP3(S)対応のメールサーバーである。


自分としては数年運用していて、まあ高負荷サイトで運用しているわけではないのですが、突然死ぬとか突然固まるとか、迷惑メールでストールするとか、そういう事態には今のところ至っておりません。


まあ、こうやって紹介する程度に悪くないと思っているのですけれど(最高とも言えないが)、「やってみた!」ブログでちらほら見る程度で、どうもマイナー感が否めない…。(まあ日本語の情報が少ない、書籍なんて無いって事もありますが)
なので、この記事書いてます。

どうなの?

まず、XMailインストールには癖があります。
ただし、起動はinit.d、SYSVスタイルで普通にできるので、一回インストールすればそんなに気にならないと思いますね。


また、UNIXと地味に相性が悪い。
Windowsで動く程度にローカルユーザー配信が配慮されていないので、まずmailコマンドが半分死にます(送信はできるが、受信(スプール閲覧)が出来ない)。
送信についても、"mail root"という横着はできなくなり、"mail root@localdomain.localhost"みたいにちゃんと書く必要がある(ローカルドメインの概念がない?)。
これは地味に面倒なので*1、できればメールサーバーとして独立させる方向をオススメしたいね…(VH対応が凄い楽なので、メールサーバーを集約させるとかね)


さらに、設定ファイル信仰の人は、コマンドで設定を変えていく思想もウザいと思う…(出来ないわけではないのだが、凄く面倒)


それらの癖はあるものの、そこらのMTAでは血を吹きながら失神しそうに面倒くさい
・POPやSMTPSSL対応
・サブミッションポート対応
・マルチドメイン、マルチユーザー対応
が超簡単(というかデフォルト)なので、そこらへんはホントーにすばらしい。
(ぶっちゃけ、メールシステムってUNIXの呪縛で酷い事になってるよね…)


たとえば、あるバーチャルドメインを追加して、infoアカウントを追加するのには、MX書き換えた後に、以下のようにコマンドを叩くだけである。

CtrlClnt -s localhost -u XMAILADMIN -p XMAILPASSWORD domainadd newdomainname.com
CtrlClnt -s localhost -u XMAILADMIN -p XMAILPASSWORD useradd newdomainname.com info info_pass_word U

ドヤァ…!
ドメインを殺したりも、まあにたような感じです。


ローカル認証とは分離されているので、passwdが汚れたりしません。気軽にいくらでもメールアドレスを発行出来ます。

インストールってどんな感じ?

とりあえずドキュメントをちゃんと読んで作業してくださいね、という前提で

#解凍からビルド
tar xvzf xmail-1.27.tar.gz
cd xmail-1.27
make -f Makefile.lnx
cp -r MailRoot/ /var/
cp xmail /etc/init.d/
cp sendmail.sh /var/MailRoot/
chmod +x /var/MailRoot/sendmail.sh
ln -s /var/MailRoot/sendmail.sh /usr/sbin/sendmail
cd bin/
ls |grep -v o | xargs -I{} cp {} /var/MailRoot/bin/
cd /var/MailRoot/
chmod 700 .
#初期設定
bin/XMCrypt XMAILPASS
vi ctrlaccounts.tab
vi server.tab
vi smtprelay.tab
vi ctrl.ipmap.tab
openssl genrsa -des3 > ssl.key
openssl rsa -in ssl.key -out server.key
openssl req -new -key server.key -out ssl.csr
openssl x509 -req -days0 -in ssl.csr -signkey ./server.key -out server.cert
/etc/init.d/xmail start
#ドメイン追加とユーザー追加
bin/CtrlClnt -s localhost -u XMAILADMIN -p XMAILPASS domainadd example.com
bin/CtrlClnt -s localhost -u XMAILADMIN -p XMAILPASS useradd example.com info info_pass_word U

こんな感じですかね…。
postfixyumで入れるよりは手間ですけど、postfixをsasl連携させて、Dovecotまでいれるよりは大分楽でしょう。
たったこれだけで、前述の通り通常ほしいなーって思うような機能が全部付いてるメールサーバーが立ち上がるわけですよ。

プラグインみたいなのも結構あります

あるらしいです、WEB管理画面とか。でも俺はつかってないのでしらない。

さあ!上記を全部無視して!

Google Apps つかおうぜ!!!!
http://www.google.com/apps/intl/ja/group/index.html

*1:まあ、Cron程度書き換えろよって話しなんだけど