自端末からレンタルサーバー上のメールサーバー経由でメールを送信できるようにしました。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のインストール
- 2.relay-ctrl-3.1.1の設定
- 3.qmail-smtpd(587番ポート用)の起動スクリプトの修正
- 4.qmail-qmail-pop3dの起動スクリプトの修正
- 5.動作確認
# 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
# 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で指定されたプログラムを実行
(修正前)
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アドレスを記録したファイルが存在するかチェックする
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の認証時に使用される。
・/var/spool/relay-ctrl/allow/ディレクトリに自端末のIPアドレスがファイル名のファイルが作成されている事が確認できました。