サーバーセキュリティの基礎中の基礎、「鍵認証の有効化」と「パスワードログイン、Rootログインを禁止」する手順を解説します。
秘密鍵のダウンロード
秘密鍵ファイル「kusanagi.pem」はKUSANAGIの初期設定で必ず作成され、/rootディレクトリに保存される。
ローカルにダウンロードするので、サーバーにはログインしていないターミナルでコマンドを実行する。
$ scp root@IPアドレス:/root/kusanagi.pem /Users/ログインユーザー名/Desktop
これはPCのデスクトップにダウンロードする場合の例。
秘密鍵がダウンロードできたら適宜コピーを作成してバックアップをとり、サーバーにログインして/root上の秘密鍵ファイルを削除する。
# cd /root # rm kusanagi.pem rm: 通常ファイル `kusanagi.pem' を削除しますか? yes
鍵認証を許可する
次にSSHデーモンを設定していく。
サーバーにRootでログインしviエディタで設定ファイルを開く。
# vim /etc/ssh/sshd_config
20行目くらいにある「Protocol 2」のコメントアウトを外してSSH2をオンにする。
#編集前 #Protocol 2 #編集後 Protocol 2
55行目付近にある「PubkeyAuthentication yes」のコメントアウトを外し鍵認証を可能にする。
#編集前 #PubkeyAuthentication yes #編集後 PubkeyAuthentication yes
保存して一度エディタを終了し、デーモンを再起動。
# systemctl restart sshd.service
実際に鍵認証ができるかを試してみる。
WindowsのTeratermなどを利用している場合、接続時に秘密鍵ファイル「kusanagi.pem」を選択するだけで鍵認証によるSSH接続ができる。
パスワードを入力せずにサーバーにログインできれば成功※。
※ 初期設定時に秘密鍵の「パスフレーズ」を設定した場合はパスフレーズの入力が必要!
Macのターミナルを利用している場合、秘密鍵を /.sshディレクトリに設置する必要がある。
秘密鍵を /.sshディレクトリに移動(Macのみ)
kusanagi.pemがデスクトップにあると仮定してすすめる。
当たり前だがこの作業はサーバーにログインしていないターミナルで行う。
デスクトップに移動。
$ cd /Users/ログインユーザー名/Desktop
秘密鍵ファイルを/.sshディレクトリに移す。
$ mv kusanagi.pem ~/.ssh
/.sshディレクトリへ移動し、秘密鍵ファイルの権限を設定する。
#ディレクトリを移動 $ cd ~/.ssh #パーミッションを600に $ chmod 600 kusanagi.pem #確認 $ ls -l -rw------- kusanagi.pem
実際に鍵認証でログインできるかを確認する。
$ ssh -i ~/.ssh/kusanagi.pem kusanagi@IPアドレス
パスワードなしでサーバーにログインできれば成功※。
※ 初期設定時に秘密鍵の「パスフレーズ」を設定した場合はパスフレーズの入力が必要!
パスワードログインとRootログインを禁止する
鍵認証でログインできることを確認したら、パスワードログインの禁止およびRootログインを禁止する。
まずkusanagiユーザーがRootになれるかどうかを一応確認しておく。
$ su - パスワード:rootのパスワードを入力
再びSSHデーモンを編集する。
# vim /etc/ssh/sshd_config
49行目あたりにある「PermitRootLogin yes」を書き換える。
#編集前 PermitRootLogin yes #編集後 PermitRootLogin no
80行目あたりにある「PasswordAuthentication yes」を書き換える(なぜか2行ある場合があるので、一応2つとも同じように書き換えておく)。
#編集前 PasswordAuthentication yes #編集後 PasswordAuthentication no
保存してエディタを終了し、デーモンを再起動する。
# systemctl restart sshd.service
最終確認として
- Rootでログインできないこと
- パスワードでログインできないこと
- kusanagiユーザーが鍵認証でログインできること
以上3点をチェックする。
$ ssh root@IPアドレス #Rootでログインできない root@IPアドレス: Permission denied $ ssh kusanagi@IPアドレス #パスワードでログインできない kusanagi@IPアドレス: Permission denied #鍵認証ならログインできる $ ssh -i ~/.ssh/kusanagi.pem kusanagi@IPアドレス
- KUSANAGI参考書籍
- ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方
- 新しいLinuxの教科書
- 入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)
- 標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
- プロに管理してもらえるKUSANAGI搭載サーバー
- カゴヤ・ジャパンの「WordPress専用サーバー」
- CloudGarage(旧エクスクラウド)の「WordPressプラン」