Az UFW vészkapcsolója blokkolja a VPN-t? Engedje a társat
A kimenő forgalmat tiltó szabály eldobja az alagút kézfogását. Egy társ-kivétel, amelyet az ufw enable előtt ad hozzá, teszi a szabályzatot vészkapcsolóvá.
Követte az ellenőrző listát: tiltsa a kimenőt, engedje az alagutat, kapcsolja be az ufw-t. Aztán az ügyfél a kézfogásnál vár és soha nem csatlakozik, vagy csatlakozik és egyetlen oldal sem töltődik be. Mindkét hiba ugyanabból a résből jön. Hiányzik a szabály, amely lehetővé teszi az alagút létezését, mert az alagút nem olyan interfész, amelyen a csomagjai kilépnek.
Miért nem egyezik semmivel egy tun0-ra adott engedély eleinte
A tun0-t az ügyfél hozza létre, miután létezik egy munkamenet. Azokat a datagramokat, amelyek ezt a munkamenetet felépítik, közönséges UDP-csomagok, amelyek a szolgáltatóhoz címzettek az 1194-es porton, és a fizikai forrás címmel lépnek ki a wlan0 vagy eth0 interfészen. allow out on tun0 csak arra a forgalomra illeszkedik, amelynek kimenő interfésze tun0, így a kézfogás alatt semmire sem illeszkedik.
Tegye default deny outgoing fölé, és a külső csomagok még az interfész megjelenése előtt eldobódnak. Az ügyfél újrapróbálkozik, időtúllépést kap, és TLS- vagy kézfogáshibát jelent, ami az embereket tanúsítványok és MTU között kutakodni küldi, miközben a tűzfal csendesen megeszi a kapcsolatot. A szabály, amelynek a forgalmát kordában kellett volna tartania, megakadályozza, hogy ez a forgalom kordában legyen tartható.
A reflexjavítás állandóvá teszi a szivárgást. sudo ufw allow out on wlan0, vagy az alapértelmezés visszaállítása engedélyre, felhozza az alagutat, és hátrahagyja a gépet vészkapcsoló nélkül: a következő alkalommal, amikor az alagút leesik, minden folytatódik a fizikai adapteren. Pontosan ezzel a két módosítással vesztettem el egy délutánt, mire kitaláltam, melyik csomagot is szűröm valójában.
Mire van szüksége a két csomagkészletnek
A forgalma kétszer, két formában halad át a tűzfalon. A belső csomag az alagút címétől kifelé halad a tun0-n. A külső csomag a fizikai címtől a társig halad, és ez az egyetlen dolog, ami a vezetéken látható. Egy szabály formánként:
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow out to 203.0.113.10 port 443 proto tcp comment 'tcp fallback'
Cserélje ki a címet és a portot a saját profiljából származókkal. A WireGuard társak általában az 51820/udp-n válaszolnak; a TCP 443-on futó OpenVPN-profiloknak erre a portra van szükségük helyette. A részletek eltérnek, a forma nem: mindkét szabály szűk, és együtt határozzák meg az egyetlen célállomást, amelyet a gép elérhet, amíg az alagút le van állva.
A sorrend a második mítosz. Nyers iptables-szel fentről lefelé olvassa a láncot, és mérlegeli, melyik szabály nyer. Az ufw nem vékony burkoló a beírt lista körül; a szabályait saját láncaiba fordítja, és kiválasztja a beszúrási pontokat. ufw status az ufw sorrendjében nyomtatja ki őket, nem az önében. Ha egy szabály figyelmen kívül hagyottnak tűnik, hasonlítsa össze ufw show added a lefordított készlettel innen: iptables -S | grep ufw mielőtt bármit átírna.
A kivételnek egy cím szélességűnek kell maradnia
Egy társ-szabály csak addig helyes, amíg megnevezi azt a címet, amelyet az ügyfél tárcsáz. A szolgáltatók forgatják a végpontokat, és a hosztnevet feloldó profil követi a DNS-változást egy új címre, miközben a szabály továbbra is a régire mutat. Ha egy hónapokig működő alagút nem jön fel többé, hasonlítsa össze a szabályban lévő címet azzal, amelyet az ügyfél keres, mielőtt bármit kiszélesítene.
Egy egész alhálózatra vagy az 1194-es port minden céljára kiterjesztés visszaváltoztatja a szabályzatot lyukas tűzfallá. A kivétel a vészkapcsoló; ha egyszer széles, nincs már mit kapcsolni. Tartsa egyetlen címen, és hagyjon megjegyzést a profil és a szolgáltató nevével, amelyhez tartozik, mert hat hónap múlva a cím önkényesnek fog tűnni.
A névfeloldás saját sort érdemel. A keresés az alagút létezése előtt, a fizikai interfészen történik, ezért egy szigorú kimenőtiltó szabályzat képtelenné teheti az ügyfelet a saját szervere megtalálására. Engedélyezze az 53-as portot a feloldója címére, vagy oldja fel egyszer, és rögzítse a címet a profilban. DNS engedélyezése minden interfészen döntés, nem alapértelmezés.
Építse fel a szabályzatot, mielőtt szükség van az alagútra
ufw enable egyszerre alkalmazza az egész szabályzatot, és újratölti a láncait, és egy futó tűzfal alapértelmezett szabályzatának megváltoztatása is újratölti azokat. Az ufw kézikönyve figyelmeztet, hogy ez megszakíthatja a meglévő kapcsolatokat, például az SSH-t. Ezért a parancsok ebben a sorrendben mennek, az SSH-szabállyal a bekapcsolás előtt és nyitott konzolmunkamenettel:
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose
ufw reset szándékosan kimarad ebből a blokkból. Töröl minden szabályt, és letiltja a tűzfalat, távoli hoszton pedig a következő bekapcsolás az, ami megszakítja a munkamenetét. Ha mégis visszaállít, adja hozzá az SSH-szabályt, és erősítse meg a második visszautat egy konzolon keresztül, mielőtt tovább menne.
A sorrend nem kozmetikai. Az ufw futása közben hozzáadott szabályok nem öblítenek semmit, de abban a pillanatban, amikor egy alapértelmezett szabályzatot átfordít, a láncok újratöltődnek, és a régi szabályzat által engedélyezett munkamenet is velük megy. Végezze el az alapértelmezéseket, az engedélyeket és a bekapcsolást egy menetben, amíg még van befelé vezető útja, amely nem függ a géptől.
Tesztelje a blokkolt állapotot, és őrizze meg a visszavonást
A ki nem próbált vészkapcsoló találgatás. Szándékosan bontsa a kapcsolatot, és próbáljon meg betölteni egy oldalt: sikertelennek kell lennie. Csatlakozzon újra, és helyre kell állnia anélkül, hogy bármelyik szabályhoz hozzányúlna. sudo ufw status verbose megerősíti az alapértelmezéseket és a naplózási állapotot, és ufw status numbered megmutatja, melyik tesztszabályt kell törölni, amikor túléli a célját.
Tartsa a fordított szkriptet az előre irányuló mellett. Egy gép kimenőtiltással és halott alagúttal nem tudja letölteni a saját javítását, ezért a visszavonásnak a lemezen kell lennie, és konzolról olvashatónak:
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
Akkor futtassa, amikor az alagút már leesett, és a szabályokat le kell venni, nem rutin lépésként. Mielőtt bezárja a terminált, négy dolognak kell teljesülnie: a társ-szabály pontosan egy címet nevez meg, a DNS-nek van megnevezett kivétele, a bekapcsolás az engedélyek után jött, és az alagút kihúzása megöli a szokásos forgalmat anélkül, hogy az ügyfelet végleg megölné.