●起動スクリプトの編集

 最後に,QmailとCourier-IMAPの起動スクリプトにrelay-ctrlを利用する記述を行う。

○qmail-smtpd

/usr/local/bin/envdir /etc/relay-ctrl \ ←追加
 /usr/local/bin/relay-ctrl-chdir \ ←追加
 tcpserver -v -u 778 -g 777 \
 0 smtp /usr/local/bin/relay-ctrl-check
/usr/local/bin/relay-ctrl-check ←追加
/var/qmail/bin/qmail-smtpd
(…以下省略)

qmail-smtpdが記述されている前にrelay-ctrl-checkを挿入する。

○qmail-pop3d

/usr/local/bin/envdir /etc/relay-ctrl \ ←追加
  /usr/local/bin/relay-ctrl-chdir \ ←追加
  tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup itmedia.hoge.org /bin/
selectcheckpw \
  /usr/local/bin/relay-ctrl-allow \ ←追加
  /var/qmail/bin/qmail-pop3d Maildir
(…以下省略)

qmail-pop3dが記述されている前にrelay-ctrl-allowを挿入する。

○Counrier-IMAP

 Counrier-IMAPを利用している場合は,IMAP before SMTPの設定も行っておけば,どちらのアクセスでもSMTPサーバの利用が可能になる。

・「/usr/lib/courier-imap/libexec/authlib」に「/usr/local/bin/relay-ctrl-allow」のシンボリックリンクを張る。

# ln -s /usr/local/bin/relay-ctrl-allow /usr/lib/courier-imap/libexec/authlib

・「/usr/lib/courier-imap/etc/imapd」を編集する。「AUTHMODULES」にrelay-ctrl-allowを追加して保存する。

# vi /usr/lib/courier-imap/etc/imapd

viが起動したら,「/AUTHMODULES」などとして該当箇所をサーチし,AUTHMODULESに「"relay-ctrl-allow"」を追加して保存する。

#
#  authdaemon
#
# The default is set during the initial configuration.
#

AUTHMODULES="authdaemon" ←ここを編集
↓
AUTHMODULES="authdaemon relay-ctrl-allow"

最後にimapの起動スクリプトを編集する。

# vi /usr/lib/courier-imap/libexec/imapd.rc

「/usr/lib/courier-imap/libexec/couriertcpd -address=$ADDRESS \」の前に「/usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir \」を追加して保存する。

(…上記省略)
sed 's/=.*//;s/^/export /;s/$/;/'`
/usr/local/bin/envdir /etc/relay-ctrl \ ←追加
  /usr/local/bin/relay-ctrl-chdir \ ←追加
    /usr/lib/courier-imap/libexec/couriertcpd -address=$ADDRESS \
    -stderrlogger=/usr/lib/courier-imap/libexec/logger \
    -stderrloggername=imapd \
    -maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
    -pid=$PIDFILE $TCPDOPTS \
    $PORT ${exec_prefix}/sbin/imaplogin $LIBAUTHMODULES \
      ${exec_prefix}/bin/imapd Maildir"
(…以下省略)

起動スクリプトが編集できたら再起動を行おう。以上で設定は完了だ。早速動作をチェックしてみよう。

●POP Before SMTPのテスト

 メールクライアントを起動し,POPもしくはIMAPで受信を行う。まずスプールディレクトリにIPアドレスファイルができているかを確認する。次に,スプールディレクトリにIPアドレスファイルがない場合には送信が拒否され,IPアドレスファイルがある場合には,記録されているIPアドレスから送信できるかをテストする。ローカル環境でテストを行ったあとは,ほかのメールサーバのアカウントを利用して,外部からの送信テストを行っておこう。

●POP Before SMTPとSMTP Authenticationの違い

 冒頭でも触れたが,POP Before SMTPにはSMTP Authenticationのような認証はなく,IPアドレスさえ一致すれば,同一IPアドレスからのリレーを許可してしまう。

 非常にまれな例をあげるならば,ダイヤルアップ接続時にプロバイダから割り振られたIPアドレスで接続し,切断後に同じプロバイダの他ユーザーが同一のIPアドレスを持った場合は送信可能だ。そのほかにも,NATを利用して1つのグローバルIPアドレスを複数のユーザー,たとえばA,B,Cのユーザーで利用している場合には,サーバにアカウントを持つAというユーザーがPOPサーバで受信を行えば,そのサーバにアカウントを持たないユーザーBやユーザーCは,SMTPサーバを認証なしで利用できてしまうことになる。SMTP Authenticationによる認証とは異なるということは覚えておいたほうがよいだろう。また,サーバを外部に公開するのであれば,これに加えて「Eメールの不正中継がされていないかチェックしたい」Tipsなどを参考にして,メールサーバの不正利用を事前に防ぐように対策を行っておこう。

[TTS,ITmedia]

PREV 2/2