De tunnel komt op, de client authenticeert zich, maar het LAN achter de gateway blijft onzichtbaar. De regel die dat had moeten oplossen, staat de VPN-poort toe en werkt precies zoals geschreven, omdat die regel pakketten regelt die aan de gateway zelf zijn geadresseerd. Clientverkeer naar een host achter de gateway heeft een andere bestemming en een andere keten. Een geslaagde login verandert niet welke van de twee ketens de kernel bekijkt.

Twee ketens, twee verschillende bestemmingen

Het lot van een pakket wordt bepaald door waar het heen gaat, niet door hoe het aankwam. Verkeer naar een adres op de gateway wordt lokaal afgeleverd en beoordeeld met de inputregels. Verkeer dat de gateway doorstuurt, wordt beoordeeld met de forwardregels. Dezelfde tunnelinterface kan beide soorten pakketten produceren, daarom kan één regel niet beide taken dekken.

De hele mythe in één zin: de listener toestaan zegt niets over het netwerk erachter toestaan. Het zijn twee afzonderlijke beslissingen met afzonderlijk bewijs, en een interfacenaam op beide verenigt ze niet.

Wat de listenerregel werkelijk toestaat

Listenerpakketten eindigen in het VPN-proces, en juist dat maakt het opzetten van de tunnel mogelijk. De beheerpagina van de gateway en een lokaal diagnostisch antwoord gebruiken ook het eigen inputpad van de host, daarom slaagt een test naar de gateway terwijl alles erachter faalt. Beide resultaten zijn juist en geen van beide gaat over het LAN.

Wanneer het proces clientverkeer voor een andere bestemming decapsuleert, komt het pakket op het forwardpad en heeft daar toestemming nodig. Een geslaagde authenticatie bepaalt wie de client is; ze bepaalt niet waar de client heen mag. De twee vragen hebben verschillende eigenaren, logs en foutmeldingen.

Test vanaf een client, nooit vanaf de gateway

Een test die op de gateway wordt gemaakt, volgt het eigen uitgaande pad van de host en kan slagen terwijl het doorgestuurde pad dicht is. Start de test vanaf de client en kijk naar beide uiteinden van de stroom.

nc -vz 10.40.7.25 445
tcpdump -ni tun0 host 10.40.7.25

Als het verzoek op tun0 verschijnt en niets de bestemming bereikt, wordt het pakket na aankomst weggegooid, wat wijst op forwardregels of op de eigen filtering van de bestemming. Als er op tun0 helemaal niets verschijnt, stuurt de client het niet eens naar de tunnel, en het probleem is routering op de client en niet beleid op de gateway. Vergelijk dat met een verzoek dat correct naar buiten gaat en niets teruggeeft, wat het geval van de terugweg is.

Doorgestuurd verkeer vereist drie dingen, niet één

Forwarding in de kernel moet aan staan, een filterregel moet de stroom accepteren, en de bestemming moet bereikbaar zijn met een weg terug voor het antwoord. Ontbreekt een van de drie, dan is de stilte vanuit de client hetzelfde.

sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
sudo iptables -S INPUT

Lees de drie uitvoer samen. Een nul in de eerste maakt de andere twee irrelevant, en een standaard-verwerppolicy in de tweede gooit de pakketten van de client weg terwijl het eigen verkeer van de gateway blijft werken. De derde uitvoer laat zien waarom de listenerregel nooit het probleem was.

Houd de twee regelsets gescheiden in de documentatie

Schrijf de listenerregel en de regel voor de doorgestuurde dienst op aparte regels, met aparte eigenaren en redenen. Wanneer de VPN-poort verandert of een nieuwe dienst wordt gepubliceerd, voorkomt die scheiding dat de ene wijziging de andere stil verbreedt.

Behandel niet elke geauthenticeerde peer als een vertrouwd LAN-lid, maar gebruik nauwe regels voor de clientbereiken en diensten die ze nodig hebben. De notities over doorsturen van StrongSwan beschrijven de terugroute- en vertaalkant van dezelfde grens, wat weer een derde beslissing is.

Ten slotte, houd de lagen recht wanneer een gebruiker wordt geweigerd. Als het verzoek de host bereikt en de applicatie weigert het account, herstel dan de applicatierechten op die laag; het verbreden van doorsturen kan geen inloggegevens voor bestandsdeling leveren en zal de toegang verbreden voor alle anderen die met succes verbinden.

Gerelateerde artikelen