taRgreyによるスパム対策 合計:
昨日:
今日:

更新日:2011/3/29

ホームへ戻る  IP・ドメイン許可
taRgrey(Postgrey+パッチ)でスパムメールをSMTP接続の段階で遮断する。
k2net.hakubaさんが、開発したもので、スパムメールに効果があります。
前提条件:postfixが構築済みであること
 
 
◆postfixにパッチを施す <<TOP

 

[root@server ~]# yum -y install yum-utils ← yum-utilsのインストール

[root@server ~]# vi /etc/yum.repos.d/CentOS-Base.repo ← yumリポジトリ設定ファイル編集

[base-source]
name=CentOS-$releasever - Base Source
baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates-source]
name=CentOS-$releasever - Updates Source
baseurl=http://mirror.centos.org/centos/$releasever/updates/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras-source]
name=CentOS-$releasever - Extras Source
baseurl=http://mirror.centos.org/centos/$releasever/extras/SRPMS/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[root@server ~]# yumdownloader --noplugins --source postfix ← postfixのSRPMをダウンロード		  

[root@server ~]# rpm -ivh postfix-2.3.3-2.1.el5_2.src.rpm
    ・
    ・
警告: グループ mockbuild は存在しません - root を使用します ← 左記のように警告が出るがOK
########################################### [100%]
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します

[root@server ~]# cd /usr/src/redhat/SOURCES/

[root@server SOURCES]# tar zxvf postfix-2.3.3.tar.gz
    ・
    ・
postfix-2.3.3/TLS_CHANGES
postfix-2.3.3/TLS_LICENSE
postfix-2.3.3/TLS_TODO
postfix-2.3.3/US_PATENT_6321267
postfix-2.3.3/makedefs
postfix-2.3.3/postfix-install
postfix-2.3.3/pflogsumm-conn-delays-dsn-patch

[root@server SOURCES]# cd postfix-2.3.3 

[root@server postfix-2.3.3]# wget http://k2net.hakuba.jp/pub/postfix-sleep.patch

--10:01:34--  http://k2net.hakuba.jp/pub/postfix-sleep.patch
k2net.hakuba.jp をDNSに問いあわせています... 210.188.204.245
k2net.hakuba.jp|210.188.204.245|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1759 (1.7K) [text/plain]
Saving to: `postfix-sleep.patch'

100%[======================================================================>] 1,759       --.-K/s   in 0s     

10:01:34 (53.2 MB/s) - `postfix-sleep.patch' を保存しました [1759/1759]

[root@server postfix-2.3.3]# patch -p1 < postfix-sleep.patch
patching file src/smtpd/smtpd_check.c

[root@server postfix-2.3.3]# cd ..

[root@server SOURCES]# rm -f postfix-2.3.3.tar.gz && tar czvf postfix-2.3.3.tar.gz postfix-2.3.3
    ・
    ・
    ・
postfix-2.3.3/src/qmgr/qmgr_message.c
postfix-2.3.3/src/qmgr/qmgr_peer.c
postfix-2.3.3/src/proxymap/
postfix-2.3.3/src/proxymap/proxymap.c
postfix-2.3.3/src/proxymap/.indent.pro
postfix-2.3.3/src/proxymap/Makefile.in
postfix-2.3.3/IPv6-ChangeLog

[root@server SOURCES]# rm -rf postfix-2.3.3

[root@server SOURCES]# cd

[root@server ~]# rpmbuild -bb --clean --define "dist .`echo postfix-*.src.rpm |awk -F. '{print $(NF-2)}'`" /usr/
src/redhat/SPECS/postfix.spec
    ・
    ・
    ・
書き込み完了: /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.el5_2.i386.rpm
書き込み完了: /usr/src/redhat/RPMS/i386/postfix-pflogsumm-2.3.3-2.1.el5_2.i386.rpm
書き込み完了: /usr/src/redhat/RPMS/i386/postfix-debuginfo-2.3.3-2.1.el5_2.i386.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.66952
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd postfix-2.3.3
+ /bin/rm -rf /var/tmp/postfix-buildroot
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.66952
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf postfix-2.3.3
+ exit 0

