Управляем выходом в интернет через Mikrotik

Posted by

Есть желание управлять доступом к ресурсам интернета для всех тех кто использует в корпоративной сети Wifi (или обычная LAN сеть) — это могут быть обычные клиенты которые находятся в зоне ожидания, так и офисные сотрудники с ноутбуками путешествующими по офисному зданию. Я предполагаю, а даже действительно знаю, что офисным сотрудникам в повседневной работе не нужен доступ к социальным сетям и многим засветившимся в логах ресурсам относящихся к отдыху.

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

Запускаю со своей рабочей системы (Lenovo E555 — Ubuntu 12.04.5 Desktop amd64 Gnome Classic) консоль командной строки: Приложения — Стандартные — Терминал и запускаю оснастку управления устройством(ами) :

ekzorchik@navy:~$ winbox

Winbox — IP&MAC — auth&pass — IP- Web Proxy

вкладка General:

Enabled: ставим галочку

Max Fresh Time: 1d 00:00:00

Serialize Connections: ставим галочку

остальные настройки оставляем дефолтными

(или же через консоль командной строки:

[ekzorchik@ekzorchik] > ip proxy set enabled=yes port=8080)

Включаемм прозрачный прокси, т. е. все http запросы будем перенаправлять на порт proxy 8080:

Winbox — IP&MAC — auth&pass — IP — Firewall — вкладка NAT — Add

вкладка: General

Chain: dstnat

Protocol: 6 (tcp)

Dst. Port: 80

Src. Address: 192.168.1.0/24

вкладка: Action

Action: redirect

To Ports: 8080

(или же через консоль командной строки:

[ekzorchik@ekzorchik] > ip firewall nat add chain=dstnat src-address=192.168.1.0/24 dst-port=80 protocol=tcp action=redirect to-ports=8080 comment="Redirect to Proxy")

Если же помимо всех кому-то определенному нужен полный доступ в интернет (т. е. Без ограничений прокси), то настройки будут следующие:

Winbox — IP&MAC — auth&pass — IP — Firewall — вкладка: Address Lists — Add

Name: noProxy

Address: 192.168.1.5

и еще:

Name: toNotProxy

Address: либо сети локальной сети либо внешние узлы(ограниченные маской подсети): 10.7.8.0/24

А теперь расширенное правило вместо ранее добавленного для всех:

[ekzorchik@ekzorchik] > ip firewall nat add chain=dstnat src-address=192.168.1.0/24 dst-port=80 protocol=tcp action=redirect to-ports=8080 comment="Redirect to Proxy" src-address-list=!noProxy dst-address-list=!toNotProxy

а по настройкам без консоли это получается следующее:

Winbox — IP&MAC — auth&pass — IP — Firewall — Add

вкладка General:

Chain: dstnat

Protocol: 6 (tcp)

Dst. Port: 80

Src. Address: 192.168.1.0/24

вкладка Advanced:

Src. Address List: !noProxy

Dst. Address List: !toNotProxy

вкладка Action:

Action: redirect

To Ports: 80

Теперь можно регулировать доступ к узлам интернета, например запретим доступ к сайту vk.com,odnoklassniki.ru:

Winbox — IP&MAC — auth&pass — IP — Web Proxy — Access — Add

Src. Address: 192.168.1.0/24

Dst. Host: vk.com

Action: deny

После нажимаю ApplyOk, а затем блокирующее правило нужно поставить первым, а все разрешающие после запрещающих.

Запрещающие правила в самом вверху

По такому же принципу создаются новые правила для любых других ресурсов, также можно использовать символ звездочки, как элемент регулярных выражений.

Но вот каждый раз вносить новые узлы для блокировки через GUI не удобно, можно все то же самое делать из через подключение к Mikrotik через ssh:

ekzorchik@navy:~$ ssh -l ekzorchik 192.168.1.9

Отобразить текущие правила:

[ekzorchik@ekzorchik] > ip proxy access print

Flags: X — disabled

# DST-PORT DST-HOST PATH METHOD ACTION HITS

0 vk.com deny 2

Добавляю новые правила блокировки хостов:

[ekzorchik@ekzorchik] > ip proxy access add src-address=192.168.1.0/24 dst-host=*.odnoklassniki.ru action=deny

[ekzorchik@ekzorchik] > ip proxy access add src-address=192.168.1.0/24 dst-host=*.ok.ru action=deny

Еще одним напоминание пользователям будет использование настройки Redirect To: на сайт в Вашей внутренней сети на котором будет доходчиво доведено почему данный ресурс не открывается т. к. он не относится к рабочим моментам, а носит развлекательный характер.

Вот только данная возможность, как использование прозрачного прокси сервера с целью регулирования доступа к нежелательным ресурсам не распространяется на URL адреса в которых стоит префикс https (соединение происходит через 443 порт), а только на префикс http (соединение происходит через 80 порт). Префикс 443 предполагает что данные между Вами и удаленным ресурсом зашифрованы, а вот расшифровать данный вид трафика Mikrotik не умеет. Ну и что, не умеет и ладно, ведь не весь интернет базируется на безопасном исполнении.

Когда пользователь подключенный к Wifi обратится к ресурсам настроенным в правилах блокировки он получит вот такую вот дефолтную отбивку если конечно же не настроен редирект на поясняющую страницу:

ERROR: Forbidden

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

While trying to retrieve the URL http://vk.com/:

•Access Denied

Your cache administrator is webmaster.

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

Generated Mon, 06 Jun 2016 12:43:17 GMT by 192.168.1.9 (Mikrotik HttpProxy)

При обращении к запрещенному ресурсу получаем окно уведомляющее, что ресурс заблокирован

Теперь я хоть и в минимальном исполнении смогу регулировать доступ в интернет. Когда перед Вами стоит задача ограничить его использование даже любое действии хоть на малую часть выполняющее поставленную задачу во много раз лучше чем нечего не делание. Вот я и сделал один шаг, в дальнейшем я буду показывать все что узнал сам Вам, обучая других сам узнаешь больше. На этом я прощаюсь и до новых встреч, с уважением автор блога — ekzorchik.