#firewalldの仕組み
管理するゾーンを定義し、そのゾーンに対して許可・拒否などの制御を施したい各種サービスを割り当てる
そして、定義したゾーンとサービスに対して、NICを紐づける
・デフォルトゾーン
block : 内部に入ってくるパケットは拒否される標準で許可されているサービスはない
dmz : 内部ネットワークへ流れようとするパケットは制限される。デフォルトでsshサービスのみ許可されている
drop : 内部に入ってくるすべてのパケットを破棄し、応答もない。外部へ出ていくパケットのみ許可する
external : IPマスカレード接続を伴う外部ネットワークで利用される。デフォルトでsshサービスのみ許可されている
home : 家庭用ネットワークで利用される。ネットワーク上にあるマシンを信頼する前提で利用する
internal : 内部ネットワークで利用される。内部に入ってくるパケットのうち、明示的に指定したものだけを許可する
public : デフォルトのゾーンであり、一般的にパブリックLANで利用される。内部に入ってくるパケットのみ許可される
trust : 全てのパケットが許可される
work : ワークエリアで利用される。ネットワーク上にあるマシンを信頼する前提で利用する
・ゾーンの設定状況確認
firewall-cmd --list-all-zones
・管理対象とするすべてのゾーンを表示
firewall-cmd --get-zones
・アクティブになっているゾーンを表示
[root@localhost ~]# firewall-cmd --get-active-zones
public
interfaces: ens192
#firewalldを使ったサービスの設定
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd reload ←設定反映
firewall-cmd --zone=public --list-services ←設定確認
・設定ファイルの確認
[root@localhost zones]# cat public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
</zone>
#firewalldを使ったNAPT設定
最低2つのNICが必要であり、1つはグローバルIPアドレスを持ち、もう1つはプライべートIPアドレスを持つ
・IPv4のフォワーディングを有効化
vi /etc/sysctl.conf
「net.ipv4.ip_forward = 1」を追記
・NICが所属するゾーンを確認
[root@localhost zones]# firewall-cmd --get-active-zones
public
interfaces: ens192 ens224
・プライベートIPアドレスを割り当てるens224のゾーンを「trusted」に変更
[root@localhost zones]# firewall-cmd --permanent --zone=trusted --change-interface=ens224
success
[root@localhost zones]# firewall-cmd --get-active-zones
public
interfaces: ens192
trusted
interfaces: ens224
※とできるはずが変わらなかったため、
nmcli c mod "Wired connection 2" connection.zone trusted
で変更
・NAPT有効化
firewall-cmd --permanent --zone=public --add-masquerade
設定確認
[root@localhost zones]# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: yes ←
forward-ports:
source-ports:
icmp-blocks:
rich rules: