senndmailの設定
| sendmailを設定するにはsendmail.cfのファイルを編集する必要がありますが直接編集するには大変複雑で難しいため直接編集することは致しません。 そこで、sendmail.cf ファイルをm4マクロプロセッサーで sendmail.mc ファイルを変換させてから編集してsendmail.cf ファイルに反映させます。 最初にsendmail.cfファイルのバックアップをします。 |
| #] cp /etc/sendmail.cf /etc/mail/sendmail.cf.bak →RedHat7.3以前 #] cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak →RedHat8.0以降 |
| m4マクロプロセッサーでsendmail.mcファイルを変換させます。 m4がインストールされていなければインストールしてください。(通常はインストールされています。) |
| #] m4 /etc/mail/sendmail.mc > /etc/sendmail.cf →RedHat7.3以前 #] m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf →RedHat8.0以降 |
| これでsendmail.mcファイルの編集ができるようになりましたので編集します。メール送信を運用可能にするためここでは必要最低限の設定をします。詳しくはsendmail.mcの記述の方で確認ください。 sendmail.mcでは、dnlでコメントアウトにします |
| #] vi /etc/mail/sendmail.mc EXPOSED_USER('root')dnl ↓ dnl EXPOSED_USER('root')dnl root@ローカルネームで送信するので使用しないようにdnlでコメントにします。 DEMON_OPTIONS('port=smtp,Addr=127.0.0.1,Name=MTA')dnl ↓ dnl DEMON_OPTIONS('port=smtp,Addr=127.0.0.1,Name=MTA')dnl 自分自身(自コンピューターのみ)でしかメールを受け付けない設定なのでdnlでコメントにして他のコンピューターからも送信を受け付けるようにします。 以下の2行を探しSMTP認証を受け付けるようにするために行頭のdnlのコメントを外す。 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl ↓ TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl メールのヘッダーに送信者アドレスの@マーク以降をドメイン名にして送信する場合は先頭のdnl(コメント)を外して括弧ないを自分のドメインを入力します。 FEATURE(masquerade_envelope)dnl →先頭のdnl(コメント)を外す MASQUERADE_AS(abcde.com)dnl →()括弧ないを自分のドメイン メールの転送を拒否・許可するドメイン・IPアドレス・メールアドレスを定義するファイルを指定している。 先頭にdnl(コメント)が入っていれば外し有効にします。/etc/mail/access のファイルを参照するようになります。 FEATURE(`access_db', `dbm -o /etc/mail/access')dnl →sendmail8.11.x以前(RedHat7.3以前) FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access')dnl →sendmail8.12.x以後(8.0以降) /etc/mail/local-host-names を参照するようになる。 local-host-names は旧バージョンのsendmail.cw や sendmail.aa になり、このホストで受信するドメイン名を記述するのでdnlが有ればコメントを外して有効にします。必ず/etc/mail/local-host-namesファイルに自分のドメインを登録します。 FEATURE(`use_cw_file')dnl →先頭にdnl(コメント)があれば外す 以下青字部分を追加して不正中継ホストが登録されているブラックリストのデータベースを使用します。 スパムメールを中継しているサイトからのメールを拒否するようにします。(※2006年12月をもって http://ordb.org/ サイトが閉鎖しましたので使用不可になりました。) FEATURE(`blacklist_recipients')dnl 上記のデーターベースが利用出来なくなったので変わりにrbl.jpさんのデータベースを使用します。 ウイルスメールとスパムメールの両方を中継を登録されているブラックリストを使用します。 サーバーに接続してきたIPアドレスがall.rbl.jpにあるとDNSは127.0.0.2(virusの場合), 127.0.0.4(shortの場合)を返しMTA(sendmail)は接続を拒否します。 FEATURE(`blacklist_recipients')dnl FEATURE(dnsbl,`all.rbl.jp')dnl ←この行を追加 |
| 以上設定ができましたら保存してsendmail.cfに反映させて再起動します。 |
| :w ←保存 :q ←終了 以下でm4プロセッサーでsendmail.cf に設定を反映させます。 #] m4 /etc/sendmail.mc > /etc/sendmail.cf →RedHat7.3以前 #] m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf →RedHat8.0以降 サービスを再起動します。 #] service sendmail restart または #] /etc/rc.d/init.d/sendmail restart スパムやウイルスメールからの確認 2、3日位してからメールログを調べて見ると以下のようにいくつか表示されていればブロックされていることがわかります。もしスパムやウイルスなどからのメールがなければ何も表示されません。 #] grep all.rbl.jp /var/log/maillog Nov 16 22:10:54 mail sendmail[55512]: ruleset=check_relay, arg1=pl393.nas934.k-tokyo.nttpc.ne.jp, arg2=127.0.0.4, relay=pl393.nas934.k-tokyo.nttpc.ne.jp [219.102.45.137], reject=550 5.7.1 Rejected: 219.102.45.137 listed at all.rbl.jp |