FreeBSD8.0 WEBサーバ構築ノート
公開鍵認証を利用したSSHのセキュリティ強化

公開鍵認証を利用してSSHのセキュリティ強化を計ります
ai-service

SSHとは

   認証部分を含む、全てのネットワーク上の通信を暗号化することにより、 ネットワークを介して安全に別のコンピュータと通信を行うプロトコルであり、Secure Shellの略です。
UNIXコンピュータでは、ネットワークを介して別のコンピュータにログインする場合に、"telnet"が利用されて来ましたが、 暗号化されていないので、パスワードをネットワーク経路上で盗聴される可能性が高く、危険でした。 sshではパスワードを含む全情報パケットがSSLで暗号化されるため、盗聴の危険性がありません。 外のネットワークを利用して、PCからサーバにログインして操作する場合は、telnetではなく、セキュリティの高いプロトコルsshを使用しましょう。

セキュリティ強化の重要性

   あなたのサイトが検索エンジンに登録され、アクセス数の増加に伴って、世界各国からのアタックが増加します。 アタックの内容は、SSHDあるいはFTPDへ侵入しようとするものが殆どであり、 プログラムを使用して攻撃してきますから、アクセス数も膨大です。 実際、私が公開してしているサーバーへのアタック例を紹介しましょう。 これは、ほんの一例であり、サーバに侵入しようとする試みは、日常茶飯事と考えた方が良いでしょう。 コンピュータとネットワークの高速化に伴い、ID/パスワードの総当り攻撃を仕掛けられた場合には、 比較的高いセキュリティの高いSSHでも破られてしまう可能性があります。

公開鍵認証を利用したセキュリティ強化

   ここでは、sshのセキュリティをさらに高めるため、公開鍵認証を導入します。 公開鍵認証では、サーバ側に公開鍵を、クライアント側に秘密鍵を配置し、 アクセスしてきたユーザが、サーバ側に配置されている公開鍵と対応する秘密鍵を持っているか否かによりログイン認証を行います。 このため、ID/パスワード認証に比較して格段にセキュリティが強化されます。 外部ネットワークからsshでアクセスをする場合には、ぜひ公開鍵認証を導入しておきましょう。

SSHD構成ファイルの編集

   まず、sshd(sshのデーモン:デーモン(Daemon)とはバックグラウンド動作するプログラム)の構成ファイル"/etc/ssh/sshd_config"を編集し、 公開鍵認証を許可し、パスワード認証をできなくします。
公開鍵認証を許可します:行頭の"#"を外します。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
また、パスワード認証を不可にします:行頭の"#"を外します。
PasswordAuthentication no
PermitEmptyPasswords no
行頭の"#"を外し、"no"に変更します。
ChallengeResponseAuthentication no

公開鍵・秘密鍵の作成

   公開鍵認証のための、公開鍵と秘密鍵を作成します。 鍵の保存場所としてデフォルトを選択するとユーザホーム/.ssh/id_rsaに作成されます。
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):【デフォルトでリターン】
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):【パスフレーズを入力】
Enter same passphrase again:【パスフレーズを再入力】
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
86:82:e5:a8:bd:f7:b0:a4:1d:02:cd:78:fa:df:49:7a root@neolux001.neoluxinc.com
The key's randomart image is:
+--[ RSA 2048]----+
|                |
  ・・・
| + =    .       |
|o * o . S .    . |
  ・・・
|  +o=o+ S .     |
+---------------------+
上記の例はrootによる作成なので/root/.ssh/配下に以下のファイルが作成されます。
# ls -l /root/.ssh
・・・
-rw------- 1 root wheel 1743 May 21 13:30 id_rsa
-rw-r--r-- 1 root wheel 410 May 21 13:30 id_rsa.pub
・・・
ここで、id_rsa.pubが公開キーで、id_rsaが秘密鍵です。 sshdの構成ファイル"/etc/ssh/sshd_config"の設定通り、公開鍵をauthorized_keysに流し込み、他ユーザから読めないようにします。
# cd /root/.ssh
# cat id_rsa.pub >> authorized_keys (authorized_keysが既にある場合は追加、無い場合は作成されます)
# chmod 600 authorized_keys(必ず他ユーザから読めない様にします)
他のユーザでsshを利用可能にするには、他のユーザで、"ssh-keygen"により別の鍵を作ります。 rootと同じ管理者の場合は、rootの公開鍵をユーザホーム/.ssh配下にコピーすると同じパスフレーズが使えます。
例えば、neoluxユーザでは以下の通りです。
# cd /usr/home/neolux
# cp -r /root/.ssh .
# chown -R neolux:neolux .ssh
以上でサーバ側の設定は完了です。 sshdを再起動して設定を有効にします。公開鍵を変更した場合は、sshdを再起動しても変更されていないようですので、サーバーの再起動が必要になります。
# /etc/rc.d/sshd restart

