HOME IP Messenger FastCopy Tech-memo Diary 作者Twitter
SHIROUZU Personal Log

2011-06-20

_ [comp_misc] tarpit_checks for Postfix

Postfix で tarpit は掛けたいが、tarpit から(1~N回以上)脱出したホストは(次回以降の)tarpit対象から除外したい、という用途に tarpit_checks.py という python製の filter daemon を作成

script 内にも書いたけれど、RCPT毎に SLEEP が掛からないように、smtpd_data_restrictions に入れるか、smtpd_delay_reject=noにした上で smtpd_client_restrictions(smtpd_delay_reject=yesの場合、RCPT後に評価されるのは良いとして、なぜ Postfix は RCPT回数分呼ぶのかしらん?)に入れると良いかも。

usage: tarpit_checks.py

[--sleep=N(default:85(sec))] tarpit time

[--check_port=N(default:60001)] check for smtpd_recipient_restrictions(or etc)

[--store_port=N(default:60002)] store for smtpd_data_restrictions(or etc)

[--cmd_port=N(default:60003)] del=entry/check=entry/all/info (N == 0 means disabled)

[--bind_host=host(default:localhost)] for check_port, store_port, cmd_port

[--addr_mask=nbits(default:24)] IP address grouping for DB key

[--threshold=N(default:1(times))] threshold count for untarpit

[--db=path(default:"/etc/postfix/tarpit_checks.db")]

起動すると、locahost:60001(SLEEPするかどうかの問い合わせ用)、60002(DBへの除外エントリ登録用)、60003(DBメンテナンス用)を開いて daemon化。各種情報は syslog に出力。

データは(現状では)BerkeleyDB に格納。デフォルトでは接続元アドレスを 24bitに丸めるため、DBは肥大化しづらいはずながら、要望があれば定期 cleanup を追加しても良いかも。

(その場合、データ構造を変えたほうが良さそうだけれども)


2004|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|08|09|11|
2007|01|02|03|04|05|06|07|08|09|10|12|
2008|01|02|03|06|07|08|11|
2009|01|03|04|05|06|07|08|10|12|
2010|04|05|07|08|09|11|
2011|02|03|04|05|06|07|08|12|
2012|02|04|06|11|
2013|06|09|
2014|04|05|06|07|08|09|
2015|02|04|05|06|07|08|09|10|11|12|
2016|01|03|04|06|07|08|09|10|11|12|
2017|01|02|03|06|07|08|09|11|12|
2018|01|02|05|06|07|10|
2019|06|

Web shirouzu.jp

Categories
Android | CeSleep | comp_misc | comp_tips | fastcopy | ipmsg | mailman | misc | npop | ScheEdit | sigsleep | tdiary | thinkpad