Trīs izmaiņas sajaucas katru reizi, kad VPN sastopas ar OpenWrt: porta atvēršana, pāradresēšanas atļaušana un maskēšanas ieslēgšana. Tās atbild uz dažādiem jautājumiem, un parasti tikai viena no tām ir īstā prasība. Katras vadības lasīšana atbilstoši tās pārvaldītajai plūsmas lomai pārvērš minējumu lēmumā un arī pasaka, kādu simptomu gaidīt, ja izmaiņa ir nepareiza. Sāciet ar lomas nosaukšanu, kas neizdevās, nevis ar izvēles rūtiņu, ko atceraties.

Nosauciet plūsmas lomu pirms vadības aizskaršanas

Zonas ievade nosaka, kas var sasniegt pašu maršrutētāju. Zonas izvade aptver plūsmu, ko maršrutētājs pats rada, zonas pāradresēšana ir noklusējums plūsmai, kas šķērso zonu, un maskēšana nosaka, vai izejot avota adrese tiek pārrakstīta. Tie ir četri dažādi jautājumi, un zonas politika uz visiem atbild vienlaikus ar vienu un to pašu vērtību, tāpēc izmaiņa visā zonā ir rupjš instruments. Nosaukts noteikums var atbildēt uz vienu no tiem, neaizskarot pārējos.

Noderīgā karte ir pēc plūsmas lomas, jo tieši to var novērot, kad kaut kas neizdodas. Katrai lomai zemāk ir viena vadība, kas to nosaka, un viens simptoms, kas uz to norāda:

Traffic roleControl that decides itWhere it lives in the configSymptom when it is wrong
A client reaching a listener on the routerInput policy of the zone that carries the connection, or a rule for the portoption input in the zone stanza, or a named ruleThe handshake never completes and the tunnel log says nothing
A tunnel client reaching the router itselfInput policy of the tunnel zoneoption input in the VPN zoneA ping to the gateway fails
A tunnel client reaching another LAN hostForwarding from the tunnel zone to the LAN zoneconfig forwarding plus the zone assignmentThe gateway answers and the file share times out
The router's own traffic leaving the WANOutput policy, and translation if the far side needs itoption output and option masqThe tunnel never establishes, or replies vanish

Klausītājam maršrutētājā nepieciešams viens šaurs ievades noteikums

Maršrutētājā esošais OpenVPN serveris saņem maršrutētājam adresētu plūsmu, tāpēc tā ārējais savienojums ir atkarīgs no tās zonas ievades politikas, kas to pārvadā. Atļaujiet konfigurēto transportu un portu, bet visu pārējo šajā zonā atstājiet noraidītu. Viens porta noteikums ir daudz mazāka izmaiņa nekā atļauja visā zonā, un tieši to jūs varēsiet izskaidrot arī pēc gada.

Divi apstākļi padara šo noteikumu drošu paturēšanai: tas nosauc portu, ko pakalpojums faktiski izmanto, un tas atrodas blakus zonas definīcijai, lai nākamais cilvēks redzētu, kāpēc tas pastāv. Rindas zemāk ir tikai forma, un ports aizstāj to, kas konfigurēts serverī. Kad pakalpojums pārvietojas, mainiet šo portu abās vietās, jo noteikums, kas palicis uz vecā, ir neredzams līdz auditam.

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'

Pirms pārlādes pārbaudiet, jo sintakses kļūda ugunsmūra failā var atstāt maršrutētāju bez strādājoša noteikumu kopuma. Izlaidumā ar fw4 pārbaude ir atsevišķa komanda, un tā neizdodas skaļi, nevis klusi pieņem salauztu bloku. Pārlādējiet tikai pēc tam, kad pārbaude ir izturēta, un glabājiet iepriekšējo failu tur, no kurienes varat to atgriezt.

fw4 check
service firewall reload

Klienta pieprasījums iet caur pāradresēšanu, nevis ievadi

Pēc autentifikācijas tuneļa klienta pieprasījums LAN pakalpojumam rada pāradresētu plūsmu, tāpēc to nosakošā vadība ir pāradresēšanas attiecības starp tuneļa zonu un LAN zonu. Piešķiriet tuneļa saskarni vēlamajai zonai, pēc tam deklarējiet virzienu, avotus un pakalpojumu. Zonas piešķīrums ir tas, kas pāradresēšanas noteikumam piešķir jēgu, un abi ir saprotami tikai kopā lasīti. Pāradresēšanas attiecības, kur tuneļa zona nosaukta kā avots un LAN zona kā galamērķis, tiek lasītas kā viens apzināts lēmums, bet divas atļaujas visā zonā tiek lasītas kā negadījums.

Pašu maršrutētāju joprojām sasniedz pa ievades ceļu, tāpēc ping uz vārteju neko nepasaka par failu koplietošanu aiz tās. Šīs divas neveiksmes dzīvo dažādos blokos un tiek labotas ar dažādām izmaiņām. Pierakstiet abus ceļus atsevišķi pirms jebkura no tiem maiņas.

Maskēšana ir maršrutēšanas lēmums, nevis atļauja

Maskēšana pārraksta atlasītās izejošās plūsmas avota adresi. Tā var glābt izejas dizainu, kur tālajai pusei nav atgriešanās maršruta, un tā arī slēpj atsevišķu klientu adreses no jebkura pakalpojuma, kas reģistrē vai autorizē pēc adreses. Tās izslēgšana ir maršrutēšanas izvēle par atgriešanās ceļu, nevis drošības slēdzis, kas aizver ienākošo caurumu. Tunelim, kas darbojas ar ieslēgtu tulkošanu un neizdodas tajā mirklī, kad tā tiek izslēgta, parasti trūkst atgriešanās maršruta, nevis ugunsmūra noteikuma.

Maršrutētā alternatīva tulkošanas vietā prasa atgriešanās maršrutu tālajā pusē. Neviens no variantiem nenodrošina ugunsmūra atļauju vai lietojumprogrammas kontu, tāpēc maskēšanas izslēgšana gandrīz nekad nesalabo tuneļa klientu, kas nekur nevar nokļūt. Atsevišķi aplūkojiet arī IPv4 un IPv6 politiku, jo viens tulkošanas iestatījums neapraksta abas saimes.

Pierādiet lēmumu ar atļautu un noraidītu pieprasījumu

Nosūtiet vienu pieprasījumu, kas būtu jāatļauj, un vienu, kas būtu jānoraida, pēc tam nosakiet vadību, kas pieņēma katru lēmumu. Lapa, kas ielādējas nejauši, nav pierādījums; pierādījums ir noteikums, kas sakrita, tajā ķēdē, kurā tas sakrita. Noraidījums ir tikpat svarīgs kā panākums, jo tas parāda, ka politika kaut ko dara, nevis viss ir atļauts.

Divas komandas sniedz šo pierādījumu pašreizējā izlaidumā. Skaitītājs uz atbilstošā noteikuma pārvietojas, kad pieprasījums tiek pieņemts, un žurnāls parāda nomešanu, ja esat ieslēguši noteikuma reģistrēšanu:

nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'

Saglabājiet administrēšanas ceļu, ko vēl varat izmantot, pirms maināt jebkuru ugunsmūra politiku, un ievērojiet konfigurācijas īpašnieka pārbaudes un atritināšanas procesu. Izmaiņa, kas jūs aizslēdz ārpus maršrutētāja, nav testa rezultāts, tā ir otrs incidents. Pierakstiet zonu un plūsmas lomu blakus katram novērojumam, lai rezultātu pāris izskaidrotu politiku, nevis aprakstītu laimīgu lapas ielādi.

Saistītie raksti