Ať už máme na routeru veřejnou IP adresu z jakéhokoliv důvodu, tak je fajn zamyslet se jestli je router dostatečně zabezpečený. K administraci routeru by měl mít přístup pouze správce oblasti, technici nebo samotný člen kterému router patří. Není žádoucí, aby byl router dostupný pro kohokoliv z internetu. V kombinaci se starší verzí RouterOS, nedostatečným či žádným zabezpečením nebo slabým heslem a malér je na světě. Následně vám někdo může třeba vyresetovat nastavení (factory reset) nebo váš router použije jako generátor trafficu (často se zneužívá API) v rámci nějakého botnetu apod.

Asi bych se jako první zamyslel jestli veřejnou IP adresu na routeru skutečně potřebujete.

Máte na routeru veřejnou IP adresu jen kvůli tomu, že složí jako gateway pro ostatní členy?

V Userdb stačí u této veřejné adresy vypnout přístup do internetu. Ideální firewall který má v podstatě 100% účinnost. Router je z venku nedostupný. Fungování svých členů na AP tím neovlivňujete, protože jejich veřejné IP adresy, které mají u sebe na svých routerech jsou povolovány přes Userdb zvlášť a tímto je neovlivníte = nepřestanou fungovat.

Chcete na router přistupovat z venku / mimo hkf síť – třeba z práce apod. ?

Pro tyto účely je ideální používat VPN. Máme centrálně https://vpn.hkfree.org/ postavené na OpenVPN. Mikrotik má od verze 7.xx v RouterOS Wireguard přes který si můžete udělat snadno přístup do hkf sítě. Případně jsou další možnosti.

Pokud z nějakého důvodu nemůžete VPN použít a nemáte jinou možnost se na router dostat třeba z práce, tak právě na vás cílím.

Ideální je úplně vypnout služby, které nepoužíváte. Pokud tedy jste zvyklí spravovat Mikrotik typicky přes WinBox tak ho jako službu povolíte. Dále se hodí například ssh pro případ pokud by z nějakého důvodu selhal WinBox, tak aby jste měli možnost alternativního přihlášení přes jiný protokol. Ostatní služby jako je API, ftp, telnet a Webfig doporučuji zakázat – zpravidla jsou jen zdrojem problémů a často se na ně útočí, protože jsou to nešifrované protokoly, kde lze snadno odchytit přístupové údaje. Někdo může namítnout a má pravdu, že se může hodit telnet například pro připojení se z druhé strany spoje apod. Nicméně je potřeba zabezpečit přístup pouze z důvěryhodných rozsahů (hkf) což si ukážeme.

Doporučuji naučit se pracovat společně s IP – Services + IP Firewall. Je to silná kombinace pokud se správně používá.

IP – Services

Zapíná / vypíná služby, které na Mikrotiku běží + umožňuje definovat rozsahy ze kterých má být služba přístupná. V kombinaci s veřejnou adresou na routeru je z venku stále Mikrotik i služba viditelná i když je nastaveno „available from“ na hkf rozsahy. Spojení odmítá až ve chvíli, kdy přijde požadavek z nepovoleného subnetu / ip. Což nám nestačí, protože tím prozrazujeme, že takový port / službu máme a používáme ho. Proto s veřejnou IP potřebujeme zapojit do hry i firewall.

Takto snadno si můžete zkopírovat doporučené nastavení a vložit přes terminál do svého MK. V tomto příkladu je povolen pouze WinBox a ssh a to ze všech našich hkfree rozsahů dle naší https://ripe.hkfree.org . Nezapoměňte si tam přidat například nějaký svůj lokální subnet co máte třeba na LAN (192.168.x.x/xx), aby jste z něho mohli na router přistupovat.

:global ROZSAH "10.107.0.0/16,10.207.0.0/16,10.253.36.0/22,89.248.240.0/20,185.110.204.0/22,2a01:168::/29";
/ip service
set api address=$ROZSAH disabled=yes
set api-ssl address=$ROZSAH disabled=yes
set ftp address=$ROZSAH disabled=yes
set ssh address=$ROZSAH
set telnet address=$ROZSAH disabled=yes
set winbox address=$ROZSAH
set www address=$ROZSAH disabled=yes
set www-ssl address=$ROZSAH disabled=yes

Firewall na Mikrotiku

Pomůže nám router zabezpečit na vysokou úroveň zabezpečení, tak že router nebude možné z venku naskenovat (zjistit si jaké služby nám na něm běží) a následně na něj nezačnou útočit různí botneti s mnoha pokusy o přihlášení. Log vám jinak prakticky zasviní během několika minut. Router bude z venku odpovídat pouze na ping. Pokud ani to nechcete, tak odeberte protocol=!icmp.

