ProxyShardИнструкция по использованиюMikroTik прокси

MikroTik прокси

Настройка прокси на MikroTik

Системные требования

Для использования прокси на маршрутизаторах MikroTik следует учитывать следующие требования к оборудованию:

1) RouterOS как минимум 7 версии, так как потребуется поддержка контейнеризации

2) Модели роутеров имеющие свыше >128 MB ОЗУ

3) Роутер должен иметь архитектуру процессоров arm64, arm или x86, так как виртуализация поддерживается только на данных архитектурах. Подробнее об этом можно узнать по ссылке:

https://help.mikrotik.com/docs/spaces/ROS/pages/84901929/Container

Подойдут примерно такие роутеры, доступные сейчас на рынке - hAP ax2, hAP ax3, Chateau PRO ax, RB5009,L009UiGS

Предостережение:

Для включения поддержки контейнеров требуется физический доступ к устройству RouterOS - по умолчанию эта функция отключена.

  • После включения контейнеры можно добавлять/настраивать/запускать/останавливать/удалять удалённо!
  • Если ваше устройство RouterOS будет скомпрометировано, контейнеры могут быть использованы для лёгкой установки вредоносного ПО на устройство и в сеть.
  • Устройство RouterOS настолько безопасно, насколько безопасно то, что вы запускаете в контейнере.
  • Используя контейнеры, вы не получаете никаких гарантий безопасности.
  • Запуск стороннего образа контейнера на устройстве RouterOS может открыть брешь/вектор атаки/поверхность атаки.
  • Эксперт, знающий, как строить эксплойты, сможет выполнить джейлбрейк/повышение привилегий до root.

https://help.mikrotik.com/docs/spaces/ROS/pages/84901929/Container#Container-Disclaimer

Подготовка роутера

  1. Установка требуемого пакета

Откройте консоль и введите следующие команды для установки канала обновления

/system package update set channel=stable

Затем выгрузите список пакетов

/system package update check-for-updates

Включите пакет "container" и перезагрузите роутер

/system/package enable container


Или вручную установите пакет 'Container' через Winbox, предварительно загрузив "Extra packages" для вашей версии ROS и архитектуры с сайта MikroTik (https://mikrotik.com/download)

Откройте скаченный архив, скопируйте пакет в File List и перезагрузите устройство

После перезагрузки у вас должен появится пакет "Container"

  1. Включение поддержки контейнеризации

Для активации контейнеризации на маршрутизаторе, в терминале необходимо ввести команду:

/system/device-mode/update container=yes

Затем произведите перезагрузку роутера в течении 5 минут и после перезагрузки у вас станет доступно создание контейнеров

Также проверить можно через консоль:

/system/device-mode/print

"Сontainer" должен быть "yes"

Установка и настройка контейнера

Создание VETH интерфейса

Создайте виртуальный интерфейс для будущего контейнера:

/interface veth add address=10.0.201.2/24 dhcp=no gateway=10.0.201.1 gateway6="" mac-address=6D:F3:B2:85:44:45 name=veth1

Где:
address - адрес, который вы желаете присвоить контейнеру
gateway - адрес вашего бриджа (основного шлюза сети)

Просмотр адреса bridge

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

  1. Добавление интерфейса на действующий бридж

Добавьте созданный интерфейс в бридж

/interface bridge port add bridge=bridge1 interface=veth1
  1. Настройка виртуализации и добавления контейнера

В данном примере мы будем использовать докер образ от wiktorbgu основанный на hev-socks5-tunnel

Ссылка на Docker-образ

Создадим переменные для контейнера

Для контейнера требуется создать переменные, включающие параметры подключения к прокси. Для этого в консоли MikroTik добавьте следующие переменные:

/container envs 
add key=SOCKS5_ADDR list=proxy1 value=ip/domain_proxy 
add key=SOCKS5_INTERFACE list=proxy1 value=xray_eth 
add key=SOCKS5_PASSWORD list=proxy1 value=password_proxy 
add key=SOCKS5_PORT list=proxy1 value=port_proxy 
add key=SOCKS5_UDP_MODE list=proxy1 value=udp 
add key=SOCKS5_USERNAME list=proxy1 value=pasword_proxy

Данные поля требуется заполнить в зависимости от данных приобретенного заказа

С примером настройки прокси вы можете ознакомиться в разделе Инструкция по настройке

Обратите внимание, тестовое подключение производится через SOCKS5! Для того чтобы узнать порт подключения SOCKS, требуется нажать Show socks5 внутри заказа

Добавление контейнера

Добавьте registry-url и временную папку для загрузки образов

/container config
set registry-url=https://registry-1.docker.io tmpdir=/tmp

Затем создайте контейнер с указанием "work dir", "interface" и других параметров

/container
add check-certificate=no envlists=proxy1 interface=veth1 name=hev-socks5-tunnel-mikrotikS1 remote-image=wiktorbgu/hev-socks5-tunnel-mikrotik root-dir=hev-datas1 workdir=/ start-on-boot=yes

Запустите контейнер

/container/start hev-socks5-tunnel-mikrotikS1

На данном этапе стоит проверить еще связь с контейнером

ping 10.0.201.2

Настройка кастомной маршрутизации

  1. Добавление маршрутов

Для того, чтобы настроить точёную маршрутизацию отдельных устройств сети или трафика на определенные ресурсы, требуется создать отдельный FIB

/routing/table/add name=proxy_s1 fib

Добавить маршрут по умолчанию на контейнер, для будущих правил

/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.0.201.2 routing-table=
proxy_s1 suppress-hw-offload=yes
  1. Добавление правил для перенаправление трафика под определенные ресурсы

Для добавление перенаправления трафика на интересующий ресурс через прокси требуется создать статический список адресов в "ip/firewall/address list"

Допустим мы хоти открывать сайт example.com через прокси, создайте список с произвольным именем и укажите ip адрес ресурса или его домен

/ip firewall address-list
add address=example.com list=proxy

Далее создайте правило в Mangle помечающий весь трафик до указанного ресурса и в "Action" укажите новый путь маршрута, который ранее был создан в предыдущем этапе.

/ip firewall mangle
add action=mark-routing chain=prerouting dst-address-list=proxy new-routing-mark=proxy_s1 passthrough=no

По такой аналогии можно добавить другие ресурсы, например Youtube:

Стоит отметить, что не все ресурсы могут в полном количестве опросить все адреса через домен, как на примере с example.com, потому требуется указывать полный список статических IPv4 как на примере с Yotube. В противном случае часть трафика сайта/ресурса проходить через прокси не будут или могут работать некорректно, для других ресурсов список статических адресов вы можете поискать в интернете.

  1. Добавление правил для перенаправление всего трафика устройств или сети

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

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

/ip firewall mangle
add action=mark-routing chain=prerouting src-address=10.0.201.244 new-routing-mark=proxy_s1 passthrough=no

В качестве src-address можно указывать как всю подсеть так и отдельные хосты, например src-address=192.168.0.0/24. Таким образом весь трафик указанных адресов/сетей будет проходить только через прокси.

Готово! Теперь вы можете использовать прокси на роутере, гибко управляя трафиком устройств вашей сети.

Обновлено

На этой странице