[2] Firewalld – NAT (maskarada)

8 marca 2022 Wyłączono przez Adam [zicherka] Nogły

To jest przykład konfiguracji maskarady IP w Firewalld. Ten przykład jest oparty na środowisku, jak poniżej.

[1] Zmień strefy dla poszczególnych interfejsów.

# pokaż aktualne ustawienia
[root@router ~]# firewall-cmd --get-active-zone
public
interfaces: ens160 ens192

# zmień strefy
[root@router ~]# nmcli connection modify ens160 connection.zone external
[root@router ~]# nmcli connection modify ens192 connection.zone internal
[root@router ~]# firewall-cmd --get-active-zone
external
interfaces: ens160
internal
interfaces: ens192

[2] Ustaw maskaradę dla strefy [External].

# ustaw maskaradę IP
[root@router ~]# firewall-cmd --zone=external --add-masquerade
success
[root@router ~]# firewall-cmd --runtime-to-permanent
Success

# pokaż ustawienia
[root@router ~]# firewall-cmd --zone=external --query-masquerade
Yes
# [ip_forward] jest włączane automatycznie, gdy włączymy maskaradę
[root@router ~]# cat /proc/sys/net/ipv4/ip_forward
1

[3] Na przykład skonfiguruj, aby pakiety przychodzące do portu 22 strefy zewnętrznej były przekazywane do lokalnego portu 1234. Jeżeli chcesz zachować ustawienia po restarcie dodaj opcję [–permanent].

[root@router ~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=1234
success
[root@router ~]# firewall-cmd --list-all --zone=external
external (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
port=22:proto=tcp:toport=1234:toaddr=
source-ports:
icmp-blocks:
rich rules:

[4] Na przykład skonfiguruj, aby pakiety przychodzące do portu 22 strefy zewnętrznej były przekazywane do innego hosta [192.168.200.108] portu 22.

[root@router ~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.200.108
success
[root@router ~]# firewall-cmd --list-all --zone=external
external (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
port=22:proto=tcp:toport=1234:toaddr=
port=22:proto=tcp:toport=22:toaddr=192.168.200.108
source-ports:
icmp-blocks:
rich rules:

[5] Na przykład skonfiguruj, aby pakiety wychodzące przez serwer z sieci wewnętrznej [192.168.200.0/24] były dozwolone i przekazywane do strony zewnętrznej.

# ustaw maskaradę dla strefy wewnętrznej [Internal]
[root@router ~]# firewall-cmd --zone=internal --add-masquerade
success
[root@router ~]# firewall-cmd --runtime-to-permanent
success
[root@router ~]# firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o ens160 -j MASQUERADE
success
[root@router ~]# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens192 -o ens160 -j ACCEPT
success
[root@router ~]# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens160 -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
success