開発サーバー構築②(SSH設定)
やっぱりVNCコンソールよりも、SSHでTeraTermとか使った方が作業がやりやすいです。でも、SSHはちゃんとセキュリティの設定をしておいた方が安心なので、今回はSSHのセキュリティ設定を紹介します。
開発サーバー構築①の続きで、Ubuntu 20.04での設定を紹介します。
この記事はさくらのVPS公式マニュアルの「サーバ作成直後に設定しておくべき初期セキュリティ設定」を参考に作成しました。
設定を行うのは3項目
①ポート番号の変更
SSHは通常22番ポートが使われますが、これを変えることでハッカーは「22番にアクセスしてもSSHできねぇ!あきらめよ!」となる可能性があるので変更しておきます。ポートスキャンされたら結局一緒じゃね?って感じですが、探す手間を増やすことは大事なことです。
設定する前に新しいポート番号を何番にするか決めます。何番にしたかは紹介しませんが、対応される場合は何番を使うか考えておきましょう。
一般的に自由に使えるポート番号は49152~65535なのですが、さくらのVPSのパケットフィルタは1~32767までしか指定できません。基本、80と443しか開けませんし、10000以上の好きな番号を割り当てておけばいいのではないでしょうか。他のアプリと被ったらその都度変えていけばいいのです。もしくは、パケットフィルタを使わずに49152~65535を使うかですね。
②rootのログイン禁止
rootでアクセスされるとなんでもされてしまうので、アクセスできないようにします。
③パスワード認証の無効化
パスワード認証はパスワードがバレると不正アクセスされてしまいます。鍵認証の方が安全性が高いらしいので、鍵認証を利用してパスワード認証はできないようにします。
設定手順
sshdの設定ファイルをいじります。1つの設定ファイルを書き換えるだけで3つとも対応できます。
まずは、バックアップを念のため取っておきます。
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
viで編集していきます。
$ sudo vi /etc/ssh/sshd_config
まず、①ポート番号の変更です。Portを設定している項目の数値を変えます。
#Port 22
以下のように書き換えます。1文字目にある「#」も消します。
Port XXXX(決めたポート番号)
つづいて②rootのログイン禁止は、PermitRootLoginという項目をnoにします。
#PermitRootLogin prohibit-password
↑を↓のように書き換えます。ここも「#」を消します。
PermitRootLogin no
最後に③パスワード認証を無効化は、PasswordAuthenticationをnoにします。
PasswordAuthentication yes
↑を↓のように変更ですね。
PasswordAuthentication no
最後にsshdを再起動して設定反映します。
$ sudo systemctl restart sshd
まだあります。さくらのVPSのパケットフィルタリングの設定を変える必要があります。22番ポートはもう使わないので設定を削除して、新しく設定した番号のポートを開けます。これでSSHクライアントでセキュアにアクセスできるようになりました。
(おまけ)PuTTYgenで鍵ペアを作ってさくらのVPSに登録する
サーバーを立てる前にやっておくと設定が楽です。
こちらのサイトからインストーラーをダウンロード&インストールします。インストール後、スタートメニューのPuTTYの中からPuTTYgenを起動します。
PuTTYgenを起動します。
Actionsのところにある[Generate]ボタンをクリックします。すると「この辺でマウスカーソルを適当に動かしてくれ」と表示されるので、カーソルをグリグリ動かし続けます。
プログレスバーが100%になると、キーが生成されます。
Key passphrase欄でパスフレーズを設定できます。パスフレーズを設定すると、SSH接続時にパスフレーズも入力する必要があります(要はパスワード)。
ActionsのSave the generated keyにある[Save public key]で公開鍵を、[Save private key]で秘密鍵を保存します。
秘密鍵が外部に漏れるとサーバーに不正アクセスされてしまいます。パスフレーズを設定した方が安全性は高まりますが、そもそも漏れないように管理には気を付けましょう。
画面は消さずに、さくらのVPSでの登録へ行きましょう。
さくらのVPSコントロールパネルで、左メニューから[公開鍵]を選択します。次の画面で[鍵追加]を選択すると、鍵追加画面に遷移します。
名前は適当なものをつけて、公開鍵にPuTTYgenの画面上部にあった、「ssh-rsa」から始まる文字列を全部貼り付けます。画面を閉じちゃってもうわからないという場合は、保存した公開鍵のファイルをテキストエディタで開くと同じものがあります。
この状態で[追加]ボタンを押すことで公開鍵が登録されます。
サーバーにOSをインストールする時に、登録した公開鍵を選択できるようになっています。選択しておけば設定を自動でやってくれて便利ですね。
OSインストール後でも設定できますが、そちらの手順については検索して調べてみてください。CentOSなら公式マニュアルの「サーバ作成直後に設定しておくべき初期セキュリティ設定」に載っています。