0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第2回】初めてのVPS|VPS管理画面を使ったセキュリティ設定

0
Posted at

前回の記事ではVPS(仮想専用サーバー)のレンタルとSSHキー設定の手順についてまとめた。

本記事では前回に引き続き、Windows11環境からVPS管理画面を使ったセキュリティ設定についての手順をまとめる。

目次

【第3回】Windows11のコマンドプロンプトでSSH接続(準備中)

二段階認証の設定

VPS管理画面で二段階認証を設定する。
シンVPSではレンタルに使う「シンアカウント」とVPSごとの管理画面それぞれに二段階認証を設定可能。

パッケージの更新

サーバーにあらかじめインストールされている最低限のソフトウェアのセット(パッケージ)を最新のバージョンに更新する。

VPS管理画面のコンソールでログイン

VPS管理画面のVPSパネルにある「コンソール」をクリック。
250802_vps_console.png

リモートデスクトップのウィンドウが立ち上がる。
250802_vps_console_2.png

ウィンドウの右上にある「Send CtrlAltDel」を押すとサーバーが再起動するので、フォーカスしないように注意。

レンタル時に設定したrootアカウントのパスワードでログインする。
250802_vps_console_3.png

パスワードの入力を求められる場面では、入力した文字が非表示になっている。
入力ができないと勘違いしないように注意。

パッケージの更新コマンドを実行

以下の順番でコマンドを入力する。

apt update         # パッケージリストの更新
apt upgrade -y     # インストール済みパッケージを更新

SSH接続用アカウント作成

管理画面のコンソールではコピー&ペーストやファイルのアップロードとダウンロードができないため、SSH接続できるように設定していく。

まずはSSH接続用アカウントを作成し、アクセス権限が強い「root」にはSSH接続でログインできないように設定する。

SSHキー作成

新たなアカウントを作る前に、SSHキーを作成する。

シンVPSのアカウントメニューには「SSH Key」という項目があり、画面右上の「SSH Keyの登録」から新たな鍵を自動作成することができるため、筆者の環境ではこれを利用した。
250802_vps_ssh_key.png

この秘密鍵も、前回の記事で紹介した「ディレクトリとアクセス許可」の条件を整えておく。

アカウント作成

コンソールにrootログインした状態で、adduser アカウント名を入力する。
例えば、アカウント名「hogehoge」を作成する場合は以下のように入力する。

adduser hogehoge

新しいアカウントの設定を問われるので、それぞれについて入力する。

新しいアカウントのパスワード設定

任意のパスワードを設定。

名前や連絡先の入力

空白のままでよいのでENTERキーを押して確定する。

作成したアカウントにSSHキーを取り付ける

新しいアカウントが作成できたら、ログイン用の錠前(公開鍵)を取り付ける。

テキストエディタ「nano」で公開鍵ファイルを開く

コンソールに以下の内容を入力する。

cd /home/アカウント名 # ディレクトリ移動
mkdir -p .ssh # ディレクトリを作成
nano .ssh/authorized_keys # テキストエディタで開く

例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。

cd /home/hogehoge
mkdir -p .ssh
nano .ssh/authorized_keys

「authorized_keys」というファイルは存在しないが、テキストエディタで開くことができ、内容を入力して保存すると作成される。

公開鍵のテキストを入力して保存

コンソール上で編集できる状態になるので、あらかじめ作成しておいたSSHキーの公開鍵テキストを全て入力する。
シンVPSではアカウントメニューの「SSH Key」から公開鍵を表示させることができる。

コピー&ペーストはできないので入力ミスに注意。

入力できたら、テキストエディタを閉じるため、「^X」コマンドを入力する。
「^」は「Ctrlキー」入力のことなので、「Ctrlキーを押しながらXキー押下」 で閉じることができる。
Xは大文字で表記されているが、Shift入力は不要。

その後変更を保存するかどうかを問われるので、「Yキー」を押すと「.ssh/authorized_keys」が作成、保存される。

「.ssh/authorized_keys」のアクセス権限を設定

以下のコマンドでフォルダの所有者やアクセス権限を設定する。

