Ubuntu の初期設定メモ 2023(2)

VPS の Time4VPS に Ubuntu をインストールした。

先日同じ投稿をしたばかりだが、少し改良したので改めて書き直してみる。

環境:Time4VPS(Linux 8:CPU a3 x 2.6 GHz、RAM: 8192 MB、Storage: 80 GB)

(1)Time4VPS でインストールできる最新の Ubuntu 22.04 をインストールする。

Time4VPS では root のパスワードが自動的に生成される。

(2)[オプション] 今回はインストールのし直しなので、前の SSH の設定が残っているため SSH 接続すると、「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」などと表示されてログインできない。以下のコマンドでキーを削除し直した上でログインする。

$ ssh-keygen -R {Time4VPS のホスト名}

(3)アップデート。

# apt update
# apt dist-upgrade -y
# apt autoremove

再起動を求められたので再起動。

# reboot now

(4)タイムゾーンを日本に変更する。

# timedatectl set-timezone Asia/Tokyo

(5)【一般ユーザーを作成する。】

(5-1)

# adduser {ユーザー名}

対話方式で入力していく。ユーザーディレクトリも作成される。

(5-2)【ユーザーを sudo グループに追加する。】

現在のグループの確認。

# groups {ユーザー名}
{ユーザー名} : {ユーザー名}

sudo グループに追加。

# usermod -aG sudo {ユーザー名}

確認。

# groups {ユーザー名}
{ユーザー名} : {ユーザー名} sudo

(5-3)【[オプション] sudo を実行時にパスワード入力を省略する。】

# visudo

「# Allow members of group sudo to execute any command」に以下を追加する。

{ユーザー名} ALL=(ALL) NOPASSWD:ALL

(6)【ufw の設定。】

(6-1)ステータスの確認。

# ufw status
Status: inactive

inactive なので有効化する。

# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

(6-2)一旦すべてのポートを拒否し、SSH 用に 22 番だけ開ける。

# ufw default deny
# ufw allow 22

(6-3)/etc/default/ufw を編集し、IPv6 を無効化する。

変更前:
IPV6=yes

変更後:
IPV6=no

(6-4)ufw の再読み込み。

# ufw reload

ステータスを確認し、22 番だけが開かれていることを確認する。

# ufw status

(7)【ICMP を無効化する。】

/etc/ufw/before.rules を以下のように編集する。

変更前:
#ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

変更後:
#ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type source-quench -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

(8)【SSH のポート番号を変更する。】

/etc/ssh/sshd_config を編集(2222 に変更する場合)。

変更前:
#Port 22

変更後:
Port 2222

sshd を再起動。

# service ssh restart

ufw で 2222 番を追加、22 番を削除。

# ufw allow 2222
# ufw delete allow 22
# ufw reload
# ufw status

一旦ログアウトし、SSH 接続ができることを確認する。

$ ssh {root|ユーザー名}@{Time4VPS のホスト名} -p 2222

(9)【root の SSH ログインを禁止する。】

/etc/ssh/sshd_config を編集。

変更前:PermitRootLogin yes
変更後:PermitRootLogin no

ssh を再起動。

# service ssh restart

ログアウトして root でログインができなくなったことを確認する。ログインしようとすると、「Permission denied, please try again.」と表示される。

# exit

今後は一般ユーザーでログインし、root に昇格するには以下のコマンドを使う。

$ sudo su -

(10)SSH のレートリミットを設定し、30 秒に6回以上 SSH 接続を拒否する。8の 2222 にもレートリミットを設定しておく。

$ sudo ufw limit ssh
$ sudo ufw limit 2222
$ sudo ufw reload
$ sudo ufw status

参考:
RaspberrypiでSSHができなくて試したこと - Qiita
https://qiita.com/hayate242/items/0de7a98f6fea0dabf04c

How to Add and Remove Users on Ubuntu 22.04
https://linuxhint.com/add-remove-users-on-ubuntu-22-04/

Ubuntu のセキュリティ設定|荒川仁志|note
https://note.com/hitoshiarakawa/n/n22a67106245d

How to run sudo command without a password on a Linux or Unix - nixCraft
https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/

[Ubuntu 18.04] ufw で細かい指定条件でファイアウォールを設定する方法 | 僕とガジェット
https://www.gadgets-today.net/?p=4754

第77回 Ubuntuのソフトウェアファイアウォール:ufwの利用(2) | gihyo.jp
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0077


この記事が気に入ったらサポートをしてみませんか?