sendmail-8.11.6-3の設定
作成 : 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の編集
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 の第三者中継チェックで確認する。