Instalacja

apt update && apt install -y ufw

Domyslne zasady

ufw default deny incoming
ufw default allow outgoing
ufw allow from 192.168.10.0/24  comment 'Pełny dostep z LAN'

Włączenie forwardowania

sudo nano /etc/sysctl.conf

wpisz

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv4.ip_forward=1

Zapisz plik i zastosuj zmiany:

sysctl -p
sudo nano /etc/default/ufw

znajdź i zamień linijkę

DEFAULT_FORWARD_POLICY="ACCEPT"

Konfiguracja reguł NAT (Masquerade) w UFW

sudo nano /etc/ufw/before.rules

Na samym początku pliku (w pierwszych liniach, przed sekcją *filter) dodaj poniższy blok kodu odpowiedzialny za architekturę NAT:

# *nat - Reguly dla translacji adresow (NAT)
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# --- PRZEKIEROWANIE WAN → srv-www ---
# HTTP
-A PREROUTING -i enp4s6 -p tcp --dport 80  -j DNAT --to-destination 192.168.10.202:80

# HTTPS
-A PREROUTING -i enp4s6 -p tcp --dport 443 -j DNAT --to-destination 192.168.10.202:443

# --- NAT LAN → WAN ---
-A POSTROUTING -s 192.168.10.0/24 -o enp4s6 -j MASQUERADE

COMMIT

Do sekcji filter dopisz

# --- FORWARD LAN → WAN ---
-A ufw-before-forward -i br0 -o enp4s6 -j ACCEPT

# --- FORWARD WAN → LAN (tylko to, co DNAT) ---
-A ufw-before-forward -i enp4s6 -o br0 -p tcp --dport 80  -d 192.168.10.202 -j ACCEPT
-A ufw-before-forward -i enp4s6 -o br0 -p tcp --dport 443 -d 192.168.10.202 -j ACCEPT

# --- FORWARD WAN → LAN (SSH do kontenerów) ---
-A ufw-before-forward -i enp4s6 -o br0 -p tcp --dport 22 -j ACCEPT

Podstawowe zasady

Otwarcie mostka

ufw allow in on br0
ufw allow out on br0

Pełen dostęp SSH z zewnątrz

ufw allow in on enp4s6 to any port 22 proto tcp comment 'SSH z zewnątrz'

Forwarding 80/443 do Nginx (192.168.10.202)

ufw route allow in on enp4s6 to 192.168.10.202 port 80 proto tcp
ufw route allow in on enp4s6 to 192.168.10.202 port 443 proto tcp

Zastosowanie zmian

ufw reload
ufw enable
ufw status numbered

Sprawdzenie

lxc-attach -n srv-ad -- ping -c 3 1.1.1.1

Spis treści: