dvestezar.cz

  • Increase font size
  • Default font size
  • Decrease font size
Home Články Jiné Mikrotik - blokování zakázaných/nevhodných DNS

Mikrotik - blokování zakázaných/nevhodných DNS

Email Tisk PDF

V dnešní době SSL je to trošku oříšek, ale na konec se z toho vyklubala rychlovka na pár minut.

A protože dnes jede vše, snad i nevhodné, přes SSL, tak je celkem nemožné normální cestou zablokovat DNS. Proto byl vymyšlen základní skript pro získání IP adres z přesměrované veškeré komunikace DNS na portu 53. Tím veškeré, je myšlena veškerá 53ková komunikace, protože jsou i tací, co si dokáží nastavit DNS na 8.8.8.8 a mikrotik by o tom nevěděl.

původní věcička je tady

postup je stejný jako v článku

  1. přesměrujeme komunikaci na portu 53
    /ip firewall nat
    add action=redirect chain=dstnat comment=DNS dst-port=53 protocol=tcp to-ports=53
    add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53
  2. přidáme pravidlo do firewallu, kde "mujNevhodnyList" je název listu IP adres, který zadáme ve skriptu
    /ip firewall filter
    add chain=forward dst-address-list=mujNevhodnyList action=drop
  3. V menu systému vytvoříme skript s názvem který použijeme následně v dalším kroku, "nevhodneDNS" je náš název listu který jsme zadali do pravidla firewallu, a v závislosti na bodu 2 by jsme ve skriptu přepsali "nevhodneDNS" na "mujNevhodnyList"
    - dál ve druhém řádku je cesta k souboru na SD kartě, obsah vypíšu dále
    :global JBDNSBlockList "nevhodneDNS";
    :global restDNS [:toarray [/file get "disk1/setting/globalNevhodneDNS.txt" contents]];
    :foreach rdns in=$restDNS do={
    	:put $rdns;
    	:put $JBDNSBlockList;
    	:foreach i in=[/ip dns cache find] do={
    		:local bNew "true";
    		:local cacheName [/ip dns cache all get $i name] ;
    #		:put $cacheName;
    		:if ([:find $cacheName $rdns] >= 0) do={
    			:local tmpAddress [/ip dns cache get $i address] ;
    #			:put $tmpAddress;
    #			** if address list is empty do not check
    			:if ( [/ip firewall address-list find list=$JBDNSBlockList ] = "") do={
    				:if ($tmpAddress~"^[0-9]+(\\.[0-9]+){3}\$") do={
    					:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
    					/ip firewall address-list add address=$tmpAddress list=$JBDNSBlockList comment=$cacheName;
    				}
    			} else={
    				:foreach j in=[/ip firewall address-list find list=$JBDNSBlockList] do={
    					:if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
    						:set bNew "false";
    					}
    				}
    				:if ( $bNew = "true" ) do={
    					:if ($tmpAddress~"^[0-9]+(\\.[0-9]+){3}\$") do={
    						:log info ("added entry: $[/ip dns cache get $i name] IP $tmpAddress");
    						/ip firewall address-list add address=$tmpAddress list=$JBDNSBlockList comment=$cacheName;
    					}
    				}
    			}
    		}
    	}
    }
  4. v menu systému dáme "Sheduler" a přidáme úlohu, kde zadáme opakování po 30ti sekundách a jméno našeho skriptu napíšeme do políčka "On Event"
  5. skoro hotovo, teď ten soubor, a obsah souboru je na každém z nás. Takový základ je :

    "porn","xxx","sex","fuq","xnxx","xvideos","esquire","xhamster"

    Žádné mezery a volné řádky na konci ani na začátku, další slova co nás napadnou se píší do uvozovek a oddělují čárkou.

Jakmile je vše hotovo, tak se List nezačne plnit automaticky, protože se berou data z DNS cache v Mikrotiku. Takže teď tatínci a správci je to na Vás a musíte si chvilku zabrouzdat po nevhodnýc stránkách, které obsahují tyto váše vyjmenované slova v doméně. Jakmile je Mikrotik zachytí, tak se skript postará o výcuc IPček do listu. No, a jakmile se IPčka začnou plnit, tak další klik bude pro zvídavé zklamání.

No a jak docílit výjimky pro svůj počítač snad nemusím psát, ale pro jistotu :

  1. Přiřadíme našemu vyvolenému PC statickou IP
  2. Vytvoříme list ve firewallu např. "povolené", kde přidáme tuto IP. Proč list ? Protože tak budeme chtít ostatikovat i telefon sobě a drahé polovičce.
  3. No a vytvoříme pravidlo "NAD" předchozím "nevhodným" pravidlem, kde povolíme forwarding pro náš list.

  

Celkem vzato vše. Návštěva která k nám příjde se na nevhodné stránky nedostane, nehledě na ratolesti, které zrovna dostaly nový telefon.

--------------------

Po menší úpravě skriptu a pomocí druhého souboru, jsem vytvořil automat, který vytváří zvlášť IP listy pro Youtube a zvlášť pro Facebook, které jsou ve zvlášť FW pravidlech. A protože se dnes nedostává na prdel, tak se jim vypne Youtube a Facebook (jsou i další, že).  A teď se můžeš učit a vyhledávat, popř. máš k dispozici i důležitou Wiki.

--------------------

Toto je plný automat, který má jednu chybu a to, že se na stránky dostane dotyčný JEN JEDNOU :) ....

No, další možností je zablokovat komunikaci na internet a vše valit přes Web Proxy, ale s tím jsou spojené problémy automatického skriptu, protože bez něj by se např. NTB musel neustále nastavovat při přechodu mezi domovem a "kavárnou" (když si vemem NTB ven), a navíc ještě zabezpečovat nastavení možností internetu - pokud máme chytré potomstvo.

Aktualizováno Pátek, 19 Leden 2018 22:34