qmail pop before smtpを使って自ドメインのメール送信

自端末からレンタルサーバー上のメールサーバー経由でメールを送信できるようにしました。qmailのリレー許可の設定、iptablesで自端末のIPアドレスのみ許可するようにしてセキュリティ考慮していますが、外出先などIPアドレスが固定されていない環境からアクセスする場合に対応できるようにpop before smtpの設定も確認してみました。
 
pop before smtpでは、smtpで送信する前にpop3サーバーにアクセスさせ、pop認証を通過したIPアドレスを記録し、この記録されたIPアドレスからのSMTP送信についてはある一定期間許可するようにします。
 
ここでは、relay-ctrl-3.1.1を使用してpop before smtpの設定を行います。
 
下記サイトを参考にして設定しました。
実用qmailサーバ運用・管理術(最終回)
 

1)relay-ctrl-3.1.1のインストール


 
# tar xvf relay-ctrl-3.1.1.tar.tar
# cd relay-ctrl-3.1.1
# make
# ./installer
 
installer error: Could not change directory to ‘/usr/local/man’:
No such file or directory
 
# mkdir /usr/local/man
# ./installer

 

2)relay-ctrl-3.1.1の設定


 
①必要なディレクトリの作成
 
# mkdir -p /var/spool/relay-ctrl/allow
# chmod 700 /var/spool/relay-ctrl
# chmod 777 /var/spool/relay-ctrl/allow
# mkdir /etc/relay-ctrl

 
②POPで許可されたIPアドレスを記録する設定
 
POPで許可されるとそのIPアドレスをファイル名としたファイルを作成しますが、そのファイルが作成されるパスを指定します。
 
下記のように”/var/spool/relay-ctrl/allow”ディレクトリ内に作成するように設定します。
 
# echo “/var/spool/relay-ctrl/allow” > /etc/relay-ctrl/RELAY_CTRL_DIR
 
③RelayをオープンにしたIPアドレスを記録したファイルの寿命を設定
 
下記ファイルに90秒と設定します。
 
# echo ’90’ > /etc/relay-ctrl/RELAY_CTRL_EXPIRY
 
④RelayをオープンにしたIPアドレスの記録したファイルを消去する処理をCronに設定
 
5分おきにCronで”relay-ctrl-age”を実行し、RELAY_CTRL_EXPIRYファイル内で指定した保存期間を過ぎた記録ファイルを消去する。
 
# crontab -e
 
*/5 * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age

 
※envdir
 
書式
envdir d child
 d:環境変数が設定されているファイルが存在しているディレクトリ
 child:”d”内の環境変数を設定し、childで指定されたプログラムを実行
 

3)qmail-smtpd(587番ポート用)の起動スクリプトの修正


 
下記のように修正します。
 
(修正前)
tcpserver -v -u 504 -g 503 -x /etc/tcp.smtp.cdb \
-c 20 0 587 /var/qmail/bin/qmail-smtpd
 
(修正後)
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -u 504 -g 503 -x /etc/tcp.smtp.cdb \
-c 20 0 587 relay-ctrl-check /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
 
※”qmail-smtpd”を実行する前に”relay-ctrl-check”でRelayをオープンにしたIPアドレスを記録したファイルが存在するかチェックする
 

4)qmail-qmail-pop3dの起動スクリプトの修正


 
下記のように修正します。
 
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup pop.example.com \
/bin/checkpassword \
relay-ctrl-allow /var/qmail/bin/qmail-pop3d Maildir 2>&1
  
※relay-ctrl-allow
“クライアントがqmail-pop3d”によって認証されると、/var/spool/relay-ctrl/allowディレクトリ内にRelayをオープンにしたIPアドレスを記録したファイルを作成する。pop before smtpの認証時に使用される。
 

5)動作確認


 
自端末からレンタルサーバー内のメールサーバー経由でメールを送信します。
 
・/var/spool/relay-ctrl/allow/ディレクトリに自端末のIPアドレスがファイル名のファイルが作成されている事が確認できました。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です