本記事は、「VPSのセキュリティを段階的に高めていく」シリーズの続きとなる記事です。
前回の記事では、VPSをインターネットに公開する以上、不正アクセスは避けられないという前提に立ち、セキュリティを一気に固めるのではなく、段階的に積み上げていく考え方を整理しました。
このシリーズでは、
- まず入口を整理する
- 次に不正な試行を遮断する
- さらにログを見て状況を把握する
という流れで、個人運用のVPSでも無理なく続けられるセキュリティ対策を実践していきます。
まだ前回の記事を読んでいない場合は、シリーズ全体の考え方として、先にこちらをご覧ください。
なぜ、最初にufwから始めるのか
VPSをインターネットに公開すると、
SSHやWebサーバーに対するアクセスは、ほぼ確実に発生します。
これは、特別に目立つことをしていなくても同じです。
IPアドレスがインターネット上に存在するだけで、
自動的なスキャンや試行は行われます。
このとき、最初に考えたいのが
「そもそも、どこからの通信を受け付けるのか」という点です。
ufwは、この入口を整理するための仕組みです。
不正アクセスそのものを解析したり遮断したりする前に、
まずは不要な入口を閉じる。
それが、このシリーズでufwから始める理由です。
ufwは何をするものか
ufwの役割を整理する
ufw(Uncomplicated Firewall)は、サーバーに対する通信を「許可する」「拒否する」を制御する仕組みです。
重要なのは、ufwは
- 攻撃を検知するものではない
- ログを解析するものでもない
という点です。
あくまで、
- このポートは通す
- このポートは通さない
という 通信の入口管理 を担当します。
後述する fail2ban とは、役割がはっきり分かれています。
iptablesとの関係について
ufwは、内部的にはiptablesを操作しています。
ただし、ufwを使う場合、iptablesを直接意識する必要はありません。
本シリーズでは、
- ファイアウォールは ufw
- その上で追加の対策を積み重ねる
という前提で話を進めます。
最低限、開けるポートを決める
今回の前提構成
この記事では、次のような構成を前提にします。
- SSHでサーバーに接続する
- Webサーバーを公開している
- それ以外の用途は、今は考えない
個人運用のVPSでは、まずはこの程度のシンプルな構成で十分です。
開けるポートの考え方
ufwで重要なのは、「必要なものだけを開ける」という姿勢です。
- 念のため開けておく
- いつか使うかもしれない
こうした理由でポートを開ける必要はありません。
必要になったら、その時点で追加すればよい。
この考え方で進めます。
ufwの基本設定
ここから、実際の設定作業に入ります。
以下の操作は、SSHでVPSに接続した状態で行います。
ufwの状態を確認する
まずは、ufwの現在の状態を確認します。
sudo ufw status
初期状態では、Status: inactive と表示されることが多いです。
必要な通信だけを許可する
ufwを有効化する前に、必要な通信を先に許可しておきます。
SSHを許可する
sudo ufw allow ssh
ポート番号で指定する場合は、次のように書くこともできます。
sudo ufw allow 22
HTTP / HTTPSを許可する
Webサーバーを公開する場合は、HTTPとHTTPSを許可します。
sudo ufw allow http
sudo ufw allow https
これで、Webアクセスに必要な通信は通る状態になります。
ufwを有効化する
必要なルールを追加したら、ufwを有効化します。
sudo ufw enable
途中で確認メッセージが表示された場合は、内容を確認した上で進めます。
SSH接続中に有効化しても問題ありませんが、SSHを許可してから実行することが重要です。
設定後に必ず確認すること
許可ルールの一覧を確認する
ufwを有効化したら、現在のルールを確認します。
sudo ufw status
意図したポートだけが表示されているか、余計なルールが含まれていないかを確認します。
SSH接続が維持できているか
もう一つ、非常に重要なのがSSH接続が問題なく維持できているかです。
- 新しいSSH接続ができるか
- 既存の接続が切れていないか
ここで問題がなければ、
ufwの基本設定は完了です。
ufwは「ここまで」で十分
ufwには、より細かい制御やログ設定も可能です。
しかし、この段階では、無理に複雑な設定を入れる必要はありません。
ufwは、あくまで 防御の土台 です。
- 攻撃そのものを分析する
- 同じIPを繰り返し遮断する
といった役割は、次に紹介する仕組みに任せます。
次に考えるべきこと
ufwで入口を整理したら、次に考えたいのは SSHそのものの安全性 です。
- rootログインをどうするか
- ユーザーを分ける理由
- 認証方式をどう考えるか
次回は、SSHの基本的な安全対策について整理します。


