辞書攻撃その後
『お家サーバー日記/2005-01-27』でsshを使って手当たり次第の ユーザー名やパスワードを試す行為があると書いたが、 ログを調べてみたら、
grep sshd /var/log/messages.0 | grep Invalid | wc 307 3070 22489 zgrep sshd /var/log/messages.{1,2,3,4,5}.gz | grep Invalid | wc 1727 17270 165919
とまあ、2月の頭から現在まで2000回ほどアタックを受けていることが分かった。 試しているユーザー名は admin や guest、test などが多いが、jane とか frank なんて のもある。 日本人らしい名前も狙われるようになるのは時間の問題だろう。
JPCERT/CC が『OpenSSH の脆弱性を使ったシステム侵入に注意喚起』を出しているくらいなので、 実際に侵入されてしまったサーバーもかなり出ているのだろう。
以前は、ログインできるユーザーを制限しただけだったが、 今度はさらに特定のIPアドレス(aaa.bbb.ccc.ddd)以外を叩き落すことにする。
su - cat <<EOD >/usr/local/etc/rc.d/iptables #!/bin/sh case "$1" in start) # Enable iptables /sbin/iptables -F /sbin/iptables -A INPUT -p tcp -s aaa.bbb.ccc.ddd --dport 22 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 22 -j REJECT ;; stop) # Disable iptables /sbin/iptables -F ;; *) echo "Usage: S99iptables {start|stop}" exit 1 esac exit 0 EOD chmod ugo+x /usr/local/etc/rc.d/iptables /usr/local/etc/rc.d/iptables start
これを遠隔から実行するときは、十分注意しないと実行した途端音信不通となる。 まあ、自宅に帰ってから直せばそれでいいのだけれど。
私の場合、幸い遠隔から入る場合はIPが固定されているので、 IPフィルタで良いが、出先でPHS等のインターネット接続から自宅に 接続するような場合はこの手が使えない。
あるポートをtelnet等でノックするとssh等のポートが開いて入れるようになる、 というようなセキュリティ機構を聞いたことがある。なかなかいい手だと思った。 そのうち試してみよう。