🧭 あなたに最適なVPSを30秒で無料診断 診断する →

【2026年版】「VPSがハッキングされたかも?」不正アクセスを防ぐための初期設定とfail2ban導入

読む前に30秒だけ。用途・予算を選ぶだけで、あなたに最適なVPSがわかります(無料・登録不要) 無料診断 →

【2026年版】「VPSがハッキングされたかも?」不正アクセスを防ぐための初期設定とfail2ban導入


先に結論を書きます

VPS契約してIPが割り当てられた瞬間から、ボットが来ます。これ、全員が通る道です。自分も最初にログ見て「えっ」ってなったけど、別に狙われてるわけじゃない。世界中のボットが片っ端からIPを叩いてるだけ。

問題は「攻撃されてること」じゃなくて、**「対策してないこと」**です。

だから先に結論を書いておきます。

やること優先度理由
SSHポート変更 + パスワード認証無効今すぐやるこれだけでブルートフォースのほぼ全部が無意味になる
ufw でポート閉鎖今すぐやる使ってないポートは全部閉める
fail2ban 導入できれば同日中自動でBANしてくれる。入れておいて損はない
ログ監視の自動化余裕があれば精神的な安心のためにあると良い

上の2つだけ今日やってください。それだけで全然違います。完璧じゃなくていい。「必須」を先に終わらせることが大事。


ハッキングされているサインを確認する

まず現状把握から。怖がる必要はないけど、「今どうなってるか」は見ておいた方がいいです。

# 最近のSSHログイン試行を確認する
sudo journalctl -u ssh --since "1 hour ago" | grep "Failed password"

# 現在ログイン中のユーザーを確認する
who
w

# 認証ログを確認する(不審なIPがないか)
sudo tail -100 /var/log/auth.log | grep "Accepted\|Failed"

# 外部通信しているプロセスを確認する(不審なプロセスがないか)
sudo ss -tlnp
sudo netstat -tlnp

自分が最初にこれを実行したとき、1時間で300件以上の Failed password が並んでて、正直ちょっとびびりました。でもこれ、みんな同じです。VPS持ってる人全員が通る道。「自分だけ」じゃない。

ただ、パスワード認証が生きたままだと本当にまずい。辞書攻撃で突破されるリスクがある。「複雑なパスワード使ってるから大丈夫」という人ほど後回しにしがちなんですが、それが一番危ない。ここで一気に設定してしまいましょう。

1時間100件以上の Failed password が出てたら、もうブルートフォース攻撃を受けてます。「気がする」じゃなくて「受けてる」です。でも落ち着いて。STEP 1からやれば大丈夫。


STEP 1:SSHの初期設定を強化する

# SSHの設定ファイルを開く
sudo nano /etc/ssh/sshd_config

以下の設定を変更または追加します。

# ポートをデフォルト22から変更する(例:2222)
Port 2222

# rootでの直接ログインを禁止する
PermitRootLogin no

# パスワード認証を無効化してSSH鍵認証のみにする
PasswordAuthentication no
ChallengeResponseAuthentication no

# 空パスワードを禁止する
PermitEmptyPasswords no

# 最大ログイン試行回数を制限する
MaxAuthTries 3

# ログイン接続タイムアウトを短縮する
LoginGraceTime 30
# 設定を保存後、SSHを再起動する
sudo systemctl restart sshd

# 新しいポートで接続できるか確認してから古いセッションを閉じること
ssh -p 2222 ubuntu@YOUR_VPS_IP

ここだけは必ず守ってください。 新しいポートで接続できることを確認する前に古いセッションを閉じると、締め出されます。コンソール接続(ブラウザ経由)が使えるVPSならリカバリできますが、焦ります。

手順はこの順番を崩さないでください:
「新しいターミナルで接続確認 → OK → 古いセッション閉じる」

自分もこれを逆にやって一度焦ったことがあります。コンパネのコンソールから復旧できたけど、夜中にやってると結構きつい。