[root@server ~]# rpm -Uvh --force /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.el5_2.i386.rpm

準備中...                ########################################### [100%]
   1:postfix                ########################################### [100%]

[root@server ~]# /etc/rc.d/init.d/postfix restart

postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]

[root@server ~]# rm -f /usr/src/redhat/RPMS/i386/postfix-*

[root@server ~]# rpmbuild --rmsource --rmspec /usr/src/redhat/SPECS/postfix.spec

[root@server ~]# rm -f postfix-2.3.3-2.1.el5_2.src.rpm

[root@server ~]# 

 

◆Postgreyのインストール <<TOP

@、最新版Lはダウンロードページで確認すること。

[root@server ~]# wget http://apt.sw.be/redhat/el5/en/SRPMS.rpmforge/postgrey-1.31-1.rf.src.rpm

--10:51:32--  http://apt.sw.be/redhat/el5/en/SRPMS.rpmforge/postgrey-1.31-1.rf.src.rpm
apt.sw.be をDNSに問いあわせています... 193.1.193.67
apt.sw.be|193.1.193.67|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 42432 (41K) [application/x-redhat-package-manager]
Saving to: `postgrey-1.31-1.rf.src.rpm'

100%[======================================================================>] 42,432      36.0K/s   in 1.2s   

10:51:35 (36.0 KB/s) - `postgrey-1.31-1.rf.src.rpm' を保存しました [42432/42432]

[root@server ~]# rpm -ivh postgrey-1.31-1.rf.src.rpm

   1:postgrey               警告: ユーザ dag は存在しません - root を使用します
警告: グループ dag は存在しません - root を使用します
警告: ユーザ dag は存在しません - root を使用します
警告: グループ dag は存在しません - root を使用します
警告: ユーザ dag は存在しません - root を使用します
警告: グループ dag は存在しません - root を使用します
警告: ユーザ dag は存在しません - root を使用します
警告: グループ dag は存在しません - root を使用します
########################################### [100%]

[root@server ~]# cd /usr/src/redhat/SOURCES/

[root@server SOURCES]# tar zxvf postgrey-1.31.tar.gz
postgrey-1.31/
postgrey-1.31/postgrey_whitelist_recipients
postgrey-1.31/postgrey
postgrey-1.31/postgrey_whitelist_clients
postgrey-1.31/Changes
postgrey-1.31/contrib/
postgrey-1.31/contrib/postgreyreport
postgrey-1.31/COPYING
postgrey-1.31/policy-test
postgrey-1.31/README.exim
postgrey-1.31/README
[root@server SOURCES]# cd postgrey-1.31

[root@server postgrey-1.31]# wget http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.31.patch
--10:56:10--  http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.31.patch
k2net.hakuba.jp をDNSに問いあわせています... 210.188.204.245
k2net.hakuba.jp|210.188.204.245|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 11572 (11K) [text/plain]
Saving to: `targrey-0.31-postgrey-1.31.patch'

100%[======================================================================>] 11,572      --.-K/s   in 0.07s  

10:56:10 (157 KB/s) - `targrey-0.31-postgrey-1.31.patch' を保存しました [11572/11572]

[root@server postgrey-1.31]# patch -p0 < targrey-0.31-postgrey-1.31.patch
patching file postgrey
[root@server postgrey-1.31]# cd ..
[root@server SOURCES]# rm -f postgrey-1.31.tar.gz && tar czvf postgrey-1.31.tar.gz postgrey-1.31
postgrey-1.31/
postgrey-1.31/policy-test
postgrey-1.31/Changes
postgrey-1.31/README
postgrey-1.31/postgrey
postgrey-1.31/COPYING
postgrey-1.31/README.exim
postgrey-1.31/postgrey_whitelist_clients
postgrey-1.31/contrib/
postgrey-1.31/contrib/postgreyreport
postgrey-1.31/postgrey_whitelist_recipients
postgrey-1.31/targrey-0.31-postgrey-1.31.patch
[root@server SOURCES]# rm -rf postgrey-1.31

[root@server SOURCES]# cd
[root@server ~]# rpmbuild -bb --clean /usr/src/redhat/SPECS/postgrey.spec
    ・
    ・
    ・
伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/postgrey-1.31-1.rf-root
書き込み完了: /usr/src/redhat/RPMS/noarch/postgrey-1.31-1.rf.noarch.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.45622
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd postgrey-1.31
+ /bin/rm -rf /var/tmp/postgrey-1.31-1.rf-root
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.45622
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf postgrey-1.31
+ exit 0
[root@server ~]# yum -y install postgrey && rpm -e postgrey ← postgrey依存パッケージのインストール
    ・                 ↑ パッチを施したものをインストールするので標準は削除
    ・
    ・
Total download size: 66 k
Downloading Packages:
(1/2): perl-IO-Multiplex- 100% |=========================|  23 kB    00:00     
(2/2): postgrey-1.32-1.el 100% |=========================|  43 kB    00:01     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-IO-Multiplex                                 [1/2] 
  Installing     : postgrey                                          [2/2] 

Installed: postgrey.noarch 0:1.32-1.el5.rf
Dependency Installed: perl-IO-Multiplex.noarch 0:1.10-1.el5.rf
Complete!
[root@server ~]# rpm -ivh /usr/src/redhat/RPMS/noarch/postgrey-1.31-1.rf.noarch.rpm
         ↑ 作成したpostgreyのインストール
準備中...                ########################################### [100%]
   1:postgrey               ########################################### [100%]
[root@server ~]# rm -f /usr/src/redhat/RPMS/noarch/postgrey-*
[root@server ~]# rpmbuild --rmsource --rmspec /usr/src/redhat/SPECS/postgrey.spec
[root@server ~]# rm -f postgrey-1.31-1.rf.src.rpm

 

 

 
◆Postfixの設定 <<TOP

 

[root@server ~]# vi /etc/postfix/main.cf ← Postfix設定ファイル編集
    ・
    ・
    ・
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = 
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
ーー ここから ーー ← 追加する部分
    check_recipient_access hash:$config_directory/whitelist_recipient
    check_client_access    hash:$config_directory/whitelist_client
    check_client_access    regexp:$config_directory/permit_client_nots25r
    check_policy_service   inet:60000
    permit
smtpd_data_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
    check_recipient_access hash:$config_directory/whitelist_recipient
    check_client_access    hash:$config_directory/whitelist_client
    check_client_access    regexp:$config_directory/permit_client_nots25r
    check_policy_service   inet:60000
    permit
ーー ここまで ーー
message_size_limit = 10485760

[root@server ~]# wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz
         ↑ taRgrey用Postfix設定ファイルダウンロード
--11:19:18--  http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz
k2net.hakuba.jp をDNSに問いあわせています... 210.188.204.245
k2net.hakuba.jp|210.188.204.245|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5707 (5.6K) [application/x-tar]
Saving to: `postfix.conf.2.tar.gz'

100%[======================================================================>] 5,707       --.-K/s   in 0.03s  

11:19:18 (176 KB/s) - `postfix.conf.2.tar.gz' を保存しました [5707/5707]

[root@server ~]# tar zxvf postfix.conf.2.tar.gz ← taRgrey用Postfix設定展開
postfix.conf.2/
postfix.conf.2/Rgrey.main.cf
postfix.conf.2/ClamSMTP.master.cf
postfix.conf.2/taRgrey.main.cf
postfix.conf.2/reject_helo
postfix.conf.2/reject_ns
postfix.conf.2/check_ns
postfix.conf.2/prepend_client
postfix.conf.2/reject_mx
postfix.conf.2/whitelist_client
postfix.conf.2/reject_client_blackip
postfix.conf.2/permit_client_nots25r
postfix.conf.2/whitelist_recipient
postfix.conf.2/check_sender_info
[root@server ~]# cp postfix.conf.2/whitelist_recipient /etc/postfix/ ← whitelist_recipientコピー

[root@server ~]# cp postfix.conf.2/whitelist_client /etc/postfix/ ← whitelist_clientコピー

[root@server ~]# cp postfix.conf.2/permit_client_nots25r /etc/postfix/ ← permit_client_nots25rコピー

[root@server ~]# rm -rf postfix.conf.2

