SMTPサーバ(Postfix)の構築
ここでは、SMTP サーバとして Postfix をソースからインストールする方法を示します。
RedHat7.3 では Postfix がサポートされていなかったため、本稿を記述したものですが、その後、RedHat
のほか、FedoraCore や SuSE 等の他のデストリでもサポートするようになったので、
トップページからそちらのコンテンツを参照ください。
娘から、ドコモのiモード(xxxxx@docomo.ne.jp)へメールが送れないと言われ、調査したところ、ドコモは迷惑メール対策でいろいろやっているようで、おやじの独自ドメインからはどうも受け付けてくれないようです。
本件は当初ドコモがDNSの逆引きをしているのではないかと想定したのですが、ドコモに送れない理由は、逆引きではないようです。詳しくは、小林さんの
HPを参照してください。いろいろ調査されています。 仕方がないのでドコモ対策として、ドコモのiモード(docomo.ne.jpドメイン)へのメールだけは、契約プロバイダのSMTPサーバに送ることにしました。
携帯電話宛てメールの遅延、不達対策は
こちらを参考にしてください。
■Postfixのダウンロードとインストール
Postfixの最新版を
こちらからダウンロードします。おやじがダウンロードしたのは、postfix-1.1.7-20020331.tar.gz(2002.04.20現在)です。
インストールは、任意の場所にソースを展開してコンパイルします。
$ tar zxfv postfix-1.1.7-20020331.tar.gz
$ cd postfix-1.1.7-20020331
$ make |
ここで、postfixユーザを追加します。postfixユーザは、他のユーザアカウントが使用していないユーザIDとグループIDを持った専用のユーザとし、誰もログインできないアカウントにします。このアカウントにはログインシェルやホームディレクトリは必要ありません。
$ su
■他のユーザアカウントが使用していないユーザIDとグループIDを持った専用の'postfix'ユーザを追加。このアカウントは、誰もログインできないアカウントとし、ログインシェルやホームディレクトリなしとする。
# vipw
postfix:*:12345:12345:Postfix owner:/nonexistent:/sbin/nologin
■ユーザ 'postfix' 用のグループを作成。
# vi /etc/group
postfix:*:12345:
■他のユーザアカウントに使われていない(postfix ユーザアカウントを含む)グループ
ID を持つグループ 'postdrop' を作成。(このグループは古い Postfix リリースではオプションでしたが、現在は必須。)
postdrop:*:54321:
■postfix 宛のメールを root に向ける。
# vi /etc/aliases
postfix: root
|
postfixをインストールします。
インストール中にいろいろ聞かれますが、デフォルトで答えればOK.。
■Postfixの設定
Postfixの設定は、/etc/postfix/main.cf を編集します。設定は、例によってエディタで簡単に。修正した部分のみ記載しています。(青字は削除、赤字は追加、緑字は変更したものです。)
- ホスト名の設定
myhostnameでは、通常サーバのホスト名を指定する。しかし、ここで設定するホスト名はmyoriginの設定と関係しており、myoriginをmyhostnameとした場合は、このホスト名はインターネット上でDNSで牽けるホスト名でなければならない。
zive.orgのように、MXを使うとホスト名が使えない場合は、おやじのようにサブドメインをそのまま指定すればよい。
#myhostname = host.domain.name
↓削除、変更
myhostname = mail.aconus.com
- ドメイン名の設定
#mydomain = domain.name
↓削除、変更
mydomain = aconus.com
- メール送信の設定
ローカルで配送されたメールがどこからくるように見えるか指定するもので、デフォルトの$myhostnameを指定すればいい。分かりにくい表現であるが、ここの値は、localhostが送信する場合のホスト名として@以下に設定されるもので、例えば、デーモンが吐くメールやCGIでメールを送信したり、procmailで転送する場合の送信元に設定される。従って、ここで指定されたホスト名は、インターネット上でDNSが牽ける名前でないと、相手サーバでエラー発生時に返信するためチェックされており、その時点で蹴られてしまうので、注意が必要である。
#myorigin = $myhostname
↓削除
myorigin = $myhostname
- メールの受信の設定
メールを受け取る範囲を指定する。ローカル運用なら別だが、ここは当然allを指定。(default=allなのでそのままでも可)
#inet_interfaces = all
↓削除
inet_interfaces = all
- メールの最終目的地とみなすドメイン名の指定
#mydestination = $myhostname, localhost.$mydomain, $mydomain
↓削除
mydestination = $myhostname, localhost.$mydomain, $mydomain
- リレーを許可する対象を指定(192.168.0.0/24と192.168.1.0/24を合わせて指定)
#mynetworks = 192.100.189.0/28, 127.0.0.0/8
↓削除、変更
mynetworks = 192.168.0.0/23, 127.0.0.0/8
- aliasesファイル・データベースの指定
#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases
↓削除
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
- メールBOXの指定
home_mailboxパラメータと本パラメータでメールBOXの形式を指定する。POPにQpopperを使うことから本パラメータのみ指定。
#mail_spool_directory = /var/spool/mail
↓削除
mail_spool_directory = /var/spool/mail
■Postfix の起動
設定が終わったら、
# /usr/sbin/postfix start
と入力して、Postfixを起動し、プロバイダのアカウント等に送信してみましょう。また、お決まりのリレーメールのテストをこちらでしておきましょう。
動作に問題がなければ、このままでは、再起動するたびに設定が必要なので、再起動時に上記コマンドを自動実行するよう登録する。登録は、/etc/rc.d/rc.local
に上記コマンド(/usr/sbin/postfix start)を追記しておけば、再起動時に実行されます。念のため、再起動後に、ps
auxで起動されているか確認しておきましょう。