spamdyke qmail freebsd vpopmail

Spamdyke+qmail スパムフィルター

spamdyke qmail freebsd vpopmail

spamdyke

条件:qmail+vpopmail+FreeBSD環境である事

FreeBSD+qmail+tcpserver+vpopmailシンプルなメールサーバ構築

 

━─━─━─━─━─━─━─━─━─━─━─━─━
Postfixなどメールサーバの構築を有償で承ります。
SMTP,POP3,IMAP,SSL,s25R対応
スパム,ウィルスにもフィルター対応
WEBブラウザでのアカウント管理対応

>>お問い合わせ

━─━─━─━─━─━─━─━─━─━─━─━─━

マイナーだけど多機能で嬉しいSpamdyke

qmail自体にスパム対策機能がないので、外部のものに頼る事になります。今回ご紹介するSpamdykeDNSBL+S25R機能+グレイリスティングに対応しており頼もしい。ただし、メールサーバーは止めてはいけないサービスかつ、万一障害が起きた場合に即時対応復旧が求められます、その点でマイナーすぎる故苦労するかも・・・。どれぐらいマイナーかというと、Spamdykeで検索して日本語の情報が2件しか出ない程度にマイナーです。つまり、今なら日本語でSpamdykeの記事をかけば誰でもエヴァンジェリストを名乗れます。

 

RBLReal-time Blackhole List

DNSBL / DNS Blackhole List

 

 

迷惑メール(スパムメール)の中継・発信元のIPアドレスをまとめたリスト。メール受信サーバが参照して、受信拒否等の対策に役立てる。

インターネット上には企業や個人、有志のグループなどがまとめたRBLが多数公開されており、メールサーバソフトの多くは管理者が指定したRBLを 参照して、掲載されているアドレスからのメール受信を拒否することができるようになっている。リストの公開やサーバからの問い合わせにはDNSの仕組みやプロトコルが利用されている。

RBLという呼称はMAPS社(現在はトレンドマイクロ社の一部)の「MAPS RBL」から広まったものだが、これは同社の登録商標であるため、一般名詞としてはDNSBLと呼ぶべきとされている。@see e-words

ざっくりいうと、世界共通のスパムリスト。その為、自身のサーバーが不正中継などでブラックリストに載ると相手に送信メールが届かなくなる場合がある。管理しているドメインがブラックリストに載ってしまったサーバー管理者は腹を切らなければいけない。

 

 

 

S25R(Selective SMTP Rejection.)

 

スパム対策のひとつ.

浅見秀雄氏が考案したもので,メール中継サーバからのSMTPアクセスは受け入れるがエンドユーザーのコンピュータからの直接のSMTPアクセスは拒絶する.IPアドレスの逆引きで得られるFQDNの特徴からメール中継サーバかエンドユーザーのコンピュータかを判別する.@see hatena @see スパム対策術

ざっくりいうと、DNSが逆引きできないものは弾く。

 

 

Greylisting(グレイリスティング)方式

Greylisting方式は、無条件にメールの配送を拒否するBlacklist(ブラックリスト)、無条件に配送を許可するWhitelist(ホワイトリスト)に加えて、判断保留用のGreylist(グレイリスト)を用いる方式です。
この方式では、初めてメールを送信してくるサーバに対して、一時的な配送拒否を行うとともにGreylistに登録します。
電子メールサーバの規格では、一時的な拒否の際には、ある程度時間を空けて再配送する事が求められており、規格に沿ったメールサーバソフトであれば一般的に15分前後の間を置いて再配送を試みるはずです。
こうして、Greylistに載っているサーバが、5分以上間を空けて再度メールの送信を試みた場合に、初めてメールの配送を許可します。
迷惑メールの送信に利用されるツールは、短時間に大量のメールを捌くため、一時拒否に対して再配送を試みなかったり、一時拒否されると即座に再配送を行うような動きをするものが多く、こうしたメールの大量送信用ツールから送られる迷惑メールを受信前に遮断することが可能です。
また、頻繁にメールをやりとりするメールサーバは、自動的にホワイトリストに登録され、一定期間(現状は35日)は無条件で配送が許可されるようになります。
@see 総合情報メディアセンター

ざっくりいうと、一時拒否して再送してこないものは弾く。

 

 

Spamdyke構築

[root@sysg-freebsd qmail-1.03]# cd /usr/ports

 

[root@sysg-freebsd mail]# portinstall mail/spamdyke

 

×そのままでOK

tls
DOCS

 

 

http://www.spamdyke.org/
===> Cleaning for spamdyke-5.0.0
[Updating the pkgdb

in /var/db/pkg … – 139 packages found (-0 +1) . done]

 

 

