zhovner / zaborona_help

Бесплатный сервис для обхода блокировок сайтов в Украине — https://zaborona.help
296 stars 97 forks source link

RouterOS 7.1 wrong OVPN data #205

Open RomioDiver opened 2 years ago

RomioDiver commented 2 years ago

zaborona: initializing... zaborona: connecting... zaborona: using encoding - AES-128-CBC/SHA1 zaborona: terminating... - wrong OVPN data zaborona: disconnected После обновления до тестовой сборки ROS7.1 перестало работать. Возможно просто потому что тестовая версия, а возможно в самом OVPN клиенте что то кардинально изменилось. Там вроде поддержку UDP добавили.... С етим можно что то сделать?

toxi22 commented 2 years ago

Добрый день. Попробуйте без шифрования использовать либо попробуйте изменить шифрование на AES-256-CBC

RomioDiver commented 2 years ago

Добрый день. Попробуйте без шифрования использовать либо попробуйте изменить шифрование на AES-256-CBC

Все возможные варианты я уже перепробовал. Ошибка остается, либо меняется на "zaborona: terminating... - unsupported cipher"

toxi22 commented 2 years ago

Добрый день. Попробуйте без шифрования использовать либо попробуйте изменить шифрование на AES-256-CBC

Все возможные варианты я уже перепробовал. Ошибка остается, либо меняется на "zaborona: terminating... - unsupported cipher"

Проверим, что можно будет сделать с нашей стороны. Но это похоже на баг ROS.

RomioDiver commented 2 years ago

На всякий случай вот лог со включенным дебагом:

v0rest commented 2 years ago

это не баг ROS, с 7-ой версии пушать роуты будет не просто...

daywalkerbc commented 2 years ago

нет решения проблемы?

toxi22 commented 2 years ago

нет решения проблемы?

На данный момент, решения нет

Lucky-spirit commented 2 years ago

На данный момент, решения нет

А можете подсказать, в чём именно проблема с этими роутами? Спрошу у знакомого специалиста по Микротикам. Может он подскажет.🤷‍♂️

toxi22 commented 2 years ago

А можете подсказать, в чём именно проблема с этими роутами? Спрошу у знакомого специалиста по Микротикам. Может он подскажет.

Честно, я пока сам до конца не знаю, с чем может быть связано. Но судя по логу:

zaborona: initializing...
zaborona: connecting...
zaborona: using encoding - AES-128-CBC/SHA1
zaborona: terminating... - wrong OVPN data
zaborona: disconnected

Ошибка связана с получением данных от сервера (скорее всего, маршрутов) и на этом моменте происходит затык. Шифрование меняли - ситуация не изменилась. Заработало только если выставить пункт chiper = none и выбрать протокол UDP (судя по отзывам), но и в таком режиме маршруты не всегда загружаются с сервера.

RomioDiver commented 2 years ago

А можете подсказать, в чём именно проблема с этими роутами? Спрошу у знакомого специалиста по Микротикам. Может он подскажет.

Честно, я пока сам до конца не знаю, с чем может быть связано. Но судя по логу:

zaborona: initializing...
zaborona: connecting...
zaborona: using encoding - AES-128-CBC/SHA1
zaborona: terminating... - wrong OVPN data
zaborona: disconnected

Ошибка связана с получением данных от сервера (скорее всего, маршрутов) и на этом моменте происходит затык. Шифрование меняли - ситуация не изменилась. Заработало только если выставить пункт chiper = none и выбрать протокол UDP (судя по отзывам), но и в таком режиме маршруты не всегда загружаются с сервера.

Самый простой вариант наверно будет не пушить маршруты. А просто сделать список подсетей и каждый сам себе на микротике их добавит. А на сервере разрешить форвардинг только к адресам из етого списка, ко всем остальным адресам дропать.

RomioDiver commented 2 years ago

Либо добавлять маршруты не через OVPN а через scheduler скриптом, на пример отсюда

toxi22 commented 2 years ago

Самый простой вариант наверно будет не пушить маршруты. А просто сделать список подсетей и каждый сам себе на микротике их добавит. А на сервере разрешить форвардинг только к адресам из етого списка, ко всем остальным адресам дропать.

Тоже думал про такой вариант. Но хотелось бы выяснить причину :) Отключить пуш маршрутов - самое простое, но не всем оно может подойти. По поводу скрипта - что-то похожее планируется, но как скоро это будет, сказать не могу

toxi22 commented 2 years ago

Пуш маршрутов отключил на тестовом сервере только для TCP: Сервер: srv8.vpn.zaborona.help Порт: 1198 Протокол: tcp Шифрование: cipher AES-256-CBC Проверьте, будет ли ошибка "terminating... - wrong OVPN data" при подключении без пуша маршрутов

RomioDiver commented 2 years ago

