Table of Contents
NAPT(IPマスカレード)
---------+---------
ダイヤルアップ|192.168.xxx.254
ルータ |
|
External |
enp3s0|192.168.xxx.xxx
+--------+---------+
| Linux マシン |
+--------+---------+
enp4s0|10.xxx.xxx.xxx
Internal |
firewallのインストール
# dnf install firewall
サービスの起動と自動起動化
# systemctl start firewalld
# systemctl enable firewalld
デバイスの確認
# nmcli dev
DEVICE TYPE STATE CONNECTION
enp3s0 ethernet 接続済み enp3s0
enp4s0 ethernet 接続済み enp4s0
現状の状態を確認
# firewall-cmd --get-active-zone
public
interfaces: enp3s0 enp4s0
ゾーンの変更
firewall-cmdでの変更
# firewall-cmd --zone=external --change-interface=enp3s0 --permanent
# firewall-cmd --zone=internal --change-interface=enp4s0 --permanent
nmcliでの変更
# nmcli c mod enp3s0 connection.zone external
# nmcli c mod enp4s0 connection.zone internal
IPマスカレードを設定
external
# firewall-cmd --zone=external --add-masquerade --permanent
success
internal
# firewall-cmd --zone=internal --set-target=ACCEPT --permanent
# firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o enp3s0 -j MASQUERADE
# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp4s0 -o enp3s0 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp4s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
設定を再読み込み
# firewall-cmd --reload
状態確認
activeなゾーン
# firewall-cmd --get-active-zone
external
interfaces: enp3s0
internal
interfaces: enp4s0
IPマスカレードの設定状態確認
# firewall-cmd --zone=external --query-masquerade
yes
# firewall-cmd --zone=internal --query-masquerade
no
ip_forward はマスカレーディング有効化により自動的に有効となる
# cat /proc/sys/net/ipv4/ip_forward
1
ダイレクトルール
# firewall-cmd --direct --get-all-rules
ipv4 nat POSTROUTING 0 -o enp3s0 -j MASQUERADE
ipv4 filter FORWARD 0 -i wlp4s0 -o enp3s0 -j ACCEPT
ipv4 filter FORWARD 0 -i enp3s0 -o wlp4s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
各ゾーンの確認
# firewall-cmd --list-all --zone=external
external (active)
target: default
icmp-block-inversion: no
interfaces: enp3s0
sources:
services: ssh
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# firewall-cmd --list-all --zone=internal
internal (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: wlp4s0
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: