Postfixでスパムメールを拒否する
メールの送受信が問題なくできることが確認できたら、Postfixの設定を少しずつカスタマイズしていこう。そのまま使っても問題はないと思うが、設定を見直すことでさらに安全性を高めることが可能になる。
Postfixの設定ファイルである/etc/postfix/main.cfに記述を付け加えていくのだが、設定を変更したらコマンドラインで「/etc/rc.d/init.d/postfix
restart」としてPostfixを再起動し、設定の変更を有効にしよう。
メアドが間違っているときにエラーメールを返す
メールアドレスを間違えて送信したとき、「User unknown」というエラーメールが返ってきたという経験が誰しもあるだろう。だが、Postfixの標準設定では、自分のドメインの存在しないユーザー宛てにメールが送られてきてもエラーメッセージが返されない。存在しないユーザー宛てのメールがきたときは、一定時間をおいて再送信を試みさせるようになっている。
これは、Postfixの設定を誤ったときでも、自分のドメイン宛てに送られてきたメールが拒否されないようにするため。標準設定は安全を重視するものになっているのだ。だから、設定に問題がないことを確認できたら、存在しないユーザー宛てのメールは即座に拒否し、その場でエラーメッセージを返すように設定を変更すべきだ。
/etc/postfix/main.cfの中にある「unknown_local_recipient_reject_code = 450」を「550」に変更しよう。「450」というエラーコードはtry again later(一定時間後に再試行)をあらわす。一方の「550」はreject
mail(メールで拒否)を表している。
送受信できるメールの最大サイズを指定する
ダイヤルアップでインターネットに接続していたころは、みんな大きなファイルをメールに添付しないように心がけていた。しかし、ブロードバンド時代となった現在、数MBなんて大きなファイルを平気で添付する人が増えてきた。中にはファイルサイズをチェックしていないのか、10MBを超えるような巨大なファイルを添付する人もいる。
Postfixでは送受信できるメールの最大サイズを指定できる。/etc/postfix/main.cfの中に「message_size_limit=1000000」という一行を追加しよう。場所はファイルの末尾でかまわない。この設定では送受信のサイズが1,000,000バイト(1MB)に制限される。運用状況に合わせてサイズは調整すればいい。
メールボックスの最大サイズを指定する
メールボックスのメールを削除しないユーザーがいる。複数のパソコンで同じようにメールを読みたいときは、メールソフトで受信したメールを消さないように設定すればいい。だが、そのまま放置しておくと、どんどんサーバーのメールボックスのメールがたまっていく。気が付けば何十MBなんてサイズになり、そんなユーザーが複数いればハードディスクの空きはあっという間になくなってしまう。
メールボックスの最大サイズを指定するには、/etc/postfix/main.cfの中に「mailbox_size_limit=10000000」という一行を追加する。この例ではメールボックスの上限が10,000,0000バイト(10MB)になる。メールボックスにたまったメールがこの限界を超えると新たにメールを受信できなくなる。ただし、この方法が有効なのはメールボックスにmbox形式を用いているときだけ。maildir形式を使っていると1つのメールファイルのサイズを制限するという意味になってしまう。maildirではディスククォータの機能を使って、maildirディレクトリのサイズを制限するという方法をとらなければならない。
安全性をより高める設定
デフォルトの設定よりも安全性を高めるための設定ができる。設定しなくても動作はするが、セキュリティを重視するなら、/etc/postfix/main.cfに次のような設定を追加しておきたい。
disable_vrfy_command=yes
vrfyコマンドを無効にする。vrfyコマンドとはユーザーが存在するかどうか問い合わせるためのもの。無効にしておけば有効なメールアカウントが流出することを防げる。
smtpd_helo_required=yes
helo/ehloコマンドを要求する。helo/ehloコマンドは接続元のホストを識別するためのコマンド。自らのホスト名を通知しない接続を拒否するように設定しておく。
strict_rfc821_envelopes=no
RFC821の形式に合わないアドレスは拒否する。RFC821はSMTPによるメール転送を定めた規格。この規格書にのっとっていないメールアドレスが通知されたときは拒否する。ただし、行儀が悪いSMTPサーバーから送られてきた正当なメールも受信できなくなることがある。
スパムメールを拒否する設定
スパムメールを受信しないように不正中継を行う可能性があるホストからのメールを受け取らないように設定する。この設定をすることで正当なメールを受け取れなくなることがあるため、スパムに悩まされているときだけ設定した方がいいかもしれない。
maps_rbl_domains=relays.ordb.org
rblとは不正中継を行う可能性があるサイトのブラックリストだ。スパムメールはこうしたサイトを利用してメールを大量に送信する。もっとも代表的なrblサイト「ORDB.org」を参照するように指定してみる。
smtpd_client_restrictions=reject_maps_rbl, reject_unknown_client
reject_maps_rblは上で指定したブラックリストに登録されたホストからの接続を拒否する。ただし、このホストから送られてきたメールはすべてシャットアウトされるので、正当なメールも受信できなくなる危険性がある。reject_unknown_clientとはIPアドレスからホスト名を逆引きできないときは接続を忌避する設定。