Панель управления сервером free-turn-proxy и WireGuard на Mikrotik
486
Поддерживается только на Mikrotik RouterOS >= 7.21 Архитектура только ARM64
Краткое описание: web-панель управления сервером free-turn-proxy (в составе контейнера), клиентами, встроенным Mikrotik WireGuard (интерфейс и пиры). Генерация URI-ссылок и QR-кодов для клиентов "FreeTurn".
Поддерживается только связка: сервер в режиме "mode udp" + встроенный Mikrotik WireGuard. Режим "mode tcp" НЕ поддерживается!
Перед установкой — бэкап настроек роутера (Files → Backup). Смените путь /usb1 на актуальный!!! Например: /disk1, /usb1-part1 и т.п. В "/container .... key=PORT value=8080": 8080 - порт, на котором будет работать web-панель. Измените, если хотите использовать другой.
# Создаем бридж для контейнеров. Если уже существует - получите соответствующее сообщение
/interface/bridge add name=Bridge-Docker port-cost-mode=short
/ip/address add address=192.168.254.1/24 interface=Bridge-Docker
# Создаем интерфейс для контейнера
/interface/veth add address=192.168.254.15/24 gateway=192.168.254.1 name=free-turn-veth
/interface/bridge/port add bridge=Bridge-Docker interface=free-turn-veth
# Создаем mount и env для контейнера, настраиваем ссылку для образов на hub.docker.com
/container mounts add dst=/config list=free-turn-admin src=/usb1/docker_configs/free-turn-admin
/container envs add list=free-turn-admin key=PORT value=8080
/container/config set registry-url=https://registry-1.docker.io
# Устанавливаем и запускаем контейнер
/container/add remote-image=reyterak/free-turn-admin-mikrotik:latest interface=free-turn-veth name=free-turn-admin root-dir=/usb1/docker/free-turn-admin start-on-boot=yes logging=yes mountlists=free-turn-admin envlists=free-turn-admin dns=1.1.1.1,8.8.8.8
/container/start free-turn-admin
После запуска контейнера проверьте его статус в WinBOX - должен измениться на "H" (healthy).
Замените "PassW0rd" на пароль пользователя:
/user group add name=api-group-ro policy=read,api,rest-api
/user group add name=api-group-rw policy=read,write,api,rest-api
/user add name=free-turn-admin-ro group=api-group-ro password="PassW0rd"
/user add name=free-turn-admin-rw group=api-group-rw password="PassW0rd"
# Ограничиваем вход API-пользователей адресом контейнера (192.168.254.15) — см. раздел «Важно!!! Безопасность доступа к API RouterOS»
/user set free-turn-admin-ro address=192.168.254.15/32
/user set free-turn-admin-rw address=192.168.254.15/32
Пользователь free-turn-admin-ro — права только на чтение; Пользователь free-turn-admin-rw — полный доступ (рекомендуется).
Пользователь API RouterOS даёт панели возможность управлять роутером через REST:
/container/update).Чем это опасно:
/container/update) требует пользователя с правами write: read-only пользователь получит ошибку «not enough permissions». Для обновления панели временно включите free-turn-admin-rw или выполните команду в Terminal WinBox.Меры предосторожности:
/user set free-turn-admin-ro address=192.168.254.15/32
/user set free-turn-admin-rw address=192.168.254.15/32
Тогда даже при утечке пароля зайти в API можно будет только с адреса контейнера (эти команды уже включены в блок создания пользователей в Terminal WinBox). Если панель используется ещё и с других хостов (например, с рабочей машины администратора) — добавьте их адреса через запятую: address=192.168.254.15/32,<ваш-IP>/32. При изменении IP контейнера не забудьте обновить список.
Открыть панель: http://<IP-контейнера>:8080 (порт — переменная PORT, по умолчанию 8080), например: http://192.168.254.15:8080/. Первый вход — создать учётную запись администратора.
Вкладки WireGuard и Диагностика недоступны (кроме «Сохранить подключение» Пользователя API). Настройки роутера для контейнера (проброс порта, маскарадинг и т.п.), WireGuard-интерфейсы, пиры и wg.config — управляются вручную.
client -флаги по параметрам URI, поле «Ссылки VK Calls»).На вкладке WireGuard:
Важная рекомендация по безопасности: сразу создайте столько пиров WireGuard, сколько вам гарантированно хватит на какое-то время. Затем в «Пользователь API RouterOS» смените пользователя на free-turn-admin-ro (обязательно введите его пароль) и сохраните подключение — проверьте, что вкладки WireGuard и Диагностика показывают данные. После этого отключите пользователя free-turn-admin-rw:
/user disable free-turn-admin-rw
Вы сможете полноценно работать: привязывать новых клиентов к пирам во вкладке Клиенты, отслеживать статус во вкладке WireGuard. Для операций управления (создание/удаление интерфейсов и пиров, ротация ключей, обновление панели) временно включите free-turn-admin-rw:
/user enable free-turn-admin-rw
После завершения работ снова отключите его.
Если установка происходила строго по инструкции, а при создании WireGuard-интерфейса и правил Firewall использовались предлагаемые панелью "FreeTurn Admin" имена и комментарии, то просто выполните в Terminal WinBox следующие команды (не забудьте про бэкап настроек роутера — Files → Backup !):
# Останавливаем и удаляем контейнер
/container stop free-turn-admin
/container remove free-turn-admin
# Удаляем mount и env
/container mounts remove [find where list="free-turn-admin"]
/container envs remove [find where list="free-turn-admin"]
# Удаляем порт в мосту Bridge-Docker и veth-интерфейс
/interface bridge port remove [find where interface="free-turn-veth"]
/interface veth remove [find where name="free-turn-veth"]
# Удаляем каталог mount контейнера на диске. Команда может выдать «no such item» — это нормально
/file remove [find where name~"docker_configs/free-turn-admin"]
# Удаляем WG-интерфейс, пиры и адреса
/interface wireguard peers remove [find where interface="free-turn-wireguard"]
/ip address remove [find where interface="free-turn-wireguard"]
/interface wireguard remove [find where name="free-turn-wireguard"]
# Удаляем правила Firewall
/ip firewall filter remove [find where comment~"free-turn-"]
/ip firewall nat remove [find where comment~"free-turn-"]
# Удаляем пользователей API и группы доступа
/user remove [find where name="free-turn-admin-ro"]
/user remove [find where name="free-turn-admin-rw"]
/user group remove [find where name="api-group-ro"]
/user group remove [find where name="api-group-rw"]
Мост Bridge-Docker и его адрес удаляйте, только если он больше ничем не используется!
1.2.3
/config переживает обновление образа. Теперь неудачные проверки не сохраняются и не показываются — достаточно обычного обновления страницы.1.2.2
v4.0.1-mirror, из-за чего панель могла постоянно предлагать обновление уже установленной версии. Суффикс -mirror теперь отбрасывается при сравнении версий.1.2.1
1.2.0
.log.1 по размеру без перезапуска контейнера;freeturn:// теперь включает ссылку на VK Calls (vk) — индивидуальна для каждого клиента, задаётся при экспорте; и пейсинг обфускации (timing, ms) из -obf-timing. Проверена совместимость: старые клиенты игнорируют неизвестные поля;/api/login: 5 неудачных попыток за 5 минут с одного IP;1.1.4
/container/update без write → «not enough permissions»). При правах только на чтение панель предлагает команду обновления для Terminal WinBox.1.1.3
client -флаги) по параметрам URI; поле «Ссылки VK Calls» (опционально);1.1.2
1.1.1
1.1.0
in-interface-list=WAN, проверка затенения правил и конфликтов с портами служб;1.0.0
Проект создается вайбкодингом: ChatGPT + DeepSeek. Код и сценарии проверяются на реальном роутере Mikrotik RB5009UG+S+, однако используйте на свой страх и риск — перед любыми изменениями делайте бэкап!
Исходный код панели, список изменений и сообщения об ошибках: https://github.com/ReyterAK/free-turn-admin
Благодарности: оригинальные проекты free-turn-proxy и FreeTurn (Android) больше не доступны на GitHub; панель работает с зеркалами, поддерживаемыми сообществом (hackdiaz-dev).
Content type
Image
Digest
sha256:dde6bbbce…
Size
9.9 MB
Last updated
14 days ago
docker pull reyterak/free-turn-admin-mikrotik