新しいVPSを入手した際、アプリのインストールやWebサイト構築よりも最優先で行うべき作業が「セキュリティの堅牢化(Hardening)」です。
デフォルトの22番ポートは常に世界中からボットによるブルートフォース(総当たり)攻撃に晒されており、何の対策もしていない「素のVPS」は短期間で侵入されるリスクがあります。手動で行うと手間がかかる設定作業も、オープンソースツール「vps-security-hardening」を使えば、ローカル環境からコマンド1発で全自動実行できます。
自動化される7層のセキュリティ対策
このスクリプトはリモート接続経由で実行され、以下のセキュリティ設定を自動で適用・検証します。
- SSH接続チェックとOSアップデート:ネットワーク応答を確認後、パッケージ更新とセキュリティパッチを適用。
- 新規sudoユーザーの作成:管理者権限を持つ一般ユーザーを作成し、root直でのログインを禁止。
- SSH鍵認証の必須化とパスワードログイン禁止:パスワード認証(PasswordAuthentication no)を完全無効化し、SSH鍵認証のみに制限。
- SSHポートの変更:デフォルトの22番ポートを任意の高位ポートへ変更し、自動スキャン攻撃を回避。
- Fail2banの導入と自動ブロック:ログイン失敗を繰り返す悪質なIPアドレスを自動的にアクセス拒否。
- UFWファイアウォールの設定:不要なポートをすべて遮断し、新しいSSHポートのみを許可(22番ポートは削除)。
- Dockerのファイアウォールバイパス対策:Dockerがiptablesを操作してUFWルールを迂回してしまうセキュリティホールを自動修正。
コマンドの実行方法と事前準備
1. 事前準備(2つの前提条件)
- クラウド側のポート開放:VPS提供元(ConoHa、AWS、さくらのVPSなど)の管理画面(セキュリティグループ/パケットフィルター)で、新しく設定するSSHポートをあらかじめ許可しておきます。
- ローカル環境への
sshpassインストール:最初のパスワード接続のためにローカル端末へsshpassを導入します。- macOS:
brew install sshpass - Linux (Ubuntu/Debian):
sudo apt install sshpass
- macOS:
2. 実行コマンド
以下のパラメータをご自身の環境に合わせて書き換えて実行します。
Bash
./scripts/harden-vps.sh \
--ip <VPS_IP> \
--root-pass <ROOT_PASSWORD> \
--user <NEW_USER> \
--user-pass <NEW_USER_PASSWORD> \
--port <SSH_PORT>
ライセンス:MIT License
対応OS:Ubuntu / Debian シリーズ


评论