pop-before-smtp 是用pop認證來代替smtp認證帳號,只要寄信之前先收信後就可以寄信,這時候smtp認證就是使用之前的pop認證
準備:
1. perl modules
Time::HiRes
File::Tail
Net::Netmask
Date::Parse
DB_File
可至
http://search.cpan.org/ 下載安裝
2.pop-before-smtp-1.42.tar.gz
可至
https://sourceforge.net/project/showfiles.php?group_id=5017 下載安裝
安裝:
1. 安裝所需的 perl modules
# perl Makefile.PL
# make
# make install
註: 這是針對perl modules 安裝的方法
2. 設定 pop-before-smtp
解壓縮:
# tar -zxvf pop-before-smtp-1.42.tar.gz
進入該目錄:
# cd pop-before-smtp-1.42.tar.gz
修改 pop-before-smtp-conf.pl
# vi pop-before-smtp-conf.pl
找到下列三個參數後並做以下設定
$file_tail{’name’} = ‘/var/log/maillog’; #設定mail的log檔
$grace = 30*60; #有效時間,單位是秒
$dbfile = ‘/etc/postfix/pop-before-smtp’; #允許ip的db存放位置
找到支援vm-pop3d的設定, 並將註解拿掉
# A Modern vm-pop3d can use a normal, 1-line pattern:
$pat = ‘^[LOGTIME] \S+ vm-pop3d\[\d+\]: ‘ .
‘User .+? logged in from (\d+\.\d+\.\d+\.\d+)’;
3. 測試 pop-before-smtp 是否可用
# ./pop-before-smtp –config=./pop-before-smtp-conf.pl –debug –nowrite –reprocess
註: 如果有列出日期及ip等資料,則表示正確
4. 安裝 pop-before-smtp
# cp pop-before-smtp.init /etc/rc.d/init.d/pop-before-smtp
# cp pop-before-smtp /usr/sbin/
# cp pop-before-smtp-conf.pl /etc
5. 將 pop-before-smtp 加入 chkconfig,並開機自動啟動
# chkconfig –add pop-before-smtp
# chkconfig pop-before-smtp on
6. 啟動 pop-before-smtp
# service pop-before-smtp start
or
# /etc/rc.d/init.d/pop-before-smtp start
註: 啟動後在/etc/postfix/下會多出一個 pop-before-smtp.db檔案
7. 修改postfix的main.cf
# vi /etc/postfix/main.cf
修改 smtpd_recipient_restrictions
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient, check_client_access hash:/etc/postfix/pop-before-smtp, check_relay_domains
增加 check_client_access hash:/etc/postfix/pop-before-smtp 這一行
8. 重新啟動 postfix
# service postfix restart
or
# /etc/rc.d/init.d/postfix restart
本文轉自遨遊飛翔