sendmail-8.12.5-7の設定

[サーバの実験室 Redhat/Fedora]

作成 : 2002/10/23

"サーバの実験室"の検索


sendmail-8.12.5-7とsendmail-cf-8.12.5-7のインストール

Redhat8.0へアップグレードしたとき、sendmail-8.12.5-7とsendmail-cf-8.12.5-7にアップデートされる。

旧バージョン新バージョン
/etc/aliases/etc/aliases.rpmnew
/etc/mail/sendmail.mc/etc/mail/sendmail.mc.rpmnew
/etc/mail/sendmail.cf.rpmsave/etc/mail/sendmail.cf

aliasesとsendmail.mcは、旧バージョンのファイルが有効。 sendmail.cfは、sendmail起動時にsendmail.mcファイルがmakeされるので、設定は旧バージョンと同じ内容で起動する。

/etc/mail/sendmail.mc.rpmnewの編集

デフォルト設定は、旧バージョンも新バージョンも同じ内容(たぶん)なので、sendmail.mcをそのまま使用してもいいが、新バージョンsendmail.mc.rpmnewを使用する。

divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/mail/sendmail.cf by running the following command:
dnl
dnl        m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
dnl Uncomment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define(`SMART_HOST',`smtp.your.provider')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')
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(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')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
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
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(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl The '-t' option will retry delivery if e.g. the user runs over his quota.
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(dnsbl,`relays.ordb.org')dnl
MASQUERADE_AS(nina.jp)dnl
FEATURE(`masquerade_envelope')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl       a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
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.
FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

FEATURE(dnsbl,`relays.ordb.org')dnl

不正中継を許容する設定になっているサーバのデータベースを参照して、メールの受信を拒否する。 SPAM対策。 ハートコンピュータ株式会社のspamと不正なメール中継についての解説を参考にした。

MASQUERADE_AS(nina.jp)dnl
FEATURE(`masquerade_envelope')dnl

「xxxx@linux.nina.jp」として送られるところを、「xxxx@nina.jp」に変換(マスカレード)して送る。 2行目は、エンベロープもマスカレードする(通常は、ヘッダのみ)。

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

127.0.0.1(ローカル)のみListenする。 dnl から行末までは無視されるので、コメントアウトと同じ。 この行をコメントアウトしないと、他のホストとのSMTP通信ができなくなる。

/etc/sendmail.cfの作成

sendmail.cfを作成するには、次のようなコマンドを実行する。

# mv sendmail.mc /etc/sendmail.mc.bak
# mv sendmail.mc.rpmnew /etc/sendmail.mc

# m4 sendmail.mc > /etc/sendmail.cf

/etc/mail/local-host-namesの編集

local-host-names には、そのサーバがメールを受け取るドメインを記述する。

linux.polaris.as.wakwak.ne.jp
polaris.as.wakwak.ne.jp

/etc/mail/relay-domainsの編集

MTA/MUA

relay-domains には、そのサーバが無条件でリレーを許可するドメインを記述する。 MUA(Mail User Agent:OutlookやEudoraなどのメールソフト)からのメールをリレーするためには、この記述が必要になる。

nina.jp

IPアドレスから逆引きができないときは、IPアドレスで記述することも可能。 192.168.1.0/255.255.255.0 のネットワークに存在するホストに対するリレーを許可するには、次のように記述する。

192.168.1

逆引きができないが、relay-domainsにIPアドレスを記述したくない場合は、/etc/hostsファイルにホスト名とIPアドレスの対応を記述する。

192.168.1.X     hostname.nina.jp

sendmailの再起動

sendmailを再起動する。

# /etc/init.d/sendmail restart

不正中継のチェック

sendmailの設定が不正中継を許容しないようになっているか、rbl.jp の第三者中継チェックで確認する。


[サーバの実験室 Redhat/Fedora]