.
Mailサーバー => Sendmail-8.12 アップデート > 2.新しく sendmail.cf を作成する ~ Sendmail-8.12
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

新しく sendmail.cf を作成する ~ Sendmail-8.12

sendmail.mcの編集

セキュアメールサーバーで行ったsendmail8.11と同じです。SMTP AUTH に対する修正を行います。新たにインストールされた /usr/lib/sendmail-cf/cf/sendmail.mc を編集します。

/usr/lib/sendmail-cf/cf/sendmail.mc

省略
VERSIONID(`linux setup for Turbolinux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID',`8:12')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',`true')dnl
define(`confDONT_PROBE_INTERFACES',`true')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`LOCAL_MAILER_ARGS',`procmail -Y -a $h -d $u ')dnl
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLDBFile')
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(`redirect')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail')dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
dnl
dnl MASQUERADE
dnl
MASQUERADE_AS(`turbolinux.gr.jp')dnl
MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl

dnl MASQUERADE_DOMAIN(`otherhost1.turbolinux.gr.jp')dnl
dnl MASQUERADE_DOMAIN_FILE(`/etc/mail/masq-domains')dnl
dnl FEATURE(`masquerade_entire_domain')dnl
dnl FEATURE(`masquerade_envelope')dnl
dnl EXPOSED_USER(`root postmaster')dnl
dnl
dnl SMTP Auth
dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5')
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5')

dnl or If you want to use SMTP Auth with Microsoft OutlookExpress,
dnl please add LOGIN authentication in defination.
dnl (but LOGIN auth isn't recommended)
dnl
dnl define(`confAUTH_MECHANISMS', `LOGIN DIGEST-MD5 CRAM-MD5')
dnl TRUST_AUTH_MECH(`LOGIN DIGEST-MD5 CRAM')
dnl
dnl STARTTLS (TLS(SSL)) Support
dnl
dnl please make keys named certs.pem and privkey.pem in /etc/mail/certs.
dnl
dnl define(`confCACERT_PATH', `/etc/mail/certs/')
dnl define(`confCACERT', `confCACERT_PATH/cert.pem')
dnl define(`confSERVER_CERT', `confCACERT_PATH/cert.pem')
dnl define(`confSERVER_KEY', `confCACERT_PATH/privkey.pem')dnl
dnl If you want to use IPv6, please remove the string "dnl" before
dnl the string "DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')"
dnl
dnl DAEMON_OPTIONS(`Name=MTA-v4 Family=inet')dnl
dnl DAEMON_OPTIONS(`Name=MTA-v6 Family=inet6')dnl
MAILER(`smtp')dnl
MAILER(`local')dnl
MODIFY_MAILER_FLAGS(`LOCAL', `+S')

修正個所の説明

上記変更箇所の説明です。

MASQUERADEに関する設定 54行目

sendmail8.11で説明した内容とほぼ同じです。SMTPに認証により利用を認めさせます。認証に使われるアルゴリズムを指定します。詳細はセキュアメールサーバーの章を参考にして下さい。3.11の時はsendmailがSASLライブラリを利用するように以下の行を追加していました。

MASQUERADE_AS(`my.domain.net')dnl
↑ コメントアウト、変更
MASQUERADE_DOMAIN_FILE(`/etc/mail/masq-domains')dnl
↑ コメントアウト、変更・AUTH SMTPに関する設定

SASLに関する設定

詳細はセキュアメールサーバーの章を参考にして下さい。3.11の時はsendmailがSASLライブラリを利用するように以下の行を追加していました。

define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLFile') ×

define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLDBFile') ○

注意
SMTP AUTHを利用する場合、この記述がないと認証にSASLライブラリを参照しません。前回SMTP AUTH対応sendmail8.11を導入した際にも説明しましたがSASLを有効にするには先にSASLをインストールしておく必要があります。 SMTP AUTHを使用しない場合は修正の必要はありません。

SMTP AUTHに利用する暗号化アルゴリズム

コメントを外すだけで結構です。 SASL外部からはMD-5暗号化SMTP認証をサポートしたメーラしか利用は認めません。従来通り、外部からはDIGEST-MD5 CRAM-MD5が扱えるメーラだけの利用を認めさせます。この設定ではOutlookやNetscapeは外部からSMTPは利用できません。必要に応じて、LOGIN / PLAYN を記述して下さい。

66~75行目付近
dnl
dnl SMTP Auth
dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5')
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5')

捕捉
 NetscapeはLOGIN認証ですが、これらをここで有効にしなくてもSASLが標準でLOGIN認証を行うようです。LOGINを不許可にするには コンパイルオプションでこれらを有効にしたSASLをインストールする必要があります。

sendmail.cfの生成

M4プリプロセッサで sendmail.cfを生成します。

# cd /usr/lib/sendmail-cf/cf
# make sendmail.cf

エラーがないか確認します。m4でsendmail.cfを生成する際にエラーが発生すると思います。

/usr/lib/sendmail-cf/cf/sendmail.cf が生成されます。 /etc/mail/sendmail.cf と置き換えてSendmailを再起動して下さい。その際、エラーがないか確認します。

*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -o /etc/mail/access)
chmod 444 sendmail.cf

そこで、
/usr/lib/sendmail-cf/cf/sendmail.mc をエディタで開き、41行目 を以下の様に修正します。

/usr/lib/sendmail-cf/cf/sendmail.mc 41行目

省略
FEATURE(`access_db')dnl
↓変更
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access')dnl

次に
/usr/lib/sendmail-cf/ostype/linux.m4 をエディタで開き、24行目 を以下の様に修正します。

/usr/lib/sendmail-cf/ostype/linux.m4 24行目

省略
FEATURE(`access_db', `hash -o /etc/mail/access')

FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access')dnl


修正後、再度sendmail.cfを生成しなおすと成功するはずです。ここで生成したsendmail.cfを/etc/mailへ移動します。 その際、前回のsendmai.cfはバックアップを忘れないで下さい。

hosts.allow の編集

これだけではまだ動作しません。 /etc/hosts.allow に以下の一行を加えます。

/etc/hosts.allow

sendmail: ALL

このようにしなければ127.0.0.1宛のメールさえ弾かれてしまいSMTPは全く機能しないので注意して下さい。TCP Wrapperに準じて、特定のホストに限定したり、起動オプションをつけたりなどいろいろ出来そうですが、基本的にspam対策やアクセス制限は /etc/mail の設定ファイルで行うことになります。

ここではALLとしておかないと動作しないので注意が必要です。8.12になって仕様の変更に伴う箇所です。分からずに焦りました。変更を反映させるため、initdを再起動します。

bottom_mark
ページ最上部
ページ最上部 前のページ