Azok az eszközök, amelyek LAN-hoz irányítanak és közben VPN-t tárcsáznak, ugyanabba a vitába kerülnek önmagukkal: az alagút birtokolni akarja az alapértelmezett útvonalat, a LAN-nak pedig vissza kell kapnia. Amikor az OpenVPN csatlakozik, telepíthet egy alapértelmezett útvonalat az alagúton át vagy egy pár fél-alapértelmezettet, ami helyes egy hordozható számítógépnél és helytelen egy olyan átjárónál, amelynek szomszédai a LAN-címéről várnak válaszokat. A válasz nem az, hogy kihagyjuk a VPN-t. A válasz az, hogy a két döntésnek különböző táblákat adunk.

Egy alapértelmezett útvonal, két tulajdonos

A továbbított és a helyben keletkező forgalomnak nem kell ugyanazt az utat járnia. A LAN-ügyfeleknek csak az általad választott célokhoz kell az alagút, míg a gazdagép saját kezelési munkameneteinek és az ügyfeleknek adott válaszainak a LAN alapértelmezett útvonala kell. Ha mindkettőt a főtáblába keverjük, egyetlen választ kényszerítünk két különböző kérdésre.

Az OpenVPN-nek pontosan erre van egy kapcsolója. route-noexec megakadályozza, hogy az ügyfél egyáltalán hozzányúljon a főtáblához, és az általa használt értékek egy route-up szkriptnek lesznek exportálva route_vpn_gateway, dev és az interfész címeként. Utána te döntöd el, melyik tábla melyik útvonalat kapja, olyan kódban, amelyet később el tudsz olvasni.

Házirend-tábla vagy a főtábla átírása

ApproachWhat it buysWhat it costs
Separate table plus source ruleLAN traffic and host traffic keep independent defaultsEvery lookup now depends on rule order
Editing the main table onlyFewer moving parts on a single-purpose hostOne mistake takes the gateway offline entirely
Two half-default routesWorks for a full-tunnel clientAmbiguous on a host that must answer on its LAN address

A külön tábla az egyetlen lehetőség, amely egy alhálózaton túl is skálázódik. Nevezd el egyszer, aztán hivatkozz rá névvel, hogy senkinek ne kelljen számot megjegyeznie:

echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpn

Az itteni címek helyőrzők. Cseréld ki a LAN-előtagot, az alagút átjáróját és az eszköz nevét a saját telepítésedből, mielőtt bármit futtatsz.

A szabálynak a gazdagéphez is illeszkednie kell

A csak LAN-előtagra illeszkedő szabály a továbbított csomagokat fedi le. Nem fedi le az átjáró által létrehozott forgalmat, és nem fedi le a LAN-ügyfeleknek visszaküldött válaszokat sem, amelyek forrásként az átjáró LAN-címét hordozzák. Ezek a keresések a main-be esnek, és még mindig kimehetnek az alagúton.

Adj hozzá egy második szabályt az átjáró saját LAN-címéhez, vagy szélesítsd az első szabályt olyan halmazra, amely mindkettőt tartalmazza. A sorrend számít: a pontosabb szabályt tedd előre, és ellenőrizd az eredményt olyan kereséssel, amely kifejezetten megnevezi a forrást.

ip route get 203.0.113.9 from 192.168.50.1

Ha ez az alagút eszközét jelenti egy helyben maradó célhoz, a szabályhalmaz hibás, függetlenül attól, hogy mit tartalmaz a tábla.

NAT vagy útvonal a túloldalon

A VPN-kiszolgáló az alagút alhálózatát ismeri, és semmi mást. A LAN-forráscímmel érkező csomagoknak nincs visszaútjuk, hacsak valaki nem biztosít egyet, és pontosan két módja van ennek biztosítására. Ha a kiszolgálón útvonalat adunk a LAN-előtaghoz, az eredeti forrás végig látható marad, amit egy auditált terv általában szeretne. Az átjárón végzett maszkolás átírja a forrást az alagút címére, és nem igényel együttműködést a kiszolgálótól.

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

Válassz NAT-ot, ha nem te irányítod a kiszolgálót, és ott nem tudsz útvonalakat hozzáadni. Válaszd a kiszolgálóoldali útvonalat, ha a naplók, a hozzáférés-vezérlés vagy a visszaút szimmetriája számít, mert a maszkolás kitörli az eredeti címet mindabból, amit a túloldal rögzít.

Mindkét esetben engedélyezni kell a továbbítást, és a szigorú fordított útvonal szűrés eldobhatja a választ, ha a main nem az alagutat választotta volna ahhoz a forráshoz. Ellenőrizd a tényleges értéket, mielőtt az alagutat okolnád.

Tedd túlélővé a szétválasztást egy újracsatlakozás után

A kézzel hozzáadott szabályok és útvonalak eltűnnek, amikor az interfész újra létrejön, és egy elavult táblabejegyzés túlélheti az őt indokló munkamenetet. Tedd a táblaszabályt, az alagút útvonalát és a maszkolási bejegyzést az ügyfél route-up szkriptjébe, és ürítsd ki a táblát a szkript elején, hogy egy régi átjáró ne élhesse túl az új munkamenetet.

Ellenőrizd mindkét végéről: egy keresést az átjárón a LAN-forrással, és egy valódi kérést egy LAN-ügyféltől egy olyan cél felé, amelynek át kell haladnia az alagúton. Az az útvonal, amely létezik, de soha nem választják, pontosan úgy viselkedik, mint ha egyáltalán nem lenne, amíg el nem olvasod a számlálókat.

Kapcsolódó cikkek