パンダのメモ帳

技術系のネタをゆるゆると

OpenSSHの設定

CentOS 5.4をインストールすると、OpenSSHは標準でインストールされる。そのまま使ってもよいが、セキュリティを考慮して設定を変更する。

1. 設定の変更

OpenSSHの設定ファイル(/etc/ssh/sshd_config)を編集する。以下の項目を確認し、必要に応じて変更する。特に重要な項目に絞って解説する。

Port
sshdが接続を待ち受けるポート番号。デフォルトは"22"。変更することでポートスキャンや不正侵入の危険性を低減することができる。1024-65535の範囲内で憶測されづらい番号を指定するとよい。ファイアーウォールが有効な場合は指定したポートを開放すること。
Protocol
sshdが対応するプロトコルのバージョン。デフォルトは"2"。SSHには初期型のSSH1と改良型のSSH2があり、両者に互換性はない。セキュリティ上の問題点が多いSSH1での接続は禁止した方がよいので、"2,1"等になっている場合は"2"に変更しよう。
PermitRootLogin
SSHで直接rootにログインすることを許可するか否か。デフォルトは"yes"。百害あって一利なしなので、"no"に変更する。
PubkeyAuthentication
SSH2においてRSA鍵認証を許可するか否か。デフォルトは"yes"。RSA鍵認証はSSHにおいて好ましい認証方法なので、"yes"のままでOK。
ChallengeResponseAuthentication
チャレンジ・レスポンス認証を許可するか否か。デフォルトは"yes"。特に必要がない限り"no"に設定。
PasswordAuthentication
パスワードによる認証を許可するか否か。デフォルトは"yes"。特に必要がない限り"no"に設定。
GSSAPIAuthentication
GSSAPI認証を許可するか否か。デフォルトは"no"。特に必要がない限り"yes"にしないよう注意。
UsePAM
PAMによる認証を許可するか否か。デフォルトは"no"。特に必要がない限り"yes"にしないよう注意。

認証方法をRSA鍵認証のみにすることで、余計なセキュリティリスクを回避することができる。ただし、ホスト上にRSA公開鍵を設定しないままこの設定を行ってしまうとSSHでログインできなくなってしまうので注意。RSA鍵の生成や設定については割愛。

2. sshdの再起動

/etc/ssh/sshd_config を編集したら、変更を反映させるためにsshdを再起動する。

[root@localhost ~]# service sshd restart

再起動後、以下のポイントを確認する。

  • 有効にした認証方法でログインできること。
  • 無効にした認証方法でログインできないこと。
  • Portを変更した場合は以下のポイントも確認。
    • 変更前のポート番号やデフォルトのポート番号(22)へSSHで接続できないこと。
    • 変更後のポート番号へSSHで接続できること。

3. LDAPに登録されているパスワードによるログインを許可する場合

LDAPで管理しているユーザー/パスワードでのログインを許可する場合は以下の通りに設定する。

  • PasswordAuthentication yes
  • UsePAM yes

再起動後、LDAPに登録されているユーザー/パスワードでログインできることを確認する。

4. LDAPに登録されているRSA鍵によるログインを許可する場合

LDAPRSA鍵を管理し、SSHからそのRSA鍵による認証を許可する場合、OpenSSH-LPKの導入が必要になる。標準パッケージでは提供されていないため、ここでの説明は割愛する。

追記(2009-12-16):OpenSSH-LPKの導入について以下の記事にまとめた。