クライアント(PuTTY)への秘密鍵の設定

   PuTTY(パティ)は、 Simon Tatham氏によって作成された、フリーのTelnet/SSHクライアントで、WindowsやMAC OSで使用できます。 日本では、一般的に日本語表示を可能にしたPPuTTYjp が使用されるようです。 ここでは、PuTTY用秘密鍵の生成方法と設定方法を説明しますので、 まだPuTTYをインストールされてない方は、前記サイトを参照してインストールおよび設定して下さい。

PuTTY用秘密鍵の生成

PuTTYgenのメイン画面   (画像をクリックしてご覧下さい)
PuTTYgenのメイン画面    以下の方法で、PuTTY用秘密鍵"id_rsa.ppk"を生成します。
  1. FTP等の方法を使用して、サーバで生成した秘密鍵id_rsaをクライアントPCにコピーして下さい。
  2. PuTTYをインストールするとWindowsメニューにPuTTYフォルダが現れますので、そこからPuTTYgenを起動します。
  3. Loadボタンをクリックしファイルセレクタのファイル種類をAll Filesに変更し、サーバからコピーした秘密鍵id_rsaを選択し、開いてください。
  4. サーバで秘密鍵を生成時に設定したPasspharaseの入力を求められますので、これを正しく入力すると、PuTTY用の秘密鍵が生成されます。
  5. 最後に、"Save private key"で、id_rsa.ppkとして保存してください。

PuTTY用秘密鍵の設定

PuTTY用秘密鍵の設定   (画像をクリックしてご覧下さい)
PuTTY用秘密鍵の設定    PuTTY(英語版)あるいはputtyjp.exe(日本語版)を起動し、 接続 -> SSH -> 認証画面の、認証パラメータの参照ボタンをクリックし、 既に作成済みのPuTTY用秘密鍵id_rsa.ppkを一度設定しておけば、公開鍵によるサーバへの接続が可能になります。
   PuTTYのメイン画面で、接続先を設定あるいは選択し、「開く」ボタンをクリックすると、 以下のように、指定ユーザ名に対するパスフレーズの入力メッセージが出ますので、 鍵生成時のパスフレーズを入力すればログインできます。
Using username "root".
Authenticating with public key "imported-openssh-key"
Passphrase for key "imported-openssh-key":
   公開鍵認証では、秘密鍵さえ厳重に管理しておけば、サーバに侵入される可能性は極めて低くなります。 上記の通り、導入も簡単ですので、外部ネットワークからsshでアクセスをする場合には、ぜひ公開鍵認証を導入しましょう。
最終更新日:2010年10月22日

* 無断転載禁止。
* どのページでもご自由にリンクして下さい。
* ご意見・ご質問等がございましたら こちらからメールをご送付下さい。

FreeBSD8.0 メニュー
Sponsoredサイト
美容・健康・ダイエットサイト
脳の機能と心と体の健康
健康な心と体の栄養ブログ
占星術・風水・タロット・手相
東洋・西洋占星術
無料姓名判断で読み解く運命
タロットカードで無料占い
手相占いによる未来診断
飛星派風水で住宅開運
夢の夢占い
男と女の心理学と心理テスト
占いと健康ブログ
会社情報等
運営会社情報

プライバシー・ポリシー
お楽しみサイト
Western-Eastern Astrology

ザ・ホラリー占星術

便利サイト
株式投資講座(改訂版)
脳の機能と心と体の健康
ネオラクス
株式投資講座(改訂版)
無料SEO対策
172.31.37.45