👋
【Movementテストノード挑戦記】16章:SSHログイン設定、ポート制限手順
Chapter 16:SSHログイン設定、ポート制限手順
目的
- 初めてMovementノード構築を始める人が、安全かつ確実にSSH接続を確立できるようにする
- 以降のサーバ作業の前提として、鍵認証必須・root禁止・安全なポート運用を整える
前提条件
- OS:Ubuntu 22.04 LTS
- VPS:ConoHa等のリモートコンソール(VNC/シリアル)が使えること
- ユーザ名は例として
JapanNomu
を使用(実際には適切な名称に置き換えること)- この手順は root ユーザで作業開始することを前提(一般ユーザ経由の場合は適宜
sudo
を追加)
実施手順(概要+コマンド+注意点)
-
Teratermで鍵生成(鍵ペアの作成)
- 公開鍵と秘密鍵を作成し、安全に保管(オフラインでもバックアップ)
- 目的:パスワードを使わずに安全に接続するための認証方式を準備
-
VPSへrootユーザでログイン
- VPS管理画面のVNC/シリアルで接続
- 目的:初期状態での作業開始と緊急復旧経路の確保
- 注意:作業中は必ずVNC/コンソールを開いたまま行い、ロックアウト防止
-
sshd_configのバックアップ
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F)
- 目的:設定を誤った場合にすぐ復元できるようにする
-
注意:この後の
sshd_config
編集は既存設定を上書きするため、事前バックアップ必須
-
VPSへ公開鍵を追加(rootユーザ)
- 目的:JapanNomuユーザへ移行する前に、rootでも鍵ログインできるようにしておく保険
- 移行が完了したらroot鍵は削除(最後の手順参照)
mkdir -p ~/.ssh chmod 700 ~/.ssh echo "(公開鍵の中身)" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
-
JapanNomuユーザ追加&管理権限付与
- 目的:日常作業はrootでなく一般ユーザ+必要な時のみsudoで行う
adduser JapanNomu usermod -aG sudo JapanNomu
- 鍵登録(JapanNomu用)
mkdir -p /home/JapanNomu/.ssh chmod 700 /home/JapanNomu/.ssh echo "(公開鍵の中身)" >> /home/JapanNomu/.ssh/authorized_keys chmod 600 /home/JapanNomu/.ssh/authorized_keys chown -R JapanNomu:JapanNomu /home/JapanNomu/.ssh
-
ファイアウォール初期設定(UFW)
- 目的:不要な外部アクセスを拒否し、SSHなど必要な通信だけ許可
-
注意:以下の
default deny/allow
は既存ポリシーを上書きするため、既にUFWを設定済みの場合は実行せずルール追加のみにする
apt update apt install -y ufw ufw default deny incoming ufw default allow outgoing ufw allow 22/tcp ufw enable ufw status verbose
-
fail2ban導入
- 目的:不正ログイン試行を検出し、自動でアクセス遮断
apt install -y fail2ban systemctl enable --now fail2ban
-
SSHポート10022追加(段階的切替)
- 目的:ブルートフォース攻撃を減らすため標準ポートから変更
-
注意:
/etc/ssh/sshd_config
編集は既存のPort設定を上書きするため、他の用途で使うポート指定がある場合は併記すること -
/etc/ssh/sshd_config
に追加Port 22 Port 10022
- ファイアウォール許可
ufw allow 10022/tcp systemctl restart ssh
-
JapanNomuユーザで10022ポートの鍵ログイン確認
ssh -p 10022 JapanNomu@<サーバIP>
-
ポート22を閉じる
- 目的:標準ポートを完全閉鎖し攻撃対象から外す
-
/etc/ssh/sshd_config
からPort 22
を削除またはコメントアウト - ファイアウォールから削除
ufw delete allow 22/tcp systemctl restart ssh
-
再度10022ポートで鍵ログイン確認
-
rootユーザのリモートログイン無効化
- 目的:root直接ログインを防止しセキュリティ強化
-
/etc/ssh/sshd_config
PermitRootLogin no
systemctl restart ssh
-
パスワード認証の無効化(鍵ログイン成功後)
- 目的:パスワードによる総当たり攻撃を無効化
-
/etc/ssh/sshd_config
PasswordAuthentication no KbdInteractiveAuthentication no
systemctl restart ssh
-
root鍵の削除(移行完了後)
- 目的:保険用に置いていたroot鍵を削除し、完全にrootログイン不可状態にする
rm -f /root/.ssh/authorized_keys rmdir /root/.ssh 2>/dev/null || true
-
最終確認
- JapanNomuユーザでポート10022から鍵ログイン可能
- rootログイン不可
- パスワード認証不可
- 不要なポートやルールがないことを
ufw status
で確認
Discussion