ステップ1では、先ず基本的なメール配送の設定と動作確認を行ないます。SMTPサーバーの利用には認証を求めず、サーバーと同一ネットワークにいるクライアントからの利用は無条件で認める設定です。
つまり、このステップで、正しくメールが外部に送信できるか、外部からのメールを受信出来るか、基本的な動作を確認します。
CentOS6 の場合、Postfix 設定ファイルのディレクトリは以下になります。
/etc/postfix/main.cf
また、ログは /var/log/maillog に出力されるようになっています。
/etc/postfix/main.cf 以下の箇所を設定します。
CentOS6 パッケージの設定ファイルから以下の場所を修正します。
STEP1でmain.cf を修正する箇所だけを如何に記しますので、その箇所を修正して下さい。# はコメントになっている必要があります。それぞれの意味は後述します。
myhostname = hoge.homeip.net
mydomain = hoge.homeip.net
myorigin = $mydomain
relayhost = smtp.hoge.ne.jp ← 配送を依頼する上位メールサーバ
inet_interfaces = all
#mynetworks_style = class
#mynetworks_style = subnet ← デフォルト値
#mynetworks_style = host
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#home_mailbox = Mailbox
home_mailbox = Maildir/ ← 変更
smtpd_banner = $myhostname ESMTP unknown
上記、main.cf の設定内容は以下の通りです。
メールサーバのホスト名を指定します。以下を追記します。つまり、クライアントが指定するメールサーバーのホスト名です。指定しない場合は hostname で得られる値が適用されます。
ドメインを定義します。メールアドレスの @ 以降になります
コメントを外して@以降は先に指定したドメインを使用します。
port25 ブロッキング対策として自身が契約しているサービスプロバイダのメールサーバにメールの配送を依頼しています。
これは個人のパソコンでSMTPサーバを立ち上げて大量のメールを送る行為が横行したため、サービスプロバイダが内側来る SMTP が使用する port25 の通信を規制したため、上位の送信サーバーとしてメールの配送を依頼している形になります。これはそれぞれの状況に応じて必要なオプションで必須ではありません。
メールを受信するインターフェイスを指定します。all にする事で外部からのメールも受信します。
メールの reray を許可するネットー枠を指定します。CentOS6 の場合、 main.cf には以下のように全てコメントされています。この場合、何も指定されていないのと同じなので、デフォルト値である subnet が適用されます。
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
これは、サーバーと同じネットワーク、例えば、SMTPサーバーが 192.168.2.22 だったとすると、192.168.2.* からのメール配送だけを受け付けます。SMTPサーバーを第三者に踏み台にされないための重要なポイントです。
存在しない受信者(メールアドレス)を拒否する際に、何を参照して受信者の有無を判断するかを指定します。
デフォルトでは /etc/passwd および /etc/aliases にある全てのユーザーのメールを受け取ります。ここで指定したパラメータオプションの詳細はリンク先のドキュメントを参照して下さい。
メールボックス形式を指定します。CentOS6 パッケージの初期値ではこのように # コメントされています。
#home_mailbox = Mailbox
#home_mailbox = Maildir/
この場合、 Mailbox が適用され、メールは一つのディレクトリで管理されます。それぞれのユーザーのホームディレクトリで個別にメールボックスの管理を行ない体場合は、#home_mailbox = Maildir/ のコメント(#)を外して、明示敵に記述する必要があります。
問い合わせに対しバージョン名をunknownにします。ヘッダにSMTPサーバー明夜バージョンが出力されなくなります。セキュリティ上好ましくないので お約束として unknown と出力されるようにしています。
保存して Postfix を再起動します。
SMTP認証なしに外部、内部それぞれのメールサーバにメールが送信できるか。あるいは Gmail などの外部のメール、出来ればブラウザから送ってみて、ちゃんと外部から受信できるか確認して下さい。
この段階では、WAN側に対して SMTPが使用する port 25 を開いておく必要があります。また、不正中継が出来ないように設定されているか否かは外部の不正中継確認サービスを利用すると手っ取り早いです。
この様なサービスは、外部から不正中継を試みて、その結果を教えてくれます。昔は中継するのが当たり前だった時代があると思うと感慨深いです。
併せて冒頭の述べた基本設定のポリシーを満たしているか確認し、ログについても確認するようにしてください。ログは maillog に出力されています。動作状況をリアルタイムに確認するには、以下のようにします。
動作確認が出来れば、SMTPサーバーの基本的な設定は完了です。STEP1.の動作確認が出来たら、次のステップとして Postfix に SMTP認証機構の導入と、SSLによる通信経路の暗号化について設定し、よりセキュアなSMTPサーバーを構築していきます。
メールの送受信が確認出来たら、引き続き、ここで構築した SMTPサーバーに認証機構を実装します。
引き続き、SMTP認証で使用する認証プログラムを導入します。