Rašyti -o tun+ atrodo kaip tikslus nurodymas, o iš tikrųjų tai pakaitos simbolis, atitinkantis kiekvieną branduolio tunelį. Antras VPN klientas, konteinerio tiltas ar sudužusios sesijos palikta sąsaja visi jį tenkina, ir tada priegloba praleidžia srautą, kurį taisyklė turėjo užkirsti. Toliau pateikta procedūra užfiksuoja vieną įrenginio pavadinimą, išdėsto išimtis taip, kad tunelis iš tiesų galėtų susidaryti, ir palieka jums kelią atgal, jei taisyklės kris blogai. Kiekvienas žingsnis pakankamai trumpas, kad būtų atšauktas atskirai.

1 žingsnis: užrašykite dabartines taisykles

Prieš keisdami numatytąją taisyklę, išsaugokite dabartinę būseną, kad grąžinimas būtų komanda, o ne prisiminimas. iptables-save > /root/iptables.pre įrašo kiekvieną lentelę į failą, kurį galite atkurti, o antras terminalas su atidaryta root sesija nėra paranoja, kai nustatoma taisyklė nutraukia ją nešantį ryšį. Jei dirbate nuotoliniu būdu, suplanuokite ir flush kaip avarinį jungiklį.

Tada išvardykite sąsajas, nes pavadinimas, kurį numanėte, yra pavadinimas, kurį turėjote perskaityti: ip -br link rodo, kas egzistuoja dabar, o tunelis nepasirodys, kol nebus pakeltas. Užsirašykite įrenginių pavadinimus skaitydami.

2 žingsnis: suteikite tuneliui jo paties pavadinimą

OpenVPN kliento konfigūracijoje priima dev tun_work, ir tada Linux sukuria sąsają būtent tuo pavadinimu, o ne paskiria tun0. Pavadinimas išlieka stabilus tarp prisijungimų, kol niekas kitas į jį nepretenduoja, ir būtent tai daro įrenginį įvardijančią taisyklę prasmingą.

Kur pavadinimo valdyti negalima, atitikite tunelio adresą arba paketo žymą. Abu veikia, abu sunkiau skaitomi, ir abu tyliau nepavyksta, kai tunelis pernumeruojamas. Bet kuriuo atveju atitikite vieną dalyką ir aiškiai pasakykite, kurį.

3 žingsnis: rašykite taisyklę su endpoint išimtimi pirmiausia

Tik VPN turintis priegloba yra numatytojo draudimo priegloba su trumpu išimčių sąrašu, o svarbiausia išimtis yra ta, kuri leidžia tuneliui egzistuoti. Surinkite ją šia tvarka, endpoint taisyklę prieš tunelio įrenginio taisyklę, kad rankos paspaudimas turėtų kur eiti:

# 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

Tikrasis endpoint adresas ir prievadas priklauso jūsų teikėjui, o ne šiam puslapiui. Jei endpoint yra prieglobos vardas, išspręskite jį vieną kartą ir užfiksuokite rezultatą, nes taisyklė negali ieškoti vardo, o besisukantis atsakymas tyliai sugadins taisyklę po kito DNS pakeitimo. Patikrinkite ir prievadą, nes teikėjai, kurie perkelia jus į TCP 443, kitaip reikalaus taisyklės, kurios niekas neužrašė. Tunelis, veikiantis tik vienu protokolu, paprastai yra būtent ši spraga, o ne užkardos gedimas.

Maršrutizatoriuje ta pati forma patenka į FORWARD grandinę klientams už jo, o paties maršrutizatoriaus srautui reikia savų taisyklių. Taisyklių rinkinys, apimantis tik persiųstus paketus, palieka SSH ir DNS sename kelyje, ir štai taip maršrutizatorius tampa nepasiekiamas tą akimirką, kai tunelis pakyla.

4 žingsnis: tikrinkite tvarką, o ne vien buvimą

Taisyklės vertinamos iš eilės, todėl anksčiau ateinantis ACCEPT tiesiog paslepia vėliau pridėtą REJECT. established ir related atitikimas leidžia atsakymams į jūsų pačių išeinančias užklausas grįžti neatsisakius bendro įeinamojo kelio, o padėjus jį po tunelio priėmimo reiškia, kad kritęs tunelis vis tiek praleidžia grįžtamąjį srautą savo sąsaja.

Laikykite taisyklių skaičių pakankamai mažą, kad būtų perskaityta viename ekrane. Taisyklių rinkinys, kurio negalite audituoti, yra tas, kurį lopysite pridėdami išimtis viršuje, ir taip numatytojo draudimo taisyklės palaipsniui įgyja numatytojo leidimo kraštą. Suskaičiuokite ACCEPT prieš ir po pakeitimo.

5 žingsnis: padarykite, kad jis išgyventų įkrovimą ir adresų šeimą

Rankomis įvestos taisyklės dingsta perkraunant, todėl įkelkite jas iš distribucijos užkardos tarnybos arba unit, kuris paleidžiamas po to, kai atsiranda tunelio sąsaja. Nuoroda į tun_work scenarijuje, kuris vykdomas prieš startuojant OpenVPN, yra įprastas būdas sukurti įkrovimo kilpą su numestu srautu.

Tada patikrinkite IPv6 atskirai, nes gera numatytojo draudimo taisyklė IPv4 nieko nesako apie kitą šeimą. ip -6 route pasakys, ar priegloba turi maršrutą, galintį nešti srautą aplink tunelį, kuris tvarko tik IPv4, o ip6tables ar nftables reikia savų lygiaverčių taisyklių. Bandykite su IPv6-only paskirties vieta, o ne pasitikėkite taisyklių rinkinio simetrija.

6 žingsnis: patikrinkite ir būkite pasirengę atkurti

Pakelkite tunelį, įsitikinkite, kad numatyta paslauga veikia, tada išbandykite tai, ką taisyklė turėtų atmesti. Atkurkite su iptables-restore < /root/iptables.pre, jei atsakymas jus nustebina, ir tik tada pradėkite redaguoti taisykles. Atsparumas kartu su išbandytu atkūrimo keliu yra tai, kas paverčia tai pakeitimu, kurį galite padaryti du kartus.

Susiję straipsniai