倉金家ホームページ趣味の部屋/サーバー構築メモ その2/メールサーバー その2
| ||||||
現在送信メールサーバーの認証はSMTP-AUTHが主流で、Pop-Before-SMTP(PBS)はあまり使われなくなりました。
でも懐かしのPBSもつい設定してみたくなり、時代に反するとは思いながらもやります。 代表的なソフトとしては、pop-before-smtpとDracがありますが、今回はDracで行ってみます。 昔のpop-before-smtpについてはこちら。→ pop-before-smtp/Vine4 | ||||||
DracのインストールまずはDracのインストール。でもCentOSにはDracはありません。もちろんpop-before-smtpもありません。RPMForgeにもないようです。
Drac本家(http://mail.cc.umanitoba.ca/drac/)からソースをもらってきてコンパイルしインストールしてもいいけど、できるならばrpmでいれたいところ。 で、以下の方法。あまり推奨はしないけど。 VineLinuxにはDracのrpmがありますのでこれを盗んで...じゃなかった、密かに頂いてきます。 $ cd ~/rpm/SRPMS/ $ wget http://ftp.riken.jp/Linux/vine/Vine-5.0/SRPMS/SRPMS.main/dracd-1.12-2vl5.src.rpm $ rpm -ivh dracd-1.12-2vl5.src.rpm ヘッダ V3 DSA signatureどうのこうのと警告が出ますが無視。(別のディストリからもってきたためだろうと。) もしpop-before-smtpの有効時間(30分)などを変更したければ、dracとでも名前をつけてフォルダ作成し、drac.tar.Zをこの中に展開、rpc.dracd.cを編集して古いdrac.tar.Zを捨ててdrac.tar.Zを再作成しておきます。 私は有効時間を5分に変更。 | ||||||
ビルド
$ cd ~/rpm/SPECS/ $ rpmbuild -ba dracd.spec エラー: ビルド依存性の失敗: db4-devel >= 4.6.21 は dracd-1.12-2.i386 に必要とされています 概ねVineは意外と新しいバージョンを使っています。CentOSのdb4は、4.3.29でした。 しかしどう考えてもソースのdrac.tar.Zは2003年のものだし、dbのバージョンアップに伴う修正の形跡もないので、単にビルド時のdbのバージョンを記載しただけだろうと解釈。 dracd.specのdb4バージョン指定は消去。 BuildPrereq: db4-devel Requires: db4 再度rpmbuildすると無事通って、dracdとdracd-debuginfoの2つのrpmができます。dracdのみインストール。 $ su # rpm -ivh ~/rpm/RPMS/i386/dracd-1.12-2.i386.rpm 無事インストールされました。 | ||||||
Dracの設定Dracはportmapを使うので、/etc/hosts.allowを確認し、portmapに127.0.0.1が許可されていなければ許可しておきます。
Dracはもともとsendmail用なのか、/etc/mailにファイルが作られます。(データベースファイルdracd.dbもここにつくられます。) /etc/mail/dracd.allowを確認。 255.255.255.255 127.0.0.1 が記載されていればOK。 テストをしてみます。 $ testdrac 127.0.0.1 1.2.3.4 …1.2.3.4は適当なアドレス $ db_dump -p /etc/mail/dracd.db VERSION=3 format=print type=btree …ここのtype(btree)をあとでpostfix設定に使用 db_pagesize=512 HEADER=END 1.2.3.4 …ここに打ち込んだ適当なアドレスが出ればOK 1285967787 DATA=END | ||||||
ソケットの作成次にDracとDovecotをつなぐソケットdrac.soを作成します。
Dracがすでにインストールされていることと、Dovecotのソースが必要です。 dovecotのsrc.rpmを取得、ソースをインストールし展開とパッチ適用。 $ wget http://ftp.riken.jp/Linux/centos/5/os/SRPMS/dovecot-1.0.7-7.el5.src.rpm $ mv ~/dovecot-1.0.7-7.el5.src.rpm ~/rpm/SRPMS/ $ cd ~/rpm/SRPMS/ $ rpm -ivh ./dovecot-1.0.7-7.el5.src.rpm $ cd ~/rpm/SPECS/ $rpmbuild -bp dovecot.spec ~/rpm/BUILD/にdovecot-1.0.7ができています。 dovecotソースの準備完了。 | ||||||
今度はhttp://www.dovecot.org/patches/より1.0/drac.cをダウンロード。(現行dovecotバージョンは1.0.7なので。) ダウンロードした drac.c を ~/rpm/BUILD/に移動。 $ wget http://www.dovecot.org/patches/1.0/drac.c $ mv ~/drac.c ~/rpm/BUILD/ dovecotのソースのありかを教えてコンパイル。詳細はdrac.cに書いてあります。 $ cd ~/rpm/BUILD/ $ export dovecot=~/rpm/BUILD/dovecot-1.0.7 $ gcc -Wall -W -shared -fPIC -DHAVE_CONFIG_H -I$dovecot -I$dovecot/src/lib drac.c -o drac.so -ldrac ~/rpm/BUILD/にソケットファイルdrac.soができていますので、 /usr/lib/dovecot/pop3/ にコピー。 $ su # cp drac.so /usr/lib/dovecot/pop3/ | ||||||
Dovecotの設定/etc/dovecot.confを編集
まずそのままだとDovecotはipv6アドレスを使いますがDracはipv6は理解しないようです。Dovecotにipv4を強制します。(ipv6を使うという人はパッチ当てか何か必要。) listenのところを listen = * …ipv4のみの指定 さらにprotocol pop3 { }の中に以下を記載。 mail_plugins = drac mail_plugin_dir = /usr/lib/dovecot/pop3 注意: protocol imap { }にこれを記載するとなぜか起動せず、 EDRAC: net_ip2addr() failed: Operation not permitted というエラーが出ます。 | ||||||
Postfixの設定/etc/postfix/main.cfのsmtpd_recipient_restrictionsの部分に追加
smtpd_recipient_restrictions = permit_mynetworks, check_recipient_access hash:/etc/postfix/access, check_client_access btree:/etc/mail/dracd, permit_sasl_authenticated, ...... これは permit_sasl_authenticatedの前に入れる必要があります。saslを先にするとPBSの前にパスワードを要求されてしまうからです。 | ||||||
最後にdracdを起動し、起動設定もしておきます。
# service dracd start # chkconfig dracd on さらにdovecot, postfixを再起動 # service dovecot restart # service postfix restart 実際にメールを送信してみて確認し、完了。 | ||||||