Пуш маршрутов отключил на тестовом сервере только для TCP: Сервер: srv8.vpn.zaborona.help Порт: 1198 Протокол: tcp Шифрование: cipher AES-256-CBC Проверьте, будет ли ошибка "terminating... - wrong OVPN data" при подключении без пуша маршрутов

Ошибок нет. Подключилось сразу. PS. Шлюз пингуется

toxi22 commented 2 years ago

Пуш маршрутов отключил на тестовом сервере только для TCP: Сервер: srv8.vpn.zaborona.help Порт: 1198 Протокол: tcp Шифрование: cipher AES-256-CBC Проверьте, будет ли ошибка "terminating... - wrong OVPN data" при подключении без пуша маршрутов

Ошибок нет. Подключилось сразу. PS. Шлюз пингуется

Значит останется сделать скрипт, который подгрузит необходимые маршруты :)

RomioDiver commented 2 years ago

Пуш маршрутов отключил на тестовом сервере только для TCP: Сервер: srv8.vpn.zaborona.help Порт: 1198 Протокол: tcp Шифрование: cipher AES-256-CBC Проверьте, будет ли ошибка "terminating... - wrong OVPN data" при подключении без пуша маршрутов

Ошибок нет. Подключилось сразу. PS. Шлюз пингуется

Значит останется сделать скрипт, который подгрузит необходимые маршруты :)

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

RomioDiver commented 2 years ago

Все подсети добавлять для теста долго. Добавил маршрут через zaborona для mail.ru и yandex.ru, доступ появился. Так что работать будет. Осталось приделать скрипт для маршрутов )

toxi22 commented 2 years ago

Все подсети добавлять для теста долго. Добавил маршрут через zaborona для mail.ru и yandex.ru, доступ появился. Так что работать будет. Осталось приделать скрипт для маршрутов )

Попробуйте запустить скрипт, который Вы предлагали: https://gist.github.com/uablacklist/b0e73deb75f2a1c43f035c59e5401e8c По идее, должна половина сайтов открыться (если хватит оперативки для загрузки всех маршрутов)

RomioDiver commented 2 years ago

srv8.vpn.zaborona.help

Оперативки он почти не занимает. Так и сделал. Скрипт создал список подсетей. Потом уже сам добавил правило маркировки трафика который идет к подсетям из етого списка, а затем в маршрутах весь маркированый трафик направил в тунель все заработало. Ну VK OK Yandex mail.ru так точно )))) Спасибо. Может кому пригодится: Создаем шедулер для обновления маршрутов раз в 3 дня.


/system scheduler
add interval=3d name=sync_uablacklist on-event="/system/script/run sync_uablacklist" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=dec/06/2021 start-time=05:00:00

Создем таблицу маршрутизации

/routing table
add fib name=zaborona

Правило маркировки трафика к IP адресам из списка.

/ip firewall mangle
add action=mark-routing chain=prerouting comment="Mark to zaborona" dst-address-list=uablacklist new-routing-mark=zaborona passthrough=yes

Маршрут маркированного трафика в интерфейс забороны.

/ip route
add comment="Route to zaborona" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=zaborona pref-src="" routing-table=zaborona scope=30 suppress-hw-offload=yes target-scope=10

Ну и сам скрипт добавляем и сразу запускаем.

/system script
add dont-require-permissions=no name=sync_uablacklist owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local apiPrefix \"https://uablacklist.\
    net/subnets_mikrotik_\"\r\
    \n:local tempFile \"uablacklist.txt\"\r\
    \n:local listName \"uablacklist\"\r\
    \n\r\
    \n/log info \"removing existing '\$listName'...\"\r\
    \n:put \"removing existing '\$listName'...\"\r\
    \n/ip firewall address-list remove [/ip firewall address-list find list=\$listName]\r\
    \n\r\
    \n:local i 0\r\
    \n:local isEnd false\r\
    \n:do {\r\
    \n    :local apiPath \"\$apiPrefix\$i.txt\"\r\
    \n    /log info \"fetching UA blacklist registry piece (\$apiPath)...\"\r\
    \n    :put \"fetching UA blacklist registry piece (\$apiPath)...\"\r\
    \n    :local contentLen 0\r\
    \n    :local content \"\"\r\
    \n    :do {\r\
    \n        /tool fetch url=\$apiPath dst-path=\$tempFile\r\
    \n        :set content [/file get [/file find name=\$tempFile] contents]\r\
    \n        :set contentLen [:len \$content]\r\
    \n    } on-error={\r\
    \n        /log info \"no more pieces\"; \r\
    \n        :put \"no more pieces\"\r\
    \n        :set isEnd true\r\
    \n    }\r\
    \n    :local lineEnd 0\r\
    \n    :local line \"\"\r\
    \n    :local lastEnd 0\r\
    \n    :local company \"\"\r\
    \n    :while (\$lastEnd < \$contentLen) do {\r\
    \n        :set lineEnd [:find \$content \"\\n\" \$lastEnd ]\r\
    \n        :set line [:pick \$content \$lastEnd \$lineEnd]\r\
    \n        :set lastEnd (\$lineEnd+1)\r\
    \n        :local entry [:pick \$line 0 (\$lineEnd-1)]\r\
    \n        :if ([:pick \$line 0 1] != \"#\") do={\r\
    \n            :if ([:len \$entry ] > 0) do={\r\
    \n                /log info \"add '\$entry' subnet of '\$company' to list '\$listName'...\";\r\
    \n                :put \"add '\$entry' subnet of '\$company' to list '\$listName'...\";\r\
    \n                :do {\r\
    \n                    /ip firewall address-list add list=\$listName address=\$entry comment=\$company\r\
    \n                } on-error={\r\
    \n                    /log info \"failed to add '\$entry' subnet of '\$company' to list '\$listName', probably, it's duplication error.\"; \r\
    \n                    :put \"failed to add '\$entry' subnet of '\$company' to list '\$listName', probably, it's duplication error.\"\r\
    \n                }\r\
    \n            }\r\
    \n        } else={\r\
    \n            :set company [:pick \$line 2 (\$lineEnd) ]\r\
    \n        }\r\
    \n    }\r\
    \n    :set i (i+1)\r\
    \n} while (!\$isEnd)"