-------------------------------------------------------------------
Prvni radek doplnte verejnou IP, kterou mate na MK v IP - Addresses
-------------------------------------------------------------------
:global VIP "89.XX.XX.XX";
/ip firewall address-list
add address=10.107.0.0/16 list=hkf-rozsahy
add address=10.207.0.0/16 list=hkf-rozsahy
add address=10.253.36.0/22 list=hkf-rozsahy
add address=89.248.240.0/20 list=hkf-rozsahy
add address=185.110.204.0/22 list=hkf-rozsahy
add address=$VIP list=verejna-ip
/ip firewall filter
add action=drop chain=input comment="Ochrana MK z internetu" dst-address-list=verejna-ip protocol=!icmp src-address-list=!hkf-rozsahy

Pravidlo je záměrně napsáno tak, aby jste se omylem neodřízli. Prakticky blokuje pouze příchozí spojení z venku (INPUT chain), které jsou směrovány přímo na vaši veřejnou IP adresu a pokud nejdou z povolených hkf rozsahů, tak jsou blokována. Veškerá ostatní komunikace v rámci hkf a vaší LAN je nedotčena – nejsou zde ani žádná jiná pravidla, takže všechno ostatní je ACCEPT a proto se nemusíte obávat nechtěného „odříznutí“.

Pak vám nic nebrání přidat si do seznamu IP – Services + IP Firewall třeba veřejnou IP adresu / subnet ze kterého chcete přistupovat třeba z práce nebo školy a přitom můžete mít router celkem solidně zabezpečený.

Mikrotik s firewall

Pár tipů na závěr:

Snažte se udržovat aktuální verzi RouterOS. Není to o tom, že musíte aktualizovat s každým vydáním nové verze o tom to není. Smysl je nenechat si ujet příliš vlak a nezamrznout na nějaké staré verzi. Platí, že RouterOS s označením 7.xx (například 7.13) přináší nové funkce, kde mohou být nějaké chyby. Proto je lepší nasazovat stabilní verze až s druhou desetinnou tečkou 7.xx.x ( například 7.13.4), kde jsou problémy zpravidla již vychytané, protože se nepřidávají nové funkce, ale většinou jen opravy chyb, které byly reportovány.

Často jsou správci i členové zvyklí používat IPDNS se zapnutou volbou „Allow remote requests“, která umožní, aby Mikrotik odpovídal na DNS dotazy a zároveň slouží jako DNS cache pro rychlejší vyřizovaní častých dotazů. To je fajn, ale myslete na to, že Mikrotik s veřejnou IP bez firewall pak díky veřejné IP adrese může být zneužíván pro dotazy z venku případně k DDoS útokům.

Nepoužívejte účty admin a root. Při přípravě nového zařízení si rovnou založte nějaký svůj účet a defaultní admin smažte. Používejte silná hesla a u ssh používejte klíče stejně jako na linuxu. Opakovaně se nám už stalo, že byl nasazovaný nový Mikrotik s veřejnou adresou a než ho dotyčný správce přimontoval na stožár a utáhl pár stahovaček tak z důvodu, že nezměnil defaultní heslo pro admin, tak se MK stal hned terčem.

Takto vypadá typický log Mikrotiku s veřejnou adresou bez firewallu:

Mikrotik bez firewall

Platí 100 správců = 100 chutí. Každý máme nějaké svoje postupy, zkušenosti, metody a s nimi pracujeme – firewall může být mnohem více propracovaný což není předmětem tohoto článku. Snažím se ukázat co nejjednodušší a přitom účinné řešení. Můžete si udělat klidně propracovaný stavový firewall s více pravidly (pozor na výkon CPU a RAM) – počítejte, že s každým pravidlem má router vyšší zátěž, tak to nepřehánějte hlavně u slabšího HW. Platí, že pár dobře cílených pravidel je 100x lepší než 20 nesmyslných, které vám pouze vyžírají zdroje a výkon routeru strmě padá dolů takže s rozumem.

Cílem tohoto článku rozhodně není poučovat vás jak se to má dělat. Chci vám ukázat jak se s tím lze snadno vypořádat a nezabere to přitom moc času.

Pozvedněme laťku zabezpečení na vyšší úroveň ať jsme zase o kousek lepší a různí botneti nechají naše routery na pokoji.

Může se hodit:
https://help.mikrotik.com/docs/display/ROS/Services
https://help.mikrotik.com/docs/display/ROS/Firewall+and+Quality+of+Service

Tak ať se vám daří!

Vecíno