【2026年版】セキュリティ対策万全!AIツールを動かすVPSへのSSH接続&ファイアウォール設定基礎
正直に言います:この設定、サボると普通に死にます
VPSを契約して最初にやるべき作業として、SSH鍵認証とファイアウォール設定の話をします。
はっきり書いておきます。パスワード認証のまま放置は本当にやめてください。VPSを契約した瞬間から、世界中のボットがポート22に対して総当たりをかけてきます。ログ(/var/log/auth.log)を見るとわかるんですが、新しいVPSを立ち上げてから数分で何百回もログイン試行が来てたりします。これ、最初に見たときはちょっとビビります。
AIツールをVPS上で動かすということは、APIキーやモデルデータを置くということでもあります。乗っ取られたらAPIキー流出、不正課金、最悪の場合は踏み台にされて他のサービスへの攻撃に使われる。「自分のサーバーは大丈夫だろう」は通用しないので、最初にきちんとやっておく。
この記事では、SSH鍵認証の設定からUFWファイアウォールの基本ルール、AIツール向けポート管理まで、コマンドをそのままコピペして使えるようにまとめています。
SSH鍵認証とは?パスワード認証との違い
| 認証方式 | 安全性 | 利便性 | 推奨度 |
|---|---|---|---|
| パスワード認証 | 低(総当たり攻撃に弱い) | 高 | ✗ 非推奨 |
| SSH鍵認証 | 高(数学的に解読困難) | やや高 | ◎ 推奨 |
SSH鍵認証は「秘密鍵(手元のPC)+公開鍵(VPS)」のペアを使います。パスワードを送信しないため、盗聴や総当たり攻撃のリスクが大幅に下がります。
**自分の感覚で言うと、**設定自体は15〜20分あれば終わります。「難しそう」と感じて後回しにする気持ちはわかるんですが、後でやろうとすると結局やらないまま運用が続くので、VPS契約直後のテンションがあるうちに済ませてしまうのが正直おすすめです。
SSH鍵の生成と登録手順
ステップ1:ローカルPCで鍵ペアを生成する
# 4096ビットのRSA鍵を生成(Mac/Linux)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 保存先とパスフレーズを聞かれる(デフォルトで問題なし)
# → ~/.ssh/id_rsa(秘密鍵)と ~/.ssh/id_rsa.pub(公開鍵)が生成される
自分の場合: パスフレーズは設定しておくことを勧めます。「毎回入力が面倒」と感じるかもしれないけど、秘密鍵ファイルが万が一漏れたときの保険になるので。
ステップ2:公開鍵をVPSに登録する
# ssh-copy-idコマンドで一発登録(ルートパスワードが必要)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@YOUR_SERVER_IP
# 手動で登録する場合
cat ~/.ssh/id_rsa.pub | ssh root@YOUR_SERVER_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
ステップ3:SSH設定ファイルを編集してパスワード認証を無効化
# VPS上でsshdの設定を編集
sudo nano /etc/ssh/sshd_config
# 以下の行を変更する
PasswordAuthentication no # パスワード認証を無効化
PermitRootLogin prohibit-password # rootの鍵認証は許可、パスワードは拒否
PubkeyAuthentication yes # 鍵認証を明示的に有効化
Port 2222 # デフォルトの22番から変更(任意)
# sshd を再起動(鍵認証で接続できることを確認してから行う)
sudo systemctl restart sshd
これは絶対に守ってください: パスワード認証を無効にする前に、別のターミナルを開いたまま鍵認証でログインできることを確認する。設定ミスで締め出されると、コンソール機能から復旧する作業が発生します。面倒なので、確認ステップは省かないで。
UFWファイアウォールの基本設定
Ubuntu/Debianで標準的に使われるUFW(Uncomplicated Firewall)は、シンプルなコマンドでルールを管理できます。
**正直に言うと、**UFWの設定で一番多いミスが「有効化する前にSSHポートを許可し忘れる」です。これをやると即座に締め出されます。自分も一回やりました。後述するコンソール機能で復旧できるので死にはしないんですが、なにげに焦るので順番通りにやってください。
UFWの有効化と基本ルール
# UFWのインストール(未導入の場合)
sudo apt install ufw
# デフォルトポリシー:受信拒否・送信許可
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH接続を許可(ポートを変更した場合は番号を変える)
sudo ufw allow 2222/tcp # または: sudo ufw allow ssh
# UFWを有効化
sudo ufw enable
# 設定確認
sudo ufw status verbose
AIツール別のポート開放ルール
| ツール・用途 | ポート番号 | UFWコマンド例 |
|---|---|---|
| Open WebUI(Ollama UI) | 3000 | sudo ufw allow 3000/tcp |
| Jupyter Notebook | 8888 | sudo ufw allow 8888/tcp |
| Stable Diffusion WebUI | 7860 | sudo ufw allow 7860/tcp |
| n8n ワークフロー | 5678 | sudo ufw allow 5678/tcp |
| カスタムAPI | 8000 | sudo ufw allow 8000/tcp |
# 特定のIPアドレスからのみ許可する(より安全)
sudo ufw allow from 203.0.113.1 to any port 8888
# ルールの削除
sudo ufw delete allow 8888/tcp
# 現在の全ルールを番号付きで表示
sudo ufw status numbered
自分が使っている運用: Jupyter NotebookやOpen WebUIは、全公開じゃなくて自分のIPアドレスからのみ許可にしています。
sudo ufw allow from 自分のIP to any port 8888の形式で書けばいい。自宅IPが変わる場合は面倒ですが、それでもポート全公開よりずっとマシ。
セキュリティチェックリスト
VPS構築後に必ず確認しておきたい項目を整理しました。
基本セキュリティ
- SSH鍵認証を設定し、パスワード認証を無効化した
- rootへの直接ログインを禁止した(
PermitRootLogin no) - SSHのデフォルトポート22番を変更した
- UFWを有効化し、必要なポートのみ開放した
- ログインユーザーに
sudo権限を付与した
継続的な管理
-
fail2banをインストールしてブルートフォース対策をした - 自動セキュリティアップデートを設定した(
unattended-upgrades) - ログを定期的に確認している(
/var/log/auth.log)
# fail2banのインストール
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 自動アップデートの設定
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
fail2banについて補足しておきます。 これは「一定回数ログイン失敗したIPを自動でブロックする」ツールです。SSH鍵認証にしていれば理論上は突破されないんですが、ボットのアタックがログに大量に残り続けるのは精神的に気になります。fail2banを入れておくと静かになるので、気持ち的にもラクです。
さくらのVPS・XServer VPSのコンソール機能
VPSサービスによっては、SSH接続が不可能な状況(設定ミスでSSHポートを閉じてしまった場合など)でも、ブラウザから緊急アクセスできるコンソール機能があります。
これ、VPS選びで地味に重要なポイントだと思っています。 設定ミスで締め出される経験は一度はやらかすので、コンソール機能があるサービスを選んでいれば「詰んだ」にはならない。精神的な安心感が違います。
| サービス | 緊急コンソール機能 | 備考 |
|---|---|---|
| XServer VPS | VNCコンソール | コントロールパネルから1クリック起動 |
| さくらのVPS | シリアルコンソール・VNC | プラン問わず利用可能 |
| ConoHa VPS | コンソール画面 | ブラウザから即時アクセス |
まとめ:「あなたの使い方」で判断してください
AIツールをVPSで安全に運用するためのSSH・ファイアウォール設定の要点をまとめます。
- SSH鍵認証に切り替えてパスワード認証を無効化する
- UFWでデフォルト拒否ポリシーを設定し、必要なポートだけを開放する
- fail2banでブルートフォース攻撃を自動ブロックする
- 緊急時に備えてVPSサービスのコンソール機能の使い方を把握しておく
あなたの状況別・判断テーブル
| 状況 | 判断 |
|---|---|
| VPS契約したばかりでまだ何もしていない | 今すぐこの記事の順番通りにやる。後回しNG |
| パスワード認証のまま数日運用してしまった | auth.logを確認してから即設定。怪しいログインがあれば一旦サーバー再構築を検討 |
| SSH鍵の設定はしたがUFWはまだ | UFWだけなら10分で終わる。次の作業の前に済ませて |
| セキュリティ設定済みでAIツールのポートを開けたい | 「特定IPのみ許可」形式を使う。全公開は不要なら避ける |
| 設定ミスで締め出された | VPSコントロールパネルのコンソール機能から復旧。焦らなくて大丈夫 |
| fail2banまで入れるべきか迷っている | 入れたほうがいい。インストール5分でログが静かになる |
セキュリティ設定は「一回やれば終わり」の作業です。最初の15〜20分を惜しんで後で痛い目を見るよりは、VPS契約直後のテンションで済ませてしまう。これが一番ラクな運用につながります。
別に完璧にやらなくていい。SSH鍵認証とUFWの基本ルールだけでも最初に入れておけば、リスクは格段に下がります。この記事の設定は「最終回答」じゃないので、とりあえず動かしてみてから細かいチューニングは後でやればいい。まず動かしてください。
