OP25B (Outbound Port 25 Blocking) とは、ウイルスやスパムなどで外部に大量のメール送信をすることを防ぐことを目的として、外部との25番ポート (SMTP) の通信を拒否する設定のことをいう。この設定は一般的な家庭向けのインターネットサービスプロバイダーでは標準で設定されており、解除することはできない。
OP25Bが有効となった環境においては、SMTPによるメール送信はできないが、サブミッションポートと呼ばれる587番ポートを使ったメール送信を行うことができる。サブミッションポートを使ったメール送信では、プロトコル自体はSMTPが用いられるが、SMTP AUTHによる認証が必要となる。
今回、Postfixにてサブミッションポートを使ったメール送信設定を実施した。
環境
- OS : CentOS 8
Postfixのインストール
CentOS 8は標準でPostfixがインストールされていないのでインストールを行う。同時に、SMTP AUTHに必要となる「cyrus-sasl」関連のパッケージと、メール送信テストに使える「mailx」パッケージを導入しておく。
# dnf install postfix -y
# dnf install cyrus-sasl cyrus-sasl-plain -y
# dnf install mailx -y
Postfixの設定
1. Postfixのmain.cfを修正
Postfixインストール後、「/etc/postfix/main.c」に対して以下設定修正・追加を行う。メールのリレー先サーバは、プロバイダーの情報を参照して適切なFQDNを設定すること。なお、FQDNを[]を囲んでいるが、これはDNSに対してMXレコードの名前解決をせず、AレコードのIPアドレスにて名前解決を行う設定となる。今回のようにメール送信にプロバイダーのメールサーバを使用する場合は、原則[]で囲んでおけば問題なさそうだ。
# 受信許可ネットワークの設定
mynetworks = 127.0.0.0/8, 192.168.0.0/16
# 受付インタフェースを修正
inet_interfaces = all
inet_protocols = ipv4
# メールのリレー先サーバを指定
relayhost = [<メールサーバのFQDN>]:587
# SMTP認証設定 (最下行に追加)
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_password
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login
2. SMTP AUTH用のパスワードファイルを作成
SMTP AUTHはユーザ情報とパスワードが必要となるので、「/etc/postfix/smtp_password」というファイルを作成し、以下構文で設定を行う。
[<メールサーバのFQDN>]:587 <ユーザ名>:<パスワード>
以下記述例となる。
# vi /etc/postfix/smtp_password
[smtp.example.com]:587 USERNAME@example.com:PASSWORD
パスワード情報が含まれるため、rootのみ読み書きできるように権限設定を行ったのち、postmapコマンドでhash化したDBファイルを作成する。
# chmod 600 /etc/postfix/smtp_password
# postmap /etc/postfix/smtp_password
# ls -l /etc/postfix/smtp_password*
-rw------- 1 root root 58 8月 16 06:12 /etc/postfix/smtp_password
-rw------- 1 root root 12288 8月 16 06:12 /etc/postfix/smtp_password.db
3. Postfixを起動
最後にPostfixを起動させ、ステータスでエラーが発生していなければ、設定は成功となる。
# systemctl start postfix
# systemctl enable postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor pre>
Active: active (running) since Sun 2020-08-16 05:48:12 JST; 27s ago
Main PID: 23119 (master)
Tasks: 3 (limit: 11091)
Memory: 4.7M
CGroup: /system.slice/postfix.service
tq23119 /usr/libexec/postfix/master -w
tq23120 pickup -l -t unix -u
mq23121 qmgr -l -t unix -u
8月 16 05:48:11 t3022cent systemd[1]: Starting Postfix Mail Transport Agent...
8月 16 05:48:12 t3022cent postfix/master[23119]: daemon started -- version 3.3>
8月 16 05:48:12 t3022cent systemd[1]: Started Postfix Mail Transport Agent.
動作確認
動作確認のためmail
コマンドでメール送信をしてみよう。以下のように、-S
オプションでPostfixを導入したサーバをメールサーバとして指定し、25番ポートを使ってメールが転送され、Gmailなどの外部のメールアドレスでメール受信できれば成功となる。
# echo "Test message" | mail -S smtp://<Postfixを導入したサーバのIPアドレス>:25 -s "Subject : Test mail" <送信先メールアドレス>
0 件のコメント:
コメントを投稿