Jump to content
Калькуляторы

RB2011 Заблокировать все сайты, кроме определенных

Добрый день!

Есть микротик  RB2011, прошивка 6.41.3. Хочу заблокировать интернет, кроме определенных сайтов, но возникает проблема, становятся недоступны ВСЕ сайты, даже те, что разрешены.

Тестирую на своем ПК.

Создаю адресс-лист с разрешенными сайтами Allowed, например гугл, яндекс. Появляются динамические ip.

 

Создаю разрешающие правило

/ip firewall filter
add chain=forward src-address=Мой ИП dst-address-list=Allowed action=accept

Создаю запрещающие правило

/ip firewall filter

add chain=forward src-address=Мой ИП dst-address-list=!Allowed action=drop

 

В итоге в браузере ни один сайт не открывается, в логах микротика только сообщения о том, что NAT гоняет запросы. Менял время TTL, размер кэша, ребутил микротик, менял DNS. Если делаю пинг до сайта, то пинги проходят. Что я делаю не так???

Делал от обратного, то есть блокировал только определенные сайты - работает нормально. Но хочу именно разрешить только определенные сайты.

Edited by vovansgz

Share this post


Link to post
Share on other sites

по мне  я бы сделал 1 правило

/ip firewall filter
add chain=input src-address=Мой ИП action=accept
и 2 правило

add chain=forward action=drop dst-address=Мой ИП layer7-protocol=drop

далее как написать layer7-protocol это думаю разберетесь wiki mikrotik вам в помощь

или гугл тоже много есть примеров

 

кстати есть еще проще

принудительно завернуть все днс запросы на микротик, и просто создать список блокируемых сайтов со стат записью на адрес 127,0,0,1 например или на ip адрес porno.ru  )))

Share this post


Link to post
Share on other sites

3 минуты назад, Constantin сказал:

далее как написать layer7-protocol это думаю разберетесь wiki mikrotik вам в помощь

или гугл тоже много есть примеров

Во-первых, я хочу запретить ВСЕ сайты, кроме определенных из списка. А через layer7-protocol придется плодить кучу правил.

Во-вторых, layer7-protocol не рекомендуется использовать.

Share this post


Link to post
Share on other sites

6 минут назад, vovansgz сказал:

Во-вторых, layer7-protocol не рекомендуется использовать.

бред ну вам виднее

разница в правиле только "!"

и список уже белых сайтов ))) что проще и нет головной боли с выяснением ip адресов которые меняются бывает и на одном ип может куча сайтов сидеть

Share this post


Link to post
Share on other sites

32 минуты назад, Constantin сказал:

разница в правиле только "!"

и список уже белых сайтов ))) что проще и нет головной боли с выяснением ip адресов которые меняются бывает и на одном ип может куча сайтов сидеть

Есть рабочий вариант через  layer7-protocol или нет? С HTTPS работает? Сейчас попробовал, либо блокируется все, либо ничего. Хотя бы на примере любого сайта на HTTPS mail.ru. Чтобы Только он открывался, а все остальное блокировалось

Share this post


Link to post
Share on other sites

ТС а вы ленивы.... ))))

 

Как закрыть все сайты кроме одного/нескольких


Сразу скажу, что использовать нужно L7 Protocol. Казалось бы, чего сложного: просто применить правило «все кроме».

Но нет, это не работает. Если хотите, проверьте сами. Что делать? Одним фильтром разрешить нужные ресурсы и вторым запретить все остальные.
Разрешающий L7 имеет вид ^.+(какой-то_сайт|еще какой-то_сайт).*$.
С запрещающими сложнее. Можно зафильтровать вообще все через ^.+$. Но я бы посоветовал фильтровать протокол HTTP по URI, то есть так — ^.+(HTTP\/[0-2]).+$.
К сожалению, через терминал необходимые L7-фильтры добавляются с пустым полем regexp. Используйте вместо этого Winbox.

 

/ip firewall layer7-protocol add name=Allow regexp="^.+(какой-то_сайт|еще_какой-то_сайт).*$" /ip firewall layer7-protocol add name=Deny regexp="^.+(HTTP\/[0-2]).+$"


Добавление самих фильтры, по 2 на 'разрешить' и 'запретить' согласно вики Микротик

 

/ip firewall filter add chain=forward protocol=tcp out-interface=ваш_интерфейс layer7-protocol=Allow action=accept /ip firewall filter add chain=forward protocol=tcp in-interface=ваш_интерфейс layer7-protocol=Allow action=accept /ip firewall filter add chain=forward protocol=tcp out-interface=ваш_интерфейс layer7-protocol=Deny action=reject reject-with=tcp-reset /ip firewall filter add chain=forward protocol=tcp in-interface=ваш_интерфейс layer7-protocol=Deny action=reject reject-with=tcp-reset


