【公開鍵認証】Unix系サーバのセキュリティを向上させる
さくらインターネットさんのVPSを使っていますが、
サーバ作成直後に設定しておくべき初期セキュリティ設定 | さくらの VPS ドキュメント
1.鍵を作成する
$ssh-keygen -t rsa -C '(メールアドレス)' -f ~/.ssh/id_rsa_sakura-vps
2.公開鍵をサーバへ転送する
$scp ~/.ssh/id_rsa_sakura-vps.pub (ユーザ名)@(相手先IPアドレス):~/.
3.認証キーとして登録する
$mkdir .ssh
$chmod 700 .ssh/
$mv id_rsa_sakura-vps.pub .ssh/authorized_keys
$chmod 600 .ssh/authorized_keys
4.公開鍵認証でログインしてみる
$ssh -l (ユーザ名) (IPアドレス) -i .ssh/id_rsa_sakura-vps
5.より安全なSSH接続へ
PermitRootLogin no
PasswordAuthentication no
$sudo systemctl restart sshd
- rootでログインできないこと。
- パスワードでログインできないこと。
- 公開鍵認証でログインできること。
6.SSH接続用ポート番号の変更
ここまでやったら最後の仕上げです。SSH接続用ポート番号を変更します。デフォルトで22を使っているSSH接続ですがここが開いていると「外部接続するようになっている」とわかってしまいます。効果がどれほどあるのかわかりませんが、そのサーバ専用のポートに変更するようにします。
(1)sshdの設定変更
まずは、sshdのポート番号変更です。設定は、
/etc/ssh/sshd_config
に記載されています。
デフォルトでは、
Port 22
となっていますので、その行をコメントアウトして新しいポート番号(仮に10022にします)を設定します。
#Port 22
Port 10022
として保存します。sshdを再起動すれば設定完了です。
$sudo systemctl restart sshd
(2)ファイアウォールの設定変更
※ここは、さくらのVPSの手順書と異なるubuntu向けの手順になります。
まず現在の設定状態を確認します。
$sudo ufw status
ポートが開いていなければ開けていきます。初期設定は何もされていない状態(inactive)だと思いますので、80(http),443(https),10022(ssh)を開けます。(10022は自分で設定したポート番号を使ってください)
$sudo ufw allow 80
$sudo ufw allow 443
$sudo ufw allow 10022
ファイアウォールを有効にします。
$sudo ufw enable
ファイアウォールの状態を確認します。
$sudo ufw status
設定した80,443,10022がIPv4、IPv6とも開いていれば完了です。
念のため、10022でsshが通るか確認しておいてください。
$ssh -l (ユーザ名) (IPアドレス) -i .ssh/id_rsa_sakura-vps -p 10022
ポート番号の-p 10022が追加されています。無事にログインできたでしょうか。
お疲れさまでした。ここまで完了すればひととおり最低限のことはできたでしょう。