みなさん、こんにちは。
ITインフラの管理をしていると、複数のOS環境を扱う機会が増えてきます。よく使うコマンドなのにOSによって文法が違うので頭が混乱するなんてことは、ITインフラ管理者のあるあるです。
とりわけ、よく問題になるのはファイアウォールの設定です。使用しているOSにあわせて毎回調べ直さないとなりません。
そこで、今回は自身の備忘録の意味も含め Red Hat系、Debian / Ubuntu系、Windows という異なるOSでの ファイアウォール設定の違い を、代表的な操作例とともに比較・解説します。
なお、本記事で取り扱うOSは以下の通りです。
Red Hat系やDebian / Ubuntu系は派生ディストリビューションも多いため、本記事で紹介する操作は多くのLinuxディストリビューションでも応用可能 です。
- Red Hat系(Red Hat Enterprise Linux、Fedora、CentOS、AlmaLinux、Rocky Linux、MIRACLE LINUX など)
- Debian / Ubuntu系(Debian、Ubuntu、Linux Mint、Bodhi Linux、Raspberry Pi OS、Pop!_OS、Kali Linux など)
- Windows(Windows 10、11、Windows Server 2016以降のPowerShell対応環境)
それでは、代表的なファイアウォール設定コマンドを横並びで比較していきましょう!
1. TCP 80番ポート(HTTP)を開放する
Webサーバを公開するとき、まずは HTTP 用の 80番ポートを開放する必要があります。
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw allow 80/tcp |
Windows (PowerShell) | New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow |
Red Hat系では firewalld、Debian / Ubuntu系では ufw、Windowsでは PowerShellのNetFirewallモジュール を使います。
2. サービス(HTTP)を許可する
OSによって「サービス名で許可する」という操作も可能です。
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw allow http |
Windows (PowerShell) | ※基本的にポート指定で管理(サービス名では指定しない) |
Windowsでは「サービス名」で許可するという概念はなく、ポート番号で指定するのが一般的 です。
3. TCP 80番ポートを閉じる(ブロックする)
「開けたポートを閉じたい」ときの操作です。
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --remove-port=80/tcp sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw delete allow 80/tcp |
Windows (PowerShell) | Remove-NetFirewallRule -DisplayName "Allow HTTP" |
Windowsは ルール名で削除 する点に注意しましょう。
4. ファイアウォールの現在の状態を確認する
ルールや許可状態の確認も重要です。
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --list-all |
Debian / Ubuntu | sudo ufw status verbose |
Windows (PowerShell) | Get-NetFirewallRule |
Windowsではルール名やフィルター条件を指定するとより詳細に確認できます。
Get-NetFirewallRule | where DisplayName -like "*HTTP*"
5. ファイアウォール自体を有効化/無効化する
ファイアウォール機能そのもののON/OFFを切り替える操作です。
OS | 有効化 | 無効化 |
---|---|---|
Red Hat | sudo systemctl enable --now firewalld | sudo systemctl disable --now firewalld |
Debian / Ubuntu | sudo ufw enable | sudo ufw disable |
Windows (PowerShell) | Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True | Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False |
Windowsは ドメイン・プライベート・パブリック それぞれのプロファイルを指定する必要があります。
6. 特定のポート範囲を開放する
「TCP 10000番から20000番まで」のように、ポート範囲をまとめて開放 したいケースもあります。
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --add-port=10000-20000/tcp sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw allow 10000:20000/tcp |
Windows (PowerShell) | New-NetFirewallRule -DisplayName "Allow Port Range" -Direction Inbound -Protocol TCP -LocalPort 10000-20000 -Action Allow |
- Red Hat系は「ハイフン –」で、Debina / Ubuntu系は「コロン :」で範囲指定
- Windowsでは
-LocalPort
に 「ハイフン –」で範囲指定が可能
7. 特定のIPアドレスを許可/拒否する
例えば「192.168.1.100 からの接続だけ許可」「192.168.1.200 からの接続を拒否」のようなIP制御を行いたい場合です。
192.168.1.100 からの接続のみ許可(他は拒否)
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=80 protocol=tcp accept' sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw allow from 192.168.1.100 to any port 80 proto tcp |
Windows (PowerShell) | New-NetFirewallRule -DisplayName "Allow HTTP from 192.168.1.100" -Direction Inbound -Protocol TCP -LocalPort 80 -RemoteAddress 192.168.1.100 -Action Allow |
192.168.1.200 からの接続を拒否
OS | コマンド例 |
---|---|
Red Hat | sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.200" drop' sudo firewall-cmd --reload |
Debian / Ubuntu | sudo ufw deny from 192.168.1.200 |
Windows (PowerShell) | New-NetFirewallRule -DisplayName "Block 192.168.1.200" -Direction Inbound -RemoteAddress 192.168.1.200 -Action Block |
- Red Hat系は
rich-rule
を利用 - Debian / Ubuntu系は
ufw allow/deny from
- Windowsでは
RemoteAddress
に対象IPを指定
この設定が有効なケース
特定のポート範囲やIPアドレス指定は、次のような用途に便利です。
- 外部からのSSH管理端末を限定
- WebアプリのAPI用ポートだけ外部公開
- 特定の開発者IPだけVPNアクセス許可
より強固なネットワークセキュリティを構築する上で重要なポイントです。
最後に
本記事では、3つの異なるOSでのファイアウォール設定について、代表的な操作 を比較しました。
日々の運用やトラブル対応で、
「このOSだとどう設定するんだっけ?」
と迷ったときの 早見表的に使っていただける内容 になれば嬉しいです。
本日も最後までお読みいただきありがとうございました。
それでは、よいネットワーク管理ライフを!