22 June 2009

SSHD設定(root禁止、RSA鍵認証) on Ubuntu 8.1

SSHサーバのインストール


root@localhost:~# apt-get install ssh

ユーザ名とパスワードによる認証を可能にする

次に、SSHのアクセス制限を設定する。

rootのログインを制限する

/etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no

#PermitEmptyPasswords no
PermitEmptyPasswords no

su で root に昇格できるユーザを限定する (wheelグループに属するユーザのみが、rootに昇格できる設定)

Ubuntu8.1ではwheelグループは、インストール直後の状態では作られていないため、明示的にグループを作成する。その後に、rootにsu出来るユーザをwheelグループに所属させる。(グループ番号 310は、既存のグループ番号と重複しない適当な番号) 作業完了後に『 id 』コマンドで、該当ユーザがwheelグループに属していることを確認する。


root@localhost:~# groupadd -g 310 wheel

root@localhost:~# usermod -G wheel logon_user

root@localhost:~# usermod -G wheel root ← root自身も加える

PAMの設定
(/lib/security\pam_wheel.so ライブラリファイルがインストールされていることを念のために確認すること)

/etc/pam.d/su

# auth required pam_wheel.so
auth required pam_wheel.so group=wheel

ここまでの設定で、「ユーザ名」「パスワード」を用いたログオンが可能になる。

鍵ファイルによる認証を可能にする

鍵の作成。 実際にログオンするユーザでログオンし、ホームディレクトリで作業する


logon_user@localhost:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/logon_user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): ← 鍵を利用するときのパスワードを入力
Enter same passphrase again:
Your identification has been saved in /home/logon_user/.ssh/id_rsa.
Your public key has been saved in /home/logon_user/.ssh/id_rsa.pub.
The key fingerprint is:
56:fa:07:89:f4:44:b4:65:59:ce:67:23:b0:a7:14:72 logon_user@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| ooEoo. |
| .o+=o |
| . +o oo.o|
| . *..o .o.|
| S +. |
| . . . |
| . . |
| . |
| |
+-----------------+

logon_user@localhost:~$ cd .ssh/

logon_user@localhost:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts ← 公開鍵・秘密鍵のペアが作成されている

logon_user@localhost:~/.ssh$ mv id_rsa.pub authorized_keys ← sshdサーバ用の公開鍵

秘密鍵(id_rsa)をクライアント マシンにコピーして、SSH接続時に利用する。