SSHといえどもデフォルトのままで使っているなら、そこには危険な落とし穴が存在する。本稿では、SSHのセキュリティを高めるのに役立つ簡単な方法を幾つか紹介する。
この記事では、SSH(secure shell)サービスのセキュリティを高めるのに役立つ簡単な方法を幾つか紹介する。
SSHサーバの設定ファイルは/etc/ssh/sshd_configとなっている。このファイルを変更した後は、変更を反映させるためにその都度SSHサービスを起動し直す必要がある。
SSHはデフォルトでは22番ポートで接続を待っている。攻撃者はポートスキャナを使ってホストがSSHサービスを実行しているかどうかを把握するが、(nmapを含め)たいていのポートスキャナではデフォルトでは1024以上のポート番号のスキャンは行なわれないため、SSH用のポートを1024以上の番号に変更しておくのが賢明だ。
具体的には、/etc/ssh/sshd_configファイルを開き、以下のような行を見つけて変更する。
Port 22
この行でポート番号を変更したら、以下のようにしてSSHサービスを起動し直そう。
/etc/init.d/ssh restart
SSHプロトコルには2つのバージョンがあるが、SSHプロトコル1は中間者攻撃(man-in-the-middle attack)や悪意のあるデータを挿入される攻撃(insertion attack)などのセキュリティ問題が存在するため、SSHプロトコル2のみを使用する方がずっと安全となっている。具体的には、/etc/ssh/sshd_configの中の以下のような行を変更する。
Protocol 2,1
この行を「Protocol 2」と変更しよう。
SSH経由でのrootログインは不必要であり、大きなセキュリティリスクにもなるため許可するべきではない。攻撃者がシステムのrootログインを取得してしまうと、通常ユーザーのログインを取得した場合よりも大きなダメージを与えることができてしまうことになる。そのためrootユーザーにはログインを許可しないようにSSHサーバを設定しよう。そのためには以下のような行を変更する。
PermitRootLogin yes
前記の行の「yes」を「no」に変更し、サービスを起動し直す。その後は、root以外の登録ユーザーとしてログインし、スーパーユーザーになりたいときにはsuを使ってrootユーザーになるようにしよう。
なおシステム上でまったく権限を持たないダミーのローカルユーザーを作成しておき、SSHでログインする際にはこのユーザーを使うようにするのが賢明だ。こうしておくと、そのユーザーアカウントを盗まれた場合でもダメージが小さい。ただしこのようなユーザーを作成する際には、そのユーザーがスーパーユーザーになることができるように、そのユーザーをwheelグループに必ず登録しておこう。
SSH経由でのログインを一部のユーザーに対してだけ許可したい場合には、sshd_configファイル内でそのようなユーザーを指定することができる。例えばanze、dasa、kimyというユーザーに対してだけSSH経由でのログインを許可する場合には、sshd_configファイルの末尾に以下のような行をつけ足す。
AllowUsers anze dasa kimy
SSHサービスへ接続してきたユーザーに対して見せるための固定のメッセージをカスタマイズすることができる。やり方は簡単で、単にテキストファイルを作成し(例では/etc/ssh-banner.txt)、テキストで何でも好きなメッセージを入れるだけで良い。以下に例を示す。
*********************************************************************
*これは個人用のSSHサービスです。あなたが使用することはできません。*
*すぐに退去してください。 *
*********************************************************************
編集が完了したら、ファイルを保存する。そしてsshd_configファイルの中の以下のような行を編集する。
#Banner /etc/issue.net
前記の行をコメントの外に出して有効にし、パスを自分のSSHメッセージ用テキストファイルのパスに変更しよう。
Copyright © 2010 OSDN Corporation, All Rights Reserved.