SANSが紹介した対策を実際にやってみました。
試したのは、以下の環境です。
$ cat /etc/lsb-release | grep DESCRIPTION DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS" $ ssh -V OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009 $
TCP 22番以外のポートにSSHサーバを導入する
まずは、デフォルトポートと変更先ポートを確認します。
変更先ポートは、なるべく大きい番号で未使用で類推されにくい番号を使うのが良いでしょう。
$ nmap -p 22 localhost 2> /dev/null | grep 22 22/tcp open ssh $ nmap -p 60022 localhost 2> /dev/null | grep 22 60022/tcp closed unknown $
Ubuntuでは、/etc/ssh/sshd_configを下記のように修正します。
$ sudo bzr diff === modified file 'ssh/sshd_config' --- ssh/sshd_config 2010-05-15 10:00:46 +0000 +++ ssh/sshd_config 2010-07-06 12:26:58 +0000 @@ -2,7 +2,7 @@ # See the sshd(8) manpage for details # What ports, IPs and protocols we listen for -Port 22 +Port 60022 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 $
sshdを再起動して、ポートを再確認し、新しいポートで接続してみます。
$ sudo /etc/init.d/ssh restart * Restarting OpenBSD Secure Shell server sshd ...done. $ nmap -p 22,60022 localhost 2> /dev/null | grep 22 22/tcp closed ssh 60022/tcp open unknown $ ssh -p 60022 localhost user@localhost's password: $
考察
ポート変更は、簡単にできるところが良いところです。
デフォルトポート前提のシェルやプログラムをたくさん持っている場合は、そもそも選択できないですね。
また、ポート変更は、ポートスキャンでポートを特定されたらそれまでです。
IDSと組み合せることで攻撃を検知できるようになりますが、検知した攻撃に対応する管理者が常時対応できるようになっていないと意味がありませんし、ポートスキャン以外でもポートを特定する方法がない訳けではありません。
SANSが紹介した方法は、全部で八つあるので全部やってみようと思っていますが、一度に全部やるのは、ちょっとたいへんなので、残りは、また今度…