「postfix」カテゴリーアーカイブ

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

FreeBSD (postfix)

/usr/ports/mail/postfix のインストール

# portinstall mail/postfix

で一発。オプションはPCREとSASL2とTLSを指定。

Added group “postfix”.
Added group “maildrop”.
Added user “postfix”.
You need user “postfix” added to group “mail”.
Would you like me to add it [y]?

と訊いてくるところはそのままエンター(y)。

Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

ここはsendmailではなくpostfixを有効にしたいので”y”。

postfix-2.3.4,1
cyrus-sasl-2.1.22
pcre-6.7

がインストールされました。
あとの設定は、/etc/rc.confで

postfix_enable=”YES”

sendmail_enable=”NO”
sendmail_submit_enable=”NO”
sendmail_outbound_enable=”NO”
sendmail_msp_queue_enable=”NO”

/usr/local/etc/postfix にmain.cfがあるので、cp -p main.cf main.cf.orgでバックアップしてから編集。

myhostname = virtual.domain.tld
mydomain = domain.tld
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

rehash かけたあと、newaliasesしておけば一応OK。

postfix

mailbox_size_limit = 0

postfixを使ってます。あまり見ないmailboxが時々満杯になっていたりします。デフォルトのままだと50MBがリミット。
無制限にするには↑のように”0″をmain.cfで指定する。 postfix reload を忘れないように。