7月 142012
 
シェアする

サーバに存在するユーザ名を特定する迷惑行為として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点を確認しましょう。

  1. 宛先不明メールが帰らないこと
  2. メールログ上、エラーメールを送信していないこと

なお、tail -f /var/log/maillog をしてから外部からメールを送ると、メールログをリアルタイムで追うことが出来ますので是非お試しを!

以上

このエントリーをはてなブックマークに追加

コメント大歓迎!質問も受け付けておりますヽ(*´∀`)ノ