Blog

Скрипт блокировки сайтов по ключевым словам (Mikrotik) Featured

Нарыл скрипт в просторах интернета, который позваляет блокировать на mikrotik социальные сайты http и https. Пользователи могут зайти на сайт буквально пару минут (в зависимости как часто мы будем запускать скрипт), после чего сайт блокируется (если найдены ключевые слова). Очень удобно и главное работает.

:foreach i in=[/ip dns cache all find where (name~"facebook" || name~"youtube" || name~"ok.ru" || name~"video" || name~"vk.com" ) && (type="A") ] do={
:local tmpAddress [/ip dns cache get $i address];
delay delay-time=10ms
#prevent script from using all cpu time
:if ( [/ip firewall address-list find where address=$tmpAddress] = "") do={
:local cacheName [/ip dns cache get $i name] ;
:log info ("added entry: $cacheName $tmpAddress");
/ip firewall address-list add address=$tmpAddress list=block comment=$cacheName;
}
}

В первой строке мы забиваем в кавычках какие домены искать find where (name~"facebook" || name~"fbcdn" || name~"odnokl" ) . Если есть совпадения то мы закидываем ip адрес этого домена в адреслист с именем block.

Остается создать правило в файрволе, которое блочит адреслист block:

/ip firewall filter add chain
=forward dst-address-list=block src-address-list=!"HotSpot" action=reject reject-
with=icmp-host-prohibited disabled=no


Где src-address-list=!"HotSpot" говорит что правило работает для всех адресов, кроме забитых в адреслист "HotSpot" (т.е. там хранятся адреса тех кому можно ходить на соц сети :) ).
И обращаю в нимание на action - стоит reject, это для того что бы браузер не "повисал" когда обращается к этим ардесам, а сразу выдавал ошибку о том что сеть не доступна.

 

P.S. Осталось написать скрипт, который будет очищать время от времени адреслист block, а то как-то грязно будет)

Read 8499 times Last modified on Среда, 24 Июнь 2015 14:42
Rate this item
(1 Vote)

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

Счетчики

Gallery

Киев, Новозабарская, 2/6

+38(044)361-0274        +38(044)383-7364