/system/script/run sync_uablacklist

P.S. Совсем забыл. У кого в фаерволе есть правило "fasttrac connection" его придется отключить, чтоб ето нормально работало. Так как fasttrac konnection позволяет трафику миновать большую часть фаервола, то маркировка трафика будет работать не корректно, заблокированные сайты будут открываться, но медленнее. Если же "fasttrac connection" все же нужен, тогда выход пока один, прописывать маршруты прямо в /ip routes к каждой подсети из списка забороны.

iG8R commented 2 years ago

Всем привет. В Wiki написано, что можно использовать сервер: vpn.zaborona.help, но по факту подключается только с srv8.vpn.zaborona.help

toxi22 commented 2 years ago

Всем привет. В Wiki написано, что можно использовать сервер: vpn.zaborona.help, но по факту подключается только с srv8.vpn.zaborona.help

Проверим, почему подключается только с 8 сервера. Спасибо за информацию

toxi22 commented 2 years ago

Всем привет. В Wiki написано, что можно использовать сервер: vpn.zaborona.help, но по факту подключается только с srv8.vpn.zaborona.help

Проблема исправлена

iG8R commented 2 years ago

@toxi22 Спасибо

plastilincheg commented 2 years ago

Всем привет. После обновления до 7.1 Получаю: zaborona: terminating... - TLS failed Как то решается?

image

iG8R commented 2 years ago

Всем привет. После обновления до 7.1 Получаю: zaborona: terminating... - TLS failed Как то решается?

Настройки такие же, соединение с сервером устанавливается без проблем.

Click to expand! ![Mikrotik-Interface-zaborona-2021-12-15_205946](https://user-images.githubusercontent.com/11407417/146249140-9513ec52-9d29-43f7-88ca-6510ab2d2da8.jpg)

Настраивалось всё по стандартному гайду из закладки Wiki для MikroTik.

apollo2k4 commented 2 years ago

После обновления на 7.2rc3 проблема не проявлятись. (RB951)

neoskynet89 commented 2 years ago

После обновления на 7.2rc3 проблема не проявлятись. (RB951)

tcp или udp подключение? маршруты получил автоматически?

apollo2k4 commented 2 years ago

tcp или udp подключение? маршруты получил автоматически?

tcp. После обновления и подключения маршруты были получены. И в списке они числяться как Dynamic

neoskynet89 commented 2 years ago

tcp или udp подключение? маршруты получил автоматически?

tcp. После обновления и подключения маршруты были получены. И в списке они числяться как Dynamic

Спасибо большое за информацию! А по udp не пробовали?

sanyafifa commented 2 years ago

Версия ROS 7.1.3 Проблема актуальна ovpn-zaborona: terminating... - wrong OVPN data image

neoskynet89 commented 2 years ago

Версия ROS 7.1.3 Проблема актуальна ovpn-zaborona: terminating... - wrong OVPN data image

Такая же проблема! ROS 7.1.3 ... как я понял 128 шифрование не поддерживает ros7 , 256 конектится к сервакам норм

sanyafifa commented 2 years ago

256 конектится к сервакам норм

такую ошибку выдает ovpn-zaborona: terminating... - unsupported cipher

neoskynet89 commented 2 years ago

Что случилоась с uablacklist.net не работает сайт, соответственно и скрипт...

toxi22 commented 2 years ago

Что случилоась с uablacklist.net не работает сайт, соответственно и скрипт...

На данный момент сайт работает. Возможно был временный сбой и сайт не работал. Проверьте, пожалуйста, еще раз доступность сайта