Linuxサーバー管理

ファイアウォールの設定【ufw/firewalld完全ガイド】

Linuxサーバー管理
記事内に広告が含まれています。

サーバーを公開するなら、ファイアウォールの設定は必須です。この記事ではUbuntu/Debian系のufwとRHEL/CentOS系のfirewalld、両方の設定方法を解説します。

ufw(Ubuntu/Debian系)

ufwはiptablesのフロントエンドです。シンプルなコマンドで設定できます。

# ufw の状態確認
$ sudo ufw status verbose

# ⚠️ 有効化前に必ずSSH(22番)を許可!さもないとロックアウトされます
$ sudo ufw allow 22/tcp
$ sudo ufw allow OpenSSH    # 同じ意味

# ufw を有効化
$ sudo ufw enable

# よく使うルール
$ sudo ufw allow 80/tcp          # HTTP
$ sudo ufw allow 443/tcp         # HTTPS
$ sudo ufw allow 8080/tcp        # カスタムポート
$ sudo ufw allow from 192.168.1.0/24  # 特定サブネットからの全許可
$ sudo ufw allow from 192.168.1.100 to any port 3306  # 特定IPからMySQL

# ルールを削除
$ sudo ufw status numbered       # 番号付きで一覧表示
$ sudo ufw delete 3              # 番号3のルールを削除
$ sudo ufw delete allow 8080/tcp # ルール内容で削除

# デフォルトポリシーの設定(基本はこれ)
$ sudo ufw default deny incoming  # 受信はすべて拒否
$ sudo ufw default allow outgoing # 送信はすべて許可

# 設定をリセット
$ sudo ufw reset

firewalld(RHEL/CentOS系)

firewalldはゾーンベースのファイアウォールです。ネットワークインターフェースをゾーンに割り当てて管理します。

# firewalld の状態確認
$ sudo systemctl status firewalld
$ sudo firewall-cmd --state

# 現在の設定を確認
$ sudo firewall-cmd --list-all

# ポートを許可(--permanent で永続化、その後 --reload で反映)
$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --permanent --add-service=ssh

# 設定を反映
$ sudo firewall-cmd --reload

# ポートを削除
$ sudo firewall-cmd --permanent --remove-port=8080/tcp
$ sudo firewall-cmd --reload

# 特定IPからのアクセスを許可
$ sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
$ sudo firewall-cmd --reload

iptablesの基本(低レベル)

# 現在のルールを確認
$ sudo iptables -L -n -v

# ufwやfirewalldが使えない環境での基本ルール
$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -j DROP    # それ以外は拒否

# ルールの永続化(Ubuntu)
$ sudo apt install iptables-persistent
$ sudo netfilter-persistent save

まとめ

  • ufw有効化前に必ずSSH(22番)を許可する。ロックアウト防止が最優先
  • Ubuntu/Debianはufw、RHEL/CentOSはfirewalldが標準
  • firewalldは --permanent--reload をセットで使う
  • デフォルトポリシーは「受信拒否・送信許可」が基本

📋 Linuxサーバー運用・管理チェックリスト完全版でPhase 2の全要点を確認できます。

コメント

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