Небольшое уточнение для тех, кому все-таки требуется разрешить строго определенные сайты: проверяйте, какие еще ресурсы задействованы на сайте. К примеру, это могут быть подгружаемые карты. Я использую Opera для серфинга в сети, а так же входящий в нее DevTools, вкладка «Console» для определения ошибок.

 

 

Доменные имена в адресных листах


И на сладкое: начиная с версии v6.36, в адресные листы можно добавлять доменные имена!

*) firewall — allow to add domain name to address-lists (dynamic entries for resolved addresses will be added to specified list);


Если вы еще не прыгаете от радости как я, то самое время начать. Эта фича позволяет практически полностью уйти от использования затратного L7 с его ограничениями.
В качестве примера приведу маршрутизацию разных сайтов в разные шлюзы. Это актуально в связи с действительностью в нашей стране. Заворачивать будем web-интерфейсы почтовых серверов mail.google.com и e.mail.ru. В почту Google будем ходить по OVPN, а в Mail — по L2TP.

/ip firewall address-list add list=ovpn address=mail.google.com /ip firewall address-list add list=l2tp address=e.mail.ru /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=ovpn action=mark-routing new-routing-mark=ovpn-route /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=l2tp action=mark-routing new-routing-mark=l2tp-route /ip route add dst-address=0.0.0.0/0 gateway=ovpn-out1 distance=1 routing-mark=ovpn-route /ip route add dst-address=0.0.0.0/0 gateway=l2tp-out1 distance=1 routing-mark=l2tp-route


Таким образом, при добавлении нужного имени в определенный лист, мы фактически определяем по какому каналу будет установлена связь.
Еще один пример, который многим пригодится: перенаправлять все TCP-соединения в шлюз OVPN, а rkn.gov.ru — в шлюз по умолчанию.

/ip firewall address-list add list=RKN address=rkn.gov.ru /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address-list=RKN action=accept /ip firewall mangle add chain=prerouting protocol=tcp src-address=192.168.1.0/24 dst-address=!192.168.0.0/16 action=mark-routing new-routing-mark=ovpn-route /ip route add dst-address=0.0.0.0/0 gateway=ovpn-out1 distance=1 routing-mark=ovpn-route


Важное замечание: если вы используете Fasttrack, то обязательно смотрите его описание. А именно:

Fasttracked packets bypass firewall, connection tracking, simple queues, queue tree with parent=global, ip traffic-flow(restriction removed in 6.33), ip accounting, ipsec, hotspot universal client, vrf assignment, so it is up to administrator to make sure fasttrack does not interfere with other configuration;


Что значит, что соединения такого типа не попадают в файервол, обработку пакетов, очереди и т.д.

 

 

 

Share this post


Link to post
Share on other sites

4 минуты назад, Constantin сказал:

Но нет, это не работает.

Подытожили много букв, мало по делу.

5 минут назад, Constantin сказал:

ТС а вы ленивы.... ))))

Хм, наверно L7 Protocol  я уже пробовал ранее, и убедился, что работает это криво и только для конкретных сайтов. Я в первом сообщении писал, блокировка всего, кроме списка...Предложил свой вариант, который почему-то теоретически работает пинги проходят, а браузер не открывает. Мне интересно где косяк?

 

Да делал я вот так

/ip firewall layer7-protocol add name=VK regexp="^.+(vk.com).*$"

И два правила, на разрешение открытия и блокировку всего как Вы ранее писали

16 минут назад, Constantin сказал:

Разрешающий L7 имеет вид ^.+(какой-то_сайт|еще какой-то_сайт).*$.

Только вот как быстро открываются сайты...вечное вращение загрузки, причем запросы идут например к m.vk.com или uquq4.vk.com

и это на примере 1 сайта, а если их будет скажем, 40....

 

20 минут назад, Constantin сказал:

И на сладкое: начиная с версии v6.36, в адресные листы можно добавлять доменные имена!

*) firewall — allow to add domain name to address-lists (dynamic entries for resolved addresses will be added to specified list);

А то, что я делал в самом первом посту не наводит на мысль, что это одно и то же???

Share this post


Link to post
Share on other sites

Скорее всего вам нужно что-то вроде web-proxy. Там легко закрывать все и разрешать то, что надо. На микротике есть такой прокси.

Share this post


Link to post
Share on other sites

3 минуты назад, Saab95 сказал:

Скорее всего вам нужно что-то вроде web-proxy

Где-то пару лет назад я его поднимал, но сразу же отвалились такие сервисы как сбербанк онлайн и т.п. Как сейчас дела с этим обстоят?

Share this post


Link to post
Share on other sites

Запретите обращения из LAN по 53 порту на любые адреса, кроме самого МТ (если это ограничение не для всех - можно через Address List), отключите получение пиринговыхс ДНС с аплинка, впишите статические ДНС-записи для "разрешенных" сайтов.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.