クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

POP before SMTPをSMTP認証(postfix)と共存するには

CentOS 6になると、MTAがpostfixがデフォルトになります。postfix単体ではPOP before SMTPには対応していないので、pop-before-smtpを実現するものを組み込む必要があります。drac + drac_pluginでも、できるとブログに記載していましたが、自分のさくらのVPSでは、drac_pluginをビルド中に、-fPICを付けてrecompileしろとかで失敗してしまう。いろいろ試したが、drac方式は諦めました。

pop-before-smtp-1.42を使用して、postfix + dovecot環境で、POP before SMTP方式を、SMTP認証と共存できたので、方法を残して起きます。

まず、pop-before-smtp-1.42 をここからダウンロードします。

適当なフォルダで展開して、プログラム、設定ファイル、起動スクリプトをコピーします。

cp pop-before-smtp /usr/sbin
cp pop-before-smtp-conf.pl /etc
cp pop-before-smtp.init

使用しているPOP3のところのコメントを削除します。dovecotを使っているので、dovecotのところをコメント削除しました。

# For Dovecot POP3/IMAP when using syslog.
$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
    'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
    'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';

BerkeleyDBを使うので、以下=cutを削除。場合によってはperl-BerkeleyDBでperlのBerkerleyDBライブラリをインストールします。

=cut #====================== Postfix BerkeleyDB =======================START=

=cut #====================== Postfix BerkeleyDB =======================END=

main.cfの以下部分を変更します。

check_client_access_pbs = check_client_access hash:/etc/postfix/pop-before-smtp
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,$check_client_access_pbs,reject_unauth_destination

最後に、サブミッションポートでPOP before SMTP認証を有効にします。

submission inet n – n – – smtpd
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

POP before SMTP自体ISPでもサービス終了する中、未だに使い続けているところがあります。迷惑メールの踏み台にされないために、SMTP認証に移行するのが望ましいと考えます。マイVPSサーバーも検証で試しただけで、検証後は無効化しました。

コメントは受け付けていません。