Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]

Hans K.

Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« kdy: 03. 08. 2018, 18:22:46 »
Prosím o radu s nastavením routeru Mikrotik - už se tu s tím plácám několik dní a jen s Googlem to nedávám :-)

Potřeboval bych poradit s nastavením filtrů pro domény a pro IP adresy. Router je v továrním nastavení, pouze s drobnými úpravami (adresy sítě a DHCP rozsah), tedy jeho primární služba je AP server směrovaný do LAN (k ETH2 - jedná se o dvouportový router - je připojen jiný Mikrotik v režimu AP client zajišťující připojení do internetu). Kromě WiFi se mohou stanice připojit kabelem do ETH1.

Smysl této dvourouterové infrastruktury je ten, že v případě požadavku na nefiltrovaný internet se připojím kabelem na druhý Mikrotik (jeho konfigurace není předmětem tohoto dotazu, neukáže-li se, že je třeba něco změnit i v jeho nastavení), ale pokud chci pro mé PC blokovat určité adresy, připíchnu kabel do Mikrotiku, který se momentálně snažím marně nastavit, či se k němu připojím přes WiFi.

Pro konfiguraci DNS filtru jsem použil toto vygooglené nastavení:

/ip dns static add name=facebook.com address=127.0.0.1
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp

které by dle popisu mělo přesměrovat DNS požadavky na statickou DNS tabulku v routeru, ale bohužel to nefunguje - filtrovaná doména je normálně dostupná.

IP adresy se pokouším filtrovat vygoogleným nastavením:

/ip route add dst-address=x.x.x.x/range type=blackhole

též bezúspěšně. Ať zadám konkrétní adresu, nebo rozsah adres, pravidlo je ignorováno a příslušná adresa plně dostupná.

Tovární nastavení má nastavenou jedinou (dynamickou) route, kde dest. address je rozsah mojí lokální sítě, gateway = bridge a preffered address je IP adresa konfigurovaného Mikrotiku.

Prosím o radu, co je špatně, popř. na co se zaměřit. Pravděpodobně bude třeba překonfigurovat ještě nějakou další prkotinu, která je každému zkušenému síťaři úplně jasná, ale bez níž výše uvedená nastavení nefungují.


matus

Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #1 kdy: 03. 08. 2018, 19:12:13 »

/ip dns static add name=facebook.com address=127.0.0.1
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp


Podle me ti v dstnat pravidlech chybi adresa kam se to ma presmerovat. (neco jako to-address, z hlavy to nevim, pouzivam GUI :) ).
Takhle ti to zmeni pouze port z 53 na 53. Do te cilove adresy bych dal IP routru na kterem mas nastaveno to DNS.

Hans K.

Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #2 kdy: 03. 08. 2018, 22:53:40 »

/ip dns static add name=facebook.com address=127.0.0.1
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp


Podle me ti v dstnat pravidlech chybi adresa kam se to ma presmerovat. (neco jako to-address, z hlavy to nevim, pouzivam GUI :) ).
Takhle ti to zmeni pouze port z 53 na 53. Do te cilove adresy bych dal IP routru na kterem mas nastaveno to DNS.

Vyzkoušel jsem doplnit adresu:
/ip dns static add name=facebook.com address=127.0.0.1
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp dst-address=<ip routeru>
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp dst-address=<ip routeru>
a výsledek je stejný (předtím jsem samozřejmě předchozí pokusy vymazal, výše uvedené nastavení jsem nepřidával k předchozímu nastavení).

Stejně tak mi nefunguje jiný example přímo z wiki Mikrotiku:
https://wiki.mikrotik.com/wiki/Force_users_to_use_specified_DNS_server
/ip dns static add name=facebook.com address=127.0.0.1
/ip firewall nat add chain=dstnat dst-port=53 action=dst-nat  to-ports=53 protocol=tcp to-addresses=<ip routeru>
/ip firewall nat add chain=dstnat dst-port=53 action=dst-nat  to-ports=53 protocol=udp to-addresses=<ip routeru>

MikyM

  • ***
  • 124
    • Zobrazit profil
Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #3 kdy: 04. 08. 2018, 22:18:30 »
.......
Tovární nastavení má nastavenou jedinou (dynamickou) route, kde dest. address je rozsah mojí lokální sítě, gateway = bridge a preffered address je IP adresa konfigurovaného Mikrotiku.

