page_adsence

2011年6月10日金曜日

CentOS5.5でSendmailの設定

自分のVMWareはNAT接続しているので、メールの受け取りはできないですが、
送信だけであればできるので、それ用に設定してみた。
詳しいことはわからないので、ググって調べながら設定した。

sendmailの設定ファイルは「/etc/mail/sendmail.cf」というところにあるファイル。
けどこのsendmail.cfというファイルは直接編集することはしない。
ではどうやってこのsendmail.cfファイルを編集するかというと、
sendmail.mcファイルを修正し、それをm4マクロで変換したものをsendmail.cfファイルに書くこむことで、
更新が可能。

で、sendmail.mcファイルの変更内容は以下の通り。
※設定に失敗する可能性を想定してsendmail.mcとsendmail.cfは必ずバックアップを取っておくこと!

# vi /etc/mail/sendmail.mc
追加
define(`confMAX_MESSAGE_SIZE’,`10485760′)dnl ← 送信メールのサイズの制限(10MB) default:制限無し
define(`confMAX_RCPTS_PER_MESSAGE’, `50′)dnl ← 1つのメールで指定できる宛先数の上限を制限 default:制限無し

修正(先頭に「dnl」を削除することでアンコメントできる)
FEATURE(`masquerade_envelope’)dnl
MASQUERADE_AS(`example.com’)dnl ← 自分のドメイン
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl

コメントアウト(先頭に「dnl」を追加することでコメントアウトできる)
dnl EXPOSED_USER(`root’)dnl ← EXPOSED_USER(`****’)で指定されたユーザはドメインのマスカレードを行わない(rootもマスカレードする)
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl ← デフォルトではローカルからのメールしか受け付けない(外部からのメールを受信出来ない)
dnl FEATURE(`accept_unresolvable_domains’)dnl ← 発信者のアドレスのドメインがDNSで解決出来ない場合、SMTPセッションのMAIL FROM:を拒否する

で、保存してcfファイルを生成
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


メールサーバで受け取るドメインを指定
今回のサーバでは受信しないので、特に設定はいじらず。
# vi /etc/mail/local-host-names
localhost
localhost.localdomain
example.com ← 自分のドメイン


転送を許可 / 拒否するホストを記載する
# vi /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.1 RELAY
Connect:192.168.10 RELAY ← 許可するセグメント
Connect:172.16.10 REJECT ← 許可しないセグメント


DBに追加
# makemap hash /etc/mail/access.db < /etc/mail/access
sendmailを再起動
/etc/init.d/sendmail restart