1 (edytowany przez Chriso 2023-03-06 20:25:49)

Temat: Konwersja iptables na nft

Witam
Na starym routerze Netgear R6220 z OpenWrt miałem uruchomiony OpenVPN serwer i w Firewallu we własnych regułach miałem wpisane:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o tun0 -j MASQUERADE

Teraz mam nowy router Armor G5 NBG7815 z wgranym OpenWrt SNAPSHOT r22199-1f53fa2b83, na którym jest nft i pytanie jak mam taką regułę wpisać?

2

Odp: Konwersja iptables na nft

Hint:
- ustawić option masq 1 w odpowiedniej sekcji firewall
- zrobić fw4 print i zobaczyć jak wygląda reguła z maskaradą w nftables...

Strzelam że raczej to pierwsze chciałbyś zrobić.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Konwersja iptables na nft

Wycinek firewall:

config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option output 'ACCEPT'
        option masq '1'
        option mtu_fix '1'
        option input 'ACCEPT'
        option forward 'ACCEPT'

config forwarding
        option src 'lan'
        option dest 'wan'


config rule
        option name 'openvpn'
        option target 'ACCEPT'
        option src 'vpn'
        option family 'ipv4'
        list proto 'tcp'
        list proto 'udp'
        option dest_port '54545'

config zone
        option name 'vpn'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        option output 'ACCEPT'
        option network 'vpn'
        option family 'ipv4'
        option masq '1'

config forwarding
        option src 'vpn'
        option dest 'lan'

"fw4 print" reguła z maskaradą wygląda tak

        chain srcnat_wan {
                meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 wan traffic"
        }

        chain srcnat_vpn {
                meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 vpn traffic"
        }

4

Odp: Konwersja iptables na nft

Masz maskaradę na vpn. Ogólnie tłumaczy się to tak:
nft add rule ip nat POSTROUTING oifname "eth0" ip saddr 10.8.0.0/24 counter masquerade

Ale w nftableś nie ma tablicy ip nat ani łańcucha o nazwie POSTROUTING dużymi, więc musisz sobie to dostosowac do tablic które masz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Konwersja iptables na nft

root@Armor_G5:/tmp/run# nft -a list ruleset
table ip nat { # handle 19
        chain postrouting { # handle 1
                type nat hook postrouting priority srcnat; policy accept;
                oifname "br-lan" ip saddr 10.8.0.0/24 counter packets 0 bytes 0 masquerade # handle 2
                oifname "tun0" ip saddr 192.168.5.0/24 counter packets 0 bytes 0 masquerade # handle 3
        }
}

Niestety po dodaniu takich reguł dalej nie mam dostępu do sieci LAN za serwerem OpenVPN.

6

Odp: Konwersja iptables na nft

Dlaczego tak robisz? A nie tak: https://eko.one.pl/?p=openwrt-openvpntu … zaserwerem

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Konwersja iptables na nft

Ale ja to wszystko mam dodane z tego poradnika

8

Odp: Konwersja iptables na nft

Więc musi działać. Sprawdź wszystko jeszcze raz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Konwersja iptables na nft

@Chriso,
czy na pewno tak chciałeś zrobić tego firewalla?
to co pokazałeś w #3 to wygląda dziwnie z kilku powodów:

1. zazwyczaj otwiera się port od strony WANu a Ty sobie otwierasz od strony vpn-a. Co to daje ?
2. po wykonaniu pkt 1 mając serwer vpn czyli publiczny adres IP i nadal nie mogąc połączyć się z tym serwerem, w akcie desperacji otwierasz sobie cały WAN na wszystkie strony yikes   jak kto lubi smile

a w poście #1 wygląda tak jakbyś na starym systemie ze switchem robił maskaradę w strefie vpn:

iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o tun0 -j MASQUERADE

oraz w strefie lan:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

z tym że switch eth0 dzielił się na eth0.1 oraz eth0.2 lub nawet eth0.2 i br-lan.
Być może powyższa reguła też działała ale wygląda to dziwnie wg mnie.

Trochę strzelasz na oślep zamiast czytać poradniki Cezarego i stosować się do wytycznych.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *