2013/04/07: 「起動スクリプト」の赤字部分の箇所を追加(というか修正)
postfwdは、perlで書かれたpostfix用ポリシーサーバーで、複数の条件を組み合わせたACLが作成可能なので、postfix単体では実現できなかったSPAM対策に利用する事ができます。
今回は、そのセットアップについて記載します(といっても難しいところはないのですが)。
#評価環境はCentOS6.3
#postfwdには、version1 と version2が存在しますが、今回はversion2を利用
事前準備
動作に必要な下記のperlモジュールをインストールしておく。・Net::Server::Daemonize
・Net::Server::Multiplex
・Net::Server::PreFork
→上記3つはEPELリポジトリのperl-Net-Server含まれるので、そちらをインストールした
・Net::DNS
→Baseリポジトリからperl-Net-DNSをインストールした
インストール
tarボールの中に、version1とversion2の両方のものが含まれているが、今回はversion2用のものを任意のディレクトリにコピーする形でインストールを実施する。※なお、設定ファイルpostfwd.cfはひとまず空ファイルで用意しています
[root@cent6 ~]# wget http://postfwd.org/postfwd.tar.gz
[root@cent6 ~]# tar zxf postfwd.tar.gz
[root@cent6 ~]# cd postfwd-1.34/
[root@cent6 postfwd-1.34]# cp sbin/postfwd2 /usr/local/sbin
[root@cent6 postfwd-1.34]# cp bin/postfwd-script.sh /etc/rc.d/init.d/postfwd2
[root@cent6 postfwd-1.34]# touch /etc/postfix/postfwd.cf
起動スクリプトの修正
インストールした状況に合わせて、以下のように修正する。→修正後のdiff出力を参照ください
[root@cent6 postfwd-1.34]# vi /etc/rc.d/init.d/postfwd2
[root@cent6 postfwd-1.34]# diff -u bin/postfwd-script.sh /etc/rc.d/init.d/postfwd2
--- bin/postfwd-script.sh 2010-11-15 07:03:42.000000000 +0900
+++ /etc/rc.d/init.d/postfwd2 2013-04-07 21:45:26.224068602 +0900
@@ -3,22 +3,27 @@
# Startscript for the postfwd daemon
#
# by JPK
+# chkconfig: 35 75 25
+# description: postfwd is written in perl to combine complex postfix restrictions
+# in a ruleset similar to those of the most firewalls.
PATH=/bin:/usr/bin:/usr/local/bin
# path to program
-#PFWCMD=/usr/local/postfwd/sbin/postfwd2
-PFWCMD=/usr/local/postfwd/sbin/postfwd
+#PFWCMD=/usr/local/postfwd/sbin/postfwd
+PFWCMD=/usr/local/sbin/postfwd2
# rulesetconfig file
PFWCFG=/etc/postfix/postfwd.cf
# pidfile
-PFWPID=/var/tmp/postfwd.pid
+#PFWPID=/var/tmp/postfwd.pid
+PFWPID=/var/tmp/postfwd2-master.pid
# daemon settings
PFWUSER=nobody
PFWGROUP=nobody
PFWINET=127.0.0.1
-PFWPORT=10040
+#PFWPORT=10040
+PFWPORT=10045
# recommended extra arguments
PFWARG="--shortlog --summary=600 --cache=600 --cache-rbl-timeout=3600 --cleanup-requests=1200 --cleanup-rbls=1800 --cleanup-rates=1200"
@@ -40,7 +45,7 @@
stop*) ${PFWCMD} --interface=${PFWINET} --port=${PFWPORT} --pidfile=${PFWPID} --kill;
;;
- reload*) ${PFWCMD} --interface=${PFWINET} --port=${PFWPORT} --pidfile=${PFWPID} -- reload;
+ reload*) ${PFWCMD} --interface=${PFWINET} --port=${PFWPORT} --pidfile=${PFWPID} --reload;
;;
restart*) $0 stop;
[root@cent6 postfwd-1.34]#
自動起動の設定と起動
[root@cent6 postfwd-1.34]# chkconfig --add postfwd2
[root@cent6 postfwd-1.34]# chkconfig postfwd2 on
[root@cent6 postfwd-1.34]# /etc/rc.d/init.d/postfwd2 start
Starting postfwd2...
[root@cent6 postfwd-1.34]#
状態確認
[root@cent6 ~]# ps -fC postfwd2
UID PID PPID C STIME TTY TIME CMD
nobody 1201 1 0 23:51 ? 00:00:00 /usr/local/sbin/postfwd2 --shortlog --summary=600 --cache=600 --cache-rbl-timeout=3600
nobody 1202 1201 0 23:51 ? 00:00:00 postfwd2::cache
nobody 1203 1201 0 23:51 ? 00:00:00 postfwd2::policy
nobody 1204 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1205 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1206 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1207 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1208 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1209 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1210 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1211 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1212 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
nobody 1213 1203 0 23:51 ? 00:00:00 postfwd2::policy::child
[root@cent6 ~]#
[root@cent6 postfwd-1.34]# netstat -antp | grep postfwd2
tcp 0 0 127.0.0.1:10045 0.0.0.0:* LISTEN 1288/ postfwd2:
[root@cent6 postfwd-1.34]#
また、メールログには以下のように出力されている。
Mar 3 23:51:13 cent6 postfwd2/master[1200]: postfwd2 1.34 starting
Mar 3 23:51:13 cent6 postfwd2/master[1201]: Started cache at pid 1202
Mar 3 23:51:13 cent6 postfwd2/master[1202]: 2013/03/03-23:51:13 postfwd2::cache (type Net::Server::Multiplex) starting! pid(1202)
Mar 3 23:51:13 cent6 postfwd2/master[1201]: Started server at pid 1203
Mar 3 23:51:13 cent6 postfwd2/master[1203]: 2013/03/03-23:51:13 postfwd2::server (type Net::Server::PreFork) starting! pid(1203)
Mar 3 23:51:13 cent6 postfwd2/master[1202]: Binding to UNIX socket file /var/tmp/postfwd2-cache.socket using SOCK_STREAM#012
Mar 3 23:51:13 cent6 postfwd2/cache[1202]: ready for input
Mar 3 23:51:13 cent6 postfwd2/master[1203]: Binding to TCP port 10045 on host 127.0.0.1#012
Mar 3 23:51:13 cent6 postfwd2/policy[1203]: critical: no rules found - i feel useless (have you set -f or -r?)
Mar 3 23:51:13 cent6 postfwd2/policy[1203]: ready for input
以上で、セットアップは完了です。
設定ファイルpostfwd.cfが空ファイルなので、実際は何の役にも立ってませんが.....
#設定は、次回書こうと思います。
0 件のコメント:
コメントを投稿