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.