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接続時に利用する。