« インターネットの世界って・・ | メイン | 泣いた,泣いた »

FedoraCore6 よもやま

 私もインターネットの世界で情報提供をされているたくさんの人々に助けられたので,少しでもご恩返しをさせていただきます。誰かが,このエントリーを Google か何かで発見して「やった!これだ!」と役に立てると良いなぁ。

●FedoraCore6 実行環境
・Intel マザー DG965RY
・Core2Duo E6300 + 512MB×2 DuallChanel
・ARAID2000 + 160GB HDD
(株式会社MTG の松永社長,大変お世話になりました)

●インストール時のコマンド
linux all-generic-ide irqpoll
・all-generic-ide:これをやらないと ICH8R のドライバを聞いてきて,先に進みません。IDE のポートマップの関係かも
・irqpoll:これをやらないとインストール中に何かのハードウェアで引っかかります

●POPbeforeSMTP
・yum install pop-before-smtp:pop-before-smtp をインストール
・/etc/pop-before-smtp-conf.pl を書き換える
FC6 でPostfix+dovecot の組み合わせの場合,以下のようにしました。(変更点のみ)
------------------
# Set $debug to output some extra log messages (if logging is enabled).
$debug = 1;
$logto = '/var/log/pop-before-smtp'; ←自身のログファイル名を指定

# Override the DB hash file we will create/update (".db" gets appended).
$dbfile = '/etc/postfix/pop-before-smtp';←IP を記録するファイル名を指定

# A 30-minute grace period before the IP address is expired.
$grace = 30*60;←30分でリフレッシュする

# Set the log file we will watch for pop3d/imapd records.
$file_tail{'name'} = '/var/log/maillog';←POPを取得するログファイル名

# For Dovecot POP3/IMAP when using syslog.←このブロックの注釈を取り外し,Dovecot 用の設定にする
$pat = '^[LOGTIME] ?S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
'Login: .*? (?:?[|rip=)[:f]*(?d+?.?d+?.?d+?.?d+)[],]';
$out_pat = '^[LOGTIME] ?S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
'Disconnected.*? (?:?[|rip=)[:f]*(?d+?.?d+?.?d+?.?d+)[],]';

↓このブロックのCUTを取り外し,Postfix で Berkeley を使用する設定にする
#====================== Postfix BerkeleyDB =======================START=
# If you comment-out (or remove) the two surrounding =cut lines, we'll use
# BerkeleyDB instead of DB_File.

use BerkeleyDB;

#$mynet_func = ?&mynet_postfix; # Use the default
$tie_func = ?&tie_BerkeleyDB;
$sync_func = ?&sync_BerkeleyDB;
$flock = 0;

my $dbh;

# We must tie the global %db using the global $dbfile. Also sets $dbh for
# our sync function.
sub tie_BerkeleyDB
{
$dbh = tie %db,'BerkeleyDB::Hash',-Filename=>"$dbfile.db",-Flags=>DB_CREATE
or die "$0: cannot dbopen $dbfile: $!?n";
}

sub sync_BerkeleyDB
{
$dbh->db_sync and die "$0: sync $dbfile: $!?n";
}
#====================== Postfix BerkeleyDB =========================END=
------------------
・FC4 の場合,標準の Dovecot を使う場合,
$pat = '^(... .. ..:..:..) ?S+ (?:imap|pop3)-login: ' .
'Login: ?S+ ?[?:?:ffff?:(?d+?.?d+?.?d+?.?d+)?]';
と変更します。(maillog に記録される形式が異なるため)
・POPbeforeSMTP が使用する perl モジュールをインストール
# perl -MCPAN -e shell
cpan> install Time::HiRes
cpan> install File::Tail
cpan> install Date::Parse
cpan> install Net::Netmask
cpan> install BerkeleyDB
↑インストールする前に,既に組み込まれているか,確かめた方が良いかも(以下のコマンドを打ち込んでください)。
cpan> m Time::HiRes
cpan> m File::Tail
cpan> m Date::Parse
cpan> m Net::Netmask
cpan> m BerkeleyDB
・Postfix の main.cf の smtpd_recipient_restrictions に以下を追加します
check_client_access hash:/etc/postfix/pop-before-smtp
・POPbeforeSMTP の起動
/etc/init.d/pop-before-smtp start
・自動起動するようになっているか,確認
chkconfig --list|grep pop
なっていなかったら
chkconfig --lebel 3 pop-before-smtp on
としておきます(level は環境によって変更してください)