🚀

ConoHa VPSでUbuntuサーバーを構築(基礎設定)

2022/12/10に公開

はじめに

昔からLinux関連の知識を勉強したかったでした!キョです。
でも、お恥ずかしいですが、ずっと計画立っていなくて放置していました。
先月のConoHaの50万人キャンペンーンを見て、「今だ!」と思って、ConohaのVPSを契約しましたので、最低限の設定まで行ったことを備忘録として残りたいと思います。

サーバー設定

基本ConoHaの公式サイトに載っている設定を行いましたが、微妙に実際の操作と違う部分がありましたので、その部分についても記載してみました。
公式サイトの利用ガイド

1.契約したサーバーにログイン

契約後のログインはConohaのコントロールパネルでしか行えないですので、
一度コントロールパネルを利用して、ログインします。

※自分の場合、sshの設定が「パスワードログイン禁止」が初期値になっていますので、
 sshでのログインはできませんでした。

2.OSのアップデート

ログインした後はまずOSのアップデートですね。

コントロールパネルからのコンソール
# インストール可能なパッケージの一覧を更新
$ apt update

# 一覧を使って、実際にインストール・アップグレードを行う
$ apt upgrade

3.一般ユーザー作成

rootユーザーは何の操作でもできるユーザーになっていますので、基本直接使わないほうがいいです。
※例えば、誤操作などで重要なファイルを削除してしまう等

コントロールパネルからのコンソール
# 一般ユーザー作成
$ useradd [ユーザー名]

# パスワード設定
$ passwd [ユーザー名]

一般ユーザーはroot権限がないため、sudoを利用することでroot権限が必要なコマンド操作が可能となります。
sudoではパスワード入力を求められ、コマンドの入力ミスなどの誤操作を防ぐことにもつながります。

コントロールパネルからのコンソール
# ユーザーをsudoグループに所属させて、sudo利用できるようにする
$ gpasswd -a [ユーザー名] sudo

4.一般ユーザーを公開キー認証を利用してログインするように設定

設定する必要があるのは以下になります。

  1. キー生成
  2. キー設置
  3. rootユーザーのSSHログインを禁止

設定手順は公式サイトの設定手順通りになりますが、
公式手順を利用して設定する時、以下の注意点があります。

VPS作成時のsshデフォルト設定は「パスワードログイン禁止」になっていますので、
以下の手順で一度パスワードログインを許可して、設定完了後再度禁止するか
公式手順の操作をコントロールパネルから行うかどちらで行う必要があります。

ssh設定ファイルを開く
# vi /etc/ssh/sshd_config
パスワードログインを一度許可する
PasswordAuthentication no
↓
PasswordAuthentication yes #[yes]を[no]に変えます

設定完了後、パスワードログインを禁止するのを忘れないようにですね。

5.SSHのポート番号を変更する

SSHのデフォルトポートは「22」ですが、
ボッドによって、不正アクセスが大量発生しやすいと思って、
私の場合はポートを「10022」に変更しました。

設定方法
$ sudo vim /etc/ssh/sshd_config
# Port 22を以下に変更
Port 10022

# sshdを再起動して設定を反映
$ sudo service sshd restart

6.接続許可ポートを設定

設定方法は二つで、
一つ目はConohaのコントロールパネルからの設定です。
手順は公式サイトの「接続許可ポートを設定する」を参照してください。

もう一つは、コントロールパネルですべてのポート許可して、サーバー内でファイヤーウォールを利用して接続許可の設定を行う方法です。
私の場合は「ufw」というツールが利用しました。(VPS作成時デフォルトで入っています。)

# いまの設定状況を確認する
$ sudo ufw status
# 以下の表示の場合は、現在「無効」になっている
# VPS作成時は基本「有効」になっている
status inactive

# ファイヤーウォールを有効にする
$ sudo ufw enable

# 一旦すべてを拒否
$ sudo ufw default deny

# webサーバーとして使用することを想定して以下のポートは有効にする
$ sudo ufw allow https/tcp
$ sudo ufw allow http/tcp
$ sudo ufw allow ftp

# sshで設定したポート番号
$ sudo ufw allow 10022

# 現在の設定を確認
# 設定した内容は以下に記載されている
# /etc/ufw/user.rules
$ sudo ufw status verbose

# 設定した内容を反映する
$ sudo ufw reload

7.不正アクセスへの対処

不正アクセスを対策するために、今回は「fail2ban」を利用しました。
「fail2ban」とは、サーバーに不正アクセスがあった場合に、そのユーザーを一定時間ブロックしてくれるプラグインです。
自分がログイン失敗し続けた場合もbanされますので、注意が必要です。

# fail2banをインストールする
$ sudo apt install fail2ban

# fail2banを起動する
$ sudo /etc/init.d/fail2ban start

終わり

私が実際に行った設定を記録してみました。
誰かのお役に立てれば幸いです。

参考サイト

https://support.conoha.jp/vps/guide/vpsstartup/?btn_id=v-port-sidebar_guide-vpsstartup
https://zenn.dev/tau_dev/articles/e5e0a6d6df9724

Discussion