2005年02月03日
Postfix(POP before SMTP)
朝晩Treadmillで30分くらい軽く走りこんで、カルピスのアミールSを飲んでもいっこうに血圧が下がらない。以前は超低血圧で朝起きられなくて困っていたのに・・・。
先週、自宅サーバーを構築してから初めてそのサーバーのアドレスにVirusメールが届きました。
1日トータル300通くらいのSpamメールを受け取り、そのうちVirusメールも20,30通は受け取るし、PCのVirusソフトは常時最新にアップデートされているので何の問題もないけど自分のサーバーにVirusメールが届くのは実に嫌なもんで、早々にサーバーにPrivate and Non-commercial useなら無料のAntiVir MailGateを悪戦苦闘しながらインストールに成功したものの、MTAがsendmailだと僕の設定が悪いのかメインのドメインでは完璧に機能するのにバーチャルのサブドメインでは時々メールが送信不能に陥ったり、非常に不安定だったので思い切ってとうとうMTAをPostfixに変えました。
1日トータル300通くらいのSpamメールを受け取り、そのうちVirusメールも20,30通は受け取るし、PCのVirusソフトは常時最新にアップデートされているので何の問題もないけど自分のサーバーにVirusメールが届くのは実に嫌なもんで、早々にサーバーにPrivate and Non-commercial useなら無料のAntiVir MailGateを悪戦苦闘しながらインストールに成功したものの、MTAがsendmailだと僕の設定が悪いのかメインのドメインでは完璧に機能するのにバーチャルのサブドメインでは時々メールが送信不能に陥ったり、非常に不安定だったので思い切ってとうとうMTAをPostfixに変えました。
以前も一度Postfix+drac+qpopperでPOP before SMTPで短期間運用していた時期もあったのですが、PostfixはデフォルトではメールのインターネットヘッダーのReceived: fromを内部ルートをはじめ、送ったプライベートのクライアントマシーンの名前まで表示してしまうのが嫌だったのですが、やっとReceived: fromを簡単に非表示化する方法を見つけたので、無骨で思い入れの深かったsendmailからpostfixに完全に移行しました。
以前は20時間もかかったのに今回は1時間くらいで移行できました。
以前は20時間もかかったのに今回は1時間くらいで移行できました。
1.sendmailからPostfix(POP before SMTP)移行の設定変更ノート
(drac+qpopperは設定済みです)詳しくはPOP before SMTPで
# yum -y install postfix
Postfix(main.cf)設定
# vi /etc/postfix/main.cf
myhostname = linux.hogehoge.com
mydomain = hogehoge.com
inet_interfaces = all
#inet_interfaces = localhost (コメントアウト)
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks_style = subnet
mynetworks = 127.0.0.0/8 (POP before SMTPの場合は192.168.1.0/24を削除)
relay_domains = $mydestination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/spool/mail
header_checks = regexp:/etc/postfix/header_checks
myhostname = linux.hogehoge.com
mydomain = hogehoge.com
inet_interfaces = all
#inet_interfaces = localhost (コメントアウト)
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks_style = subnet
mynetworks = 127.0.0.0/8 (POP before SMTPの場合は192.168.1.0/24を削除)
relay_domains = $mydestination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/spool/mail
header_checks = regexp:/etc/postfix/header_checks
そして最終行に
virtual_maps = hash:/etc/postfix/virtual
smtpd_recipient_restrictions = permit_mynetworks, check_client_access btree:/etc/mail/dracd, check_relay_domains
(※このsmtpd_recipienから始まるheck_relay_domainsまでを必ず1行で記述すること)
virtual_maps = hash:/etc/postfix/virtual
smtpd_recipient_restrictions = permit_mynetworks, check_client_access btree:/etc/mail/dracd, check_relay_domains
(※このsmtpd_recipienから始まるheck_relay_domainsまでを必ず1行で記述すること)
Postfix(Received 非表示化)
# vi /etc/postfix/header_checks
/^Received:/ IGNORE
/^Received:/ IGNORE
Postfix(自動起動)
# chkconfig --add postfix
# chkconfig --add postfix
sendmail停止
# /etc/init.d/sendmail stop
# /etc/init.d/sendmail stop
Postfix起動
# /etc/init.d/postfix start
# /etc/init.d/postfix start
これでテストして問題がなければsendmailアンインストール
# yum -y remove sendmail
# yum -y remove sendmail
と書きましたが、じつは僕はまだsendmailを未練がましくアンインストール
していません。でもとりあえず問題なくPostfixもAntiVir MailGateも完璧に動作しています。
※バーチャルドメインでの設定
バーチャル環境で運用している場合はPostfix起動のまえにバーチャルのサブドメインで運用しているユーザーを下のように記述します。
# vi /etc/postfix/virtual
hogehoge.org anything
aaa@hogehoge.org aaa
bbb@hogehoge.org bbb
@hogehoge.jp @hogehoge.com (hogehoge.jpに来たメールを全てhogehoge.comに転送する場合)
hogehoge.org anything
aaa@hogehoge.org aaa
bbb@hogehoge.org bbb
@hogehoge.jp @hogehoge.com (hogehoge.jpに来たメールを全てhogehoge.comに転送する場合)
のように記述して
# postmap /etc/postfix/virtual
# postmap /etc/postfix/virtual
初回はPostfixを初期起動するので下は必要ありませんが、その後バーチャルドメインのユーザーを追加して反映させるにはreloadする必要があります。
# /etc/rc.d/init.d/postfix reload
# useradd -s /sbin/nologin 新規ユーザー
ユーザーの追加はSSHによるリモート接続をさせない場合は
新規ユーザーの設定はsendmailと同じです。
メインのドメインの場合はvirtualの設定は必要ありません。
メインのドメインの場合はvirtualの設定は必要ありません。

yataka1 at 02:10│TrackBack(0)│自宅サーバー

