firewall-cmd: インターフェースとソース


前提


ドキュメント


ゾーンの切り替え

インターフェースに適用のゾーンを切り替える。

よく使うオプション

作業例

# インターフェースを調べる
ip address show
#
firewall-cmd --get-active-zones

# dropゾーンに変更
# 追加(ランタイム設定)
firewall-cmd --zone=drop --add-interface=インターフェース名

ホワイトリスト: 特定のIPアドレス/ネットワークだけアクセスを許可

マルチゾーンでの対応

ゾーンにソース(source: 許可するアクセス元)を登録すると、NICに適用されていなくても有効(active)になる。

するとどちらのゾーンも有効になり、サービス等を特定のIPアドレス/ネットワークにだけ許可するホワイトリストになる。

注意点

よく使うオプション

ゾーンを新作するには--new-zoneを使う。

作業例

# httpサービスをネットワーク192.168.1.0/24からのアクセスだけ許可したい:
# NICはpublicゾーンを適用で、httpサービスは登録されていないものとする

# http-clientというゾーンを作る(恒久設定)
firewall-cmd --permanent --new-zone=http-client
firewall-cmd --reload # ランタイムに反映

# http-clientゾーン:
# ソース追加(ランタイム設定)
firewall-cmd --zone=http-client --add-source=192.168.1.0/24
# サービス追加(ランタイム設定)
firewall-cmd --zone=http-client --add-service=http

# さらに恒久設定にしたいなら
firewall-cmd --runtime-to-permanent
# 適用済みゾーンとそのインターフェース
firewall-cmd --get-active-zones
http-client
  sources: 192.168.1.0/24
public
  interfaces: enp0s25


# ゾーン概要
firewall-cmd --list-all-zones

http-client (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 192.168.1.0/24
  services: http

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources: 
  services: ssh dhcpv6-client