Používateľ MikroTik VPN dosiahne príliš ďaleko: obmedzte na jedného hostiteľa a jeden port
Profil PPP môže priradenú adresu tunela vložiť do zoznamu adries a jedna jump reťaz môže pred zahodením povoliť jediného hostiteľa a port.
Tunel naskočí, prihlásenie uspeje a každý hostiteľ v sieti odpovedá. To nie je pokazený VPN; to je VPN bez modelu oprávnení. RouterOS overí účet a potom smeruje jeho pakety ako komukoľvek inému, takže limit musí dodať firewall. Pridať tento limit bez pokazenia prihlásenia je celá práca.
Overovanie sa končí tam, kde sa začína oprávnenie
Hneď ako je relácia PPP nadvihnutá, pakety klienta vstupujú do reťaze forward ako prevádzka z akéhokoľvek iného rozhrania. Ak je forward politika routera zhovievavá, konzultant túto zhovievavosť pri prihlásení zdedí. Účet nikdy nenesol rozsah, takže na účte nie je čo meniť. Sada pravidiel bola napísaná pre zamestnancov a nová relácia sa k nej jednoducho pridala.
Predtým, než čokoľvek napíšete, skontrolujte, ktorej cesty sa požiadavka týka. Prevádzka k hostiteľom za routerom prechádza cez forward, zatiaľ čo prevádzka k samotnému routeru, vrátane winboxu a SSH, prechádza cez input. Rozsah, ktorý pokrýva iba forward, necháva zariadenie otvorené tomu istému klientovi.
Obe reťaze potrebujú rozhodnutie, aj keby rozhodnutím bolo nechať input zatvorený. Táto voľba patrí do žiadosti o prístup, nie do neskoršej úvahy.
Pripojte reláciu k pomenovanému zoznamu
Profil PPP môže pri štarte relácie vložiť adresu, ktorú prideľuje, do pomenovaného zoznamu adries. Tým sa prechodná adresa tunela zmení na niečo, čo firewall dokáže spárovať podľa mena, a záznam zmizne, keď sa relácia skončí. Účet potom rozsah dedí zo svojho profilu, nie z pravidla, ktoré adresu natvrdo zadáva.
Najprv vytvorte profil, potom k nemu secret výslovne pripútajte. Secret, ktorý stále ukazuje na predvolený profil, reprodukuje pôvodný problém.
Pomenujte profil aj zoznam tak, aby ich úlohy boli zrejmé, a oba okomentujte odkazom na požiadavku. Jeden profil môže obslúžiť niekoľko ľudí s rovnakým rozsahom, zatiaľ čo zoznam stále identifikuje každú živú reláciu. To sa kontroluje lacnejšie ako pravidlo na osobu.
/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
Zaznamenajte povolenú službu do jedného zoznamu
Umiestnite povolený server do jeho vlastného zoznamu adries, namiesto vkladania adresy do filtračného pravidla. Zoznam možno auditovať, rozširovať a komentovať a pravidlo, ktoré ho používa, sa pri presune servera nemení. Jediný záznam vyzerá prehnane, kým nepríde druhý hostiteľ, čo zvyčajne príde.
Párujte zoznam, keď je adresa dynamická alebo vyvažovaná, a párujte adresu priamo, keď je rezervovaná a stabilná. Obe voľby sa čítajú jasne, ak komentár pomenuje službu a vlastníka.
Obmedzte protokol a port rovnako ako hostiteľa. Accept pre hostiteľa bez obmedzenia portu otvorí každú službu, ktorú tento hostiteľ prevádzkuje, čo je širšie, než väčšina žiadostí o prístup zamýšľa. Port je súčasťou oprávnenia, nie detail, ktorý sa pridá neskôr.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Zoraďte jump pred každým širokým accept
Pravidlo jump posiela preposielanú prevádzku z obmedzeného zoznamu do súkromnej reťaze, kde sa celá politika zmestí do troch riadkov. Prvé pravidlo prijme povolený cieľ a port, posledné zahodí všetko ostatné. Jump musí byť nad každým širokým accept vo forwarde, pretože skorší accept znamená, že jump nikdy neprebehne. Accept pre established a related držte pred jumpom, aby spätná prevádzka stále tiekla.
Skontrolujte, že žiadne pravidlo fasttrack nemôže túto prevádzku viesť mimo obmedzenej reťaze. Fasttrack obchádza zvyšok filtračnej cesty a obmedzená relácia, ktorá prejde fasttrackom, nie je obmedzená vôbec.
Zopakujte rozhodnutie pre reťaz input, ak majú byť vlastné služby routera nedostupné. Rozsah, ktorý blokuje preposielanú prevádzku a necháva winbox otvorený, je len spolovice hotový.
/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
Overte pomocou počítadiel a členstva v zozname
Z klienta otestujte povolenú službu a jednu, ktorá musí zlyhať, a potom na routeri prečítajte štatistiky pravidiel. Počítadlá accept a drop ukazujú, ktorou cestou každý paket šiel, čo klient nevidí. Potvrďte tiež, že adresa živej relácie sa objavila v obmedzenom zozname.
Prázdny zoznam znamená, že účet je na inom profile alebo profil stratil nastavenie zoznamu adries. Rastúce počítadlo drop pri zlyhávajúcej povolenej službe znamená, že cieľ alebo port nezodpovedajú tomu, čo klient posiela.
Otestujte tú istú službu podľa mena aj podľa adresy, kým niečo uzavriete. Zlyhanie prekladu mien vyzerá zo strany klienta presne ako blokovaný port. Potom zaznamenajte profil, oba zoznamy a jedinú povolenú službu do žiadosti o prístup, aby budúca revízia porovnávala, namiesto aby rekonštruovala.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients