вторник, 9 августа 2016 г.

Блокируем доступ к ресурсам с помощью Mikrotik.

  В версии RouterOS v6.36 добавлена очень важная возможность:
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" то нужно использовать два адрес-листа. Было-бы отлично что-бы в адрес-листе добавили список адресов, но к сожалению пока этого нет.


  Так же, в динамических записях не отображается время обновления этой записи (TTL). Надеемся, что тоже это добавят.


  Правила в firewall учитывают именно динамически адрес-листы, созданные из вашего листа, ваш лист с DNS в адресе существует только для просмотра.
  Создадим правило, ограничивающее доступ с нашей подсети на заданный address-lists:
/ip firewall filter
add action=reject chain=forward dst-address-list=www.yaplakal.com reject-with=icmp-network-unreachable src-address=192.168.88.0/24
  Соответственно все. Ресурс блокирован, но можно  перенаправлять на заглушку WebProxy. Для этого, включим WebProxy, и настроим его блокировать все ресурсы:
/ip proxy
set enabled=yes
/ip proxy access
add action=deny src-address=0.0.0.0/0
  Сбросим файл HTML в "File List" Mikrotik и модифицируем его под наши желания:


  Вот что будут видеть наши пользователи, обратившись к ресурсу Яплакал (путь в адресной строке не правил, взял первую попавшуюся заглушку в интернете, для примера):


  Добавляем правило перенаправления:
/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
  Блокируя большой ресурс (ютуб, вконтакте) нужно помнить, что он может быть встроен в множество сайтов, и из-за этого эти сайты могут тупить при открытии, не отображать содержимое и т.д.

Подписаться на новые статьи.

4 комментария:

  1. вот это не нужно add action=redirect chain=dstnat dst-port=53 protocol=tcp src-address=192.168.88.0/24 to-ports=53

    ОтветитьУдалить
    Ответы
    1. согласен! хотя делаю всегда для подстраховки!

      Удалить
  2. подскажите, допустим есть лист вида
    :local DNSList {"baskino.com";"flibusta.net";"2ip.ru";}
    как можно из скрипта добавить их в address-list?

    ОтветитьУдалить