В версии RouterOS v6.36 добавлена очень важная возможность:
Давайте попробуем ограничить доступ к ресурсу http://www.yaplakal.com/. Первым делом добавим ресурс в адрес-лист:
При добавлении создаются динамические адрес-листы, которые разрешают данное dns-имя. Списки адресов формируется с доменного имени, основанного на его A или CNAME записи протокола DNS. Эти динамически записи действуют ровно столько, сколько указанно в TTL этой записи, по истечению этого срока запись обновляется. Естественно их может быть несколько. Удаляются они при удалении вашего основного адрес-листа. Если мы хотим ограничить доступ, допустим, к "facebook.com" и "m.facebook.com" то нужно использовать два адрес-листа. Было-бы отлично что-бы в адрес-листе добавили список адресов, но к сожалению пока этого нет.
Так же, в динамических записях не отображается время обновления этой записи (TTL). Надеемся, что тоже это добавят.
Правила в firewall учитывают именно динамически адрес-листы, созданные из вашего листа, ваш лист с DNS в адресе существует только для просмотра.
И последний штрих. Для того, что-бы пользователи не смогли поставить DNS-сервера (например 8.8.8.8) в ручную на своем компьютере сделаем редирект 53 порта на наш роутер (за идею спасибо ресурсу):
firewall — allow to add domain name to address-lists (dynamic entries for resolved addresses will be added to specified list);В адрес-листы можно добавлять не только IP-адреса, но и DNS-имена ресурсов. Таким образом стало довольно легко ограничить доступ к ресурса.
Давайте попробуем ограничить доступ к ресурсу http://www.yaplakal.com/. Первым делом добавим ресурс в адрес-лист:
/ip firewall address-list add list=www.yaplakal.com address=www.yaplakal.com
При добавлении создаются динамические адрес-листы, которые разрешают данное dns-имя. Списки адресов формируется с доменного имени, основанного на его A или CNAME записи протокола DNS. Эти динамически записи действуют ровно столько, сколько указанно в TTL этой записи, по истечению этого срока запись обновляется. Естественно их может быть несколько. Удаляются они при удалении вашего основного адрес-листа. Если мы хотим ограничить доступ, допустим, к "facebook.com" и "m.facebook.com" то нужно использовать два адрес-листа. Было-бы отлично что-бы в адрес-листе добавили список адресов, но к сожалению пока этого нет.
Правила в firewall учитывают именно динамически адрес-листы, созданные из вашего листа, ваш лист с DNS в адресе существует только для просмотра.
Создадим правило, ограничивающее доступ с нашей подсети на заданный address-lists:
/ip firewall filterСоответственно все. Ресурс блокирован, но можно перенаправлять на заглушку WebProxy. Для этого, включим WebProxy, и настроим его блокировать все ресурсы:
add action=reject chain=forward dst-address-list=www.yaplakal.com reject-with=icmp-network-unreachable src-address=192.168.88.0/24
/ip proxyСбросим файл HTML в "File List" Mikrotik и модифицируем его под наши желания:
set enabled=yes
/ip proxy access
add action=deny src-address=0.0.0.0/0
Вот что будут видеть наши пользователи, обратившись к ресурсу Яплакал (путь в адресной строке не правил, взял первую попавшуюся заглушку в интернете, для примера):
Добавляем правило перенаправления:
/ip firewall nat
add action=redirect chain=dstnat dst-address-list=www.yaplakal.com protocol=tcp \
src-address=192.168.88.0/24 to-ports=8080
И последний штрих. Для того, что-бы пользователи не смогли поставить DNS-сервера (например 8.8.8.8) в ручную на своем компьютере сделаем редирект 53 порта на наш роутер (за идею спасибо ресурсу):
/ip firewall nat
add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=192.168.88.0/24 to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=tcp src-address=192.168.88.0/24 to-ports=53
Блокируя большой ресурс (ютуб, вконтакте) нужно помнить, что он может быть встроен в множество сайтов, и из-за этого эти сайты могут тупить при открытии, не отображать содержимое и т.д.
вот это не нужно add action=redirect chain=dstnat dst-port=53 protocol=tcp src-address=192.168.88.0/24 to-ports=53
ОтветитьУдалитьсогласен! хотя делаю всегда для подстраховки!
Удалитьпервого udp достаточно
ОтветитьУдалитьподскажите, допустим есть лист вида
ОтветитьУдалить:local DNSList {"baskino.com";"flibusta.net";"2ip.ru";}
как можно из скрипта добавить их в address-list?