MikroTik VPN naudotojas pasiekia per daug: apribokite vienu mazgu ir vienu prievadu
PPP profilis gali įdėti priskirtą tunelio adresą į adresų sąrašą, o viena šuolio grandinė gali leisti vieną mazgą ir prievadą prieš numetimą.
Tunelis pakyla, prisijungimas pavyksta ir kiekvienas tinklo mazgas atsako. Tai ne sugadintas VPN; tai VPN be leidimų modelio. RouterOS autentifikuoja paskyrą ir tada maršrutizuoja jos paketus kaip bet kieno kito, todėl ribą turi suteikti užkarda. Pridėti tą ribą nesulaužant prisijungimo yra visas darbas.
Autentifikavimas baigiasi ten, kur prasideda leidimas
Kai PPP sesija pakyla, kliento paketai patenka į forward grandinę kaip bet kurios kitos sąsajos srautas. Jei maršrutizatoriaus forward politika yra leidžianti, konsultantas prisijungdamas paveldi tą leidimą. Paskyra niekada neturėjo apimties, todėl paskyroje nėra ką keisti. Taisyklių rinkinys buvo parašytas darbuotojams, o nauja sesija tiesiog prie jo prisijungė.
Prieš ką nors rašydami patikrinkite, kurio kelio prašymas laikomas. Srautas į mazgus už maršrutizatoriaus eina per forward, o srautas į patį maršrutizatorių, įskaitant winbox ir SSH, eina per input. Apimtis, kuri apima tik forward, palieka įrenginį atvirą tam pačiam klientui.
Abiem grandinėms reikia sprendimo, net jei sprendimas yra palikti input uždarą. Tas pasirinkimas priklauso prieigos prašymui, o ne vėlesnei minčiai.
Priskirkite sesiją įvardytam sąrašui
PPP profilis sesijos pradžioje gali įdėti išduodamą adresą į įvardytą adresų sąrašą. Tai paverčia laikiną tunelio adresą kažkuo, ką užkarda gali suderinti pagal pavadinimą, o įrašas išnyksta sesijai pasibaigus. Tada paskyra paveldi apimtį iš savo profilio, o ne iš taisyklės, kuri kietai užkoduota adresą.
Pirmiausia sukurkite profilį, tada aiškiai susiekite secret su juo. Secret, kuris vis dar rodo į numatytąjį profilį, atkuria pradinę problemą.
Pavadinkite profilį ir sąrašą taip, kad jų užduotys būtų akivaizdžios, ir komentuokite abu su prašymo nuoroda. Vienas profilis gali aptarnauti kelis žmones su ta pačia apimtimi, o sąrašas vis tiek identifikuoja kiekvieną gyvą sesiją. Tai pigiau peržiūrėti nei taisyklė vienam žmogui.
/ppp profile add name=scoped-consultant remote-address=consultant-pool address-list=vpn-scoped-clients
/ppp secret add name=consultant password=... service=ovpn profile=scoped-consultant
Užregistruokite leidžiamą paslaugą viename sąraše
Įdėkite leidžiamą serverį į jo paties adresų sąrašą, o ne įterpkite adresą į filtro taisyklę. Sąrašą galima audituoti, plėsti ir komentuoti, o jį naudojanti taisyklė nesikeičia, kai serveris persikelia. Vienas įrašas atrodo perteklinis, kol neateina antras mazgas, o tai dažniausiai atsitinka.
Sudarykite sąrašą, kai adresas dinaminis arba paskirstytas, ir derinkite adresą tiesiogiai, kai jis rezervuotas ir stabilus. Abu pasirinkimai aiškiai perskaitomi, jei komentaras įvardija paslaugą ir savininką.
Apribokite protokolą ir prievadą, taip pat ir mazgą. Accept mazgui be prievado apribojimo atveria kiekvieną paslaugą, kurią tas mazgas vykdo, o tai platesnė, nei ketina dauguma prieigos prašymų. Prievadas yra leidimo dalis, o ne detalė, pridedama vėliau.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Sudėliokite šuolį prieš bet kokį platų accept
Šuolio taisyklė siunčia persiųstą srautą iš apriboto sąrašo į privačią grandinę, kurioje visa politika telpa į tris eilutes. Pirmoji taisyklė priima leidžiamą paskirties vietą ir prievadą, o paskutinė numeta visa kita. Šuolis turi būti virš bet kokio plataus accept forward grandinėje, nes ankstesnis accept reiškia, kad šuolis niekada nevykdomas. Laikykite established ir related accept prieš šuolį, kad grįžtamasis srautas vis dar tekėtų.
Patikrinkite, ar jokia fasttrack taisyklė negali pernešti šio srauto pro apribotą grandinę. Fasttrack apeina likusį filtro kelią, o apribota sesija, kuri apdorojama fasttrack, visiškai nėra apribota.
Pakartokite sprendimą input grandinei, jei paties maršrutizatoriaus paslaugos turėtų būti nepasiekiamos. Apimtis, kuri blokuoja persiųstą srautą ir palieka winbox atvirą, yra tik pusiau baigta.
/ip firewall filter
add chain=forward action=jump jump-target=scoped-vpn src-address-list=vpn-scoped-clients
add chain=scoped-vpn action=accept protocol=tcp dst-address-list=vpn-targets dst-port=3389
add chain=scoped-vpn action=drop
Patikrinkite skaitikliais ir sąrašo naryste
Iš kliento išbandykite leidžiamą paslaugą ir tą, kuri turi nepavykti, tada perskaitykite taisyklių statistiką maršrutizatoriuje. Accept ir drop skaitikliai rodo, kuriuo keliu ėjo kiekvienas paketas, ko klientas negali matyti. Taip pat patvirtinkite, kad gyvos sesijos adresas pasirodė apribotame sąraše.
Tuščias sąrašas reiškia, kad paskyra yra kitame profilyje arba profilis prarado adresų sąrašo nustatymą. Didėjantis drop skaitiklis, kai leidžiama paslauga nepavyksta, reiškia, kad paskirties vieta arba prievadas neatitinka to, ką siunčia klientas.
Išbandykite tą pačią paslaugą pagal pavadinimą ir pagal adresą prieš ką nors darydami išvadą. Pavadinimų skyrimo klaida iš kliento pusės atrodo lygiai kaip užblokuotas prievadas. Tada užregistruokite profilį, abu sąrašus ir vienintelę leidžiamą paslaugą prieigos prašyme, kad kita peržiūra lygintų, o ne atkurtų.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients