[Решено] Linux проблема с заходом в игру, прошу закрепить

Техническая поддержка
После долгих проб, всё же стало ясно что проблема в том что Близы отключили на серверах протокол SSLv3.

Вкратце проблема
Wine по умолчанию опирается на библиотеку GNUTLS и при первом рукопожатии начинает знакомство с SSLv3 протокола http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/secur32/schannel_gnutls.c#l279
Методом исключения установлено что старые версии библиотек GNUTLS =<3.3.15 ещё предлагают к использованию SSLv3, а начиная с версии как минимум 3.3.15 он отключен.

Решение для пользователей Linux (Debian-based, Ubuntu, Mint)
Для начала необходимо проверить какой по умолчанию протокол использует ваша система:

Необходимо открыть окно терминала и выполнить следующую комманду
nc -l -p 1119 | xxd
Открыть ещё терминал и выполнить следующую команду
gnutls-cli -V -d 9999 -p 1119 --priority 'NORMAL:-VERS-SSL3.0:-VERS-SSL3.0:-VERS-SSL3.0' localhost
В первом терминале вы получите ответ, наподобии такого
0000000: 1603 0101 0b01 0001 0703 0356 f466 4f98 ...........V.fO.
0000010: 5afc aa7c cbd9 603c 21e2 fdc2 e947 45e3 Z..|..`<!....GE.
0000020: c2e5 4f2c 0c3a 07cb efcd 5000 0084 c02b ..O,.:....P....+
0000030: c02c c086 c087 c009 c023 c00a c024 c072 .,.......#...$.r
0000040: c073 c008 c007 c02f c030 c08a c08b c013 .s...../.0......
0000050: c027 c014 c028 c076 c077 c012 c011 009c .'...(.v.w......
0000060: 009d c07a c07b 002f 003c 0035 003d 0041 ...z.{./.<.5.=.A
0000070: 00ba 0084 00c0 000a 0005 0004 009e 009f ................
0000080: c07c c07d 0033 0067 0039 006b 0045 00be .|.}.3.g.9.k.E..
0000090: 0088 00c4 0016 00a2 00a3 c080 c081 0032 ...............2
00000a0: 0040 0038 006a 0044 00bd 0087 00c3 0013 .@.8.j.D........
00000b0: 0066 0100 005a 0005 0005 0100 0000 0000 .f...Z..........
00000c0: 0000 0e00 0c00 0009 6c6f 6361 6c68 6f73 ........localhos
00000d0: 74ff 0100 0100 0023 0000 000a 000c 000a t......#........
00000e0: 0017 0018 0019 0015 0013 000b 0002 0100 ................
00000f0: 000d 001c 001a 0401 0402 0403 0501 0503 ................
0000100: 0601 0603 0301 0302 0303 0201 0202 0203 ................
0000110: 1503 0300 0202 50 ......P

По первым трём байтам можно судить какой протокол используется вашей системой по умолчанию
160300 - SSLv3 вы не зайдёте в игру
160301 - TLS 1.0 вы счастливчик
160302 - TLS 1.1 вам опять повезло
160303 - TLS 1.2 да вы просто везунчик
Спасибо за подсказку американским невезунчикам http://us.battle.net/wow/en/forum/topic/20742995286?page=10#181

Для тех кому не повезло, как и мне есть два пути установить дистрибутив со свежей библиотекой GNUTLS или на свой страх и риск скомпилировать библиотеку из исходников и поменять символьные ссылки на новые

Идём более сложным путём:
Для этого воспользуемся слудующей инструкцией http://www.bauer-power.net/2014/06/how-to-install-gnutls-3123-from-source.html#.VvRsliazhz0

А именно для начала скачаем исходники GNUTLS, выбор пал на версию 3.3.15 т.к. она используется в Ubuntu 15.10 на котором люди не испытывали проблем с входом
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.15.tar.xz

Установим необходимое окружение для компиляции
sudo apt-get install build-essential nettle-dev libgmp-dev

Распакуем исходники
unxz gnutls-3.3.15.tar.xz && tar -xvf gnutls-3.3.15.tar

Перейдём в директорию с распакованными исходниками
cd gnutls-3.3.15

Произведём компиляцию
./configure && make

А затем собём пакет, чтобы проще потом удалять из системы
sudo checkinstall

После сборки пакет установиться и нам останется только поменять симлинки
sudo unlink /usr/lib/x86_64-linux-gnu/libgnutls.so.26
sudo ln -s /usr/local/lib/libgnutls.so.28 /usr/lib/x86_64-linux-gnu/libgnutls.so.26


sudo unlink /usr/lib/x86_64-linux-gnu/libgnutls.so.28
sudo ln -s /usr/local/lib/libgnutls.so.28 /usr/lib/x86_64-linux-gnu/libgnutls.so.28


sudo unlink /usr/lib/i386-linux-gnu/libgnutls.so.26
sudo ln -s /usr/local/lib/libgnutls.so.28 /usr/lib/i386-linux-gnu/libgnutls.so.26


Теперь можно запускать клиент WoW.

Всем удачи
Молодец, все заработало.
Xubuntu 14.04 + wine 1.9.6.
я сделал проще. взял libgnutls.so.30 libnettle.so.6 libhogweed.so.4 из пакетов убунты 16.04 и запихнул в LD_PRELOAD при запуске вова. самый простой вариант и не нужно ничего компилять и системные либы трогать.
Где 16.04 взять? Вроде бы в следующем месяце выходит?
Если нет желания вмешиваться в системные библиотеки, то есть еще вариант собрать wine с патчем не использующим SSLv3

http://us.battle.net/wow/en/forum/topic/20742995286?page=11#217

Вариант Товера тоже очень элегантный.
25/03/2016 05:08Размещено Товера
я сделал проще. взял libgnutls.so.30 libnettle.so.6 libhogweed.so.4 из пакетов убунты 16.04 и запихнул в LD_PRELOAD при запуске вова. самый простой вариант и не нужно ничего компилять и системные либы трогать.

Благодарю, отличное решение. Пожалуй, стоит вынести его в шапку, как лучшее.
25/03/2016 12:47Размещено Валлерии
Где 16.04 взять? Вроде бы в следующем месяце выходит?

http://packages.ubuntu.com/xenial/libgnutls30
http://packages.ubuntu.com/xenial/libnettle6
http://packages.ubuntu.com/xenial/libhogweed4
Выбрал вариан решения от Товера но столкнулся с проблемой

wrong ELF class: ELFCLASS32 или wrong ELF class: ELFCLASS64 в зависимости от биности скаченных пакетов, можно поподробнее?
25/03/2016 16:15Размещено Жизнобуд
Выбрал вариан решения от Товера но столкнулся с проблемой

wrong ELF class: ELFCLASS32 или wrong ELF class: ELFCLASS64 в зависимости от биности скаченных пакетов, можно поподробнее?

запускай через wine64
25/03/2016 16:31Размещено Товера
запускай через wine64


таже самая ошибка

запускаю так LD_PRELOAD="/home/user/libgnutls.so.30.6.2 /home/user/libnettle.so.6.2 /home/user/libhogweed.so.4.2" wine64 /home/user/.wine/drive_c/Program\ Files\ \(x86\)/World\ of\ Warcraft/Wow.exe
25/03/2016 16:45Размещено Жизнобуд
25/03/2016 16:31Размещено Товера
запускай через wine64


таже самая ошибка

запускаю так LD_PRELOAD="/home/user/libgnutls.so.30.6.2 /home/user/libnettle.so.6.2 /home/user/libhogweed.so.4.2" wine64 /home/user/.wine/drive_c/Program\ Files\ \(x86\)/World\ of\ Warcraft/Wow.exe

но вов должен запуститься и работать. ты проверял?
25/03/2016 16:54Размещено Товера
но вов должен запуститься и работать. ты проверял?


Так точно!

Но не логинится, т.к. либы динамически не залинкованы а с ошибкой валятся

ERROR: ld.so: object '/home/user/libgnutls.so.30.6.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/libnettle.so.6.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/libhogweed.so.4.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
25/03/2016 17:09Размещено Жизнобуд
25/03/2016 16:54Размещено Товера
но вов должен запуститься и работать. ты проверял?


Так точно!

Но не логинится, т.к. либы динамически не залинкованы а с ошибкой валятся

ERROR: ld.so: object '/home/user/libgnutls.so.30.6.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/libnettle.so.6.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/libhogweed.so.4.2' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

может у тебя Wow.exe почему-то не запускает Wow-64.exe? попробуй пускать сразу Wow-64.exe.
и глянь file Wow-64.exe, чтобы убедиться, что он 64 битный
25/03/2016 17:17Размещено Товера
может у тебя Wow.exe почему-то не запускает Wow-64.exe? попробуй пускать сразу Wow-64.exe.
и глянь file Wow-64.exe, чтобы убедиться, что он 64 битный


Да с Wow-64.exe ошибки не валятся, но при вводе логина и пароля висит как раньше на соединении...

Ладно попробую вариант топик стартера
Да норм, внесу свою лепту, достаточно только поменять симлинк на

sudo unlink /usr/lib/x86_64-linux-gnu/libgnutls.so.26
sudo ln -s /usr/local/lib/libgnutls.so.28 /usr/lib/x86_64-linux-gnu/libgnutls.so.26


Остальные не обязатально

Всё работает всё норм всем спасибо
Еще одно решение с американского форума:

Скачиваем патченый файл с линков ниже и меняем в соответствующей директории:

32bit version:
https://www.dropbox.com/s/yogsfr775ecl9rf/secur32.dll.so.32?dl=0

Replaces:
/opt/wine-devel/lib/wine/secur32.dll.so
=====
64bit version:
https://www.dropbox.com/s/6jzyfcz8ng4qvw4/secur32.dll.so.64?dl=0

Replaces:
/opt/wine-devel/lib64/wine/secur32.dll.so

оригинал и благодарности - http://us.battle.net/wow/en/forum/topic/20742995286?page=16#312
Народ у меня BLZ51900007, но не стоит не Linux ни Wine... Кто подскажет что делать?
26/03/2016 17:00Размещено Warlaam
Народ у меня BLZ51900007, но не стоит не Linux ни Wine... Кто подскажет что делать?

А какая у тебя система? Тут решают проблему с переключением на другой протокол связи именно в линуксе.
Спасибо за пост. Жаль, не дождался, а решил проблему радикально - поменял древнюю Федору 17 на 23.

Обсудить

К форуму