ProxyShardІнструкції з використанняMikroTik proxy

MikroTik proxy

Налаштування проксі на 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=username_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. Таким чином, весь трафік зазначених адрес/мереж буде проходити тільки через проксі.

Готово! Тепер можна використовувати проксі на роутері, гнучко керуючи трафіком пристроїв вашої мережі.

Оновлено

На цій сторінці