提供: すだちWiki
移動先: 案内検索

Postfixで外部からのroot宛スパムメールを排除(CentOS7)

メインページ > CentOS 7 で自宅サーバー構築  > Postfixで外部からのroot宛スパムメールを排除(CentOS7)

メールサーバー構築時に、root宛てにはシステムのさまざまな情報などが送られて来ると思います。 しかしながら、rootやwebmasterなどというユーザー名は一般的であるため外部からスパムメールが後を絶ちません。 内部用メールサーバーのみで、外部と一切送受信しない場合にはinet_interfacesにlocalhostを指定したり、mydestinationを設定する方法がありますが、これだとメールアカウントを持っているユーザーが外部とやり取りできません。

今回は、rootやシステムアカウント宛てへメールを送信できるのはローカルアドレスからのみとし、外部からrootやシステムアカウントへの送信は一切許可しないよう設定してみました。 したがって、外部からメールを受信できるのは指定したユーザー名のみとなります。

※以下は、すでにメールサーバーの構築が終了していることが前提です。

Postfixの設定

[root@host3 ~]# vi /etc/postfix/main.cf

# SMTP-Authe¨-aR
smtpd_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
    check_recipient_access hash:/etc/postfix/recipient_access.conf ← 追加
#smtpd_sasl_type = dovecot
#smtpd_sasl_path = private/auth

ルールファイル作成

ローカルでもなく認証されているわけでもなく、ルールファイルにもない人は接続できませんし、メールを受けることもできません。

[root@host3 ~]# vi /etc/postfix/recipient_access.conf

mail-1@ OK
mail-2@ OK
mail-3@ OK

外部からもメール受信を許可するユーザー名の後ろに@を付けて記述します。OKも忘れずに。

.dbファイルを作成

次に、.dbファイルを作成します。main.cfのほうは.dbがついていない形式でファイル指定しますが、実際に参照されるのは.dbファイルです。

[root@host3 ~]# postmap /etc/postfix/recipient_access.conf
[root@host3 postfix]# ll /etc/postfix/
・
・
-rw-r--r-- 1 root root    59  9æ 27 21:11 recipient_access.conf
-rw-r--r-- 1 root root 12288  9æ 27 21:12 recipient_access.conf.db
・
・

Postfixを再起動

Postfixを再起動して設定を確認します。

[root@host3 ~]# systemctl restart postfix

テストメール

内部からテストメールを送ってみます。

[root@host3 ~]# echo test|mail root

テストメールがメールアドレス宛に届いていることを確認する。

外部からメールを送ってみます。
テストメールがメールアドレス宛に届かないことを確認する。