⚙️

VPS契約後の初期設定

2022/01/09に公開

この記事ではVPSを契約した際に行う初期設定をまとめています。
OSは「ubuntu20.04 server」を使っています。

まず最初に

設定ではありませんが、OSの初期化方法を確認します。
困ったときに最初からやりなおすためです。

パッケージのアップデート

パッケージリストの更新

$ sudo apt update

パッケージのアップデート

$ sudo apt upgrade -y

ホスト名の変更

OSのホスト名がシステムにより自動で決められている場合はホスト名を変更します。

現在のホスト名を確認

$ hostname
i-17100000244409

ホスト名の変更

$ sudo hostnamectl set-hostname HOSTNAME

変更後のホスト名を確認

$ hostname
HOSTNAME

時間設定の変更

現在の時間設定を確認

$ timedatectl status 
               Local time: Wed 2021-12-29 00:33:26 UTC
           Universal time: Wed 2021-12-29 00:33:26 UTC
                 RTC time: Wed 2021-12-29 00:33:27    
                Time zone: Etc/UTC (UTC, +0000)       
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no          

日本のタイムゾーンに変更

$ sudo timedatectl set-timezone 'Asia/Tokyo'

変更後の時間設定を確認

$ timedatectl status 
               Local time: Wed 2021-12-29 09:33:56 JST
           Universal time: Wed 2021-12-29 00:33:56 UTC
                 RTC time: Wed 2021-12-29 00:33:57    
                Time zone: Asia/Tokyo (JST, +0900)    
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no         

日本語化

言語パッケージの確認

$ localectl list-locales
C.UTF-8
en_US.UTF-8

日本語 パケージのインストール

$ sudo apt install -y language-pack-ja

インストール結果の確認

$ localectl list-locales
C.UTF-8
en_US.UTF-8
ja_JP.UTF-8

現在の言語設定を確認

$ localectl status
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

日本語パッケージの適応

$ sudo localectl set-locale LANG=ja_JP.UTF-8

言語設定の確認

$ localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

設定を反映するため再起動

$ sudo reboot

公開鍵認証によるログイン設定

秘密鍵・公開鍵の生成

windowsに標準でインストールされている「OpenSSHクライアント」を利用して、秘密鍵および公開鍵を作成します。
window11では「設定」→「アプリ」→「オプション機能」と進んでいくと「OpenSSHクライアント」がインストールされていることが確認できます。

コマンドプロンプトを開き「ssh-keygen」と入力

>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\NacoLab/.ssh/id_rsa):
Created directory 'C:\Users\NacoLab/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\NacoLab/.ssh/id_rsa.
Your public key has been saved in C:\Users\NacoLab/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xyPVXahz9IZp4ABzQTANjFf4PfElxc+nmeGGxOVApII nacolab@MyComputer
The key's randomart image is:
+---[RSA 3072]----+
|       o*O=+o  +o|
|      ..++oo+.=.o|
|      E...o=.X.B.|
|         +. O O *|
|        S +. B *.|
|         o .. *  |
|             .   |
|                 |
|                 |
+----[SHA256]-----+

3行目で秘密鍵および公開鍵をどのディレクトリに作るか質問されます。問題なければenterを押します。

Enter file in which to save the key (C:\Users\NacoLab/.ssh/id_rsa):

5、6行目ではログインの際に入力するパスフレーズを入力します。不要の場合は何も入力せずenterを押します。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

ディレクトリの確認

「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵です。

公開鍵の保存

先ほど作成した公開鍵「id_rsa.pub」をサーバへ保存します。
公開鍵認証を行いたいユーザのホームディレクトリで「.sshディレクトリ」を作成

$ mkdir .ssh
$ chmod 700 .ssh

「.sshディレクトリ」に移動し「authorized_keysファイル」を新しく作成します。
作成した公開鍵「id_rsa.pub」の中身をそのままコピー&ペーストでauthorized_keysファイルへ移します。

$ cd .ssh/
$ vi authorized_keys

「authorized_keys」の編集後、権限を変更します。

$ chmod 600 authorized_keys

opensshの設定ファイルsshd_configの編集

opensshの設定を変更します。インストールされていない場合は下記コマンドを実行

$ sudo apt install openssh-server

設定ファイル/etc/ssh/sshd_configの編集

sudo vi /etc/ssh/sshd_config 

以下の項目について追記または変更します。

#rootでのログイン禁止
PermitRootLogin no
#ログインユーザの限定
AllowUsers username
#パスワード認証の禁止
PasswordAuthentication no
#ログインに使用するポートの変更
port 50000

設定を反映するため、opensshの再起動

$ sudo service sshd reload

ファイヤーウォールの設定

ufwを用いてファイアウォールの設定を行います。
ufwが入っていない場合は下記コマンドでインストール

$ sudo apt -y install ufw

ufwの状態を確認を確認。非アクティブとなっています。
アクティブにする前に、ufwの設定を行います。

$ sudo ufw status
状態: 非アクティブ

すべての通信を拒否

$ sudo ufw default deny
デフォルトの incoming ポリシーは 'deny' に変更しました
(適用したい内容に基づいて必ずルールを更新してください)

その後、ログインに使用するポートを許可

$ sudo ufw allow 50000
ルールをアップデートしました
ルールをアップデートしました(v6)

ufwの有効化

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
ファイアウォールはアクティブかつシステムの起動時に有効化されます。

ufw状態の確認

$ sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
50000                      ALLOW       Anywhere                  
50000 (v6)                 ALLOW       Anywhere (v6)  

ログインするipアドレスを指定する場合は下記のコマンドを実行します。

$ sudo ufw allow from 255.255.255.255 to any port 50000

Discussion