# .sshフォルダとその中身の所有者を作成したアカウントに変更
chown -R アカウント名:アカウント名 /home/アカウント名/.ssh
# 所有者だけに読み書き実行の権限を付与
chmod 700 /home/アカウント名/.ssh
# 所有者だけに読み書きの権限を付与
chmod 600 /home/アカウント名/.ssh/authorized_keys

例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。

chown -R hogehoge:hogehoge /home/hogehoge/.ssh
chmod 700 /home/hogehoge/.ssh
chmod 600 /home/hogehoge/.ssh/authorized_keys

作成したアカウントに管理者権限を付与

gpasswd -a アカウント名 sudoのコマンドで新しいアカウントに管理者権限を付与する。
例えば、新しく作成したアカウント名が「hogehoge」なら以下のように入力する。

gpasswd -a hogehoge sudo

SSH接続でのrootのログインを禁止する

「root」のパスワード自体をロックする方法を紹介している記事もあるが、この方法だと管理画面のコンソールからも「root」にログインできなくなり、緊急時の復旧手段がなくなってしまうので、本記事では扱わない。

SSHの設定ファイルを書き換える

SSHの設定ファイル「/etc/ssh/sshd_config」を書き換えて、SSH接続でrootにログインできないように設定する。

まず、「/etc/ssh/sshd_config」をテキストエディタ「nano」で開くコマンドを入力する。

nano /etc/ssh/sshd_config

レンタルするVPSによって「/etc/ssh/sshd_config」の内容は異なっており、以下に示す筆者の環境とは必ずしも一致しない。
ログインに関わるファイルなので、自分の環境と照らして編集は慎重に。

#でコメントアウトされている行が多く見づらいが、筆者の環境においてコメントアウトされていなかった行は以下。

Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin prohibit-password
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server

「root」でSSH接続できない設定にするには、PermitRootLoginから始まる行を、PermitRootLogin noに変更し、保存する。
筆者の環境では、この行はデフォルトでPermitRootLogin prohibit-passwordだった。

補足

調べたところによると、環境によっては、

  • Include /etc/ssh/sshd_config.d/*.confで別のファイルがインクルードされており、その中で設定されている
  • ChallengeResponseAuthenticationyesとなっており、noに変更が必要

ということもある様子。
筆者が実際に試したわけではないため、設定が上手くいかなかったときの足掛かり的な情報になればと。

設定項目について参考にしたい記事

SSHを再起動して設定を反映

最後に、以下のコマンドで先ほど編集したSSH接続の設定を反映させる。

systemctl restart ssh

ここまでできたら、exitコマンドでログアウトしてコンソールを閉じる。

パケットフィルター設定

シンVPSではパケットフィルター設定を使ってアクセスを許可するIPアドレスとポートを設定できるので、自分のPCのグローバルIPアドレスだけがVPSとSSH接続できるようにする。

PCのグローバルIPアドレスを調べる

グローバルIPアドレスを確認できるサイト

IPアドレスにはローカルとグローバルがあるが、ここではグローバルIPアドレスを確認する。

パケットフィルター設定を追加

VPS管理画面のパケットフィルター設定で、「パケットフィルター設定を追加する」から以下ように内容を設定。
250802_vps_packet_filter.png

黒塗り部分には調べたグローバルIPを入力する。

SSH接続はデフォルトでポート番号22となっている。

グローバルIPアドレスは変わることがあるので、アクセスできなくなった場合は再度アドレスを確認して設定しなおすか、許可するアドレスの範囲を広げる。

単一のホストのみを許可する場合は「□.□.□.□/32」の形式を使用し、例えば 123.45.67.89/32 ならその1つだけが対象となる。

一方、□.□.□.0 ~ □.□.□.255(例えば 123.45.67.0 ~ 123.45.67.255)のように範囲を広げて許可する場合は「□.□.□.0/24」と表記する。

※「□」にはIPアドレスの数値(0〜255)が入る。

IPアドレスを全て許可するとブルートフォース攻撃などのセキュリティリスクが高まるので注意。

【第3回】Windows11のコマンドプロンプトでSSH接続につづく(準備中)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?