SSH + 鍵認証
自宅 Linux さんのセキュリティ設定メモ。
SSH 編。
公開, 秘密鍵をつくってパスワードによるログインを止める。
SSH ブルートフォースアタック対策の一環。
参考:総当たり攻撃
環境:
サーバ CentOS 5.2 ( IP 192.168.11.30 )
クライアント iMac 10.5.6
クライアント:鍵を作成。
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/name/.ssh/id_dsa): /Users/name/.ssh/linux_dsa
Enter passphrase (empty for no passphrase): ちゃんと入力する。
Enter same passphrase again: もちろんここも。
クライアント:公開鍵と秘密鍵が作られたことを確認。
$ cd ~/.ssh
$ ls
linux_dsa linux_dsa.pub
クライアント:SSH 時に認証される秘密鍵のありかを設定。
$ cd ~/.ssh
$ vi config
Host 192.168.11.30
IdentityFile ~/.ssh/linux_dsa
クライアント:公開鍵をサーバにコピー
$ scp linux_dsa.pub 192.168.11.30:
サーバー:ログインして、認証ファイルを作る
$ ssh 192.168.11.30 # サーバにログイン
$ mkdir .ssh
$ cat linux_dsa.pub >> .ssh/authorized_keys
$ rm linux_dsa.pub
$ chmod 600 .ssh/authorized_keys
$ chmod 700 .ssh
サーバー:root になって、SSH の設定を変更
$ su -
# vi /etc/ssh/sshd_config
PermitRootLogin no # ルートでログインさせない。
PasswordAuthentication no # パスワードでログインさせない(鍵認証のみ)
PermitEmptyPasswords no # 空パスワードを許さない
# /etc/init.d/sshd reload
sshd を再読み込み中: [ OK ]
サーバー:ローカルPCからのみ SSH 接続を許可
# vi /etc/hosts.allow
sshd: 127.0.0.1 # ループバックを許可
sshd: 192.168.11. # ローカルPCを許可
# vi /etc/hosts.deny
sshd: ALL # 基本全員を無許可
クライアント:SSH 接続を試す
$ ssh 192.168.11.30
接続できたら成功なり。
参考:SSHサーバー構築