ConoHaのVPSでUbunutuサーバを作成したときにはじめにやったほうが良い事
ConoHaのVPSでUbuntu Serverを作成した時に私が最初に行っている作業です。
- 一般ユーザの作成
- SSHサーバ設定 (ポート番号変更・rootユーザログイン禁止)
- ファイアウォール設定 (ssh用ポート許可)
- パッケージ更新
- SSH接続テスト
セキュリティを高めるための手段はまだまありますが、今回は最低限これくらいは行っておきましょうという項目の説明をしていきます。
ちなみに、今回のサーバ設定作業はコントロールパネルにあるWebコンソールから作業を行っています。
webコンソールの使い方
SSHで接続できない場合や、VPSを作成したての時によくお世話になるコンソールの接続方法です。
コントールパネルにログインするとVPS一覧が表示されるので、コンソールに接続したいVPSのコンソールアイコンをクリックすることで接続することが出来ます。
ログイン直後の画面から遷移してしまっている場合
ログイン直後の画面から遷移してしまっている場合は、下記の方法でコンソールに接続することが出来ます。
- サーバをクリック
- コンソールを使用したいVPSのネームタグをクリック
選択したVPSの画面が表示されるので、コンソールアイコンをクリックすることでコンソールに接続することが出来ます。
エディターについて
今回の手順では設定ファイルの編集をviエディターで行っていますが、nanoなんかを使用しても問題ありませんので、使いやすいエディタを使用してください。
viの使い方
簡単なviの使い方を下記サイトで説明していますので、もしよかったら参照してみてください。
https://www.server-memo.net/tips/command/vi/start_vi.html
一般ユーザの作成
ConoHaのVPSの場合、作成したてのVPS(Ubuntu)にはログインできるユーザがrootしか存在していません。
この後のSSHサーバの設定でrootユーザでのSSH接続を禁止するため、SSH接続用のユーザを作成しsudo権限もあわせて付与しておきます。
コントロールパネルにあるコンソールでrootユーザでログインしてユーザの追加作業を行っていきます。
# adduser ユーザ名 # gpasswd -a ユーザ名 sudo
これ以後の作業はここで作成したユーザで行っていきますので、一度ログアウトして作成したユーザでログインし直して下さい。
# logout
SSHサーバ設定
SSHサーバのセキュリティを高めるために下記の設定を行っていきます。
- ポート番号変更
- rootユーザログイン禁止
SSHサーバの設定を行うファイルは「/etc/ssh/sshd_config」なので、設定ファイルのバックアップを行ってから作業を行っていきます。
$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_`date +%Y%m%d-%H%M%S` $ sudo vi /etc/ssh/sshd_config
ポート番号変更
SSHサーバの初期設定では22番ポートを使用しますが、このポートにはブルートフォースアタックが多いので、SSHで接続するためのポート番号を変更しておきます。
とりあえず今回はポート番号を10022番に変更していますが、他のサービスと被らなければ他の番号でも良いです。
Port 22 # 変更前 ↓ Port 10022 # 変更後
rootユーザログイン禁止
初期設定ではrootユーザでのSSH接続が許可されていますが、rootユーザでログインされてしまうと一発でシステムが乗っ取られるのでrootユーザではSSH接続出来ないように設定を変更しておきます。
設定項目
PermitRootLogin yes # 変更前 ↓ PermitRootLogin no # 変更後
設定反映
設定が完了しましたらSSHサーバを再起動してください。
$ sudo systemctl restart sshd
ファイアウォール設定
VPSを作成したての状態ではファイアウォール機能は停止しているので、有効化したあとにSSH接続用ポートの通信を許可する設定を行います。
ファイアウォールの有効化
まずはファイアウォールを有効化します。
$ sudo ufw enable Firewall is active and enabled on system startup
SSH用ポートの通信許可設定
次にSSH接続用ポートの通信許可のルールをufw allowで追加します。
今回はSSHサーバの設定でポート番号を10022番に変更しているので、このポートの通信を許可していますが、別の番号にしている場合は適宜読み替えてください。
$ sudo ufw allow 10022/tcp Rule added Rule added (v6)
追加したルールに間違いがないかufw status verboseコマンドで確認しておいてください。
$ sudo ufw status verbose Status: active Logging: on (low) Default: reject (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp (OpenSSH) ALLOW IN Anywhere 10022/tcp ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6) 10022/tcp (v6) ALLOW IN Anywhere (v6)
追加したルールに問題がなければ設定の読み込みを行います。
$ sudo ufw reload
ルールの追加が終わったら、10022番ポートを使用してSSH接続を行って動作確認を行ってください。
問題なく接続できるようでしたら、もともと設定されていた22番ポートを許可するルールを削除しておきましょう。
初期設定のSSH通信許可ルールを削除
「ufw status numbered」で設定されているルールの番号を表示させます。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] OpenSSH ALLOW IN Anywhere [ 2] 10022/tcp ALLOW IN Anywhere [ 3] OpenSSH (v6) ALLOW IN Anywhere (v6) [ 4] 10022/tcp (v6) ALLOW IN Anywhere (v6)
ufw deleteで削除したいルールの番号を指定して削除を行います。
初期状態で設定されていた1番のルールを削除します。
$ sudo ufw delete 1
Deleting:
allow OpenSSH
Proceed with operation (y|n)? y # 「y」を入力
Rule deleted
ufw status numberedを実行してルールが削除されたことを確認します。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 10022/tcp ALLOW IN Anywhere [ 2] OpenSSH (v6) ALLOW IN Anywhere (v6) [ 3] 10022/tcp (v6) ALLOW IN Anywhere (v6)
同様にIPv6用のルールも削除します。
$ sudo ufw delete 2
Deleting:
allow OpenSSH
Proceed with operation (y|n)? y # 「y」を入力
Rule deleted (v6)
ルールが削除されていることを確認します。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 10022/tcp ALLOW IN Anywhere [ 2] 10022/tcp (v6) ALLOW IN Anywhere (v6)
ルールの削除が終わりましたら、念の為に設定の再読込を行っておきます。
$ sudo ufw reload
ufwの使い方について
ufwの簡単な使い方を下記のページで説明しているので、よかったら参照してみてください。
パッケージ更新
サーバにインストールされているパッケージの更新も作業も行っておきましょう。
$ sudo apt update $ sudo apt upgrade
サーバ再起動
ここまでの作業が完了したらサーバの再起動を行います。
$ sudo reboot
SSH接続テスト
サーバの再起動が完了したら、SSHの接続テストを行っておきましょう。
- 一般ユーザログインできること
- 22番ポートを使用してログインできないと
- rootユーザでログインできないこと
以上で作業は完了となります、お疲れ様でした!
SSHサーバを公開鍵認証方式へ変更
運用上問題が無ければSSHの認証を公開鍵認証方式へ変更しておくことで、秘密鍵を持っているクライアントからしかログインすることができなくなり、セキュリティがより高まります。
ただし、公開鍵認証を導入することで下記のようなデメリットも発生しますので、内容を考慮した上で導入するかどうかの決めてください。
- サーバの所有者でも秘密鍵がないと接続できない
- 秘密鍵をなくすと再作成や再設定が必要になる
設定手順
設定方法については下記のページで解説しています。
秘密を鍵をなくしたら?
秘密鍵をなくした場合や秘密鍵が手元にない場合でも、ConoHaのサイトからコントロールパネルにアクセスし、そこのコンソールからVPSを操作することができるので、まったくVPSに接続する方法がなくなるということはありません。
コメント