Displaying posts written in

8月 2009

BlockHostsの導入・POP3編

インストールまで。標準の設定では sshd と ftpd しか有効にならない。

古い Qpopper が動いているサーバでPOP3サービスに対する攻撃を防御する必要が生じたので、POP3用の設定を追加した。

blockhosts.cfgの設定

LOGFILES に maillog のパスを追加。

LOGFILES = [ "/var/log/secure","/var/log/maillog", ]

ALL_REGEXS にログパターンを追加。qpopper用のパターンは標準で含まれてはいるが、実行ファイルの名称(=ログに記録されるプログラム名)が異なっていたのと、不正パスワード以外の失敗パターンも捕捉したかったので、下記のように追加した。

#    "qpopper-Fail":
#        r'{LOG_PREFIX{qpopper}} .* \({HOST_IP}\): -ERR \[AUTH] Password supplied ',

    "qpopper-Fail-Password":
        r'{LOG_PREFIX{in.qpopper}} .* \({HOST_IP}\): -ERR \[AUTH] Password supplied ',

    "qpopper-Fail-Access":
        r'{LOG_PREFIX{in.qpopper}} .* \({HOST_IP}\): -ERR \[AUTH] Access is blocked ',

    "qpopper-Fail-PAM":
        r'{LOG_PREFIX{in.qpopper}} .* \({HOST_IP}\): -ERR \[AUTH] PAM authentication failed ',

ENABLE_RULES の正規表現を修正して、先ほど追加した qpopper 用ルールを有効にしておく。この設定を明示的に行わないと sshd と ftpd しか有効にならないので注意が必要。

ENABLE_RULES = r'(?i)(sshd|.*ftpd|qpopper).*'

テスト

dry-run オプションを付けて実行。

sudo blockhosts.py --verbose --dry-run

hosts.allowの修正

blockhosts.py の行にqpopperを追加する。

in.qpopper, in.proftpd: ALL: spawn /usr/bin/blockhosts.py --verbose --echo "%c-%s" >> /var/log/blockhosts.log 2>&1 : allow