Mail server is backup MX

自分のためのメモ
大抵の人には役に立たない情報です。

とある事情で、あるドメイン名の全部のユーザーのメールの送信のためだけのsmtpサーバーが必要になって、すでに稼働しているposftfix adminのvirtual domain環境にそのドメイン名を追加登録して全ユーザーの登録をしてssl/smtp-auth なsmtpとして使った時のお話。
“Mail server is backup MX” の続きを読む

Outbound Port 25 Blocking

こっちに来てからしばらくbigpondのダイアルアップを使っていたが昨日からADSL環境に変わりました。そうしたら突然自分のSMTPサー バー経由でメールが送れなくなったのでADSL回線ではOutbound Port 25 Blocking(OP25B)を行なっていることがわかりました。

そこでpostfixでサブミッションポートの設定をしました。

要するに25番ポートでSMTPを叩くのではなく別のポート(587)でSMTPを叩いて25番ポートのブロックを回避するというものです。当然その別のポートは素のSMTPではなくSMTP-AUTHとかでユーザー認証を行なうように設定されていないといけません。

自分のところのpostfixでは元々SMTP-AUTHで使っていたので単にサブミッションポートを使えるようにすればOKでした。

/usr/local/etc/postfix/master.cf に対し、

submission inet n       -       n       -       -       smtpd
  -o smtpd_etrn_restrictions=reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

の設定を行なって postfix reload でOK。

あとは、メールクライアントの SMTPポートを25から587に変更すればOK。

FreeBSD (postfix: virtual_maps)

postfixでvirtual domainを使えるようにする。

/usr/local/etc/postfix/main.cf のmydestinationにvirtual domainで使いたいドメイン名を追記する。具体的には、

mydestination = $myhostname, localhost.$mydomain $mydomain
 ほげほげドメイン1
 ほげほげドメイン2
 ほげほげドメイン3
 ほげほげドメイン4

と行頭にスペースを入れたドメイン名リストを追記すればOK。さらに、main.cfに、

virtual_maps = hash:/usr/local/etc/postfix/virtual

を追記。

/usr/local/etc/postfix/virtualというファイルを下記のように作る。

hoge1@ほげほげドメイン1(tab)受け取るアカウント1
hoge2@ほげほげドメイン2(tab)受け取るアカウント2
hoge3@ほげほげドメイン3(tab)受け取るアカウント3
hoge4@ほげほげドメイン4(tab)受け取るアカウント4

そんでもって、

# postmap /usr/local/etc/postfix/virtual
# postfix reload

で使えるようになる。

FreeBSD (postfix: smtpd_client_restrictions)

送信元のIPアドレスによる制限」を行う。

/usr/local/etc/postfix/main.cf に下記を追加

###############
# sender restriction
#
smtpd_client_restrictions = permit_mynetworks check_client_access  hash:/usr/local/etc/postfix/reject_client

/usr/local/etc/postfix/reject_client を下記のように作成。

IPアドレス1(tab)REJECT
IPアドレス2(tab)REJECT
IPアドレス3(tab)REJECT

DBファイル作成してpostfixを再起動

# postmap /usr/local/etc/postfix/reject_client
# postfix reload

FreeBSD (smtp-auth)

sasl2を入れてsmtp-authを有効にするために/usr/local/etc/postfix/main.cfに以下を追加。

####################
# SMTP AUTH w/SALS2
#
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

/usr/local/lib/sasl2/smtpd.confを作る。

# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login

/etc/sasldb2を用意しておく。

# touch /etc/sasldb2
# chown postfix:postfix /etc/sasldb2

smtp-authのユーザーを作る。

#  saslpasswd2 -c -u `postconf -h myhostname` username

パスワードを二回訊いてくるので入力する。

ユーザーのパスワードの変更

#  saslpasswd2 -u `postconf -h myhostname` username

同じくパスワードを二回訊いてくるので入力する。

ユーザーの削除

#  saslpasswd2 -u `postconf -h myhostname` -d username

ユーザーの確認

#  sasldblistusers2

参考リンク) 1, 2, 3