sshguardの導入(Debian sid編)
SSH向けブルートフォースアタックのログが目につくので導入.SSHDの設定のみでは対処できないようなので…
SSHデーモン自体は鍵認証のみ許可の設定になっているので侵入される心配はないと思うが,システムのリソースを喰われる.
具体的な導入方法については検索でヒットするので,そちらを参照してください.
サマリ
/etc/network/if-up.d/sshguard
以下の内容でファイルを作成し実行権をつける.eth0の部分は自分のシステムのものに修正してください.また,ネットワークインタフェースが落るとき,チェインsshguardを消すスクリプトも必要です(当面サボリ).
#!/bin/sh [ "$IFACE" = eth0 ] || exit 0 iptables -N sshguard iptables -A INPUT -p tcp --dport 22 -j sshguard
追加したらネットワークインタフェースをdown→upする.
/etc/syslog-ng/syslog-ng.conf
以下を最後に追加.
# pass only entries with auth+authpriv facilities that contain sshd filter sshlogs { facility(auth, authpriv) and match("sshd"); }; # pass to this process with this template (avoidsprefixes) destination sshguardproc { program("/usr/local/sbin/sshguard" template("$DATE $FULLHOST $MESSAGE\n")); }; log { source(s_all); filter(sshlogs); destination(sshguardproc); };
修正後,syslog-ngに設定ファイルをreloadさせる.
killall -HUP syslog-ng
ログ例: アタックサイトからのパケットの拒否と,一定時間後の解除
Dec 20 14:02:48 hikari sshd[24504]: Did not receive identification string from 218.6.128.2 Dec 20 14:02:48 hikari sshguard[2166]: Matched IP address 218.6.128.2 Dec 20 14:13:19 hikari sshd[2473]: Invalid user staff from 218.6.128.2 Dec 20 14:13:19 hikari sshguard[2166]: Matched IP address 218.6.128.2 Dec 20 14:13:27 hikari sshd[2612]: Invalid user sales from 218.6.128.2 Dec 20 14:13:27 hikari sshguard[2166]: Matched IP address 218.6.128.2 Dec 20 14:13:35 hikari sshd[2764]: Invalid user recruit from 218.6.128.2 Dec 20 14:13:35 hikari sshguard[2166]: Matched IP address 218.6.128.2 Dec 20 14:13:35 hikari sshguard[2166]: Blocking 218.6.128.2: 4 failures over 647 seconds. Dec 20 14:13:35 hikari sshguard[2166]: Setting environment: SSHG_ADDR=218.6.128.2;SSHG_ADDRKIND=4;SSHG_SERVICE=100. Dec 20 14:13:35 hikari sshguard[2166]: Run command "case $SSHG_ADDRKIND in 4) exec /sbin/iptables -A sshguard -s $SSHG_ADDR -j DROP ;; 6) exec /sbin/ip6tables -A sshguard -s $SSHG_ADDR -j DROP ;; *) exit -2 ;; esac": exited 0. Dec 20 14:23:01 hikari sshguard[2166]: Releasing 218.6.128.2 after 566 seconds. Dec 20 14:23:01 hikari sshguard[2166]: Setting environment: SSHG_ADDR=218.6.128.2;SSHG_ADDRKIND=4;SSHG_SERVICE=100. Dec 20 14:23:01 hikari sshguard[2166]: Run command "case $SSHG_ADDRKIND in 4) exec /sbin/iptables -D sshguard -s $SSHG_ADDR -j DROP ;; 6) exec /sbin/ip6tables -D sshguard -s $SSHG_ADDR -j DROP ;; *) exit -2 ;; esac": exited 0.
参考にさせてもらったリンク
- sshguard本家
- sshguard試してみた@hollyさんのblog
- ssh ブルートフォースアタックについて。@technoさんのblog
- sshguard: Current implementation skip any other iptables rules(現実装の問題点)