Strongswan VPN zonder dubbele NAT, hoe?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
Ik heb in mijn netwerk een machine met daarop proxmox draaien. Op deze machine draaien allerlei VMs en containers, waaronder m'n PiHole en een op StrongSwan gebaseerde VPN server. Mijn Router is een UniFi UDR en ik maak gebruik van de zone based firewall.
Mijn VPN clients zijn allemaal Mac en iOS apparaten en ik wil dat, wanneer ik op een ander wifi netwerk dan thuis ben, of wanneer ik op 4G/5G zit, de telefoons automatisch een VPN verbinding opzetten. Daarvoor is mijn keuze gevallen op een configuratie met IKEv2, en na wat gefröbel met mobileconfig bestandjes werkt dit nu goed. Mijn telefoons hebben een IPv4 en IPv6 verbinding via de VPN en maken netjes gebruik van de PiHole, wat de hoeveelheid reclame vermindert. Tot zover prima dus, en ik ben op zich wel tevreden met deze oplossing.

Echter... voor we verder gaan even wat meer details over mijn configuratie:

Swanctl.conf:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
connections {
    vpn {
    dpd_delay = 35s
        encap = yes
        pools = ipv4,ipv6
        proposals = aes256gcm16-prfsha384-ecp384,aes256gcm16-prfsha384-ecp521
        rekey_time = 0
        version = 2

        local {
            auth = psk
            id = <mijn publieke IPv4 adres>
        }
        
    remote {
            auth = psk
            id = %any
        }
        
    children {
            vpn-child {
        esp_proposals = aes256gcm16-ecp384,aes256gcm16-ecp521
                local_ts = 0.0.0.0/0,::/0  # LAN subnets
        rekey_time = 0
        updown = /usr/lib/ipsec/_updown iptables
            }
        icmpv6-ns {
                local_ts = ::/0[ipv6-icmp/135]
                remote_ts = ::/0[ipv6-icmp/135]
                mode = pass
                start_action = trap
            }
            icmpv6-na {
                local_ts = ::/0[ipv6-icmp/136]
                remote_ts = ::/0[ipv6-icmp/136]
                mode = pass
                start_action = trap
            }
        }
    
    pools = vpn-ipv4-pool,vpn-ipv6-pool
    }
}

secrets {
    ike-psk {
        secret = "<geheim>"
    }
}

pools {
    vpn-ipv4-pool {
        addrs = 10.23.100.0/24  # IPv4 range for VPN clients
    }
    vpn-ipv6-pool {
        addrs = fd6a:6ce3:c8d8:7caa::/64   # IPv6 range for VPN clients
    }
}


En dan op de Linux host waar Strongswan op draait, naast de standaard instellingen voor IP forwarding:

code:
1
2
iptables -t nat -A POSTROUTING -s 10.23.100.0/24 -o ens18 -j MASQUERADE
Ip6tables -t nat -A POSTROUTING -s fd6a:6ce3:c8d8:7caa::/64 -o ens18 -j MASQUERADE


Deze laatste zorgen ervoor dat verkeer van de VPN geNAT wordt, en op die manier mijn netwerk binnenkomt.

Iets in mij wil van die dubbele NAT af, maar daar kom ik toch niet hemelaam uit.

Wat heb ik geprobeerd:
  • Ik heb mijn Strongswan.conf aangepast om voor IPV6 een subnet te gebruiken wat aansluit bij de delegation prefix die ik van Ziggo krijg. IPv4 zou ik al kunnen routeren, de NAT daarvoor kan mijn UniFi router verzorgen.
  • Ik heb de iptables voor nat weer uitgezet.
  • Ik heb normale routing aangezet voor de subnets die door de VPN clients gebruikt moeten worden:

    code:
    1
    2
    3
    4
    
    ip route add 10.23.100.0/24 via 10.0.50.1
    sysctl net.ipv4.conf.all.send_redirects=0
    sysctl net.ipv4.conf.default.send_redirects=0
    ip -6 route add <ipv6 prefix>:1b23::/64 via <ipv6 adres van router>:1b00::1
  • Ik heb op mijn UDR static routes aangemaakt voor deze zelfde subnets, net het IP adres van de VPN server als 'next hop'.
