サーバ向けファイアウォール設定(iptables / ufw)入門

Linuxサーバを公開・運用するうえで、ファイアウォール設定は必須のセキュリティ対策です。不要な通信を遮断し、必要最小限のポートだけを開放することで、不正アクセスや攻撃リスクを大幅に低減できます。

本記事では、Linuxサーバでよく使われる

  • iptables(低レベルで柔軟)
  • ufw(Uncomplicated Firewall:設定が簡単)

の2つについて、サーバ運用を前提にした実践的な設定方法を解説します。


1. ファイアウォールの基本概念

1.1 なぜサーバにファイアウォールが必要か

サーバは常にインターネットからアクセス可能な状態にあるため、以下のようなリスクに晒されています。

  • SSHへの総当たり攻撃
  • 不要なサービスへの不正アクセス
  • 脆弱なポートを狙ったスキャン

ファイアウォールを導入することで、

「そもそも通信を通さない」

という最も強力な防御を実現できます。

1.2 基本方針(サーバ向け)

サーバでは、次のポリシーが基本です。

  • デフォルト拒否(DENY ALL)
  • 必要なポートだけ許可(ALLOW)

例:

  • SSH: 22(管理用)
  • HTTP: 80
  • HTTPS: 443

2. iptablesによるファイアウォール設定

2.1 iptablesとは

iptablesはLinuxカーネルのnetfilter機能を直接操作するコマンドで、

  • 非常に柔軟
  • 細かい制御が可能

という特徴があります。一方で、設定が複雑になりやすい点には注意が必要です。

2.2 現在のルール確認

iptables -L -n -v
  • -n:名前解決を行わない
  • -v:詳細表示

2.3 デフォルトポリシーの設定

まずは全拒否を基本にします。

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
  • サーバ自身からの通信(OUTPUT)は通常許可

2.4 ループバック通信の許可

iptables -A INPUT -i lo -j ACCEPT

2.5 既存通信・関連通信の許可

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2.6 SSH / HTTP / HTTPSの許可

# SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

2.7 設定の保存

ディストリビューションにより方法が異なります。

例(Ubuntu系)

apt install iptables-persistent
netfilter-persistent save

3. ufwによるファイアウォール設定

3.1 ufwとは

ufw(Uncomplicated Firewall)はiptablesのラッパーで、

  • コマンドが直感的
  • 設定ミスが起こりにくい

ため、サーバ初心者〜中級者に特におすすめです。

3.2 ufwのインストールと状態確認

apt install ufw
ufw status

3.3 デフォルトポリシー設定

ufw default deny incoming
ufw default allow outgoing

3.4 必要なポートの許可

# SSH
ufw allow 22

# HTTP
ufw allow 80

# HTTPS
ufw allow 443

サービス名でも指定可能です。

ufw allow ssh

3.5 ufwの有効化

ufw enable

SSH接続中に有効化する場合は、SSH許可設定を必ず先に行うこと

3.6 状態確認

ufw status verbose

4. iptablesとufwの使い分け

項目iptablesufw
難易度高い低い
柔軟性非常に高い中程度
設定速度遅い速い
サーバ初心者

結論:

  • 一般的なWebサーバ → ufw
  • 特殊な要件・高度な制御 → iptables

5. サーバ運用での注意点

  • SSHポート変更(22→任意)
  • 特定IPのみSSH許可
  • fail2banとの併用
  • クラウド側FW(AWS/GCP)との二重管理に注意

6. まとめ

サーバ向けファイアウォール設定では、

  • 最小限のポートだけを開ける
  • デフォルト拒否を徹底する

ことが重要です。

ufwを使えば安全かつ簡単に設定でき、iptablesを理解すればより高度な制御が可能になります。

ぜひご自身のサーバ環境に合わせて、適切なファイアウォール運用を行ってください。

タイトルとURLをコピーしました