サーバに存在するユーザ名を特定する迷惑行為としてPOPしてユーザ名を指定しパスワードを聞かれるかで判断をする方法やメールを送りつけて宛先不明メールが帰ってくるか否かで判断する方法がある。今回は、外部から送られてくる宛先不明メールに対し、エラーメールを返さない方法を設定してみる。
エラーメールを送信しない設定方法
対象となる設定ファイルは「/etc/mail/submit.cf」ファイル。
このファイルを用いてローカル配送されるメールへの設定を変更する。
変更するオプションは「ErrorMode」オプション
以下、マニュアルより引用
ErrorMode=x
エラー処理をモード x に設定します。有効なモードとして、 ‘m’ はエラーメッセージを送り返します。
‘w’ はエラーメッセージを送り手の端末に書き出します (送り手がログインしていなければ、メールを返
します)。 ‘p’ は、エラーメッセージを端末に表示します(デフォル ト)。 ‘q’ は、エラーメッセージを捨て
ます(exit コードだけを返します)。 ‘e’ は、BerkNet 用に特別処理をします。もし、モード ‘m’ や‘w’ を
使っている場合に、エラーとなったメッセージがエラーメールとして送り返されず、送り手が sendmail
を実行しているマシン上の ユーザならば、メッセージのコピーは送り手のホームディレクトリにある
dead.letter に追加されます。
と言うことで
ErrorModeを「q」にする。
1. 現状のsubmit.cf内に存在する「ErrorMode」を確認する(行数も)
[root@vps1 ~]# grep -n ErrorMode /etc/mail/submit.cf 160:#O ErrorMode=print [root@vps1 ~]#
2. sedコマンドで、submit.cfのバックアップを取りながら160行目の次の行に「ErrorMode=q」を追加する
[root@vps1 ~]# sed -i.20120714 '160a O ErrorMode=q' /etc/mail/submit.cf
3. 作成されたバックアップファイルを確認
[root@vps1 ~]# ls -l /etc/mail/submit.cf* -rw-r--r-- 1 root root 40346 Jul 14 03:24 /etc/mail/submit.cf -rw-r--r-- 1 root root 40332 Jul 14 03:21 /etc/mail/submit.cf.20120714 [root@vps1 ~]#
4. バックアップファイルと現状の差分を確認
[root@vps1 ~]# diff /etc/mail/submit.cf /etc/mail/submit.cf.20120714
161d160
< O ErrorMode=q
[root@vps1 ~]#
5. submit.cf内の「ErrorMode」を再確認する
[root@vps1 ~]# grep ErrorMode /etc/mail/submit.cf
#O ErrorMode=print
O ErrorMode=q
[root@vps1 ~]#
6. Sendmailを再起動する
[root@vps1 ~]# service sendmail restart
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
[root@vps1 ~]#
あとは、適当なメールアドレスに外部からメールを送って、以下の2点を確認しましょう。
- 宛先不明メールが帰らないこと
- メールログ上、エラーメールを送信していないこと
なお、tail -f /var/log/maillog をしてから外部からメールを送ると、メールログをリアルタイムで追うことが出来ますので是非お試しを!
以上
コメント