意外に簡単!SMTPサーバの構築
2008年4月11日
SMTPサーバ『Postfix』を設定しよう
それではSMTPサーバとして『Postfix』を使うことにし、その設定をしてみよう。PostfixはSuitePRO V2に標準でインストールされているが、初期設定ではSMTPサーバとしてsendmailが動作するよう設定されているので切り替えが必要だ。
切り替えといっても、system-switch-mailというコマンドが用意されているので、root権限でそれを実行する。
[root@ns ~]# system-switch-mail
コマンドを実行すると選択画面が表示されるので、Postfixを選んで[OK]とする。MTAが切り替わったというメッセージが表示されるはずだ。
次に、Postfixの設定ファイル「/etc/postfix/main.cf」を編集するが、その前にこのファイルを「/etc/postfix/main.cf.original」のような名前でコピーしバックアップをとっておこう。
以下では、変更する必要がある項目のみ示すので、viなどで該当個所を変更してほしい。例では、 myhostnameにはホスト名としてns.example.comを指定し、mydomainにはドメイン名としてexample.comを指定するが、自分が使いたいドメイン名に読み替えてほしい。仮想専用サーバであるSuitePRO V2ではIPエイリアス(VPNのネットワークハードウェアを仮想的に使用する方法)が使われているため、それに対応するためinet_interfacesではallを指定し、localhostの指定はコメントアウトする。また、mynetworks項目でのネットワークアドレス設定はIPアドレスを指定する。
(略) #myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = ns.example.com (略) #mydomain = domain.tld mydomain = example.com (略) inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost (略) mynetworks = 192.0.2.5/32, 127.0.0.0/8 (略)
末尾近くにあるhome_mailboxではメールボックスの形式を指定することになる。初期値は「Mailbox」で「/var /spool/mail」へメールが保存されるようになっている。ここではユーザのホームディレクトリへ保存されるように「Maildir/」を指定する。また、SMTP-AUTHへ対応し、認証された場合のみメール送信ができるようにsmtpd_sasl_auth_enable、 broken_sasl_auth_clients、smtpd_recipient_restrictionsについて設定をする。また、サーバの運用を安定させるためには、default_process_limitでプロセス制限をかけておくと良いだろう。
(略) home_mailbox = Maildir/ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination default_process_limit = 10
設定が終了したら、postconfコマンドで現在の設定を確認する。設定を変更したり、何か動作がおかしかったりした場合は、このコマンドを使って確認をするのが良い。全設定をみたい場合は -n オプションは必要ない。
[root@ns ~]# postconf -n -c /etc/postfix | more alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases allow_mail_to_commands = alias,forward,include broken_sasl_auth_clients = yes command_directory = /usr/sbin (略)
確認が終わったら、serviceコマンドを使ってPostfixを起動する。psコマンドで見たときに、「/usr/libexec/postfix/master」「pickup」「qmgr」といったコマンドが動作していれば良い。
[root@ns ~]# service postfix start Starting postfix: [ OK ] [root@ns ~]# ps ax | more PID TTY STAT TIME COMMAND (略) 19103 ? Ss 0:00 /usr/libexec/postfix/master 19106 ? S 0:00 pickup -l -t fifo -u 19107 ? S 0:00 qmgr -l -t fifo -u (略)
さらに念のため、メールのログファイルである「/var/log/maillog」を開いて、エラーがでていないことをチェックしておく。エラーがなく次のように2行だけ出力されていれば良い。
[root@ns ~]# lv /var/log/maillog (略) Feb 16 08:12:35 ns postfix/postfix-script: starting the Postfix mail system Feb 16 08:12:35 ns postfix/master[1378]: daemon started -- version 2.2.10, configuration /etc/postfix
次に、SMTP-AUTHを有効にするために、saslauthdを起動するが、ここで、注意事項がある。SSHのパスワード認証によりユーザ認証をしている場合は公開鍵方式の認証へ切り替えよう。また、アクセスできるネットワークも制限しておくことを忘れないようにしよう。なぜなら、ここで紹介しているSMTP-AUTHの設定では、平文のパスワードがネットワーク上を流れるため、これを盗聴された場合の危険性が高くなるためだ。SMTP-AUTHで暗号化されたパスワードを使う方法もあるが、次に紹介するメールの取得に最もよく使われているPOP3でも、同様に認証用に平文のパスワードが流れてしまう。こういったことを考慮すると、メールだけを利用するユーザはサーバへはログインできないような設定で登録することになる。
[root@ns ~]# service saslauthd start Starting saslauthd: [ OK ]
続いて動作確認のためにmailコマンドを実行する。メールが送られると「/root/Maildir/new」のディレクトリにメールが届いているはずである。catコマンドで中を確認しよう。
[root@ns ~]# echo "This is a test mail." | mail -s "Test" root@ns.example.com [root@ns ~]# ls -l /root/Maildir/new/ total 4 -rw------- 1 root root 396 Feb 16 15:23 1139984603.V3a3aI348fe.ns.example.com [root@ns ~]# cat /root/Maildir/new/1139984603.V3a3aI348fe.ns.example.com Return-Path:X-Original-To: root@ns.example.com Delivered-To: root@ns.example.com Received: by ns.example.com (Postfix, from userid 0) id 1BE9F8016A; Wed, 16 Feb 2008 15:23:23 +0900 (JST) To: root@ns.example.com Subject: Test Message-Id: <20080216062323.1BE9F8016A@ns.example.com> Date: Wed, 16 Feb 2008 15:23:23 +0900 (JST) From: root@ns.example.com (root) This is a test mail.
SMTPサーバを立ち上げるのはそれほど難しいことではないことが分かってもらえただろうか? 次回の記事では、メールサーバの構築について引き続き説明し、POPサーバの立ち上げと複数ドメインへの対応について触れる予定だ。
フィードを登録する |
---|
Web2.0時代の情報発信を考える
過去の記事
- デザインや機能だけでは勝負できない時代を勝ち抜く2008年4月25日
- MTOSに触れてみよう2008年4月25日
- SuitePRO V2にMTOSをインストールする2008年4月23日
- SuitePRO V2にMTOSをインストールする準備をしよう2008年4月23日
- MTOSで構築する情報発信型Webサイト2008年4月23日