Я прекрасно понимаю, что вас достали вездесущие микротики, но это действительно интересно. На самом деле статья написана с задержкой в 4 месяца (поддержка SOCKS5 появилась еще в январе 2020 года), но лучше поздно, чем никогда, тем более что информации об этом не так много и мало кто в курсе.
Итак, давайте начнем!
Предыстория
Микротик — очень мощный инструмент, который (IMHO) должен быть в хозяйстве любого сетевого инженера. Огромный функционал и набор инструментов, постоянно пополняющийся с каждым релизом. В Changelog к RouterOS 6.47 (beta) был замечена поддержка SOCKS5, которую лично я ждал несколько лет (и много кто еще, судя по многочисленным «Feature Request» на forum.mikrotik.com):
Судя по одной из веток вышеупомянутого форума, поддержка встроенного SOCKS5 сервера началась с версии 6.47beta19.
Настройка
Настройка, как всегда с MikroTik, довольно простая и укладывается в четыре строчки.
В качестве испытуемого выступил виртуальный сервер с CHR (Cloud Hosted Router), обновленный до 6.47beta53.
Префикс «beta» в версии RouterOS означает, что она предназначена исключительно для тестирования и отправки баг-репортов в support[at]mikrotik.com. Я настоятельно рекомендую не торопиться с апгрейдом железок под нагрузкой и дождаться Long-Term или хотя бы Stable релиза. Если же вы решили обновиться, то внимательно читайте Changelog, чтобы быть в курсе всех изменений и возможных проблем.
Настраиваем SOCKS5-сервер, выбираем авторизацию по паролю (есть возможность сделать открытым), в качестве порта указан 3327 (отличный от стандартного 1080), чтобы не попасть в скан-листы ботнетов:
ip socks set enabled=yes version=5 port=3327 auth-method=password
Далее добавляем пользователя:
ip socks users add name=test_socks5 password=Str0nGP@SSw0RD
Создаем правило-исключение в фаерволе:
ip firewall filter add chain=input protocol=tcp dst-port=3327 action=accept comment="SOCKS5 TCP"
И перемещаем наше правило перед правилом типа «drop»:
ip firewall filter move [/ip firewall filter find comment="SOCKS5 TCP"] 0
Готово! На нашем микротике поднят SOCKS5 прокси-сервер.
Проверка
Как и любой житель РФ, имея прокси-сервер в Европе, сразу же вспоминаю про телеграм, на нем и была проверена работоспособность свеженастроенного SOCKS5-сервера:
Звонки также прекрасно работают, несмотря на ограничение Free версии CHR в 1Mbps.
Далее стало интересно, как будет выглядеть POF (Passive OS Fingerprint), вносимый Микротиком (проверял на WhatLeaks):
С выключенным SOCKS5 | С включенным SOCKS5 |
---|---|
Видно, что система определяется как Linux, что логично (ибо именно его ядро лежит в основе ROS) и не может не радовать. Да, можно было подменить и user-agent, но у нас несколько другая задача.
При этом на самом микротике, как и положено настоящему серверу, выводится статистика по подключениям и трафику:
Заключение
На самом деле многого не хватает (например, поддержки аутентификации по RADIUS), но я искренне верю в то, что и данная опция будет доработана. Важно заметить, что это все таки роутер и основная его задача — форвардинг трафика, а остальные «фичи» это уже скорее просто приятно. В любом случае осознание того, что железка за 50$ столько всего умеет, будоражит воображение.
На этом все, спасибо за внимание :)
Автор: VLADIMIR