設定ファイル作成(@see Spamdyke document)

# vi /etc/spamdyke.conf

 

[bash] #none, info, vervose, excesive
log-level=verbose

#コンフィグディレクトリ
#config-dir=/etc/spamdyke.d

#local-domains-file=/var/qmail/control/rcpthosts

max-recipients=20

#タイムアウト設定
#connection-timeout-secs=SECS
#connection-timeout-secs=120
connection-timeout-secs=180

#Close the connection after SECS seconds of inactivity.
idle-timeout-secs=60

#グレイリスト none always always-create-dir only only-create-dir
graylist-level=always

graylist-dir=/var/qmail/spamdyke/graylist

graylist-min-secs=300

graylist-max-secs=1814400

#送信者ブラックリスト
sender-blacklist-file=/var/qmail/spamdyke/blacklist_senders

#送信者ホワイトリスト
sender-whitelist-file=/var/qmail/spamdyke/whitelist_senders

recipient-blacklist-file=/var/qmail/spamdyke/blacklist_recipients

#ip-in-rdns-keyword-file=/var/qmail/spamdyke/blacklist_keywords

#ブラックリストIP
ip-blacklist-file=/var/qmail/spamdyke/blacklist_ip

#ブラックリストrdns
#rdns-blacklist-dir=/home/vpopmail/blacklist_rdns.d

#ホワイトリストrdns
rdns-whitelist-file=/var/qmail/spamdyke/whitelist_rdns

#ホワイトリストIP
ip-whitelist-file=/var/qmail/spamdyke/whitelist_ip

#

#逆引きができないIPからのメールははじく(※厳しい設定)
reject-empty-rdns

#reject-unresolvable-rdns //reverse dbs not matched rejected

greeting-delay-secs=5

#never-graylist-ip-file=/var/qmail/spamdyke/never_graylist

#RBLフィルター
dns-blacklist-entry=zen.spamhaus.org
dns-blacklist-entry=list.dsbl.org
dns-blacklist-entry=zombie.dnsbl.sorbs.net
dns-blacklist-entry=dul.dnsbl.sorbs.net
dns-blacklist-entry=bogons.cymru.com

#reject-missing-sender-mx

#full-log-dir=/var/log/spamdyke

#SSL/TLS
#tls-certificate-file=/var/qmail/control/servercert.pem
#tls-level=smtps

#local-domains-file=/var/qmail/control/rcpthosts

#policy-url=http://www.your-domain-here.com/spam_policy

[/bash]

 

# mkdir -p /var/qmail/spamdyke/graylist

 

必要なファイルを作ります。※一行で

[bash] # touch /var/qmail/spamdyke/blacklist_ip /var/qmail/spamdyke/blacklist_recipients /var/qmail/spamdyke/whitelist_ip /var/qmail/spamdyke/blacklist_keywords /var/qmail/spamdyke/blacklist_senders /var/qmail/spamdyke/whitelist_senders /var/qmail/spamdyke/whitelist_rdns
[/bash]

 

# chown -R qmaild:nofiles /var/qmail/spamdyke

 

コンフィグテスト

# /usr/local/bin/spamdyke –config-test -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth

 

[bash] spamdyke 5.0.0+TLS+CONFIGTEST+DEBUG (C)2014 Sam Clippinger, samc (at) silence (dot) org
http://www.spamdyke.org/

Use –help for an option summary, –more-help for option details or see README.html for complete documentation.