Na deze oefening kan ik vanaf de VPN server en vanaf andere hosts mijn VPN clients pingen op hun ipv4 en ipv6 adressen. Ik kan ook met de VPN clients het internet op, met zowel ipv4 als ipv6. Tot zover dus veelbelovend, maar er is één klein detail waar ik niet uit kom:

Ik kan vanaf de VPN clients met geen mogelijkheid via IPv6 bij andere machines op mijn LAN. Mijn vermoeden is dat ik nog ergens een firewall rule mis, die verkeer vanaf mijn VPN subnets toelaat op mijn gewone netwerk (de zone 'internal') maar ik kan nergens vinden hoe ik dit voor elkaar ga krijgen.

Wie heeft voor mij de gouden tip?

http://emiellensink.nl

Alle reacties


Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 21:32
Gewoon laten zoals het was.
Er is geen enkele zinvolle reden om van dubbel Nat af te willen.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
Nou ja... als het werkt zoals ik zou willen worden de VPN clients volwaardige deelnemers van het netwerk. Voor de telefoons niet zo interessant, maar vanaf het LAN netwerk bij een MacBook die als VPN client werkt kunnen, of VPN clients die bij elkaar kunnen, daar zie ik wel meerwaarde in.

http://emiellensink.nl


Acties:
  • 0 Henk 'm!

  • FredvZ
  • Registratie: Februari 2002
  • Laatst online: 23:24
Wil je persé StrongSwan gebruiken?

Met de WireGuard server die tegenwoordig in Unifi zit kan je heel eenvoudig bereiken wat je wil.

Spel en typfouten voorbehouden


Acties:
  • 0 Henk 'm!

  • MasterL
  • Registratie: Oktober 2003
  • Laatst online: 20:36

MasterL

Moderator Internet & Netwerken
Wat is nu precies de situatie?
1: Je gebruikt geen NAT (MASQUERADE), gebruikt een dedicated subnet voor de VPN clients en zorgt voor de correcte routes (op de router/default gateway) en de juiste firewall rules.
2: Je gebruikt NAT...

Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
FredvZ schreef op vrijdag 18 april 2025 @ 15:55:
Wil je persé StrongSwan gebruiken?

Met de WireGuard server die tegenwoordig in Unifi zit kan je heel eenvoudig bereiken wat je wil.
De keuze voor Strongswan is eigenlijk vooral omdat het goed werkt met de in iOS en MacOS ingebouwde VPN client software... het niet hoeven installeren van een extra app vind ik wel prettig.

http://emiellensink.nl


Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
MasterL schreef op vrijdag 18 april 2025 @ 16:03:
Wat is nu precies de situatie?
1: Je gebruikt geen NAT (MASQUERADE), gebruikt een dedicated subnet voor de VPN clients en zorgt voor de correcte routes (op de router/default gateway) en de juiste firewall rules.
2: Je gebruikt NAT...
De situatie is dat ik nu NAT gebruik, en daar van af wil, in ieder geval voor verkeer wat binnen mijn LAN kan blijven. Ik wil dat de VPN met z'n clients zich gedraagt als een volwaardig subnet. Mijn router kan dan NAT doen voor ipv4 verkeer, en ipv6 werkt gewoon native.

http://emiellensink.nl


Acties:
  • 0 Henk 'm!

  • MasterL
  • Registratie: Oktober 2003
  • Laatst online: 20:36

MasterL

Moderator Internet & Netwerken
Hoezo werkt IPV6 native? Wat ik zie gebruik je geen "public" subnet in je configs.
Vergis je niet VPN in dit geval is een ander broadcast domain welk IP-adres of subnet je configureert gaat niet "magisch" werken. Deze zitten niet in hetzelfde L2.

