1

Temat: Openvpn klient nie łaczy się z serwerem.

Chcę podzielić się moimi doświadczeniami w konfiguracji klienta opnvpn na openwrt (u mnie konkretnie Gargoyle 1.9.2.5), ale problem jest uniwersalny.
Korzystałem z tego poradnika przy konfiguracji klienta: https://eko.one.pl/?p=openwrt-openvpntun
Natomiast serwer vpn jest na Ubuntu 16.04 skonfigurowany standardowo według tego: https://www.digitalocean.com/community/ … untu-16-04
Pierwszym problemem był brak łączenia serwerem w ogóle. Przynajmniej tak wynikało z logów:

TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed

Okazało się, że rozwiązaniem jest umieszczenie pliku ta.key z serwera w /etc/openvpn/ i zmiany w konfiguracji:
uci set openvpn.router2.tls_auth="/etc/openvpn/ta.key 1"
uci set openvpn.router2.key_direction=1

dodałem jeszcze to:

uci set openvpn.router2.auth=SHA256
uci set openvpn.router2.cipher=AES-128-CBC

Teraz router już się łączył z serwerem, ale pojawił sie koleny błąd:

...
openvpn write to TUN/TAP : Invalid argument (code=22)
openvpn write to TUN/TAP : Invalid argument (code=22)
...

natomiast po stronie serwera:

Bad LZO decompression header byte: 69 (różne wielkości)

Okazało się, że jest to najprawdopodobniej bug w openvpn, polegający na tym, że klient nie przyjmuje parametru comp_lzo z serwera. Opisany tutaj: https://community.openvpn.net/openvpn/ticket/128

dodałem więc do konfiguracji klienta:

uci set openvpn.router2.comp_lzo=yes

Teraz połączenie zaczęło działać.
Podaję to, ponieważ wiele serwerów vpn jest na ubuntu/debian skonfigurowane według powyżsego schematu (dużo poradników) i podobnie problem musiłem rozwiązać na swoim komputerze przy konfiguracji klienta. Mam nadzieję, że komuś zaoszczędzę parę godzin na szukanie rozwiązania.