XServer VPS →はSSH鍵の事前登録機能があり、初回接続からパスワード認証なしで使えます。この仕組みがあるプロバイダーは地味にありがたい。スタート地点からすでに一段安全です。


STEP 2:ファイアウォール(ufw)を設定する

# ufwをインストールして有効化する
sudo apt install -y ufw

# デフォルトで全受信を拒否する
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 必要なポートのみ許可する
sudo ufw allow 2222/tcp comment 'SSH(変更後のポート)'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'

# ファイアウォールを有効化する
sudo ufw enable

# 設定を確認する
sudo ufw status verbose
ポート用途推奨設定
22SSH(デフォルト)変更して閉じる
80HTTPWebサーバー運用時のみ開ける
443HTTPSWebサーバー運用時のみ開ける
3306MySQLローカルのみ許可
6379Redisローカルのみ許可

自分がよくやるミスは「Webサーバーを動かす予定もないのに80と443を開けたまま放置」です。使わないポートは閉じる。それだけ。シンプルだけど、これが基本中の基本です。

正直、ufw の設定は5分で終わります。「後でやろう」と思って放置してる人が一番リスクを抱えている。今終わらせてください。


STEP 3:fail2banをインストールして設定する

fail2ban は一定回数以上のログイン失敗があったIPを自動的にブロックするツールです。「やられる前に弾く」仕組みですね。

# fail2banをインストールする
sudo apt install -y fail2ban

# カスタム設定ファイルを作成する(jail.confは直接編集しない)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

jail.local の重要な設定箇所を変更します。

[DEFAULT]
# 自分のIPをバンから除外する
ignoreip = 127.0.0.1/8 ::1 YOUR_HOME_IP

# バン継続時間(秒): 3600 = 1時間
bantime = 3600

# 試行回数カウントの時間枠(秒)
findtime = 600

# 何回失敗でバンするか
maxretry = 5

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
# fail2banを起動して自動起動を設定する
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

# 動作確認: バンされているIPを確認する
sudo fail2ban-client status sshd

# 特定のIPのバンを解除する(誤検知の場合)
sudo fail2ban-client set sshd unbanip 1.2.3.4

ignoreip に自分の自宅IPを入れておくのは必須です。はっきり書きます、これを忘れると自分がBANされます。

VPN切れたとか接続ミスったとかで、自分が3回失敗したら即アウト。自分は一度やらかして、コントロールパネルのコンソールから復旧しました。あれは深夜にやると本当に焦る。自宅IPの確認は curl ifconfig.me で一発でわかります。

さくらのVPS →ではパケットフィルタリング機能がコントロールパネルから設定でき、fail2banと組み合わせることで多層防御が実現できます。コンパネ側とOS側の両方でブロックできるのは、誤バン時のリカバリ手段が増えるという意味でも地味に安心です。「万が一自分がBANされたとき」の逃げ道として、コンパネ経由のコンソールが使えるVPSを選んでおくのは正直おすすめです。


STEP 4:ログ監視の自動化

# 毎日のSSHログイン失敗件数をSlackに通知するスクリプト
cat > /opt/security_report.sh << 'EOF'
#!/bin/bash
FAILED=$(sudo journalctl -u ssh --since "24 hours ago" | grep -c "Failed password" || echo 0)
BANNED=$(sudo fail2ban-client status sshd | grep "Currently banned" | awk '{print $4}' || echo 0)
MESSAGE="【VPSセキュリティ日報】ログイン失敗: ${FAILED}件 / BANされたIP: ${BANNED}件"
curl -s -X POST "$SLACK_WEBHOOK_URL" -H 'Content-type: application/json' \
  --data "{\"text\":\"${MESSAGE}\"}"
EOF
chmod +x /opt/security_report.sh

# 毎朝9時に実行するcronを設定する
echo "0 9 * * * /opt/security_report.sh" | sudo crontab -

