Két otthoni router, egyetlen továbbított port sem, és egy VPN, amely néha mégis csatlakozik. Az UDP ezt megengedi, mert a tűzfal beenged egy csomagot, amelyet egy, a gép által már elkezdett folyamhoz tud párosítani. Ez feltételes trükk, nem szolgáltatás, és a feltételek könnyen felsorolhatók, ha tudod, mit hasonlít össze a tűzfal. Ezek az okai annak is, hogy az azonos profilok különböző hálózatokon másképp viselkednek.

Az összehasonlítás, amelyet a tűzfal végez

Minden kimenő datagram létrehoz egy rövid életű bejegyzést: forrás-cím, forrásport, célcím, célport. Minden beérkező, ami illeszkedik a bejegyzéshez, válasznak minősül és átengedik. A bejövő szabályoknak ehhez semmi közük.

A kérdés tehát nem az, hogy a tűzfal beengedi-e a partnert. Hanem az, hogy a partner csomagja úgy néz-e ki, mint a válasz, amelyre a bejegyzés vár. Változtass meg egy mezőt ebben a négyrészes tuple-ban, és a csomag idegenné válik. Ezért borulhat fel egy működő beállítás, ha csak a portszám változik, és ezért működhet ugyanaz a port az egyik routeren, és bukhat el a következőn.

Rögzítsd a helyi forrásportot, és ugyanaz a szám jelenik meg a csere mindkét oldalán. Ez az egész mechanizmus, és megmagyarázza, miért törékeny a trükk, nem pedig titokzatos.

Egy port rögzítése mindkét végén

Az OpenVPN alapértelmezett UDP-portja az 1194, és a lport állítja be a forrásportot, amelyről küld. Rögzítsd mindkét partnert, és mindegyik kimenő tuple-je arra a portra mutat, amelyen a másik figyel:

# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194

Ez csak addig működik, amíg egyetlen köztes router sem írja át a forrásportot. Amikor a csomagok megjelennek egy rögzítésben, de nem jön létre alagút, az átírás az első gyanúsított.

Ahol a tuple már nem illeszkedik

A cél szerint leképező NAT minden partnernek más külső portot ad. A cím, amelyet a partnerednek használnia mondtak, nem az a cím, amely eléri őt, ezért a beérkező csomag semmihez sem illeszkedik, és csendben eldobják.

A szolgáltatói szintű fordítás, a rétegzett NAT és a portok véletlenszerűsítése mind ugyanígy végződik. Ugyanígy minden köztes doboz, amely átírja a portokat, de a címekhez nem nyúl.

A stream-transzportok rosszabbul járnak. A TCP-kézfogást lépésről lépésre követik, ezért a TCP-alapú VPN így egyáltalán nem lyukasztható át, és szüksége van egy hallgatóra valahol az útvonalon.

Általában az egyik oldal bukik el előbb

A gyakorlatban a két hálózat ritkán viselkedik egyformán. Az egyik router kiszámítható leképezést adhat, míg a másik cél szerinti portokat, és az eredmény egy olyan konfiguráció, amely két otthon között működik, mobilhálózatról viszont elbukik. Az egymásnak ellentmondó beszámolók általában két különböző routerpárról szólnak. Egyik szerző sem téved, és egyik eredmény sem általánosítható.

Derítsd ki, melyik oldal dobta el a csomagot, mielőtt a profilokhoz nyúlsz. A két végén készült rögzítések egyetlen próbával eldöntik: az A-t elhagyó, de B-be soha meg nem érkező datagramok azt jelentik, hogy a folyamot útközben átírták, míg a B-be válasz nélkül megérkezők azt, hogy a tűzfal nem fogadta el őket kapcsolódóként.

Két nyilvános IPv6-címmel rendelkező partner megkerüli az egész problémát. Fordítás nélkül nincs mit párosítani, ezért elég egy tűzfalszabály, amely megnevezi a partnereket, és a tervezés megszűnik a router viselkedésétől függni.

Mikor érdemes abbahagyni

A nyilvános című gazdagép a megbízható válasz. Lezárhatja az alagutat mindkét partner számára, vagy egyszerűen segíthet felfedezni a másik jelenlegi külső címét, és mindkét elrendezés működik, bármit tesznek a NAT-ok. Egy felügyelt overlay ugyanezt az összehangolást nyújtja, ha a szabályzat engedi.

Egyik sem igényel kikapcsolt tűzfalat. A védelem kikapcsolása a közvetlen kapcsolat megnyeréséért eldobja az okot, amiért a közvetlen próbálkozás vonzó volt, és a teszt teljes időtartamára nyitva hagyja a gépet.

Először próbáld ki a közvetlen elrendezést, aztán jegyezd fel, mit láttál. A NAT viselkedése és az azt megmutató rögzítés többet ér, mint a portpár, amelynél végül kikötöttél, mert a következő hálózat más lesz. Az OpenVPN 2.6 kézikönyv dokumentálja lport és azokat a remote beállításokat, amelyektől ez függ.

Kapcsolódó cikkek