Jouw StrongSwan machine moet dus echt gaan routeren, dus:
- net.ipv4.ip_forward=1
- net.ipv6.conf.all.forwarding=1

Routes vanaf je default gateway (UDR) naar de StrongSwan machine en terug hoewel ik aanneem dat de default gateway vanaf de StrongSwan machine wel de UDR is.
En dan inderdaad de firewall configuratie.

Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
MasterL schreef op vrijdag 18 april 2025 @ 16:13:
Hoezo werkt IPV6 native? Wat ik zie gebruik je geen "public" subnet in je configs.
Vergis je niet VPN in dit geval is een ander broadcast domain welk IP-adres of subnet je configureert gaat niet "magisch" werken. Deze zitten niet in hetzelfde L2.

Jouw StrongSwan machine moet dus echt gaan routeren, dus:
- net.ipv4.ip_forward=1
- net.ipv6.conf.all.forwarding=1

Routes vanaf je default gateway (UDR) naar de StrongSwan machine en terug hoewel ik aanneem dat de default gateway vanaf de StrongSwan machine wel de UDR is.
En dan inderdaad de firewall configuratie.
Het routeren doet de VPN machine ook, op de manier zoals je daar zegt.

In de openingspost:
Ik heb mijn Strongswan.conf aangepast om voor IPV6 een subnet te gebruiken wat aansluit bij de delegation prefix die ik van Ziggo krijg. IPv4 zou ik al kunnen routeren, de NAT daarvoor kan mijn UniFi router verzorgen.
Ik heb al meerdere echte subnets ingesteld in de UniFi router, en deze geeft ze automatisch een ipv6 subnet gebaseerd op de prefix die ik van Ziggo krijg. Ik heb dus Voor de VPN zelf een subnet verzonnen, niet aangemaakt door de UniFi router, maar die wel voldoet aan de regels. Die heb ik ingesteld in de configuratie van Strongswan. Het werkt daarna dus ook gedeeltelijk; ik kan met IPv6 het internet op en kan vanaf het internet mijn VPN clients pingen (dat is ook weer niet gewenst, maar dat kan ik oplossen). Het enige wat niet lukt is via ipv6 bij mijn eigen LAN te komen, dus voor mijn gevoel ben ik 99% waar ik zijn wil en is het iets kleins waarvan ik niet weet waar het zit.

[ Voor 5% gewijzigd door Emiel L op 18-04-2025 16:25 ]

http://emiellensink.nl


Acties:
  • 0 Henk 'm!

  • gwabber
  • Registratie: September 2020
  • Laatst online: 22:38
Misschien heb ik eroverheen gelezen, maar heb je voor de IP reeksen van je VPN de juiste regels en static routes aangemaakt in je Unifi Firewall? Nu je NAT hebt uitgeschakeld, moeten je nieuwe reeksen correct gerouteerd worden in je firewall.

Edit, zie dat dit al voorgesteld is :)

[ Voor 8% gewijzigd door gwabber op 18-04-2025 20:15 ]


Acties:
  • 0 Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 25-04 07:41
gwabber schreef op vrijdag 18 april 2025 @ 20:14:
Misschien heb ik eroverheen gelezen, maar heb je voor de IP reeksen van je VPN de juiste regels en static routes aangemaakt in je Unifi Firewall? Nu je NAT hebt uitgeschakeld, moeten je nieuwe reeksen correct gerouteerd worden in je firewall.

Edit, zie dat dit al voorgesteld is :)
Ja, en dat heb ik ook gedaan, in ieder geval zodanig dat ik vanaf de lan hosts bij de vpn clients kan en dat hun internet toegang werkt.

Echt het enige wat ik mis is ipv6 van de vpn clients naar de lan hosts… Ik denk dat daar misschien de unifi firewall dwarsligt, maar ik weet niet hoe ik dat op los…

http://emiellensink.nl

Pagina: 1