正直、Slack通知まで設定する人は少ないと思います。でも入れておくと「今日もちゃんとブロックしてるな」というのが毎朝確認できて、精神的に落ち着きます。数字が見えると安心できる。

STEP 1〜3 が終わってから余裕があればやる、それくらいの温度感で大丈夫です。


セキュリティ設定チェックリスト

項目優先度
SSH鍵認証のみ(パスワード認証無効)必須
SSHポートを22以外に変更推奨
rootログイン禁止必須
ufwで不要ポートを閉鎖必須
fail2banを稼働推奨
定期的なパッケージアップデート必須
ログ監視の設定余裕があれば

「必須」の4つを先にやる。「推奨」は後でいい。それくらいの温度感で構いません。

完璧を目指して何もしないより、最低限を今すぐやる方がずっといい。これははっきり言えます。


A. `sudo fail2ban-client status sshd` を実行して「Currently banned」の数を確認してください。バン中のIPがあれば正常に動作しています。攻撃元が多数の異なるIPから来ている場合、バンしても次々と新しいIPから来るため「止まらない」ように見えますが、それでも同一IPからの連続攻撃は防げています。
A. VPSのコントロールパネルからコンソール接続(Webブラウザ経由のターミナル)でサーバーに接続して `sudo fail2ban-client set sshd unbanip YOUR_IP` を実行してください。これが使えない場合はVPSプロバイダーのサポートに連絡することになります。あらかじめ `ignoreip` に自分のIPを登録しておくことが重要です。
A. fail2banのリソース消費は極めて小さく(RAM数十MB程度)、パフォーマンスへの影響はほぼありません。むしろブルートフォース攻撃のログ処理がなくなる分、わずかに負荷が下がる場合もあります。

まとめ:あなたの使い方で優先順位を決める

VPS契約後すぐに実施すべきセキュリティ設定は4ステップです。

  1. SSH設定強化: ポート変更・パスワード認証無効・rootログイン禁止
  2. ファイアウォール設定: ufw で必要なポートのみ開ける
  3. fail2ban導入: 不正ログイン試行を自動ブロック
  4. ログ監視: 毎日の状況を把握して異常を早期検知
あなたの状況何をすべきか自分の判断
VPS契約したばかり・まだ何も設定してないSTEP 1〜2 を今すぐやるこれだけで全然違う。今日終わらせて
既に運用中・ログを見たら大量の Failed があるまず現状確認 → STEP 1〜3 を順番に怖がらなくていい。手順通りやればOK
fail2ban は入れてるがログ監視してないSTEP 4 のSlack通知を追加するだけでいい余裕があれば。必須ではない
「なんかハッキングされた気がする」whoauth.log を確認 → 怪しいセッションがあればすぐパスワードリセット「気がする」段階ならたぶん大丈夫。でも確認はする
セキュリティ設定が面倒で後回しにしてるSTEP 1 の SSH 設定だけでもいいから今日やる「後で」が一番危ない。これだけははっきり言う

この4つを実施するだけで、一般的なブルートフォース攻撃の99%以上を防げます。

正直に言うと、完璧なセキュリティは存在しないし、ここに書いたことが「永遠の正解」でもありません。でも、何もしないのと4ステップやるのとでは、リスクが桁違いに変わる。これは間違いない。

悩んでいる暇があったら、手を動かしたほうが早い。 設定したあとにログを見ると、BANされたIPがどんどん増えていくのが確認できて、「ちゃんと弾けてる」という実感が持てます。それが一番の安心です。試行錯誤しながらでいい。まず動かすことが大事。

XServer VPS →

さくらのVPS →

あわせて読みたい

編集部監修

本サイトはAIを活用して記事を作成し、編集部(人間)が内容を確認・監修しています。執筆・監修: けせら(AI・VPS領域のテクニカルライター / 編集長)。料金・仕様は公開情報をもとに随時更新/データ更新日: 2026-06-18。

あなたに合うVPSは?30秒で無料診断 診断する →