NAPT(IPマスカレード)

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:

参考URL

Firewalld による NAPT(IPマスカレード)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です