RHEL7 系のネットワーク設定全般については RHEL7 系のネットワーク設定 にまとめた
iptables
が利用されていたfirewalld
がデフォルトとなったfirewalld
は、デフォルトで iptables
、ip6tables
、ebtables
のリストアコマンドを使用し、ルールセットを変更する全ファイアウォールアクションを高速化するfirewall-cmd
、GUI ツールとして firewall-config
が用意されている/usr/lib/firewalld/
と /etc/firewalld/
に保存される# Firewall 設定の起動/終了/再起動/確認 $ systemctl start firewalld $ systemctl stop firewalld $ systemctl restart firewalld $ systemctl status firewalld # Firewall の有効化/無効化 $ systemctl enable firewalld $ systemctl disable firewalld # Firewall 設定の確認 $ firewall-cmd --list-service dhcpv6-client ssh
firewalld
と iptables
(ip6tables
) の本質的な違いは以下の 2 つ
iptables
は設定を /etc/sysconfig/iptables
と /etc/sysconfig/ip6tables
に保存するfirewalld
は設定を /usr/lib/firewalld/
と /etc/firewalld/
に保存するfirewalld
がデフォルトでインストールされるので /etc/sysconfig/iptables
ファイルが存在しないゾーンの設定と確認方法は以下のとおり
# 確認 $ firewall-cmd --get-active-zones public interfaces: ens192 ens224 # 設定変更 $ firewall-cmd --zone=trusted --add-interface=ens192 The interface is under control of NetworkManager, setting zone to 'trusted'. success $ firewall-cmd --get-active-zones public interfaces: ens224 trusted interfaces: ens192
--parmanent
で永続化する$ firewall-cmd --zone=dmz --add-port=8080/tcp $ firewall-cmd --zone=dmz --add-port=8080/tcp --permanent
サービスを追加する場合は以下のようにできる
# 80 を開放 $ firewall-cmd --zone=work --add-service=http $ firewall-cmd --zone=work --add-service=http --parmanent # 443 を開放 $ firewall-cmd --zone=work --add-service=https $ firewall-cmd --zone=work --add-service=https --parmanent # 確認 $ firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 ens224 sources: services: dhcpv6-client ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
[amazon template=wishlist&asin=4774184268]