Prosím o radu, co je špatně, popř. na co se zaměřit. Pravděpodobně bude třeba překonfigurovat ještě nějakou další prkotinu, která je každému zkušenému síťaři úplně jasná, ale bez níž výše uvedená nastavení nefungují.

Ahoj,
nejsem z popisu moc moudry mozna to bude tim horkem.
Kratke shrnuti co jsem pochopil, oprav me pokud je to spatne.
Mas Mikrotik1 a Mikrotik2.
Mikrotik 2 slouzi jako gateway do internetu, konfiguroval jsi jej pravedpodobne wizardem.
Mikrotik 1 funguje v rezimu AP a je take konfigurovan wizardem s mensi upravou.

Filtrovani chces provest jen na MK1.

Bez dalsich podrobnosti me v rychlosti napada jen jedna vec.
Podivej se na Mikrotik1 zda jsou veskere porty pripojene do bridge. Pokud je odpoved ano pak se mrkni na bridge settings zda mas zapnutou volbu Use IP Firewall.

Idealne sem postnout celou konfiguraci MK1 vcetne modelu.

Hans K.

Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #4 kdy: 05. 08. 2018, 10:11:03 »
Ahoj,
nejsem z popisu moc moudry mozna to bude tim horkem.
Kratke shrnuti co jsem pochopil, oprav me pokud je to spatne.
Mas Mikrotik1 a Mikrotik2.
Mikrotik 2 slouzi jako gateway do internetu, konfiguroval jsi jej pravedpodobne wizardem.
Mikrotik 1 funguje v rezimu AP a je take konfigurovan wizardem s mensi upravou.

Filtrovani chces provest jen na MK1.

Bez dalsich podrobnosti me v rychlosti napada jen jedna vec.
Podivej se na Mikrotik1 zda jsou veskere porty pripojene do bridge. Pokud je odpoved ano pak se mrkni na bridge settings zda mas zapnutou volbu Use IP Firewall.

Idealne sem postnout celou konfiguraci MK1 vcetne modelu.

Díky za odpověď. Je to přesně tak, jak píšeš.
Do bridge nebyl nastaven port ether1, což ale nebyla překážka - na to bych narazil později, až bych se místo přes WiFi připojil kabelem.
Volba Use IP firewall byla deaktivovaná, jejím povolením oba filtry začaly SKORO fungovat.

Skoro píšu kvůli dvěma nejasným věcem, u nichž bych chtěl požádat o vysvětlení, případně o nalezení řešení.
DNS filtr funguje OK, problémy se týkají IP.

1) první drobnost je ta, že filtr na IP funguje pouze na adresy mimo lokální síť. Jinými slovy: pokud zahodím jakoukoliv IP nebo síť z internetu (pro pokus třeba 8.8.8.8, nebo Seznamovský 77.75.79.53), vše funguje jak má. Když se ale pokusím filtrovat nějakou IP z lokální sítě - např. adresu druhého Mikrotiku, filtr nefunguje a spojení je normálně realizováno (např. když je lokální síť 192.168.88.0/24, Mikrotik 1 = ten s filtry má adresu 192.168.88.1 a Mikrotik 2 = gateway do internetu má adresu 192.168.88.2, tak nefunguje zahazování 192.168.88.2 a k Mikrotiku 2 se stále můžu připojit).
U tohoto bodu nepotřebuji nutně řešení - není mým cílem filtrovat lokální síť. Bohatě mi postačí, pokud mi někdo toto chování odlišné od filtrování adres z internetu vysvětlí.

2) Druhý problém je závažnější a je důvodem, proč jsem napsal, že filtrování SKORO funguje.
Filtr totiž funguje spolehlivě, pokud funguje routování do internetu. Avšak po chvíli, co jsem se radoval, jak výše doporučované změny konfigurace fungují, náhle přestalo fungovat celé připojení k internetu. Nepomohl ani restart obou routerů. Po chvíli laborování, kdy jsem vytahoval a opět zasunoval LAN kabel mezi routery, jsem narazil na příčinu.
Spojení do internetu funguje pouze v případě, že si Mikrotik 1 sám vytvoří dynamic route 0.0.0.0/0 do bridge. Záhadou je, že pokud tato dynamic route chybí, sice nejde internet, ale přesto normálně funguje spojení do Mikrotik 2. Zkoušel jsem vytvořit alespoň statickou route pro 0.0.0.0/0, ale ani to nepomohlo. Routování funguje zcela nahodile na základě toho, zda si Mikrotik 1 vytvoří dynamickou route. To udělá až po chvíli vysunování a opětovném zasunování LAN mezi oběma routery, po zapnutí dynamická route sama nenaskočí. Po chvíli naopak route sama zmizí (bez odpojení LAN) a spojení ven je opět nefunkční.
Kde může být problém?


