MikroTik VPN-brukar når for langt: avgrens til éin vert og éin port
Ein PPP-profil kan leggje den tildelte tunneladressa i ei adresseliste, og éi jump-kjede kan tillate éin vert og port før dropp.
Tunnelen kjem opp, innlogginga lukkast, og kvar vert på nettet svarar. Det er ikkje ein øydelagd VPN; det er ein VPN utan tilgangsmodell. RouterOS autentiserer kontoen og ruter deretter pakkane hans som alle andre sine, så brannmuren må levera grensa. Å leggje til den grensa utan å øydeleggje innlogginga er heile jobben.
Autentisering sluttar der tilgangen byrjar
Når ei PPP-økt er oppe, går pakkane frå klienten inn i forward-kjeda som trafikk frå kva som helst anna grensesnitt. Viss forward-policyen til rutaren er ettergjevande, arvar konsulenten den ettergjevnaden ved innlogging. Kontoen bar aldri eit omfang, så det er ingenting på kontoen å endre. Regelsettet vart skrive for tilsette, og den nye økta slutta seg rett og slett til det.
Sjekk kva veg førespurnaden gjeld før du skriv noko. Trafikk til vertar bak rutaren kryssar forward, medan trafikk til rutaren sjølv, inkludert winbox og SSH, kryssar input. Eit omfang som berre dekkjer forward, lèt eininga stå open for den same klienten.
Båe kjeda treng ei avgjerd, sjølv om avgjerda er å halde input lukka. Det valet høyrer heime i tilgangsførespurnaden, ikkje i ein ettertanke.
Knyt økta til ei namngjeven liste
Ein PPP-profil kan leggje adressa han deler ut i ei namngjeven adresseliste når økta startar. Det gjer ei forbigåande tunneladresse til noko brannmuren kan matche ved namn, og oppføringa forsvinn når økta sluttar. Kontoen arvar då omfanget frå profilen sin i staden for frå ei regel som hardkodar ei adresse.
Opprett profilen fyrst, og bind deretter secret eksplisitt til han. Eit secret som framleis peikar på standardprofilen, attskapar det opphavlege problemet.
Gje profilen og lista namn slik at oppgåvene deira er tydelege, og kommenter båe med referansen til førespurnaden. Éin profil kan tene fleire personar med same omfang, medan lista framleis identifiserer kvar levande økt. Det er billegare å gå gjennom enn ei regel per person.
/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
Registrer den tillatne tenesta på éi liste
Set den tillatne tenaren på si eiga adresseliste i staden for å byggje adressa inn i ei filterregel. Lista kan reviderast, utvidast og kommenterast, og regelen som brukar ho endrar seg ikkje når tenaren flyttar. Éi oppføring verkar overdriven heilt til den andre verten dukkar opp, noko han vanlegvis gjer.
Match ei liste når adressa er dynamisk eller lastbalansert, og match adressa direkte når ho er reservert og stabil. Båe vala blir lesne tydeleg viss kommentaren nemner tenesta og eigaren.
Avgrens protokollen og porten så vel som verten. Eit accept for ein vert utan portavgrensing opnar kvar teneste som verten køyrer, noko som er breiare enn dei fleste tilgangsførespurnader har tenkt. Porten er ein del av tilgangen, ikkje ein detalj som blir lagd til seinare.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Ordne jumpet før kva som helst breitt accept
Ei jump-regel sender videresend trafikk frå den avgrensa lista inn i ei privat kjede der heile policyen får plass på tre liner. Den fyrste regelen godtek den tillatne destinasjonen og porten, og den siste regelen droppar alt anna. Jumpet må stå over kva som helst breitt accept i forward, fordi eit tidlegare accept tyder at jumpet aldri køyrer. Hald accept for established og related framom jumpet slik at returtrafikk framleis flyt.
Sjekk at inga fasttrack-regel kan føre denne trafikken forbi den avgrensa kjeda. Fasttrack omgår resten av filtervegen, og ei avgrensa økt som blir fasttracka er ikkje avgrensa i det heile.
Gjenta avgjerda for input-kjeda viss tenestene til rutaren sjølv skal vera utilgjengelege. Eit omfang som blokkerer videresend trafikk og lèt winbox stå open, er berre halvferdig.
/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
Stadfest med teljarar og listemedlemskap
Test frå klienten den tillatne tenesta og ei som må feile, og les deretter regelstatistikken på rutaren. Accept- og drop-teljarane viser kva veg kvar pakke tok, noko klienten ikkje kan sjå. Stadfest òg at adressa til den levande økta dukka opp i den avgrensa lista.
Ei tom liste tyder at kontoen er på ein annan profil, eller at profilen mista adresselisteinnstillinga. Ein stigande drop-teljar med ei feilande tillaten teneste tyder at destinasjonen eller porten ikkje svarar til det klienten sender.
Test den same tenesta ved namn og ved adresse før du konkluderer noko. Ein feil i namneoppslag ser nøyaktig ut som ein blokkert port frå klientsida. Registrer deretter profilen, båe listene og den einaste tillatne tenesta i tilgangsførespurnaden, slik at neste gjennomgang samanliknar i staden for å byggje opp att.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients