sendmail-8.11.6-3の設定

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

作成 : 2002/08/11

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


sendmail-8.11.6-3とsendmail-cf-8.11.6-3のインストール

パッケージsendmail-8.11.6-3と、sendmail-cf-8.11.6-3(cfファイルを作成するためのm4など)をインストールする。

# rpm -Uvh sendmail-8.11.6-3-i386.rpm sendmail-cf-8.11.6-3-i386.rpm

/etc/mail/sendmail.mcの編集

sendmailの設定ファイルはsendmail.cfだが、直接記述するのは複雑で困難。 m4マクロもしくはCFツールを使用するのが、ふつう(らしい)。 CFはわかりやすいが、新しいsendmailのバージョンで追加された機能に対応していないことがある。 今回はm4マクロを使用して、sendmail.cfを作成する。

RedHat Linux7.2にsendmailをインストールすると、/etc/mailディレクトリにsendmail.mcファイルが作成される。 これを編集する。 m4マクロの詳細については、sendmail.orgのcf/READMEを見てね。

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/sendmail.cf by running the following command:
dnl
dnl        m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')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(`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(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')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
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
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(dnsbl,`relays.ordb.org')dnl
MASQUERADE_AS(polaris.as.wakwak.ne.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(polaris.as.wakwak.ne.jp)dnl
FEATURE(`masquerade_envelope')dnl

「xxxx@linux.polaris.as.wakwak.ne.jp」として送られるところを、「xxxx@polaris.as.wakwak.ne.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を作成するには、次のようなコマンドを実行する。

# 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などのメールソフト)からのメールをリレーするためには、この記述が必要になる。

polaris.as.wakwak.ne.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.polaris.as.wakwak.ne.jp

ipchainsの設定

すべてのホストから25番ポートへの接続を許可するよう、ipchainsを設定する。 詳細は、ipchainsの設定を見てね。

-A input -s 0/0 -d 0/0 25 -p tcp -j ACCEPT

sendmailを起動時開始サービスに追加

sendmailサービスがサーバ起動時に開始されるように、ntsysvコマンドなどで設定する。

ルータの設定

25番ポート宛のパケットを、ローカルセグメントのメールサーバに転送するよう設定する。

サーバの再起動

すべての設定を有効にするため、サーバを再起動する。

不正中継のチェック

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


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