【04: POPBeforeSMTPへの変更】

SVサーバでは、メール送信(SMTP)サーバとして利用が可能ですが、初期設定状態では SMTP Auth になります。

メールソフトによっては、SMTP Authに対応できないものがありますので、
そのようなソフトを利用される際は、サーバの設定をPOP Before SMTPに変更することにより、メール送信が可能になります。
 
■POP Before SMTPとは
POP Before SMTPとは、無断にSMTPを利用されないようにするためのセキュリティ手段のひとつです。
POP受信をすることにより、サーバ側でホストを記録して、そのホストからのメール送信を一定時間許可をします。
一定時間経過すると再度POP受信を行わないとメールが送信できなくなります。

■サーバ側の前準備
POP Before SMTPを開始する前に、特定のPerlモジュールが必要となります。
下記の手順に従って、4つのPerlモジュールをインストールしてください。
この作業はTelnet接続の上、ルート権限で行う作業となります。
CPANコマンドを利用し、必要なPerlモジュールをインストールします。

% perl -MCPAN -e
←CPANモードの起動

cpan> install Time::HiRes

cpan> install File::Tail

cpan> install Date::Parse

上記で、CPANモードでのperlモジュールインストールは、終了です。
exit と入力して、CPANモードを終了し、次のコマンドを実行して下さい。


% cd /ports/net-mgmt/p5-Net-Netmask

% make

% make instal
l
■ソースの入手
Pop-before-smtp Homeのホームページにアクセスして、Pop-before-smtpのtar.gzファイルをダウンロードしてください。
Pop-before-smtp Homeホームページ : http://popbsmtp.sourceforge.net/
Pop-before-smtpダウンロードページ : https://sourceforge.net/project/showfiles.php?group_id=5017
pop-before-smtp-1.38.tar.gzをダウンロード
(2005年8月31日現在 最新バージョン)
※「.rpm」ファイルは、Linux用なので利用できません。

ダウンロードしたファイルをサーバにアップロードします。
管理者ユーザIDでFTPアクセス をして、/home/admin(最初のアクセス時の
ディレクトリ)にアップロードしてください。

例)管理者ユーザIDが「test」だった場合、ルートからみて「/home/test」のフォルダになります。
■ソースの展開
ソースを/usr/local/src/にコピーします。
% cd /home/admin
↑※ admin 部分はお客様の管理者ユーザIDに置き換えてください。

% cp pop-before-smtp-1.38.tar.gz /usr/local/src
% cd /usr/local/src


% ls
↑※srcフォルダ内に、[pop-before-smtp-1.38.tar.gz] がコピーされているのを確認します。
コピーされたソースを、/usr/local/src/内で解凍します。

% tar zxvf pop-before-smtp-1.38.tar.gz
解凍が開始され /usr/local/src/内に pop-before-smtp-1.38ディレクトリ が作成されます。
■ ファイルの変更
展開されたpop-before-smtp-1.38ディレクトリ内にあるpop-before-smtp-conf.plファイルを
変更します。
pop-before-smtp-conf.plを変更します。
40行目
変更前

# Set the log file we will watch for pop3d/imapd records.
#$file_tail{'name'} = '/var/log/maillog';

変更後
# Set the log file we will watch for pop3d/imapd records.
$file_tail{'name'} = '/var/log/maillog';
99行目
変更前

# For UW ipop3d/imapd and their secure versions. This is the DEFAULT.
#$pat = '^(... .. ..:..:..) \S+ (?:ipop3s?d|imaps?d)\[\d+\]: ' .
# '(?:Login|Authenticated|Auth) user=\S+ ' .
# 'host=(?:\S+ )?\[(\d+\.\d+\.\d+\.\d+)\]';

変更後

# For UW ipop3d/imapd and their secure versions. This is the DEFAULT.
$pat = '^(... .. ..:..:..) \S+ (?:ipop3s?d|imaps?d)\[\d+\]: ' .
'(?:Logn|Authenticated|Auth) user=\S+ ' .
'host=(?:\S+ )?\[(\d+\.\d+\.\d+\.\d+)\]';
419行目
変更前

=cut #-------------------------- Sendmail SMTP -------------------------END-

変更後
#-------------------------- Sendmail SMTP -------------------------END-

変更が終了しましたら、下記のコマンドでテストを行います。
% cd /usr/local/src/pop-before-smtp-1.38 <Enter>
% ./pop-before-smtp --config=./pop-before-smtp-conf.pl --debug --nowrite --reprocess <Enter>

Sep 29 09:01:17 starting up
Sep 29 01:57:11 found ip=210.172.143.2
Sep 29 01:57:11 added 210.172.143.2 to DB
Sep 29 01:57:14 found ip=210.172.143.2
Sep 29 03:01:06 expiration event for ip=210.172.143.2
Sep 29 03:01:06 expiration event for ip=210.172.143.2
テストが問題なければ、上記のようなログが表示されます。
「starting up」が表示されれば問題はありません。
「found ip」等の表示には大変時間がかかる場合がございますので、上記と同じ表示になるまで確認する必要はありません。
表示の終了は、「Ctrl+C」で行ってください。
エラーメッセージ等が表示されるようでしたら、再度pop-before-smtp-conf.plの設定を見直してください。

/etc/mail/ホスト名.mcファイルの最後に設定項目を追加して、
sendmailの設定を変更します。
/etc/mail/ホスト名.mcが見つからない方は、このマニュアルの最後にある /etc/mail/ホスト名.mcの作成の仕方 をご参照ください。
/etc/mail/ホスト名 .mc 最終行に追加
# Put this somewhere in the local information
Kpopauth hash -a<OK> /etc/mail/popauth

# Make this the first item in the check_rcpt section:
SLocal_check_rcpt

R$* [タブ] $: $(popauth $&{client_addr} $: <?> $)
R<?> [タブ] $@ NoPopAuth
R$*<OK> [タブ] $# OK
※[タブ]は、Tabキーでタブを挿入してください。
ここにも、設定が公開されていますので、ご参照ください。
http://popbsmtp.sourceforge.net/sendmail.txt

修正が終了しましたら、設定変更を行います。
% cd /etc/mail
% make install
% make restart
 
■インストール
3つのファイルを所定のディレクトリにコピーします。
% cp /usr/local/src/pop-before-smtp-1.38/pop-before-smtp.init /usr/local/etc/rc.d/pop-before-smtp.sh
% cp /usr/local/src/pop-before-smtp-1.38/pop-before-smtp /usr/sbin
% cp /usr/local/src/pop-before-smtp-1.38/pop-before-smtp-conf.pl /etc/pop-before-smtp-conf.pl
■実行

pop-before-smtpをデーモンとして、実行します。
% /usr/local/etc/rc.d/pop-before-smtp.sh start

Starting pop-before-smtp: done

以下のコマンドで、プロセス起動を確認してください。
% ps auxw | grep pop-before-smtp

root 20369 0.0 0.2 5512 4276 ?? Ss 11:18AM 0:00.01 /usr/bin/perl -wT /usr/sbin/pop-before-smtp --daemon=/var/run/pop-befo
 
/etc/mail/ホスト名.mcの作成の仕方
/etc/mail/ホスト名.mcが見つからない方のみご参照ください。
% cd /etc/mail
% make
作業が終了しましたら、lsコマンドで、ホスト名.mcファイルとホスト名.cfファイルが作成されたことを確認してください。