プロジェクト

全般

プロフィール

Postfixを勉強したときのこと » 履歴 » リビジョン 4

リビジョン 3 (sylow castle, 2019/04/20 12:19) → リビジョン 4/5 (sylow castle, 2019/04/20 12:19)

# Postfixを勉強したときのこと 

 ## 概要 

 Postfixの入門解説資料。 
 mydestinetionやリレーの設定が分かる・調べられるようにするのが目標。 
 他の解説ページも使うの推奨。特に「Postfixのぺーじ」が良いと思う。 

 ### 前準備 

 CentOS 6、7なら標準で入って稼働しています。特にインストール作業などは不要です。 

 まずは以下のファイルを抑える。 

 | ファイル名 | 役割 | 
 | - | - | 
 | /var/log/maillog | ログファイル | 
 | /etc/postfix/main.cf | メインの設定ファイル | 
 | /etc/aliases | ユーザー名のエイリアス | 
 | /usr/share/doc/postfix-2.10.1 | Postfix付属のドキュメント類。当然英語 | 

 動作を見るときは`tail -f`でログファイルを監視しましょう。 

 簡単な歴史も抑えましょう、postfixより前の世代のメールサーバソフトとしてsendmailというものがありました。 
 大いに流行ったらしいので、postfixはsendmailと互換性を持つように作られています。「よくわからないなぁ」と思う部分があったら 
 「たぶん、sendmailの影響だろう」と思って納得してください。 

 ### ログの見方 

 以下はログの実例 

 ``` 
 Mar 24 03:05:03 hostname postfix/pickup[17871]: 56060D2814C: uid=0 from=<root> 
 Mar 24 03:05:03 hostname postfix/cleanup[1054]: 56060D2814C: message-id=<20190323180503.56060D2814C> 
 Mar 24 03:05:03 hostname postfix/qmgr[1406]: 56060D2814C: from=<root@見せられないよ>, size=1445, nrcpt=1 (queue active) 
 Mar 24 03:05:03 hostname postfix/smtp[1060]: 56060D2814C: to=<redmine@見せられないよ>, relay=リレー先サーバ[xxx.xxx.xxx.xxx]:25, delay=0.65, delays=0.31/0.04/0.22/0.08, dsn=2.0.0, status=sent (250 2.0.0 x2NI53NW065825 Message accepted for delivery) 
 Mar 24 03:05:03 hostname postfix/qmgr[1406]: 56060D2814C: removed 
 ``` 

 Postfixは複数のプロセスが連携して動いています。各プロセスが協調するためにキューを使用しています。ですのでキューの情報がとても大事です。 
 最後の行「potfix/qmgr[1406]    removed」があるとうまくいったと思ってください。defferedって見えたら失敗したと思ってください。 
 問題があると処理されずキューに溜まっていきます。 

 ### 構造 

 > ![postfix](img17.png) 

 引用元:http://www.wakhok.ac.jp/~kanayama/summer/05/net/node78.html 

 この図を頭に叩き込んでください。 

 1. pickupとsmtpdがメール送信要求を受け取る 
 1. clenupからqmgrに伝わり。 
 1. local配信か他のsmtpサーバに伝えられる 

 というメールを受信してからの処理の流れがまとまっています。masterはこれら複数のプロセスを制御しています。 

 設定は以下のページを参考に読むといいでしょう。 
 http://www.postfix-jp.info/trans-2.3/conf/main.cf.jp 

 ### 受信設定 

 「$myhostname」は頭に$をつけることで設定した内容を後から参照するときに使います。 

 項目 | 説明   
 - | - 
 inet_interfaces | メールの受信を行うネットワークインターフェースを指定。動かしたいだけなら「all」と入れる 
 myhostname | 自分のホスト名、hostnameコマンドで得られるものが入ると思う 
 mydestination | 自分が最終目的地と判断する(ローカルユーザーに配送する)メールドメイン。デフォルトは$myhostnameとかだったかな。<br> user@example.comあてのメールを受けたとき、mydestination=example.comだと「このメールが自分のマシンに受け取るユーザーがいる」と思いローカル配送を試みる。 

 ### 送信設定 


 項目 | 説明 
 - | - 
 myorigin | ローカルユーザーが送信したメールにつけられるドメイン名。デフォルト$myhostname。userというLinuxユーザーがメールを出すとuser@$originという送信元で出される。 ローカルユーザーが送信したメールにつけられるドメイン名。デフォルト$myhostname。   
             userというLinuxユーザーがメールを出すとuser@$originという送信元で出される 
 relayhost | 受け取ったけど送るユーザーがいないときに、ここで設定されたマシンに対してリレーする 

 

 ### ローカル配信とエイリアス 

 /etc/aliasesはユーザー名の別名を指定します。例えば「postmaster: root」となっていますが、 
 postmaster@myhost.example.comを自分のマシンが受け取ったとき、root@myhost.example.comへのメールとして扱います。 

 /etc/aliasesは編集するだけでは反映されません。編集後 
 ``` 
 newaliases 
 ``` 

 を打ちましょう。 

 ## 今後 

 本当は全然足りないけどこの記事はここまで。次はまたいつかに。 

 ## 参考 

 * 5.1.5 Postfixの構造:http://www.wakhok.ac.jp/~kanayama/summer/05/net/node78.html   
 Postfixについて、このページだけでも読んでおくと理解が違う 

 * Postfixのぺーじ:http://www.postfix-jp.info/  
 マニュアルの日本語訳があるのが嬉しい。 
 標準設定の例とかで勉強する。 

 * main.cf日本語訳:http://www.postfix-jp.info/trans-2.3/conf/main.cf.jp 
 一回読んでおくと吉 

 * Postfix実用ガイド:https://www.oreilly.co.jp/books/4873111951/   
 オライリーさんのPostfix解説書。SMTPはこれで学んだ。後ろのほうは全然読んでないから全体は分からない。 

 * /etc/aliasesについて:https://www.itmedia.co.jp/help/tips/linux/l0349.html