19 January 2008

SSHD設定(root禁止、RSA鍵認証) on Fedora 8

SSHにアクセス制限を掛ける。

rootのログインを制限する

/etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no

#PermitEmptyPasswords no
PermitEmptyPasswords no

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


[root@localhost ~]# usermod -G wheel logon_user ← wheelグループに属させる

念のために、wheelグループに属しているユーザを確認する

/etc/group

wheel:x:10:root,logon_user ← rootはもとからwheelグループに属していた

su の設定ファイルを修正

/etc/pam.d/su

# Uncomment the following line to require a user to be in the "wheel" group.
### modify 2008/01/19
#auth required pam_wheel.so use_uid
auth required pam_wheel.so use_uid ← コメントをはずす

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

さらに、RSA鍵による認証を使う設定に変更する

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


[logon_user@localhost ~]$ cd

[logon_user@localhost ~]$ ssh-keygen -t rsa ← SSH2の場合、RSA鍵を作成する
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/logon_user/.ssh/id_rsa): ← デフォルトでOKのため、リターンキー
Created directory '/home/logon_user/.ssh'.
Enter passphrase (empty for no passphrase): ← ユーザのログオンパスワードと違ってもOK(そのほうが、セキュリティ高い?)
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:
90:e6:7a:62:6d:c0:3f:a6:df:9a:07:44:e8:05:47:19 logon_user@localhost.localdomain

[logon_user@localhost ~]$ cd .ssh

[logon_user@localhost .ssh]$ cp id_rsa.pub authorized_keys ← 認証するキーとして登録

[logon_user@localhost .ssh]$ ll -a
合計 32
drwx------ 2 logon_user user-group 4096 2008-01-19 10:22 .
drwx------ 4 logon_user user-group 4096 2008-01-19 09:38 ..
-rw------- 1 logon_user user-group 411 2008-01-19 10:22 authorized_keys
-rw------- 1 logon_user user-group 1761 2008-01-19 10:21 id_rsa
-rw-r--r-- 1 logon_user user-group 411 2008-01-19 10:21 id_rsa.pub

秘密鍵(id_rsa)をクライアント マシンにコピーする。

Windows端末で、Tera Term Pro を起動して、次のように接続する

20080119-ssh01.png
「SSH2接続」を選択する

20080119-ssh02.png
「ユーザ名」と、「秘密鍵のパスワード」を入力して、「RSA秘密鍵ファイル」を指定する

接続に成功すれば、鍵方式以外で接続させたくない場合は、設定ファイルを書き換える

/etc/ssh/sshd_config

#PasswordAuthentication yes
PasswordAuthentication no ← パスワード認証を禁止

※ 秘密鍵のパスワード変更


[logon_user@localhost ~]$ ssh-keygen -p

※ telnet-server の削除

telnet-server は、SSHを使う上では必要ないので、削除するかデーモンの自動起動をしないように設定する。(Fedora 8 では telnet-server はデフォルトでインストールされていない)