MikyM

  • ***
  • 124
    • Zobrazit profil
Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #5 kdy: 05. 08. 2018, 10:58:08 »
Dle popisu odhaduji, ze MK1 je mAP, ktery ma default config AP router.
ETH2+WIFI jsou v bridge a ETH1 je WAN, dle toho jsou nastaveny vychozi pravidla ve FW.
Nechce se mi to moc rozepisovat ale vypada to, ze mas stejny rozsah jak na MK1 tak MK2 coz je "trusted" LAN.
Predtim to jelo nebot se FW nepouzival a MK2 tak vse obstaral. Vlastne se nedelal zadny routing protoze v bridge se ten prvoz jen preleval do MK2.
Pokud ETH2 nepouzivas k napajeni MK2 pak vyhod ETH1 na MK1 z bridge. Vypni Use IP firewall. Mozna uplne idealni bude zase spustit na rychlo wizard at mas jistotu, ze se vse vyresetovalo. Na MK1 si nastav v DHCP jiny rozsah nez je na MK2.
Prehod kabel a MK2 zapoj do MK1 ETH1. Na MK2 pravdepodobne bezi take DHCP server takze pri konfiguraci wizardem na MK1 zkus zadat obtain IP / DHCP client pro ETH1.  Tohle vytvori zakladni sadu pravidel vcetne default route 0.0.0.0, pokud by na MK2 nejel DHCP musis IP nastavit manualne vcetne default route. Nediv se pokud se z MK2 nedostanes na MK1 nebot z pohledu MK1 je vse co prichazi na ETH1 externi sit.

Tohle reseni neni ani zdaleka nejlepsi ale patri mezi nejrychlejsi a umozni Ti si hrat s MK1, ktery zacne konecne delat routing.
Kazdopadne mAP neni moc vykona krabicka.

Z me strany je to momentalne vse, musis vice nastudovat zakladni dokumentaci a potom se posunes dale.
Pokud budes zadavat dalsi dotaz pak postni cely konfig jak MK1 tak MK2 protoze na detailech zalezi a urychluje to hledani priciny.

Hans K.

Re:Mikrotik - filtrování DNS a IP [RouterOS v6.42.3]
« Odpověď #6 kdy: 05. 08. 2018, 13:56:52 »
Díky za radu. Začal jsem tedy znovu a nakonec mi filtrování DNS i IP funguje bez vedlejších efektů za následujících podmínek:

- na Mikrotik 1 musí být jiná síť než na Mikrotik 2 - v mém případě jsem na Mikrotik 1 nechal defaultní 192.168.88.0/24 a vše je bez problémů. Snahy mít oba routery na jedné síti byly na škodu - buď nešlo routování vůbec, nebo zase nefungovaly filtry

- LAN kabel musí být mezi ETH1 na filtrovacím routeru a ETH2 na internet gateway - jiné kombinace způsobí akorát to, že se např. i přes jinak funkční internet nedostanu z PC na gateway, což je docela zásadní, protože na gatewayi potřebuji ručně měnit WiFi AP, k němuž se připojuji

- přestože jsi v předchozím příspěvku radil ponechat Use IP firewall vypnuté, je třeba ho zapnout:
/interface bridge settings set use-ip-firewall=yes

- poté fungují původní nastavení z předchozích příspěvků (pouze jsem nahradil domény regulárními výrazy, abych nemusel vyjmenovávat subdomény):
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp
+ např.:
/ip dns static add regexp=".*\\.facebook\\.com" address=127.0.0.1
/ip dns static add regexp="^facebook\\.com" address=127.0.0.1
a
/ip route add dst-address=x.x.x.x type=blackhole

Díky za pomoc - a tento příspěvek je jen shrnutí funkčního řešení pro ty, co by něco podobného někdy v budoucnu potřebovali :-)