Turbo Linux 7 Server - sendmail, POP

Last Modified: 2004.02.18

14. sendmailの設定
以下を基本方針とする。
  • Linux ServerおよびLAN内のPCのSMTPとして利用する。
  • SPAMメールに利用されないよう、設定を注意する。
  • CFは使わず、m4プリプロセッサを使ってsendmail.cfを作成する。

1. .mcファイルの編集

TurboLinux 7 Serverの標準のsendmail.mcをkkoba.mcとしてコピーし、編集する。

 [root@linux /root]# cd /usr/lib/sendmail-cf/cf
 [root@linux cf]# cp sendmail.mc kkoba.mc

kkoba.mcを編集する。
dnlで始まる行はコメントなので、省略する。

 divert(-1)dnl

 VERSIONID(`linux setup for Turbolinux')dnl
 OSTYPE(`linux')dnl
 define(`confDEF_USER_ID',`8:12')dnl
 undefine(`UUCP_RELAY')dnl
 undefine(`BITNET_RELAY')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 FEATURE(`smrsh',`/usr/sbin/smrsh')dnl                      <--- a)fmlが動かないのでコメント化
 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

 MAILER(`smtp')dnl
 MAILER(`local')dnl

 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')       <--- b)この行があったらコメント化

 define(`confTO_QUEUERETURN_NORMAL', `1d')dnl                   <--- c)追加
 define(`confTO_QUEUERETURN_URGENT', `1d')dnl                   <--- c)追加
 define(`confTO_QUEUERETURN_NONURGENT', `1d')dnl                <--- c)追加
 define(`confTO_QUEUEWARN', `1h')dnl                            <--- c)追加
 define(`confTO_QUEUEWARN_NORMAL', `1h')dnl                     <--- c)追加
 define(`confTO_QUEUEWARN_URGENT', `1h')dnl                     <--- c)追加
 define(`confTO_QUEUEWARN_NONURGENT', `1h')dnl                  <--- c)追加
 define(`confTO_IDENT', `0s')dnl                                <--- d)追加
a)は、fmlを動かすためにコメント化したが、セキュリティーが緩くなるので非推奨。
b)は、この行があるとsendmailが127.0.0.1でしかlistenしなくなるのでコメント化。
c)は、NTT Docomoのメール遅延対応として、エラーメールの返信を1日、警告を1時間と短く設定。効果は疑問。
d)は、IDENTの待ち時間を0秒にしてIDENTを無効にするため。(2002-05-16追加)。

2. sendmail.cfの作成とコピー

m4プリプロセッサを用いて、sendmail.cfを作成。
完成したsendmail.cfを、/etc/mailにコピー。

 [root@linux /root]# cd /usr/lib/sendmail-cf/cf
 [root@linux cf]# m4 ../m4/cf.m4 kkoba.mc > sendmail.cf
 [root@linux cf]# cp sendmail.cf /etc/mail

3. 互換性を保つためのリンク

念のため、互換性を保つために以下の作業を行う。

 [root@linux cf]# cd /etc
 [root@linux /etc]# mv sendmail.cf mail/sendmail.cf.org
 [root@linux /etc]# mv sendmail.st mail/sendmail.st.org
 [root@linux /etc]# ln -s mail/sendmail.cf .
 [root@linux /etc]# ln -s mail/aliases .
 [root@linux /etc]# ln -s mail/aliases.db .

4. 設定ファイルの編集

/etc/mail/aliasesに以下を追加

 root:        toto              <--- root宛のメールはtotoに届く
 webmaster:   toto              <--- webmaster宛のメールはtotoに届く。ユーザが存在しなくてもOK。

/etc/mail/accessを以下の通りに設定

 localhost        RELAY         <--- 始めから入っていた。
 127.0.0.1        RELAY         <--- 始めから入っていた。
 172.25.0.        RELAY         <--- LAN内(172.25.0.x)からはsendmailの利用を許可する。
「172.25.0.」という指定が上手く機能しない時は、「172.25.0」と最後の「.」を取って試して下さい。

/etc/mail/local-host-namesを以下の通りに設定

 kkoba.com                      <--- kkoba.com宛のメールを受信する
なお、aliasesは編集後に"newaliases"コマンド、 access(domaintable, mailertable, majordomo, virtusertableも同様)は編集後に "makemap hash access < access"コマンドを実行する必要があるが、 /etc/init.d/sendmailの中で自動的に実行されるので、ここでは実行しない。

5. Service起動スクリプトの修正

NTT Docomoのメール遅延対応のため、sendmailの再送間隔を10分に設定。
/etc/init.d/sendmailを編集し、QUEUE=1h(1時間)をQUEUE=10m(10分)に変更。

 if [ -f /etc/sysconfig/sendmail ] ; then
         . /etc/sysconfig/sendmail
 else
         DAEMON=yes
 #       QUEUE=1h                <--- コメント化
         QUEUE=10m               <--- 再送間隔を10分に変更
 fi

6. Serviceの起動


 [root@linux /root]# /etc/init.d/sendmail start    <-- 起動する場合
 [root@linux /root]# /etc/init.d/sendmail restart  <-- 再起動する場合

7. 動作テスト


 [root@linux /root]# sendmail -bt -d0 </dev/null
 Version 8.11.6
  Compiled with: MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND
                NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF SMTP USERDB
                XDEBUG

 ============ SYSTEM IDENTITY (after readcf) ============
       (short domain name) $w = linux
   (canonical domain name) $j = linux.kkoba.com
          (subdomain name) $m = kkoba.com
               (node name) $k = linux
 ========================================================

 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 >


15. POPの設定
以下を基本方針とする。
  • POPサービスは、Internet上からも利用可能とする。

1. /etc/xinetd.d/pop-3を編集


 service pop-3           
 {
         disable         = no                   <--- yesからnoに変更
         socket_type     = stream
         protocol        = tcp
         wait            = no
         user            = root
         server          = /usr/sbin/ipop3d
 }

2. xinetdを再起動して変更を有効にする


 [root@linux /root]# /etc/init.d/xinetd restart

3. /var/spool/mailのアクセス権変更

セキュリティーの警告ログに従い、/var/spool/mailのアクセス権を変更する。

 [root@linux /root]# chmod 1777 /var/spool/mail


<Prev Top Next>
Copyright(C) 2001-2003 Katsuyuki Kobayashi.
このサイトへのリンクや引用時はメール頂戴
webmaster@kkoba.com