postfixでバーチャルドメイン設定をせず複数ドメインのメールを受信
割と今更感がありますが「postfixで複数ドメインを受信する」が簡単なので設定してみます。
なんで?って言われるとメール専用のドメインを使っていたのですが、VPSが先に切れてしまい余分なお金出したくないなーって思ってのことなのです(素直にバーチャルドメインで設定すればいいのだが)。
あと「複数ドメインを受信する」だけでは、もったいないので SPAMメール対策、fail2ban で BAN する方法も書いておきます。
OS入れ替える前は、一応色々と設定してました。
・Postfixの設定の巻
postfixで複数ドメインを受信する
とりあえず下記のサイトを参考にしてみる。同じことやっているので突っ込みはなしでお願いしたい。
・postfixでバーチャルドメイン設定をせず複数ドメインのメールを受信
・postfixで複数ドメインを受信する
postfixの設定は既に終わっているということを前提で、domain.com
という追加するドメインを追加したい場合は、/etc/postfix/main.cf
の mydestination に domain.com
と追加すればよい。あと postfix の再起動を忘れずに。
mydestination = $myhostname, localhost.$mydomain, localhost, domain.com
とりあえずこれで admin@domain.com
⇒ 元ドメインの admin@xxxxxx.com
にも配送されるって寸法。
postfixのバーチャルメールボックスについて詳しく知りたい場合は、下記サイトが詳しく説明している。
・Postfix + dovecot バーチャルメールボックスの設定を深堀する
メールサーバーの第三者中継チェック
気になりだすと気になるメールの中継。これ自分が加害者になるので洒落にならないので一度は確認しておいた方がよい。
チェックできるサイトがあるのでそこで確認する。
・第三者中継をチェックする ★おすすめ
・open relay checker
SPAMまみれになっていた…
とりあえずSPAMメール対策として smtpd_client_restrictions
と smtpd_sender_restrictions
を設定しておく。
これだけでもだいぶマシになるが、あまりにウザイSPAMさんは ドメイン or IPアドレスで拒否するといいが…(これ以上にうざうざさん対応が必要だった)。
smtpd_client_restrictions = permit_mynetworks,
reject_rbl_client spamcop.net,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client opm.blitzed.org,
reject_rbl_client relays.visi.com,
reject_rbl_client sbl.spamhaus.org,
permit
smtpd_sender_restrictions = reject_unknown_sender_domain
ドメイン or IPアドレスで拒否の方法は下記を参照
・Postfixでspamメール送信元・送信者による制限の巻
unknown さんが消えない事例(発生編)
/var/log/maillog
をみているとなんだか怪しいログが…しかも相当アタックがある。
Mar 22 11:08:43 ns postfix/smtpd[7001]: connect from unknown[92.118.38.42]
Mar 23 11:09:00 ns postfix/smtpd[7001]: warning: unknown[92.118.38.42]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
この connect from unknown
ですが、どうやら smtpd_client_restrictions
に reject_unknown_client
(逆引きができないホストからのメール送信は許可しない)を指定するといいらしい。
・スパムメールを転送しないようにする
smtpd_client_restrictions = permit_mynetworks,
reject_rbl_client spamcop.net,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client opm.blitzed.org,
reject_rbl_client relays.visi.com,
reject_rbl_client sbl.spamhaus.org,
reject_unknown_client, ★これ
permit
結果、相変わらず…発生している。ブロックされないのかい!!と叫んでみる。
fail2ban を入れて不正アクセス対策してみる ※unknown さんが消えた(解決編)
どうやら unknown さんというか postfixに対してのアタック「SASL LOGIN authentication failed: authentication failure」ですが fail2ban
使うと楽に対応できるらしいので導入してみます。
CentOS8 では、まだ fail2ban
は標準でインスコできないので EPEL を先に使えるようにしておく。
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf -y install fail2ban
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local
設定ファイルを編集する。とりあえず今回 postfix だけなのでそこを追加&修正していく。
[postfix-sasl]
enabled = true
filter = postfix[mode=auth]
port = smtp,465,submission,imap,imaps,pop3,pop3s
action = iptables-multiport[name=postfix-sasl, port="smtp,smtps", protocol=tcp]
logpath = /var/log/maillog
bantime = 604800
findtime = 86400
maxretry = 2
fail2ban
を再起動し問題の unknown さんが /var/log/maillog
に表示されないことを確認する。
fail2ban で BAN されていることを確認(確認編)
fail2ban
は、 iptable
で問題のアタック元を弾いているようです。恒久的に設定されるのかと思ったら fail2ban
を停止すれば消えるらしい。
こんな感じで設定されるのね。
# fail2ban-client status postfix-sasl
Status for the jail: postfix-sasl
|- Filter
| |- Currently failed: 3
| |- Total failed: 1611
| `- Journal matches: _SYSTEMD_UNIT=postfix.service
`- Actions
|- Currently banned: 7
|- Total banned: 26
`- Banned IP list: 92.118.38.66 92.118.38.82 213.251.5.208 91.134.145.129 193.56.28.130 78.128.113.94 45.142.195.2
特にハマることは無かったですが fail2ban
は、外にも設定できるサービスがあるので都度設定していくといいかも。
fail2ban
参考にしたサイト様
・fail2banをCentOS8にインストールする
・fail2banでpostfixの認証失敗回数に応じて恒久的に送信元IPアドレスをbanする
・【CentOS7】ssh&postfixへの不正アクセス対策-fail2ban
・アタック対策fail2ban