postfix
一般にMTA(Message Transfer Agent)、またはSMTP(Simple Mail Transfer Protocol)といわれ、
メールの送信とメールの受信〜振り分けを担当するものです。
わかりにくいですので、詳しいところは他のサイトを検索して調べてください。
で、今回は、そのメールシステムの根幹を組み立てます。
いろいろ一度にやるとややこしくなって、問題発生時の切り分けが面倒になるので、
変な認証システムを組み込まず「素のMTA(SMTP)」を作ってみます。
まぁ、このまま運用するのはちょっと不安な代物ですが・・・
「メールの送信とメールの受信〜振り分けを担当」
世間一般で言うSMTPというと「メールの送信」を担当するものとなっています。
(SMTPの本当の意味はメール送信用のプロトコルなんですけどね)
まぁ、間違いじゃないんですが、役割はもう少し大きいです(MTAという意味では)
メールの送信=SMTP、メールの受信=POPとされているのはやっぱりメールクライアントのせいかな?
他にも、spamのせいということもできるかも。
spamは自前のSMTPを使って無差別にメールを送るケースがあるので、このためかなぁ?
まぁ、皆さんもspamの踏み台にされないように注意してください。
もし、spamの踏み台にされているような形跡が見つかったら、真っ先にLANケーブルを抜くことをお勧めします。
やること一覧 ・HGの事前準備 ・postfixのインストール ・各種設定: Postfix チュートリアル Postfixの設定 メールサーバ( Postfix ) ・不正中継テスト
関連ページ ・postfix with smtp auth ・Outbound Port 25 Blocking対策(DIONの場合) ・無駄なメールが来る ・ローカルIPがメールヘッダに漏れる ・gccの再インストール
玄箱HGだと必須の作業ですが、その他の玄箱シリーズ(pro除く)でもこの作業を行うことを推奨します。
HGでpostfixをコンパイルしようとすると以下のエラーが出てしまう・・・
make時のエラーメッセージ部分 ┃/usr/powerpc-hardhat-linux/bin/ld: cannot find -ldb ┃collect2: ld returned 1 exit status ┃make: *** [master] Error 1 ┃make: *** [update] Error 1要は、libdb.aが見つからないらしい。
make時のログ(すぐ止まります) ┃/bin/sh ./libtool --mode=compile cc -c -I. -I../dist/.. -D_GNU_SOURCE -D_REENTRANT -O3 ../dist/../mutex/mut_tas.c ┃mkdir .libs ┃ cc -c -I. -I../dist/.. -D_GNU_SOURCE -D_REENTRANT -O3 ../dist/../mutex/mut_tas.c -fPIC -DPIC -o .libs/mut_tas.o ┃../dist/../mutex/mut_tas.c: In function `__db_tas_mutex_lock': ┃../dist/../dbinc/mutex_int.h:517: impossible register constraint in `asm' ┃../dist/../dbinc/mutex_int.h:517: `asm' needs too many reloads ┃make: *** [mut_tas.lo] Error 1手順は別項:gccの再インストールを参照。
$ wget http://kuro.crow2.net/server/data/db-4.8.30.tar.gz $ tar xvfz db-4.8.30.tar.gz $ cd db-4.8.30/build_unix $ ../dist/configure --prefix=/usr $ make # make installインストールされるもの
[prefix]/bin/ db_archive db_deadlock db_hotbackup db_printlog db_stat db_verify db_checkpoint db_dump db_load db_recover db_upgrade [prefix]/docs/* [prefix]/include/ db.h db_cxx.h [prefix]/lib/ libdb-* libdb.a libdb.soおまじない
# cd /usr/bin # strip -p db_archive db_deadlock db_hotbackup db_printlog db_stat \ db_verify db_checkpoint db_dump db_load db_recover db_upgrade # rm -r /usr/docs 注:ソースアーカイブの中にまったく同じものがあるので削除「libdb.aが見つからない」
作業自体に難しいことはないので、サクっとやる。
postfixに必要なユーザーとグループを作る
# groupadd -g 25 postfix # useradd -g postfix -u 25 -d /var/empty -s /bin/false postfix # groupadd -g 26 postdropユーザーをロックする
# vipw または # vi /etc/passwd 変更点:! を * に書き換えるpostfixのコンパイル
$ tar xvfz postfix-2.10.2.tar.gz $ cd postfix-2.10.2 $ make makefiles OPT=-O2
option | 説明など |
OPT=-O2 | Makefileにコンパイルの最適化設定を指定(省略可) |
/etc/postfix/ /usr/bin/newaliases /usr/bin/mailq /usr/libexec/postfix/ /usr/sbin/post* /usr/sbin/sendmail /usr/man/? /var/spool/postfix/おまじない
# strip -p /usr/sbin/post* # strip -p /usr/sbin/sendmail # chown -R postfix /var/spool/postfix「postfix」
アリアスを定義する
aliasesって、
「AというユーザーとBというユーザーは一緒だから、メールの配送はBのディレクトリに送って」
って言うことを指示する設定ファイル。
# vi /etc/postfix/aliases
(変更)
┃root: [username]
変更点:コメントをはずして you を [username] に変更
aliasesをデータベースに変換する
# newaliases
注:書きえるたびに実行する
メインの設定を弄る# /etc/init.d/postfix start メールの送信とユーザーディレクトリへの配送を確認 注:メーラーから送信はできるが、メーラーに受信はできない # /etc/init.d/postfix restart # /etc/init.d/postfix stop自動起動設定
# ln -s /etc/init.d/postfix /etc/rc.d/rc2.d/S30postfix # ln -s /etc/init.d/postfix /etc/rc.d/rc0.d/K30postfix # ln -s /etc/init.d/postfix /etc/rc.d/rc6.d/K30postfix再起動(テスト)
# shutdown -r now「自動起動設定」
設定はうまく行っても、メールの転送を許可していたら
百害あって一利なしなので、
不正中継テストを実行して、不正利用される可能性がないか確認する。
第三者中継チェック RBL.JP
使い方 0.サイトに書かれていることをよく読む。 1.ホスト名のところに、ドメイン、グローバルIPを入力する。 2.Checkのボタンを押す。 3.しばらく待つ。 4.結果を受け止める。Mail relay testing
使い方 1.Address to testのところに、ドメインか、グローバルIPを入力する。 2.test for relayのボタンを押す。 3.しばらく待つ。 4.結果を受け止める。テストを受けるときにはルーターのポート25を開放する。
戻るなら押せ!