Testing configuration…
WARNING: Running tests as superuser root(0), group wheel(0). These test results may not be valid if the mail server runs as another user.
SUCCESS: spamdyke binary (/usr/local/bin/spamdyke) is not owned by root and/or is not marked setuid.
INFO: Running command to test capabilities: /var/qmail/bin/qmail-smtpd
DEBUG(exec_command_argv()@exec.c:480): executing command: /var/qmail/bin/qmail-smtpd
ERROR: command aborted abnormally: /var/qmail/bin/qmail-smtpd
WARNING: /var/qmail/bin/qmail-smtpd does not appear to offer TLS support. Please use (or change) the “tls-type” and “tls-certificate-file” options so spamdyke can offer, intercept or decrypt TLS traffic.
SUCCESS: /var/qmail/bin/qmail-smtpd appears to offer SMTP AUTH support. spamdyke will observe any authentication and trust its response.
INFO(config-file): Testing file read: /etc/spamdyke.conf
SUCCESS(config-file): Opened for reading: /etc/spamdyke.conf
INFO(dns-resolv-conf): Testing file read: /etc/resolv.conf
SUCCESS(dns-resolv-conf): Opened for reading: /etc/resolv.conf
INFO(ip-blacklist-file): Testing file read: /var/qmail/spamdyke/blacklist_ip
SUCCESS(ip-blacklist-file): Opened for reading: /var/qmail/spamdyke/blacklist_ip
INFO(ip-whitelist-file): Testing file read: /var/qmail/spamdyke/whitelist_ip
SUCCESS(ip-whitelist-file): Opened for reading: /var/qmail/spamdyke/whitelist_ip
SUCCESS(qmail-rcpthosts-file): Opened for reading: /var/qmail/control/rcpthosts
INFO(rdns-whitelist-file): Testing file read: /var/qmail/spamdyke/whitelist_rdns
SUCCESS(rdns-whitelist-file): Opened for reading: /var/qmail/spamdyke/whitelist_rdns
INFO(recipient-blacklist-file): Testing file read: /var/qmail/spamdyke/blacklist_recipients
SUCCESS(recipient-blacklist-file): Opened for reading: /var/qmail/spamdyke/blacklist_recipients
INFO(sender-blacklist-file): Testing file read: /var/qmail/spamdyke/blacklist_senders
SUCCESS(sender-blacklist-file): Opened for reading: /var/qmail/spamdyke/blacklist_senders
INFO(sender-whitelist-file): Testing file read: /var/qmail/spamdyke/whitelist_senders
SUCCESS(sender-whitelist-file): Opened for reading: /var/qmail/spamdyke/whitelist_senders
SUCCESS: Tests complete. No errors detected.
[/bash]

 

起動スクリプトの修正対応

 

既存の起動スクリプト確認
# cat /usr/local/etc/rc.d/qmail.sh

 

[bash] #!/bin/sh

name=qmail
HOSTNAME=hostname

case “$1” in

start)

#start qmail daemon
/var/qmail/rc start
echo “Start qmail …”

#SMTP※rblsmtpdフィルタ適用
/usr/local/bin/tcpserver -qv -l0 -HR -u id -u vpopmail -g id -g vpopmail \
-x /usr/local/vpopmail/etc/tcp.smtp.cdb 0 smtp /usr/local/bin/rblsmtpd \
/var/qmail/bin/qmail-smtpd hostname /usr/local/vpopmail/bin/vchkpw /bin/true 2>&1|\
/var/qmail/bin/splogger smtp &

#SMTP-AUTH SUBMISSION
/usr/local/bin/tcpserver -qv -l0 -HR -u id -u vpopmail -g id -g vpopmail \
-x /usr/local/vpopmail/etc/tcp.smtp.cdb 0 submission \
/usr/local/bin/rblsmtpd \
/var/qmail/bin/qmail-smtpd hostname /usr/local/vpopmail/bin/vchkpw /bin/true 2>&1|\
/var/qmail/bin/splogger submission &

#POP3d
/usr/local/bin/tcpserver -R -H 0 110 /var/qmail/bin/qmail-popup $HOSTNAME \
/usr/local/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d &

;;

stop)
echo “Stop qmail …”
PID=/bin/ps -afwww | grep qmail | grep -v grep | awk '{print $1}'
if [ ! -z “$PID” ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
;;
status)
/bin/ps -afw | grep qmail | grep -v grep
;;

*)
echo “usage: basename $0 {start|stop|status}” >&2
exit 64
;;
esac
[/bash]

 

 

変更します。
# vi /usr/local/etc/rc.d/qmail.sh

 

[bash] #!/bin/sh

name=qmail
HOSTNAME=hostname

case “$1” in

start)

#start qmail daemon
/var/qmail/rc start
echo “Start qmail …”

#SMTP ※rblsmtpdフィルタ Spamdyke適用
/usr/local/bin/tcpserver -qv -l0 -HR -u id -u vpopmail -g id -g vpopmail \
-x /usr/local/vpopmail/etc/tcp.smtp.cdb 0 smtp \
/usr/local/bin/rblsmtpd \
/usr/local/bin/spamdyke -f /etc/spamdyke.conf \
/var/qmail/bin/qmail-smtpd hostname /usr/local/vpopmail/bin/vchkpw /bin/true 2>&1|\
/var/qmail/bin/splogger smtp &

#SMTP-AUTH SUBMISSION ※rblsmtpdフィルタ Spamdyke適用
/usr/local/bin/tcpserver -qv -l0 -HR -u id -u vpopmail -g id -g vpopmail \
-x /usr/local/vpopmail/etc/tcp.smtp.cdb 0 submission \
/usr/local/bin/rblsmtpd \
/usr/local/bin/spamdyke -f /etc/spamdyke.conf \
/var/qmail/bin/qmail-smtpd hostname /usr/local/vpopmail/bin/vchkpw /bin/true 2>&1|\
/var/qmail/bin/splogger submission &

