senndmailの設定

sendmailを設定するにはsendmail.cfのファイルを編集する必要がありますが直接編集するには大変複雑で難しいため直接編集することは致しません。
そこで、sendmail.cf ファイルをm4マクロプロセッサーで sendmail.mc ファイルを変換させてから編集してsendmail.cf ファイルに反映させます。

最初にsendmail.cfファイルのバックアップをします。
RedHat7.3以前は、/etcにsendmail.cfファイルがあります。
RedHat8.0以降からは、/etc/mailにsendmail.cfファイルがあります。
記述方法は以下で確認してください。
sendmail.mcの記述方法

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
FEATURE(`dnsbl', `relays.ordb.org', `"550 Email rejected due to sending server misconfiguration - see http://ordb.org/"')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

戻る        次へ