メールサーバを気楽に立てる人がいますが、
たいていの人に問題なくメールを送れるようにするには、
結構ちゃんと意識して作らないといけません。
昔はオープンリレーな MTA であっても普通に送れたようですが、
現在はそうはいきません。
最近の spam 対策手法で以下のようなものがあるからです。
1. MTA のブラックリスト
2. 逆引きできないホストからの受信拒否
3. 逆引き結果がクライアントっぽいアドレスからの受信拒否
4. ホワイトリストにのっていないホストからの受信拒否
5. ブラックリストにもホワイトリストにものっていないホストからの受信の再試行確認
というわけで、きちんとメールの送れる MTA にするには、
1. MTA 利用者が spam が送れないように制御する
2. 逆引き/正引き/MXを正しく登録する
3. FQDN は mail や smtp などの文字列を含ませる。
それができない場合は、smarthost などを利用することを考慮する。
4. 自立 MTA で拒否されたメールを上流の MTA を利用して送信されるような設定を入れておく。
5. 再試行回数を短くしすぎないようにする (デフォルト値推奨)
ということをする必要があります。
特にケータイ宛てのメールについては、全て上流の MTA を
利用して送信されるように構成することをおすすめします。
ケータイのキャリアで拒否されるからという理由が主ですが、
プロバイダによっては、
hi-hoが「ポート25ブロッキング」を実施,携帯電話ユーザーへの迷惑メールを遮断
のような対策がある場合があるからです。
また、追加での注意点として、
1. From 詐称によるメールを Virus がばら撒いたりする
2. エラーメールによる攻撃をするために、From を詐称したメールを送信する
3. 同時に負荷をあげる攻撃のために容量のそこそこのファイルを添付する
ことがあるため、MTA のエラーメールに対して以下のような対策をすることをおすすめします。
1. 送信できなかったメールのエラーメール自体がエラーになったときは、
そのメールは削除するようにする。(/dev/null に捨てるか、削除スクリプトを cron でまわす)
2. エラーメールには元のメールを添付しない (ヘッダ情報をつけるぐらいにする)
3. 同一 IP からの接続回数が多い場合は、その接続を受け付けないようにする
(可能な場合のみ。難しいと思いますので。)
既に長いこと MTA を立てている人は問題ない場合が多いですが、
新たに MTA をたてたりするときは、気をつけるようにしてください。
いくつかのサーバは ident などでアクセスすることもあるので、
タイムアウトまでの時間 (おおむね 30sec) を浪費しなくていいように、
ident についてのパケットを捨てるのではなく、拒否するようにしましょう。
( drop せず、 reject しましょう)
一部のドメインには送れるから、相手サーバが悪いんだー。
なんていう考え方はとおりませんよ?
アドレスを間違えない限り全てのドメインに送れるように構築しましょうね。
受け取ってくれるドメインが寛大なだけなんですから。
# 何かいまいちな下請けを使ってしまったらしいです。。。