#POP3d
/usr/local/bin/tcpserver -R -H 0 110 /var/qmail/bin/qmail-popup $HOSTNAME \
/usr/local/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d &

;;

stop)
echo “Stop qmail …”
PID=/bin/ps -afwww | grep qmail | grep -v grep | awk '{print $1}'
if [ ! -z “$PID” ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
;;
status)
/bin/ps -afw | grep qmail | grep -v grep
;;

*)
echo “usage: basename $0 {start|stop|status}” >&2
exit 64
;;
esac
[/bash]

 

 

 

qmail再起動

再起動

# /usr/local/etc/rc.d/qmail.sh stop

 

# /usr/local/etc/rc.d/qmail.sh start

 

 

# tail -f /var/log/maillog

 

[bash] Feb 28 21:20:03 sysg-freebsd vpopmail[4154]: vchkpw-pop3: (PLAIN) login success bsduser@sysg-freebsd.net:123.xxx.yyy.172
Feb 28 21:20:05 sysg-freebsd qmail: 1425126005.512755 new msg 7071434
Feb 28 21:20:05 sysg-freebsd spamdyke[4150]: ALLOWED from: bsduser@sys-guard.com to: bsduser@sysg-freebsd.net origin_ip: 210.xxx.yyy.64 origin_rdns: sv94.xserver.jp auth: (unknown) encryption: (none) reason: 250_ok_1425126005_qp_4156
Feb 28 21:20:05 sysg-freebsd qmail: 1425126005.513406 info msg 7071434: bytes 1720 from <bsduser@sys-guard.com> qp 4156 uid 89
Feb 28 21:20:05 sysg-freebsd smtp: 1425126005.514494 tcpserver: end 4150 status 0
Feb 28 21:20:05 sysg-freebsd smtp: 1425126005.514686 tcpserver: status: 0/40
Feb 28 21:20:05 sysg-freebsd qmail: 1425126005.516414 starting delivery 3: msg 7071434 to local sysg-freebsd.net-bsduser@sysg-freebsd.net
Feb 28 21:20:05 sysg-freebsd qmail: 1425126005.516497 status: local 1/10 remote 0/20
[/bash]

 

後はメールの送受信を行いまずは送受信が成功すること、次にSpamdykeが動いているかチェックして完了です。

Spamdykeさんが仕事してる!

[bash] Mar 5 13:43:08 sysg-freebsd smtp: 1425530588.530835 tcpserver: ok 23166 0:160.16.59.217:25 :122.13.2.164::6216
Mar 5 13:43:08 sysg-freebsd spamdyke[23166]: FILTER_RDNS_MISSING ip: 122.13.2.164
Mar 5 13:43:09 sysg-freebsd spamdyke[23166]: DENIED_RDNS_MISSING from: xbegjm@sakura.ne.jp to: xiaonanzi11162@163.com origin_ip: 122.13.2.164 origin_rdns: (unknown) auth: (unknown) encryption: (none) reason: (empty)
Mar 5 13:43:09 sysg-freebsd spamdyke[23166]: DENIED_RDNS_MISSING from: xbegjm@sakura.ne.jp to: xiaonanzi11162@163.com origin_ip: 122.13.2.164 origin_rdns: (unknown) auth: (unknown) encryption: (none) reason: (empty)
Mar 5 13:43:10 sysg-freebsd spamdyke[23166]: DENIED_RDNS_MISSING from: aceikn@sakura.ne.jp to: xiaonanzi11162@163.com origin_ip: 122.13.2.164 origin_rdns: (unknown) auth: (unknown) encryption: (none) reason: (empty)
[/bash]

 

このドメインを弾きたい!時 /ブラックリスト

# vi /var/qmail/spamdyke/blacklist_senders

@blacklist.com

このドメインは許可して欲しい /ホワイトリスト

 

# vi /var/qmail/spamdyke/whitelist_senders

 

@whitelist.com

 

 

設定したら再起動を忘れずに。

# /usr/local/etc/rc.d/qmail.sh stop
# /usr/local/etc/rc.d/qmail.sh start

 

 

 

 

 

 

※1.ホワイトリストとブラックリストに同一ドメインを設定
ホワイトリストが優先されます。

 

※2.qmail本体のブラックリストフィルタ/var/qmail/control/badmailfromとSpamdykeフィルターの併用も可能

 

 

 

 

 

spamdyke qmail freebsd vpopmail
最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG