zaborona_help icon indicating copy to clipboard operation
zaborona_help copied to clipboard

RouterOS 7.1 wrong OVPN data

Open RomioDiver opened this issue 4 years ago • 35 comments

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

RomioDiver avatar Dec 03 '21 11:12 RomioDiver

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

toxi22 avatar Dec 03 '21 12:12 toxi22

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

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

RomioDiver avatar Dec 03 '21 12:12 RomioDiver

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

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

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

toxi22 avatar Dec 03 '21 12:12 toxi22

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

  • Dec/03/2021 14:55:12 ovpn,debug,packet sent P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 sid=40b3cf47b2481d6c pid=0 DATA len=0
  • Dec/03/2021 14:55:12 ovpn,debug,packet sent P_CONTROL kid=0 sid=40b3cf47b2481d6c pid=1 DATA len=132
  • Dec/03/2021 14:55:12 ovpn,debug,packet rcvd P_CONTROL_HARD_RESET_SERVER_V2 kid=0 sid=3454846863c2df4 [0 sid=40b3cf47b2481d6c] pid=0 DATA len=0
  • Dec/03/2021 14:55:12 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [0 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:12 ovpn,debug,packet rcvd P_ACK kid=0 sid=3454846863c2df4 [1 sid=40b3cf47b2481d6c] DATA len=0
  • Dec/03/2021 14:55:12 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 pid=1 DATA len=1170
  • Dec/03/2021 14:55:12 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [1 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:12 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 pid=2 DATA len=1030
  • Dec/03/2021 14:55:12 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [2 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_CONTROL kid=0 sid=40b3cf47b2481d6c pid=2 DATA len=1273
  • Dec/03/2021 14:55:13 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 [2 sid=40b3cf47b2481d6c] pid=3 DATA len=51
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [3 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_CONTROL kid=0 sid=40b3cf47b2481d6c pid=3 DATA len=289
  • Dec/03/2021 14:55:13 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 [3 sid=40b3cf47b2481d6c] pid=4 DATA len=233
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [4 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_CONTROL kid=0 sid=40b3cf47b2481d6c pid=4 DATA len=42
  • Dec/03/2021 14:55:13 ovpn,debug,packet rcvd P_ACK kid=0 sid=3454846863c2df4 [4 sid=40b3cf47b2481d6c] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 pid=5 DATA len=1170
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [5 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=3454846863c2df4 pid=6 DATA len=1170
  • Dec/03/2021 14:55:13 ovpn,debug,packet sent P_ACK kid=0 sid=40b3cf47b2481d6c [6 sid=3454846863c2df4] DATA len=0
  • Dec/03/2021 14:55:13 ovpn,debug zaborona: disconnected <wrong OVPN data>

RomioDiver avatar Dec 03 '21 12:12 RomioDiver

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

v0rest avatar Dec 05 '21 07:12 v0rest

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

daywalkerbc avatar Dec 12 '21 18:12 daywalkerbc

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

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

toxi22 avatar Dec 12 '21 22:12 toxi22

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

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

Lucky-spirit avatar Dec 13 '21 20:12 Lucky-spirit

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

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

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

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

toxi22 avatar Dec 13 '21 21:12 toxi22

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

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

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

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

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

RomioDiver avatar Dec 13 '21 21:12 RomioDiver

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

RomioDiver avatar Dec 13 '21 21:12 RomioDiver

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

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

toxi22 avatar Dec 13 '21 22:12 toxi22

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

toxi22 avatar Dec 13 '21 22:12 toxi22

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

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

RomioDiver avatar Dec 13 '21 22:12 RomioDiver

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

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

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

toxi22 avatar Dec 13 '21 22:12 toxi22

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

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

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

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

RomioDiver avatar Dec 13 '21 22:12 RomioDiver

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

RomioDiver avatar Dec 13 '21 22:12 RomioDiver

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

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

toxi22 avatar Dec 13 '21 22:12 toxi22

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 к каждой подсети из списка забороны.

RomioDiver avatar Dec 13 '21 23:12 RomioDiver

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

iG8R avatar Dec 14 '21 23:12 iG8R

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

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

toxi22 avatar Dec 14 '21 23:12 toxi22

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

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

toxi22 avatar Dec 14 '21 23:12 toxi22

@toxi22 Спасибо

iG8R avatar Dec 15 '21 00:12 iG8R

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

image

plastilincheg avatar Dec 15 '21 18:12 plastilincheg

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

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

Click to expand!

Mikrotik-Interface-zaborona-2021-12-15_205946

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

iG8R avatar Dec 15 '21 19:12 iG8R

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

apollo2k4 avatar Feb 17 '22 05:02 apollo2k4

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

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

neoskynet89 avatar Feb 21 '22 17:02 neoskynet89

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

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

apollo2k4 avatar Feb 21 '22 17:02 apollo2k4

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

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

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

neoskynet89 avatar Feb 21 '22 17:02 neoskynet89

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

sanyafifa avatar Mar 08 '22 12:03 sanyafifa