[root@server ~]# rm -f postfix.conf.2.tar.gz

[root@server ~]# postmap /etc/postfix/whitelist_recipient ← whitelist_recipientのDB化

[root@server ~]# postmap /etc/postfix/whitelist_client ← whitelist_clientのDB化
[root@server ~]# 

 

◆IP・ドメイン許可 <<TOP

追加で特定のIPアドレスやドメインを許可するときには下記のように行う

[root@server ~]# vi /etc/postfix/whitelist_client ← whitelist_clientの編集
# *** Starpit whitelist ***
# h165.n068.nhk.or.jp
nhk.or.jp OK
# kasion.com
202.181.237.199 OK
202.181.237.195 OK    ・    ・    ・   最終行に追加していく #google.com google.com OK ←google.comの許可 [root@server ~]# postmap /etc/postfix/whitelist_client ← whitelist_clientの再DB化 [root@server ~]# /etc/rc.d/init.d/postgrey restart ← postgreyの再起動 postgrey を停止中: [ OK ] postgrey を起動中: [ OK ] [root@server ~]# /etc/rc.d/init.d/postfix restart ← postfixの再起動 postfix を停止中: [ OK ] postfix を起動中: [ OK ] [root@server ~]#

 

 
◆Postgreyの設定 <<TOP

 

[root@server ~]# vi /etc/rc.d/init.d/postgrey ← Postgrey起動スクリプト編集
OPTIONS="--unix=$SOCKET"
   
OPTIONS="--dbdir=$DBPATH --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600"  
 ↑ 起動オプションをtaRgreyモードにする
  
[root@server ~]# 

      

 

◆Postgreyの起動 <<TOP

@、

[root@server ~]# /etc/rc.d/init.d/postgrey start
postgrey を起動中:                                         [  OK  ]
[root@server ~]# chkconfig postgrey on

[root@server ~]# chkconfig --list postgrey
postgrey        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@server ~]# /etc/rc.d/init.d/postfix restart
postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]
[root@server ~]# 

 

◆taRgreyの確認 <<TOP

 

[root@server ~]# grep postfix/smtpd /var/log/maillog|grep "NOQUEUE: warn" ← 遅延応答ログ確認

Apr 21 11:23:38 server postfix/smtpd[26173]: NOQUEUE: warn: RCPT from c-24-23-49-195.hsd1.ca.comcast.net
[24.23.49.195]: ; from= trystings6@tauondi.sa.edu.au> to= admin@arisonsvr.org> proto=ESMTP helo=
Apr 21 11:24:43 server postfix/smtpd[26173]: NOQUEUE: warn: RCPT from c-24-23-49-195.hsd1.ca.comcast.net
[24.23.49.195]: ; from= consortiums37@sundevildvd.b.tep1.com> to= admin@arisonsvr.org> proto=ESMTP helo=
Apr 21 11:26:41 server postfix/smtpd[26195]: NOQUEUE: warn: RCPT from c-24-23-49-195.hsd1.ca.comcast.net
[24.23.49.195]: ; from= equuleust00@telenormail.se> to= admin@arisonsvr.org> proto=ESMTP helo=

[root@server ~]# grep postfix/smtpd /var/log/maillog|grep "NOQUEUE: sleep" |grep pipelining
         ↑ 遅延を待たずにDATAを送ってきたログの確認。何もなければ、表示されない
[root@server ~]# grep postfix/smtpd /var/log/maillog|grep "NOQUEUE: sleep" |grep "lost connection"
         ↑ 遅延を待たずに切断したログの確認。何もなければ、表示されない
[root@server ~]# 

 

◆PostfixとPostgreyの自動アップデート無効化 <<TOP

 

[root@server ~]# 
		

 

 
◆logwatch設定 <<TOP

logwatchからのメールにPostfixパッチによる遅延応答ログが大量に出力されてしまわないようにする

[root@server ~]# echo NOQUEUE >> /etc/logwatch/conf/ignore.conf
[root@server ~]# 

 

 
   
   
   
◆広告等 <<TOP
 
TOPへ

Copyright(C) 2005-2011 arisonserver. All rights reserved.