Ubuntu でファイアウォールを設定することは、ネットワーク トラフィックを制御することによってサーバーを保護するために不可欠です。Ubuntu は iptables を管理するためのユーザーフレンドリーなフロントエンドとして ufw (Uncomplicated Firewall) を使用しています。このガイドでは、UFW を構成するための基本的な手順を説明します。
1. UFW のステータスを確認し、必要に応じてインストールする
まず、UFW がシステムで既にアクティブかどうかを確認します。
sudo ufw status verbose
UFW がインストールされていない場合は、次を使用してインストールできます。
sudo apt update
sudo apt install ufw
2. デフォルト ポリシーを設定する
デフォルトですべての着信接続を拒否し、すべての発信接続を許可することがベストプラクティスです。これにより、明示的に許可されたトラフィックのみがサーバーに到達することが保証されます。
sudo ufw default deny incoming
sudo ufw default allow outgoing
3. 必須接続(特に SSH)を許可する
ファイアウォールを有効にする前に、特にリモートで接続している場合、サーバーへのアクセスをブロックしないように SSH 接続を許可することが重要です。
- SSH を許可する:
bash sudo ufw allow ssh # または、カスタム SSH ポート (例: 2222) を使用している場合: # sudo ufw allow 2222/tcp
4. UFW を有効にする
SSH アクセスが許可されていることを確認したら、ファイアウォールを有効にします。
sudo ufw enable
ファイアウォールを有効にすると既存の接続が中断される可能性があるため、確認を求められます。y を入力して ENTER を押します。
5. その他の必要なサービスを許可する
サーバーが提供する必要のある他のサービスへのトラフィックを許可します。
- HTTP (ポート 80): Web サーバー用。
bash sudo ufw allow http # または sudo ufw allow 80/tcp - HTTPS (ポート 443): セキュアな Web トラフィック用。
bash sudo ufw allow https # または sudo ufw allow 443/tcp - 特定のポート: 他のアプリケーションの場合、それらの特定のポートを許可します。たとえば、ポート 8080 でのトラフィックを許可するには:
bash sudo ufw allow 8080/tcp - 特定の IP アドレスからの許可: 信頼できる IP アドレスからのアクセスのみを許可するには:
bash sudo ufw allow from 203.0.113.100 to any port 22 proto tcp
6. 不要な接続を拒否する
デフォルト ポリシーは着信トラフィックを拒否しますが、以前に許可されていた場合や、より広範なルールをオーバーライドする必要がある場合は、特定のポートまたは IP を明示的に拒否したい場合があります。
- 特定のポートを拒否する:
bash sudo ufw deny 23/tcp
7. ステータスとルールを確認する
変更を加えた後は、必ずファイアウォールのステータスとルールを確認してください。
sudo ufw status verbose
このコマンドは、ファイアウォールのステータス、デフォルト ポリシー、およびすべての有効なルールのリストを表示します。
8. UFW を無効にするかリセットする (オプション)
- UFW を無効にするには:
bash sudo ufw disableこれによりファイアウォールがオフになりますが、設定済みのルールは保持されます。 - UFW をデフォルトの状態にリセットするには(無効化してすべてのルールを削除):
bash sudo ufw resetこのアクションを確認するように求められます。
これらの手順に従うことで、Ubuntu サーバー上で効果的にファイアウォールを設定および管理し、そのセキュリティを大幅に向上させることができます。