サーバーを公開するなら、ファイアウォールの設定は必須です。この記事では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の全要点を確認できます。



コメント