Napísať -o tun+ vyzerá ako presná inštrukcia a v skutočnosti je to zástupný znak, ktorý zodpovedá každému tunelu, aký jadro má. Druhý klient VPN, kontajnerový most alebo rozhranie, ktoré zostalo po spadnutej relácii, všetky ho spĺňajú, a hostiteľ potom prepustí prevádzku, ktorej mala politika zabrániť. Postup nižšie zafixuje jeden názov zariadenia, zoradí výnimky tak, aby tunel skutočne mohol vzniknúť, a nechá vám cestu späť, ak pravidlá dopadnú zle. Každý krok je dosť krátky na to, aby sa dal zrušiť samostatne.

Krok 1: zapíšte pravidlá, ktoré máte teraz

Pred zmenou predvolenej politiky uložte aktuálny stav, aby vrátenie bolo príkazom, a nie spomienkou. iptables-save > /root/iptables.pre zapíše každú tabuľku do súboru, ktorý môžete obnoviť, a druhý terminál s otvorenou reláciou root nie je paranoja, keď politika, ktorú sa chystáte nastaviť, zhodí spojenie, ktoré ju nesie. Ak pracujete vzdialene, naplánujte aj flush ako núdzový vypínač.

Potom vypíšte rozhrania, pretože názov, ktorý ste predpokladali, je názov, ktorý ste mali prečítať: ip -br link ukazuje, čo práve existuje, a tunel sa neobjaví, kým nebude hore. Zapisujte si názvy zariadení, ako ich čítate.

Krok 2: dajte tunelu jeho vlastný názov

OpenVPN prijíma dev tun_work v konfigurácii klienta a Linux potom vytvorí rozhranie presne s týmto názvom, namiesto toho, aby pridelil tun0. Názov zostáva stabilný medzi opätovnými pripojeniami, kým si ho nič iné nenárokuje, a práve to robí pravidlo, ktoré zariadenie pomenúva, zmysluplným.

Tam, kde sa názov nedá ovládať, porovnávajte namiesto toho adresu tunela alebo značku paketu. Obe fungujú, obe sa ťažšie čítajú a obe zlyhávajú tichšie, keď sa tunel prečísluje. Tak či onak, porovnávajte jednu vec a povedzte jasne, ktorú.

Krok 3: napíšte politiku s výnimkou pre endpoint na prvom mieste

Hostiteľ len s VPN je hostiteľ s predvoleným odmietnutím a krátkym zoznamom výnimiek, a výnimka, na ktorej záleží najviac, je tá, ktorá tunelu dovoľuje existovať. Zostavte ju v tomto poradí, s pravidlom pre endpoint pred pravidlom pre zariadenie tunela, aby handshake mal kam ísť:

# allow the tunnel to be built, then everything the tunnel carries
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o tun_work -j ACCEPT
iptables -A INPUT  -i tun_work -j ACCEPT
iptables -A INPUT  -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Doslovná adresa endpointu a port patria vášmu poskytovateľovi, nie tejto stránke. Ak je endpoint názov hostiteľa, preložte ho raz a výsledok zafixujte, pretože pravidlo nevie vyhľadať názov a rotujúca odpoveď potichu rozbije politiku po ďalšej zmene DNS. Skontrolujte aj port, pretože poskytovatelia, ktorí vás presunú na TCP 443, inak budú potrebovať pravidlo, ktoré nikto nezapísal. Tunel, ktorý funguje len na jednom protokole, je zvyčajne práve toto opomenutie, a nie porucha firewallu.

Na routeri rovnaký tvar ide do reťazca FORWARD pre klientov za ním, a vlastná prevádzka routera potrebuje vlastné pravidlá. Sada pravidiel, ktorá pokrýva len preposielané pakety, necháva SSH a DNS na starej ceste, a tak sa router stane nedostupným v okamihu, keď tunel vstane.

Krok 4: skontrolujte poradie, nie len prítomnosť

Pravidlá sa vyhodnocujú postupne, takže ACCEPT, ktorý príde skôr, jednoducho skryje REJECT, ktorý ste pridali neskôr. Zhoda established a related je to, čo nechá odpovede na vaše vlastné odchádzajúce požiadavky vrátiť sa bez otvorenia všeobecnej prichádzajúcej cesty, a jej umiestnenie za prijatím tunela znamená, že spadnutý tunel stále prepúšťa spiatočnú prevádzku na svojom rozhraní.

Držte počet pravidiel dosť malý, aby sa dali prečítať na jednej obrazovke. Sada pravidiel, ktorú neviete auditovať, je tá, ktorú budete záplatať pridávaním výnimiek na vrch, a tak politiky predvoleného odmietnutia postupne získavajú hranu predvoleného povolenia. Spočítajte ACCEPT pred zmenou a po nej.

Krok 5: zabezpečte, aby prežil boot aj rodinu adries

Pravidlá zadané ručne pri reštarte zmiznú, preto ich načítajte zo služby firewallu distribúcie alebo z unitu, ktorý sa spustí po tom, čo rozhranie tunela existuje. Odkazovať na tun_work v skripte, ktorý sa spúšťa pred štartom OpenVPN, je častý spôsob, ako vytvoriť bootovaciu slučku so zahodenou prevádzkou.

Potom skontrolujte IPv6 zvlášť, pretože dobrá politika predvoleného odmietnutia pre IPv4 nehovorí nič o druhej rodine. ip -6 route vám povie, či má hostiteľ trasu, ktorá by mohla niesť prevádzku okolo tunela, ktorý spracúva iba IPv4, a ip6tables alebo nftables potrebuje vlastné ekvivalentné pravidlá. Testujte s cieľom IPv6-only, namiesto toho, aby ste verili symetrii sady pravidiel.

Krok 6: overte a buďte pripravení obnoviť

Zdvihnite tunel, potvrďte, že zamýšľaná služba funguje, a potom skúste niečo, čo by politika mala odmietnuť. Obnovte pomocou iptables-restore < /root/iptables.pre, ak vás odpoveď prekvapí, a až potom začnite upravovať pravidlá. Trvalosť plus vyskúšaná cesta obnovy je to, čo z toho robí zmenu, ktorú môžete urobiť dvakrát.

Súvisiace články