OpenWrt VPN-zóna, továbbítás és maszkolás: melyikre van szükség?
A zóna bemenet, a továbbítás és a maszkolás különböző kérdésekre válaszol. Döntse el, mire van szüksége a VPN-forgalmának, mielőtt megnyitja a WAN-zónát.
Három változtatás keveredik össze, valahányszor egy VPN találkozik az OpenWrttel: egy port megnyitása, a továbbítás engedélyezése és a maszkolás bekapcsolása. Ezek különböző kérdésekre válaszolnak, és általában csak az egyikük a valódi követelmény. Ha minden vezérlőt a vezérelt forgalmi szerep szerint olvasunk, a találgatás döntéssé válik, és azt is megmondja, milyen tünetet várhatunk, ha a változtatás hibás. Kezdje annak a szerepnek a megnevezésével, amelyik meghiúsult, ne azzal a jelölőnégyzettel, amelyre emlékszik.
Nevezze meg a forgalmi szerepet, mielőtt egy vezérlőhöz nyúl
A zóna bemenet dönti el, mi érheti el magát az útválasztót. A zóna kimenet az útválasztó által létrehozott forgalmat fedi le, a zóna továbbítás az egy zónán áthaladó forgalom alapértéke, a maszkolás pedig azt dönti el, hogy a forrás cím átíródik-e kifelé menet. Ez négy különböző kérdés, és egy zónaszabályzat mindegyikre egyszerre, ugyanazzal az értékkel válaszol, ezért a teljes zónára kiterjedő változtatás durva eszköz. Egy elnevezett szabály megválaszolhatja az egyiket anélkül, hogy a többit érintené.
A hasznos térkép a forgalmi szerep szerinti, mert pontosan ezt lehet megfigyelni, amikor valami meghiúsul. Az alábbi szerepek mindegyikéhez egy vezérlő tartozik, amely eldönti, és egy tünet, amely rá mutat:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
Az útválasztón figyelő szolgáltatásnak egyetlen szűk bemeneti szabály kell
Az útválasztón futó OpenVPN-kiszolgáló az útválasztónak címzett forgalmat fogad, ezért a külső kapcsolata annak a zónának a bemeneti szabályzatától függ, amely hordozza. Engedélyezze a beállított átvitelt és portot, és hagyjon minden mást abban a zónában elutasítva. Egyetlen portszabály sokkal kisebb változtatás, mint egy teljes zónára szóló engedély, és egy év múlva is ezt tudja majd elmagyarázni.
Két dolog teszi biztonságossá a szabály megtartását: megnevezi a portot, amelyet a szolgáltatás valóban használ, és a zóna definíciója mellett áll, hogy a következő ember lássa, miért létezik. Az alábbi sorok csak a formát mutatják, a port a kiszolgálón beállított értéket helyettesíti. Ha a szolgáltatás átköltözik, mindkét helyen módosítsa ezt a portot, mert a régin maradó szabály egy ellenőrzésig láthatatlan.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'Újratöltés előtt ellenőrizze, mert egy tűzfal-fájl szintaktikai hibája működő szabálykészlet nélkül hagyhatja az útválasztót. Az fw4-et használó kiadásban az ellenőrzés külön parancs, és hangosan meghiúsul ahelyett, hogy csendben elfogadna egy hibás blokkot. Csak sikeres ellenőrzés után töltse újra, és tartsa meg az előző fájlt ott, ahonnan vissza tudja tenni.
fw4 check
service firewall reloadAz ügyfélkérés a továbbításon megy át, nem a bemeneten
A hitelesítés után a LAN-szolgáltatást kérő alagútügyfél kérése továbbított folyamot hoz létre, így az azt eldöntő vezérlő az alagútzóna és a LAN-zóna közötti továbbítási kapcsolat. Rendelje az alagút-interfészt a kívánt zónához, majd nyilatkozzon az irányról, a forrásokról és a szolgáltatásról. A zónahozzárendelés az, ami értelmet ad a továbbítási szabálynak, és a kettő csak együtt olvasva értelmes. Az a továbbítási kapcsolat, amely az alagútzónát forrásként és a LAN-zónát célként nevezi meg, egyetlen szándékos döntésként olvasható, míg két teljes zónára szóló engedély balesetként olvasható.
Magát az útválasztót továbbra is a bemeneti úton lehet elérni, ezért az átjáróra küldött ping semmit sem mond a mögötte lévő fájlmegosztásról. Ez a két hiba külön blokkokban él, és külön módosításokkal javítható. Mindkét utat írja le külön, mielőtt bármelyiket módosítja.
A maszkolás útválasztási döntés, nem engedély
A maszkolás a kiválasztott kimenő forgalom forráscímét írja át. Megmenthet egy kimeneti kialakítást, ahol a távoli oldalnak nincs visszaútja, és elrejti az egyes ügyfelek címeit minden olyan szolgáltatás elől, amely címeket naplóz vagy cím alapján engedélyez. Kikapcsolása a visszaútról szóló útválasztási választás, nem olyan biztonsági kapcsoló, amely bezár egy bejövő lyukat. Az az alagút, amely fordítással bekapcsolva működik, és abban a pillanatban meghiúsul, amikor kikapcsolják, általában hiányzó visszaúttal rendelkezik, nem hiányzó tűzfalszabállyal.
Az útválasztott alternatíva a fordítás helyett visszautat igényel a távoli oldalon. Egyik lehetőség sem biztosítja a tűzfalengedélyt vagy az alkalmazásfiókot, ezért a maszkolás kikapcsolása szinte soha nem javít meg egy alagútügyfelet, amely semmit sem ér el. Az IPv4- és az IPv6-szabályzatot is külön kezelje, mert egy fordítási beállítás nem írja le mindkét családot.
Bizonyítsa a döntést egy engedélyezett és egy elutasított kéréssel
Küldjön egy kérést, amelyet engedélyezni kell, és egyet, amelyet el kell utasítani, majd azonosítsa a vezérlőt, amely minden döntést meghozott. Egy oldal, amely véletlenül betöltődik, nem bizonyíték; a bizonyíték az a szabály, amely illeszkedett, abban a láncban, ahol illeszkedett. Az elutasítás ugyanannyit számít, mint a siker, mert megmutatja, hogy a szabályzat tesz valamit, ahelyett hogy minden engedélyezett lenne.
Két parancs adja ezt a bizonyítékot egy jelenlegi kiadáson. Az illeszkedő szabály számlálója elmozdul, amikor a kérést elfogadják, és a napló mutatja az eldobást, ha bekapcsolta a szabály naplózását:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'Tartson fenn egy még használható felügyeleti utat, mielőtt bármelyik tűzfalszabályzatot módosítja, és kövesse a konfiguráció tulajdonosának ellenőrzési és visszaállítási folyamatát. Az a változtatás, amely kizár az útválasztóról, nem teszt eredménye, hanem egy második incidens. Minden megfigyelés mellé jegyezze fel a zónát és a forgalmi szerepet, hogy az eredménypár a szabályzatot magyarázza, ne egy szerencsés oldalbetöltést írjon le.