環境によって使用するコマンドは異なるため、OSごとにまとめて解説します。
firewall-cmd コマンドを用いる。
状態確認
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
ポート開放(動的)
firewall-cmd --zone=public --add-port=80/tcp
永続化
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
サービス許可
firewall-cmd --add-service=http
rich-rule の使用例
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port port="22" protocol="tcp" accept'
iptables は古くから使われているツールで、firewalld なしの環境で使用される。
ルール確認
iptables -L -n
ポート許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
特定IPの許可
iptables -A INPUT -s 192.168.1.10 -j ACCEPT
永続化(CentOS6 / RHEL6系)
service iptables save
iptables-save と iptables-restore を用いる方式が一般的。扱いが簡単なファイアウォールツール。
有効化
ufw enable
ポート開放
ufw allow 80/tcp
特定IPの許可
ufw allow from 192.168.1.10 to any port 22
状態確認
ufw status verbose
Windows のファイアウォール設定は netsh または PowerShell を使う。
ポート開放
netsh advfirewall firewall add rule name="Open80" protocol=TCP dir=in localport=80 action=allow
ルール一覧
netsh advfirewall firewall show rule name=all
ポート開放
New-NetFirewallRule -DisplayName "Open80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
| 操作 | firewalld | ufw | iptables | Windows |
|---|---|---|---|---|
| ポート開放 | --add-port=80/tcp |
ufw allow 80/tcp |
--dport 80 -j ACCEPT |
New-NetFirewallRule ... |
| 状態確認 | --list-all |
ufw status |
iptables -L -n |
netsh ... show |
| 永続化 | --permanent+--reload |
自動反映 | service iptables save(環境依存) |
自動保持 |
以上、ファイアウォールでよく使うコマンドについてでした。
最後までお読みいただき、ありがとうございました。