Authenticate decrypt packet error packet hmac authentication failed pfsense

I am trying to configure my Raspberry Pi as an OpenVPN server on site B. For this setup, I require that the client configuration is stored in a very single file, as it's going to be deployed on my

I am trying to configure my Raspberry Pi as an OpenVPN server on site B. For this setup, I require that the client configuration is stored in a very single file, as it’s going to be deployed on my Android phone. I don’t want to mess with paths and so: I’ll beam the file via Bluetooth and zap!

The configuration is PKI-based. The configuration is inspired to an existing VPN (commented out) of which the Raspy is the client (site B to site A). The «other» VPN can be enabled at any time but, again, it is currently commented out. I am trying this on Windows first before trying to deploy on Android, especially because I can edit and rerun configuration at any time, fast-type with keyboard and copy&paste stuff from the server because I can always remote into it via ssh. On mobile, it will take me a lot of time to test.

Server.conf

port 1194
proto udp
dev tun

ca /etc/ssl/vpn/ca.crt
cert /etc/ssl/vpn/raspy.crt
key /etc/ssl/vpn/raspy.key
dh /etc/ssl/vpn/dh2048.pem
key-direction 1
tls-auth /etc/ssl/vpn/ta.key 0 # This file is secret
cipher AES-256-CBC   # AES

client-config-dir ccd
ifconfig-pool-persist ipp.txt
client-to-client
push "route 192.168.192.0 255.255.255.0 vpn_gateway"
keepalive 10 120
comp-lzo

user nobody
group nogroup
persist-key
persist-tun

status openvpn-status.log
log  /var/log
verb 6 #helps me troubleshoot

Client.conf

dev tun
proto udp
remote raspy.example.me 1194

resolv-retry infinite

nobind

user nobody
group nogroup

persist-key
persist-tun

<ca>
-----BEGIN CERTIFICATE-----
Matches the CA certificate deployed on server
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
This is the client certificate that I have signed with common CA
I assume this part of the setup is fine
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
Client private key
-----END RSA PRIVATE KEY-----
</key>

<dh>
-----BEGIN DH PARAMETERS-----
Matches the content of /etc/ssl/vpn/dh2048.pem
-----END DH PARAMETERS-----
</dh>
cipher AES-256-CBC
remote-cert-tls server

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
matches /etc/ssl/vpn/ta.key
-----END OpenVPN Static key V1-----
</tls-auth>

cipher AES-256-CBC

comp-lzo


log         /var/log/openvpn.log
verb 6

I am confident that the certificates are set correctly, but in the meantime I will re-test them with OpenSSL to make sure the chain is fine.

Connecting, I find the following logs

Server

Tue Jul 28 11:02:25 2020 us=457781 Authenticate/Decrypt packet error: packet HMAC authentication failed
Tue Jul 28 11:02:25 2020 us=458025 TLS Error: incoming packet authentication failed from [AF_INET]xxx:46976
Tue Jul 28 11:02:27 2020 us=732637 Authenticate/Decrypt packet error: packet HMAC authentication failed
Tue Jul 28 11:02:27 2020 us=732832 TLS Error: incoming packet authentication failed from [AF_INET]xxx:46976

Client

Tue Jul 28 11:02:25 2020 UDP WRITE [42] to [AF_INET]xxx:1194: P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 pid=[ #2 ] [ ] pid=0 DATA len=0
Tue Jul 28 11:02:29 2020 UDP WRITE [42] to [AF_INET]xxx:1194: P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 pid=[ #3 ] [ ] pid=0 DATA len=0
Tue Jul 28 11:02:37 2020 UDP WRITE [42] to [AF_INET]xxx:1194: P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 pid=[ #4 ] [ ] pid=0 DATA len=0
Tue Jul 28 11:02:53 2020 UDP WRITE [42] to [AF_INET]xxx:1194: P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 pid=[ #5 ] [ ] pid=0 DATA len=0

What may be wrong in this setup? How should I fix this?

Research


I have found this topic that claims to be solved

bznelson wrote: ↑
Mon Apr 09, 2018 10:52 pm
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0 

bznelson wrote: ↑
Mon Apr 09, 2018 10:52 pm
<tls-crypt>

Ah yes, the tls-auth/tls-crypt, that’s it! Thank you so much! I was running a 2.3 server, but I had initially installed 2.4 and I guess there was some cross pollination.

I’m running OpenVPN 2.4.0 on both hosts. I don’t know how that linked thread may help me

And in the same topic someone said about the error

This usually means you have the wrong ta.key installed somewhere.

But I have checked three times. The keys are the same but the very difference is that one is on a file, one is inlined


I have tried to completely remove the tls-auth from client and server. The error is fixed and I have the next error to care about. So, the above linked forum was correct, there is some mess between the two identical keys

vpnstarter

OpenVpn Newbie
Posts: 4
Joined: Sat Apr 01, 2017 12:58 pm

Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

im trying to start vpn server on my OVH VPS,
i disabled the fiewall in the ovh windows,

i configed all, and moved the files to my client, now im trying to connect with my openvpn client, but i get this error in the openvpn SERVER;

server:
Authenticate/Decrypt packet error: packet HMAC authentication failed
TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:MYIP

and in the client i get this error:
at Apr 01 16:05:20 2017 Restart pause, 5 second(s)
Sat Apr 01 16:05:25 2017 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 16:05:25 2017 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 16:05:25 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]92.222.80.204:1194
Sat Apr 01 16:05:25 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Apr 01 16:05:25 2017 UDP link local: (not bound)
Sat Apr 01 16:05:25 2017 UDP link remote: [AF_INET]92.222.80.204:1194
Sat Apr 01 16:05:25 2017 MANAGEMENT: >STATE:1491051925,WAIT,,,,,,
Sat Apr 01 16:06:25 2017 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Apr 01 16:06:25 2017 TLS Error: TLS handshake failed
Sat Apr 01 16:06:25 2017 SIGUSR1[soft,tls-error] received, process restarting
Sat Apr 01 16:06:25 2017 MANAGEMENT: >STATE:1491051985,RECONNECTING,tls-error,,,,,
Sat Apr 01 16:06:25 2017 Restart pause, 5 second(s)

i tried to disable the tls-auth in the server file and in the client file but its not disabled… «tls-auth ta.key 0» its what i tried, its wont disable this error.
the time in client and the server computers is the same.
please help,
thanks



vpnstarter

OpenVpn Newbie
Posts: 4
Joined: Sat Apr 01, 2017 12:58 pm

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by vpnstarter » Sat Apr 01, 2017 3:27 pm

SERVER

;local a.b.c.d
port 1194
;proto tcp
proto udp
;dev tap
dev tun
;dev-node MyTap
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
;topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge
;push «route 192.168.10.0 255.255.255.0»
;push «route 192.168.20.0 255.255.255.0»
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
;push «redirect-gateway def1 bypass-dhcp»
;push «dhcp-option DNS 208.67.222.222»
;push «dhcp-option DNS 208.67.220.220»
;client-to-client
;duplicate-cn
tls-auth ta.key 0
cipher AES-256-CBC
# versions see below)
;compress lz4-v2
;push «compress lz4-v2»
;comp-lzo
;max-clients 100
;user nobody
;group nobody
;log openvpn.log
;log-append openvpn.log
verb 4
;mute 20
explicit-exit-notify 1

CLIENT

client
;dev tap
dev tun
;dev-node MyTap
;proto tcp
proto udp
remote 92.222.80.204 1194
;remote my-server-2 1194
;remote-random
resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert ovh.crt
key ovh.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
#comp-lzo
verb 3
;mute 20

START LOG OF SERVER

Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_private_mode = 00000000
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_cert_private = DISABLED
Sat Apr 01 18:22:26 2017 pkcs11_pin_cache_period = -1
Sat Apr 01 18:22:26 2017 pkcs11_id = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 pkcs11_id_management = DISABLED
Sat Apr 01 18:22:26 2017 server_network = 10.8.0.0
Sat Apr 01 18:22:26 2017 server_netmask = 255.255.255.0
Sat Apr 01 18:22:26 2017 server_network_ipv6 = ::
Sat Apr 01 18:22:26 2017 server_netbits_ipv6 = 0
Sat Apr 01 18:22:26 2017 server_bridge_ip = 0.0.0.0
Sat Apr 01 18:22:26 2017 server_bridge_netmask = 0.0.0.0
Sat Apr 01 18:22:26 2017 server_bridge_pool_start = 0.0.0.0
Sat Apr 01 18:22:26 2017 server_bridge_pool_end = 0.0.0.0
Sat Apr 01 18:22:26 2017 push_entry = ‘route 10.8.0.1’
Sat Apr 01 18:22:26 2017 push_entry = ‘topology net30’
Sat Apr 01 18:22:26 2017 push_entry = ‘ping 10’
Sat Apr 01 18:22:26 2017 push_entry = ‘ping-restart 120’
Sat Apr 01 18:22:26 2017 ifconfig_pool_defined = ENABLED
Sat Apr 01 18:22:26 2017 ifconfig_pool_start = 10.8.0.4
Sat Apr 01 18:22:26 2017 ifconfig_pool_end = 10.8.0.251
Sat Apr 01 18:22:26 2017 ifconfig_pool_netmask = 0.0.0.0
Sat Apr 01 18:22:26 2017 ifconfig_pool_persist_filename = ‘ipp.txt’
Sat Apr 01 18:22:26 2017 ifconfig_pool_persist_refresh_freq = 600
Sat Apr 01 18:22:26 2017 ifconfig_ipv6_pool_defined = DISABLED
Sat Apr 01 18:22:26 2017 ifconfig_ipv6_pool_base = ::
Sat Apr 01 18:22:26 2017 ifconfig_ipv6_pool_netbits = 0
Sat Apr 01 18:22:26 2017 n_bcast_buf = 256
Sat Apr 01 18:22:26 2017 tcp_queue_limit = 64
Sat Apr 01 18:22:26 2017 real_hash_size = 256
Sat Apr 01 18:22:26 2017 virtual_hash_size = 256
Sat Apr 01 18:22:26 2017 client_connect_script = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 learn_address_script = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 client_disconnect_script = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 client_config_dir = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 ccd_exclusive = DISABLED
Sat Apr 01 18:22:26 2017 tmp_dir = ‘C:UsersADMINI~1AppDataLocalTemp1’
Sat Apr 01 18:22:26 2017 push_ifconfig_defined = DISABLED
Sat Apr 01 18:22:26 2017 push_ifconfig_local = 0.0.0.0
Sat Apr 01 18:22:26 2017 push_ifconfig_remote_netmask = 0.0.0.0
Sat Apr 01 18:22:26 2017 push_ifconfig_ipv6_defined = DISABLED
Sat Apr 01 18:22:26 2017 push_ifconfig_ipv6_local = ::/0
Sat Apr 01 18:22:26 2017 push_ifconfig_ipv6_remote = ::
Sat Apr 01 18:22:26 2017 enable_c2c = DISABLED
Sat Apr 01 18:22:26 2017 duplicate_cn = DISABLED
Sat Apr 01 18:22:26 2017 cf_max = 0
Sat Apr 01 18:22:26 2017 cf_per = 0
Sat Apr 01 18:22:26 2017 max_clients = 1024
Sat Apr 01 18:22:26 2017 max_routes_per_client = 256
Sat Apr 01 18:22:26 2017 auth_user_pass_verify_script = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 auth_user_pass_verify_script_via_file = DISABLED
Sat Apr 01 18:22:26 2017 auth_token_generate = DISABLED
Sat Apr 01 18:22:26 2017 auth_token_lifetime = 0
Sat Apr 01 18:22:26 2017 client = DISABLED
Sat Apr 01 18:22:26 2017 pull = DISABLED
Sat Apr 01 18:22:26 2017 auth_user_pass_file = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 show_net_up = DISABLED
Sat Apr 01 18:22:26 2017 route_method = 0
Sat Apr 01 18:22:26 2017 block_outside_dns = DISABLED
Sat Apr 01 18:22:26 2017 ip_win32_defined = DISABLED
Sat Apr 01 18:22:26 2017 ip_win32_type = 3
Sat Apr 01 18:22:26 2017 dhcp_masq_offset = 0
Sat Apr 01 18:22:26 2017 dhcp_lease_time = 31536000
Sat Apr 01 18:22:26 2017 tap_sleep = 10
Sat Apr 01 18:22:26 2017 dhcp_options = DISABLED
Sat Apr 01 18:22:26 2017 dhcp_renew = DISABLED
Sat Apr 01 18:22:26 2017 dhcp_pre_release = DISABLED
Sat Apr 01 18:22:26 2017 domain = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 netbios_scope = ‘[UNDEF]’
Sat Apr 01 18:22:26 2017 netbios_node_type = 0
Sat Apr 01 18:22:26 2017 disable_nbt = DISABLED
Sat Apr 01 18:22:26 2017 OpenVPN 2.4.1 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Mar 22 2017
Sat Apr 01 18:22:26 2017 Windows version 6.2 (Windows 8 or greater) 64bit
Sat Apr 01 18:22:26 2017 library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
Sat Apr 01 18:22:26 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sat Apr 01 18:22:26 2017 Need hold release from management interface, waiting…
Sat Apr 01 18:22:27 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sat Apr 01 18:22:27 2017 MANAGEMENT: CMD ‘state on’
Sat Apr 01 18:22:27 2017 MANAGEMENT: CMD ‘log all on’
Sat Apr 01 18:22:27 2017 MANAGEMENT: CMD ‘echo all on’
Sat Apr 01 18:22:27 2017 MANAGEMENT: CMD ‘hold off’
Sat Apr 01 18:22:27 2017 MANAGEMENT: CMD ‘hold release’
Sat Apr 01 18:22:27 2017 Diffie-Hellman initialized with 2048 bit key
Sat Apr 01 18:22:27 2017 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 18:22:27 2017 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 18:22:27 2017 TLS-Auth MTU parms [ L:1621 D:1184 EF:66 EB:0 ET:0 EL:3 ]
Sat Apr 01 18:22:27 2017 interactive service msg_channel=0
Sat Apr 01 18:22:27 2017 ROUTE_GATEWAY 92.222.64.1
Sat Apr 01 18:22:27 2017 open_tun
Sat Apr 01 18:22:27 2017 TAP-WIN32 device [Ethernet 2] opened: \.Global{1F6C8FF6-85C5-4EBE-87D8-695553229603}.tap
Sat Apr 01 18:22:27 2017 TAP-Windows Driver Version 9.21
Sat Apr 01 18:22:27 2017 TAP-Windows MTU=1500
Sat Apr 01 18:22:27 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.1/255.255.255.252 on interface {1F6C8FF6-85C5-4EBE-87D8-695553229603} [DHCP-serv: 10.8.0.2, lease-time: 31536000]
Sat Apr 01 18:22:27 2017 Sleeping for 10 seconds…
Sat Apr 01 18:22:37 2017 Successful ARP Flush on interface [17] {1F6C8FF6-85C5-4EBE-87D8-695553229603}
Sat Apr 01 18:22:37 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sat Apr 01 18:22:37 2017 MANAGEMENT: >STATE:1491060157,ASSIGN_IP,,10.8.0.1,,,,
Sat Apr 01 18:22:37 2017 MANAGEMENT: >STATE:1491060157,ADD_ROUTES,,,,,,
Sat Apr 01 18:22:37 2017 C:Windowssystem32route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.2
Sat Apr 01 18:22:37 2017 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=20 and dwForwardType=4
Sat Apr 01 18:22:37 2017 Route addition via IPAPI succeeded [adaptive]
Sat Apr 01 18:22:37 2017 Data Channel MTU parms [ L:1621 D:1450 EF:121 EB:406 ET:0 EL:3 ]
Sat Apr 01 18:22:37 2017 Could not determine IPv4/IPv6 protocol. Using AF_INET6
Sat Apr 01 18:22:37 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Apr 01 18:22:37 2017 setsockopt(IPV6_V6ONLY=0)
Sat Apr 01 18:22:37 2017 UDPv6 link local (bound): [AF_INET6][undef]:1194
Sat Apr 01 18:22:37 2017 UDPv6 link remote: [AF_UNSPEC]
Sat Apr 01 18:22:37 2017 MULTI: multi_init called, r=256 v=256
Sat Apr 01 18:22:37 2017 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Sat Apr 01 18:22:37 2017 IFCONFIG POOL LIST
Sat Apr 01 18:22:37 2017 Initialization Sequence Completed
Sat Apr 01 18:22:37 2017 MANAGEMENT: >STATE:1491060157,CONNECTED,SUCCESS,10.8.0.1,,,,
Sat Apr 01 18:24:49 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:24:49 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289
Sat Apr 01 18:24:52 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:24:52 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289
Sat Apr 01 18:24:55 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:24:55 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289
Sat Apr 01 18:25:04 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:25:04 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289
Sat Apr 01 18:25:19 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:25:19 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289
Sat Apr 01 18:25:54 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:25:54 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:49697
Sat Apr 01 18:25:56 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:25:56 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:49697
Sat Apr 01 18:26:01 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:26:01 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:49697
Sat Apr 01 18:26:08 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:26:08 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:49697

START LOG OF CLIENT

Sat Apr 01 18:24:15 2017 OpenVPN 2.4.1 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Mar 22 2017
Sat Apr 01 18:24:15 2017 Windows version 6.2 (Windows 8 or greater) 64bit
Sat Apr 01 18:24:15 2017 library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
Sat Apr 01 18:24:15 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sat Apr 01 18:24:15 2017 Need hold release from management interface, waiting…
Sat Apr 01 18:24:15 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sat Apr 01 18:24:15 2017 MANAGEMENT: CMD ‘state on’
Sat Apr 01 18:24:15 2017 MANAGEMENT: CMD ‘log all on’
Sat Apr 01 18:24:15 2017 MANAGEMENT: CMD ‘echo all on’
Sat Apr 01 18:24:15 2017 MANAGEMENT: CMD ‘hold off’
Sat Apr 01 18:24:15 2017 MANAGEMENT: CMD ‘hold release’
Sat Apr 01 18:24:21 2017 MANAGEMENT: CMD ‘password […]’
Sat Apr 01 18:24:21 2017 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Sat Apr 01 18:24:21 2017 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 18:24:21 2017 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sat Apr 01 18:24:21 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]92.222.80.204:1194
Sat Apr 01 18:24:21 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Apr 01 18:24:21 2017 UDP link local: (not bound)
Sat Apr 01 18:24:21 2017 UDP link remote: [AF_INET]92.222.80.204:1194
Sat Apr 01 18:24:21 2017 MANAGEMENT: >STATE:1491060261,WAIT,,,,,,
Sat Apr 01 18:25:21 2017 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Apr 01 18:25:21 2017 TLS Error: TLS handshake failed
Sat Apr 01 18:25:21 2017 SIGUSR1[soft,tls-error] received, process restarting
Sat Apr 01 18:25:21 2017 MANAGEMENT: >STATE:1491060321,RECONNECTING,tls-error,,,,,
Sat Apr 01 18:25:21 2017 Restart pause, 5 second(s)
Sat Apr 01 18:25:26 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]92.222.80.204:1194
Sat Apr 01 18:25:26 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Apr 01 18:25:26 2017 UDP link local: (not bound)
Sat Apr 01 18:25:26 2017 UDP link remote: [AF_INET]92.222.80.204:1194
Sat Apr 01 18:25:26 2017 MANAGEMENT: >STATE:1491060326,WAIT,,,,,,


vpnstarter

OpenVpn Newbie
Posts: 4
Joined: Sat Apr 01, 2017 12:58 pm

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by vpnstarter » Sat Apr 01, 2017 3:32 pm

More Info,
in the server i use Windows 2012 R2
in the client i use Windows 10
if you need more info, im here
please help me,
thanks


TiTex

OpenVPN Super User
Posts: 310
Joined: Tue Apr 12, 2011 6:22 am

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by TiTex » Sat Apr 01, 2017 7:31 pm

try removing ‘remote-cert-tls server’ from your client config , and also check if all your files are in the folder where the config is , cert,key,ca,ta.key (hmac) , and check if the correct data is in them :)


TinCanTech

OpenVPN Protagonist
Posts: 11142
Joined: Fri Jun 03, 2016 1:17 pm

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by TinCanTech » Sat Apr 01, 2017 11:14 pm

Because of this:

vpnstarter wrote:
Server Log:
Sat Apr 01 18:22:37 2017 Initialization Sequence Completed
Sat Apr 01 18:22:37 2017 MANAGEMENT: >STATE:1491060157,CONNECTED,SUCCESS,10.8.0.1,,,,

being immediately followed by this:

vpnstarter wrote:Server Log:
Sat Apr 01 18:24:49 2017 Authenticate/Decrypt packet error: packet HMAC authentication failed
Sat Apr 01 18:24:49 2017 TLS Error: incoming packet authentication failed from [AF_INET6]::ffff:79.176.167.68:62289

I think the —tls-auth file might be the wrong one ;)



vpnstarter

OpenVpn Newbie
Posts: 4
Joined: Sat Apr 01, 2017 12:58 pm

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by vpnstarter » Sun Apr 02, 2017 11:54 am

Thanks for help, i think the ta.key in the client not was the same file, now its fixed — but i have new error, please help
the client is connected but i get same ip, its wont change, and in the server i get some error after client is connecting:

CLIENT START LOG

Sun Apr 02 14:51:04 2017 OpenVPN 2.4.1 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Mar 22 2017
Sun Apr 02 14:51:04 2017 Windows version 6.2 (Windows 8 or greater) 64bit
Sun Apr 02 14:51:04 2017 library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
Sun Apr 02 14:51:04 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sun Apr 02 14:51:04 2017 Need hold release from management interface, waiting…
Sun Apr 02 14:51:04 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sun Apr 02 14:51:04 2017 MANAGEMENT: CMD ‘state on’
Sun Apr 02 14:51:04 2017 MANAGEMENT: CMD ‘log all on’
Sun Apr 02 14:51:04 2017 MANAGEMENT: CMD ‘echo all on’
Sun Apr 02 14:51:04 2017 MANAGEMENT: CMD ‘hold off’
Sun Apr 02 14:51:04 2017 MANAGEMENT: CMD ‘hold release’
Sun Apr 02 14:51:08 2017 MANAGEMENT: CMD ‘password […]’
Sun Apr 02 14:51:08 2017 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Sun Apr 02 14:51:08 2017 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sun Apr 02 14:51:08 2017 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sun Apr 02 14:51:08 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]92.222.80.204:1194
Sun Apr 02 14:51:08 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sun Apr 02 14:51:08 2017 UDP link local: (not bound)
Sun Apr 02 14:51:08 2017 UDP link remote: [AF_INET]92.222.80.204:1194
Sun Apr 02 14:51:08 2017 MANAGEMENT: >STATE:1491133868,WAIT,,,,,,
Sun Apr 02 14:51:09 2017 MANAGEMENT: >STATE:1491133869,AUTH,,,,,,
Sun Apr 02 14:51:09 2017 TLS: Initial packet from [AF_INET]92.222.80.204:1194, sid=88257f8e 71d6b72a
Sun Apr 02 14:51:09 2017 VERIFY OK: depth=1, CN=OpenVPN-OVH, emailAddress=ovh@ovh
Sun Apr 02 14:51:09 2017 VERIFY KU OK
Sun Apr 02 14:51:09 2017 Validating certificate extended key usage
Sun Apr 02 14:51:09 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sun Apr 02 14:51:09 2017 VERIFY EKU OK
Sun Apr 02 14:51:09 2017 VERIFY OK: depth=0, CN=server, name=server
Sun Apr 02 14:51:09 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 1024 bit RSA
Sun Apr 02 14:51:09 2017 [server] Peer Connection Initiated with [AF_INET]92.222.80.204:1194
Sun Apr 02 14:51:10 2017 MANAGEMENT: >STATE:1491133870,GET_CONFIG,,,,,,
Sun Apr 02 14:51:10 2017 SENT CONTROL [server]: ‘PUSH_REQUEST’ (status=1)
Sun Apr 02 14:51:10 2017 PUSH: Received control message: ‘PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM’
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: timers and/or timeouts modified
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: —ifconfig/up options modified
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: route options modified
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: peer-id set
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: adjusting link_mtu to 1624
Sun Apr 02 14:51:10 2017 OPTIONS IMPORT: data channel crypto options modified
Sun Apr 02 14:51:10 2017 Data Channel Encrypt: Cipher ‘AES-256-GCM’ initialized with 256 bit key
Sun Apr 02 14:51:10 2017 Data Channel Decrypt: Cipher ‘AES-256-GCM’ initialized with 256 bit key
Sun Apr 02 14:51:10 2017 interactive service msg_channel=992
Sun Apr 02 14:51:10 2017 ROUTE_GATEWAY 10.0.0.138/255.255.255.0 I=14 HWADDR=02:1d:65:d1:5a:25
Sun Apr 02 14:51:10 2017 open_tun
Sun Apr 02 14:51:10 2017 TAP-WIN32 device [‏‏Ethernet 4] opened: \.Global{74F6FED0-0233-4A29-82EF-314C63F7A2F5}.tap
Sun Apr 02 14:51:10 2017 TAP-Windows Driver Version 9.21
Sun Apr 02 14:51:10 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252 on interface {74F6FED0-0233-4A29-82EF-314C63F7A2F5} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
Sun Apr 02 14:51:10 2017 Successful ARP Flush on interface [13] {74F6FED0-0233-4A29-82EF-314C63F7A2F5}
Sun Apr 02 14:51:10 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Apr 02 14:51:10 2017 MANAGEMENT: >STATE:1491133870,ASSIGN_IP,,10.8.0.6,,,,
Sun Apr 02 14:51:15 2017 TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
Sun Apr 02 14:51:15 2017 MANAGEMENT: >STATE:1491133875,ADD_ROUTES,,,,,,
Sun Apr 02 14:51:15 2017 C:WINDOWSsystem32route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
Sun Apr 02 14:51:15 2017 Route addition via service succeeded
Sun Apr 02 14:51:15 2017 Initialization Sequence Completed
Sun Apr 02 14:51:15 2017 MANAGEMENT: >STATE:1491133875,CONNECTED,SUCCESS,10.8.0.6,92.222.80.204,1194,,

SERVER START LOG

Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_private_mode = 00000000
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_cert_private = DISABLED
Sun Apr 02 14:50:59 2017 pkcs11_pin_cache_period = -1
Sun Apr 02 14:50:59 2017 pkcs11_id = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 pkcs11_id_management = DISABLED
Sun Apr 02 14:50:59 2017 server_network = 10.8.0.0
Sun Apr 02 14:50:59 2017 server_netmask = 255.255.255.0
Sun Apr 02 14:50:59 2017 server_network_ipv6 = ::
Sun Apr 02 14:50:59 2017 server_netbits_ipv6 = 0
Sun Apr 02 14:50:59 2017 server_bridge_ip = 0.0.0.0
Sun Apr 02 14:50:59 2017 server_bridge_netmask = 0.0.0.0
Sun Apr 02 14:50:59 2017 server_bridge_pool_start = 0.0.0.0
Sun Apr 02 14:50:59 2017 server_bridge_pool_end = 0.0.0.0
Sun Apr 02 14:50:59 2017 push_entry = ‘route 10.8.0.1’
Sun Apr 02 14:50:59 2017 push_entry = ‘topology net30’
Sun Apr 02 14:50:59 2017 push_entry = ‘ping 10’
Sun Apr 02 14:50:59 2017 push_entry = ‘ping-restart 120’
Sun Apr 02 14:50:59 2017 ifconfig_pool_defined = ENABLED
Sun Apr 02 14:50:59 2017 ifconfig_pool_start = 10.8.0.4
Sun Apr 02 14:50:59 2017 ifconfig_pool_end = 10.8.0.251
Sun Apr 02 14:50:59 2017 ifconfig_pool_netmask = 0.0.0.0
Sun Apr 02 14:50:59 2017 ifconfig_pool_persist_filename = ‘ipp.txt’
Sun Apr 02 14:50:59 2017 ifconfig_pool_persist_refresh_freq = 600
Sun Apr 02 14:50:59 2017 ifconfig_ipv6_pool_defined = DISABLED
Sun Apr 02 14:50:59 2017 ifconfig_ipv6_pool_base = ::
Sun Apr 02 14:50:59 2017 ifconfig_ipv6_pool_netbits = 0
Sun Apr 02 14:50:59 2017 n_bcast_buf = 256
Sun Apr 02 14:50:59 2017 tcp_queue_limit = 64
Sun Apr 02 14:50:59 2017 real_hash_size = 256
Sun Apr 02 14:50:59 2017 virtual_hash_size = 256
Sun Apr 02 14:50:59 2017 client_connect_script = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 learn_address_script = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 client_disconnect_script = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 client_config_dir = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 ccd_exclusive = DISABLED
Sun Apr 02 14:50:59 2017 tmp_dir = ‘C:UsersADMINI~1AppDataLocalTemp1’
Sun Apr 02 14:50:59 2017 push_ifconfig_defined = DISABLED
Sun Apr 02 14:50:59 2017 push_ifconfig_local = 0.0.0.0
Sun Apr 02 14:50:59 2017 push_ifconfig_remote_netmask = 0.0.0.0
Sun Apr 02 14:50:59 2017 push_ifconfig_ipv6_defined = DISABLED
Sun Apr 02 14:50:59 2017 push_ifconfig_ipv6_local = ::/0
Sun Apr 02 14:50:59 2017 push_ifconfig_ipv6_remote = ::
Sun Apr 02 14:50:59 2017 enable_c2c = DISABLED
Sun Apr 02 14:50:59 2017 duplicate_cn = DISABLED
Sun Apr 02 14:50:59 2017 cf_max = 0
Sun Apr 02 14:50:59 2017 cf_per = 0
Sun Apr 02 14:50:59 2017 max_clients = 1024
Sun Apr 02 14:50:59 2017 max_routes_per_client = 256
Sun Apr 02 14:50:59 2017 auth_user_pass_verify_script = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 auth_user_pass_verify_script_via_file = DISABLED
Sun Apr 02 14:50:59 2017 auth_token_generate = DISABLED
Sun Apr 02 14:50:59 2017 auth_token_lifetime = 0
Sun Apr 02 14:50:59 2017 client = DISABLED
Sun Apr 02 14:50:59 2017 pull = DISABLED
Sun Apr 02 14:50:59 2017 auth_user_pass_file = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 show_net_up = DISABLED
Sun Apr 02 14:50:59 2017 route_method = 0
Sun Apr 02 14:50:59 2017 block_outside_dns = DISABLED
Sun Apr 02 14:50:59 2017 ip_win32_defined = DISABLED
Sun Apr 02 14:50:59 2017 ip_win32_type = 3
Sun Apr 02 14:50:59 2017 dhcp_masq_offset = 0
Sun Apr 02 14:50:59 2017 dhcp_lease_time = 31536000
Sun Apr 02 14:50:59 2017 tap_sleep = 10
Sun Apr 02 14:50:59 2017 dhcp_options = DISABLED
Sun Apr 02 14:50:59 2017 dhcp_renew = DISABLED
Sun Apr 02 14:50:59 2017 dhcp_pre_release = DISABLED
Sun Apr 02 14:50:59 2017 domain = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 netbios_scope = ‘[UNDEF]’
Sun Apr 02 14:50:59 2017 netbios_node_type = 0
Sun Apr 02 14:50:59 2017 disable_nbt = DISABLED
Sun Apr 02 14:50:59 2017 OpenVPN 2.4.1 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Mar 22 2017
Sun Apr 02 14:50:59 2017 Windows version 6.2 (Windows 8 or greater) 64bit
Sun Apr 02 14:50:59 2017 library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
Sun Apr 02 14:50:59 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sun Apr 02 14:50:59 2017 Need hold release from management interface, waiting…
Sun Apr 02 14:51:00 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sun Apr 02 14:51:00 2017 MANAGEMENT: CMD ‘state on’
Sun Apr 02 14:51:00 2017 MANAGEMENT: CMD ‘log all on’
Sun Apr 02 14:51:00 2017 MANAGEMENT: CMD ‘echo all on’
Sun Apr 02 14:51:00 2017 MANAGEMENT: CMD ‘hold off’
Sun Apr 02 14:51:00 2017 MANAGEMENT: CMD ‘hold release’
Sun Apr 02 14:51:00 2017 Diffie-Hellman initialized with 2048 bit key
Sun Apr 02 14:51:00 2017 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sun Apr 02 14:51:00 2017 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Sun Apr 02 14:51:00 2017 TLS-Auth MTU parms [ L:1621 D:1184 EF:66 EB:0 ET:0 EL:3 ]
Sun Apr 02 14:51:00 2017 interactive service msg_channel=0
Sun Apr 02 14:51:00 2017 ROUTE_GATEWAY 92.222.64.1
Sun Apr 02 14:51:00 2017 open_tun
Sun Apr 02 14:51:00 2017 TAP-WIN32 device [Ethernet 2] opened: \.Global{1F6C8FF6-85C5-4EBE-87D8-695553229603}.tap
Sun Apr 02 14:51:00 2017 TAP-Windows Driver Version 9.21
Sun Apr 02 14:51:00 2017 TAP-Windows MTU=1500
Sun Apr 02 14:51:00 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.1/255.255.255.252 on interface {1F6C8FF6-85C5-4EBE-87D8-695553229603} [DHCP-serv: 10.8.0.2, lease-time: 31536000]
Sun Apr 02 14:51:00 2017 Sleeping for 10 seconds…
Sun Apr 02 14:51:10 2017 Successful ARP Flush on interface [17] {1F6C8FF6-85C5-4EBE-87D8-695553229603}
Sun Apr 02 14:51:10 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Apr 02 14:51:10 2017 MANAGEMENT: >STATE:1491133870,ASSIGN_IP,,10.8.0.1,,,,
Sun Apr 02 14:51:10 2017 MANAGEMENT: >STATE:1491133870,ADD_ROUTES,,,,,,
Sun Apr 02 14:51:10 2017 C:Windowssystem32route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.2
Sun Apr 02 14:51:10 2017 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=20 and dwForwardType=4
Sun Apr 02 14:51:10 2017 Route addition via IPAPI succeeded [adaptive]
Sun Apr 02 14:51:10 2017 Data Channel MTU parms [ L:1621 D:1450 EF:121 EB:406 ET:0 EL:3 ]
Sun Apr 02 14:51:10 2017 Could not determine IPv4/IPv6 protocol. Using AF_INET6
Sun Apr 02 14:51:10 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sun Apr 02 14:51:10 2017 setsockopt(IPV6_V6ONLY=0)
Sun Apr 02 14:51:10 2017 UDPv6 link local (bound): [AF_INET6][undef]:1194
Sun Apr 02 14:51:10 2017 UDPv6 link remote: [AF_UNSPEC]
Sun Apr 02 14:51:10 2017 MULTI: multi_init called, r=256 v=256
Sun Apr 02 14:51:10 2017 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Sun Apr 02 14:51:10 2017 ifconfig_pool_read(), in=’OVH,10.8.0.4′, TODO: IPv6
Sun Apr 02 14:51:10 2017 succeeded -> ifconfig_pool_set()
Sun Apr 02 14:51:10 2017 IFCONFIG POOL LIST
Sun Apr 02 14:51:10 2017 OVH,10.8.0.4
Sun Apr 02 14:51:10 2017 Initialization Sequence Completed
Sun Apr 02 14:51:10 2017 MANAGEMENT: >STATE:1491133870,CONNECTED,SUCCESS,10.8.0.1,,,,
Sun Apr 02 14:51:38 2017 MULTI: multi_create_instance called
Sun Apr 02 14:51:38 2017 79.176.167.68 Re-using SSL/TLS context
Sun Apr 02 14:51:38 2017 79.176.167.68 Control Channel MTU parms [ L:1621 D:1184 EF:66 EB:0 ET:0 EL:3 ]
Sun Apr 02 14:51:38 2017 79.176.167.68 Data Channel MTU parms [ L:1621 D:1450 EF:121 EB:406 ET:0 EL:3 ]
Sun Apr 02 14:51:38 2017 79.176.167.68 Local Options String (VER=V4): ‘V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,keydir 0,cipher AES-256-CBC,auth SHA1,keysize 256,tls-auth,key-method 2,tls-server’
Sun Apr 02 14:51:38 2017 79.176.167.68 Expected Remote Options String (VER=V4): ‘V4,dev-type tun,link-mtu 1557,tun-mtu 1500,proto UDPv4,keydir 1,cipher AES-256-CBC,auth SHA1,keysize 256,tls-auth,key-method 2,tls-client’
Sun Apr 02 14:51:38 2017 79.176.167.68 TLS: Initial packet from [AF_INET6]::ffff:79.176.167.68:54624, sid=9871a503 1591b66e
Sun Apr 02 14:51:38 2017 79.176.167.68 VERIFY OK: depth=1, CN=OpenVPN-OVH, emailAddress=ovh@ovh
Sun Apr 02 14:51:38 2017 79.176.167.68 VERIFY OK: depth=0, OU=OVH, CN=OVH, name=OVH
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_VER=2.4.1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_PLAT=win
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_PROTO=2
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_NCP=2
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_LZ4=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_LZ4v2=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_LZO=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_COMP_STUB=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_COMP_STUBv2=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_TCPNL=1
Sun Apr 02 14:51:38 2017 79.176.167.68 peer info: IV_GUI_VER=OpenVPN_GUI_11
Sun Apr 02 14:51:38 2017 79.176.167.68 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 1024 bit RSA
Sun Apr 02 14:51:38 2017 79.176.167.68 [OVH] Peer Connection Initiated with [AF_INET6]::ffff:79.176.167.68:54624
Sun Apr 02 14:51:38 2017 OVH/79.176.167.68 MULTI_sva: pool returned IPv4=10.8.0.6, IPv6=(Not enabled)
Sun Apr 02 14:51:38 2017 OVH/79.176.167.68 MULTI: Learn: 10.8.0.6 -> OVH/79.176.167.68
Sun Apr 02 14:51:38 2017 OVH/79.176.167.68 MULTI: primary virtual IP for OVH/79.176.167.68: 10.8.0.6
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 PUSH: Received control message: ‘PUSH_REQUEST’
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 SENT CONTROL [OVH]: ‘PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM’ (status=1)
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 Data Channel MTU parms [ L:1549 D:1450 EF:49 EB:406 ET:0 EL:3 ]
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 Data Channel Encrypt: Cipher ‘AES-256-GCM’ initialized with 256 bit key
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 Data Channel Decrypt: Cipher ‘AES-256-GCM’ initialized with 256 bit key
Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 MULTI: bad source address from client [::], packet dropped


TinCanTech

OpenVPN Protagonist
Posts: 11142
Joined: Fri Jun 03, 2016 1:17 pm

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by TinCanTech » Sun Apr 02, 2017 1:53 pm

vpnstarter wrote:i have new error, please help the client is connected but i get same ip,

You mean this:
HOWTO: Routing all client traffic (including web-traffic) through the VPN

vpnstarter wrote:in the server i get some error after client is connecting

You mean this:

vpnstarter wrote:Sun Apr 02 14:51:39 2017 OVH/79.176.167.68 MULTI: bad source address from client [::], packet dropped

You can ignore that .. it is not an error.


bwanajag

OpenVpn Newbie
Posts: 6
Joined: Sun Mar 26, 2017 4:21 am

Re: Server error; Authenticate/Decrypt packet error: packet HMAC authentication failed

Post

by bwanajag » Tue Aug 29, 2017 6:36 am

Trying to setup OVPN server on a VPS (KVM) and I’m getting the same error, I’ve double checked my keys are the same, and tried removing TLS from both server and client (which gave a different error), but I’m still receiving the following error on the server:

Code: Select all

Aug 29 02:13:37 PUBLIC.SERVER.IP ovpn-server[691]: Authenticate/Decrypt packet error: packet HMAC authentication failed
Aug 29 02:13:37 PUBLIC.SERVER.IP ovpn-server[691]: TLS Error: incoming packet authentication failed from [AF_INET]WAN.IP:15009

This is what viscosity logs:

Code: Select all

2017-08-29 14:13:31: UDP link remote: [AF_INET]PUBLIC.SERVER.IP:2017
2017-08-29 14:14:31: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
2017-08-29 14:14:31: TLS Error: TLS handshake failed

My server config is:

Code: Select all

port 2017
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA256
comp-lzo
max-clients 5
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
mode server
tls-server

My client config is:

Code: Select all

client
dev tun
proto udp
remote PUBLIC.SERVER.IP 2017
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
# ca ca.crt
# cert client.crt
# key client.key
remote-cert-tls server
tls-auth ta.key 1
key-direction 1
cipher AES-128-CBC
auth SHA256
comp-lzo
verb 3
tls-client

# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca>
<cert>
Certificate:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----

-----END OpenVPN Static key V1-----
</tls-auth>

I’ve verified port 2017 is open to WAN, and my VPS assures me that there are no ports blocked on it’s side. Any suggestions on how to resolve this issue?



I have literally been at this for a few days, but am now completely stuck:

I have an OpenVPN Access Server running in Docker and clients can connect just fine from the Windows OpenVPN client, but when copying the data of the .ovpn file to the client settings of pfsense, the server log displays only the following error repeatedly:

Authenticate/Decrypt packet error: packet HMAC authentication failed'
TLS Error: incoming packet authentication failed from [AF_INET]<WAN IP>:<Varying random ports> (via [AF_INET]172.17.0.2%eth0)'

I have triple checked all pfsense installed certificates (making sure the TLS key copied from within <tls-auth> is correct), but it doesn’t matter what is changed; the error stays the exact same.

The OpenVPN pfsense log only shows this at each connection attempt:

Jul 15 11:48:15	openvpn	20540	NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Jul 15 11:48:15	openvpn	20540	TCP/UDP: Preserving recently used remote address: [AF_INET]<WAN IP>:1194
Jul 15 11:48:15	openvpn	20540	Socket Buffers: R=[42080->42080] S=[57344->57344]
Jul 15 11:48:15	openvpn	20540	UDPv4 link local (bound): [AF_INET]<WAN IP>:0
Jul 15 11:48:15	openvpn	20540	UDPv4 link remote: [AF_INET]<WAN IP>:1194
Jul 15 11:49:15	openvpn	20540	[UNDEF] Inactivity timeout (--ping-restart), restarting
Jul 15 11:49:15	openvpn	20540	SIGUSR1[soft,ping-restart] received, process restarting
Jul 15 11:49:15	openvpn	20540	Restart pause, 5 second(s)

Does anyone have any idea what I might be missing?

Another user seemed to have the same problem in this thread, but the comments that appeared to help him out has been deleted…

Okay, getting somewhere.  Maybe.

From my working CARP backup, I see that the certificate assigned to the user is not the same as the one assigned in the server config.  So, I was able to create the server, export my client stuff (using the Windows Installer option).  When I try to connect now I the client says

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

and in the OPenVPN logs on pfSense I see

Authenticate/Decrypt packet error: packet HMAC authentication failed
TLS Error: incoming packet authentication failed from [AF_INET]<client address=»»>:32784</client>

So, in the server I uncheck the box for Enable authentication of TLS packets and then I get this error in the client:

TLS Error: cannot locate HMAC in incoming packet from <server address=»»>:1194</server>

And that’s where I am stuck.  If I change the Server Mode to anything I get similar errors.  What is frustrating is the config in my CARP backup looks identical and it works fine.  Also, i am running on the latest snap as of now…  Wed Mar 23 09:48:32 EDT 2011

Aaron

OpenVPN error packet HMAC authentication failed can be resolved easily with a little help from our experts at Bobcares.

At Bobcares, we offer solutions for every query, big and small, as a part of our Server Management Service.

Let’s take a look at how our Support Team recently helped out a customer with OpenVPN error packet HMAC authentication failed.

How to resolve OpenVPN error packet HMAC authentication failed

OpenVPN is a popular option that allows people to use VPN on their devices as well as create protocol servers. Furthermore, it can be used for personal as well as business use. OpenVPN also ensures optimal speed along with top-notch security.

However, some users have come across errors while trying to run OpenVPN. Here is one of the more commonly seen errors:

‘Authenticate Decrypt packet error: packet HMAC authentication failed’.

This can be frustrating. Fortunately, our Support Techs have not one, but two ways to resolve this specific error.

  • Restart the device.
  • Replace configuration settings

Let’s take a look at each of these solutions in detail and see which helps resolve the error at your end.

Option 1: Restart the device

According to our Support Techs, restarting the device can help resolve the error in some cases. Many of our customers run their computers continuously for several days, causing the performance levels to dip. Furthermore, it also leaves the computer vulnerable to problems and errors.

In such situations, saving and closing all the applications and restarting the systems can be helpful. Moreover, this also allows your computer to upgrade to the latest version via windows updates. Once the device is back on, all you have to do is open up OpenVPN and start using it again.

Replace configuration settings

This solution involves deleting current configuration settings. Then we have to head to the official OpenVPN website and find the required settings for the Operating System we are using.

Once we download the file, we have to follow the steps in the user manual and then copy the new settings to the OpenVPN client. This process will replace the old settings are replaced by the new settings easily.

If you are still facing the error after trying out the two suggestions above, our Support Team can help you troubleshoot and come up with another solution. Call us today for a solution to this frustrating error.

[Looking for a solution to another query? We are just a click away.]

Conclusion

At the end of the day, our skilled Support Engineers at Bobcares demonstrated how to deal with OpenVPN error packet HMAC authentication failed.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

Обычно довольно легко настроить VPN с использованием OpenVPN. Это одна из самых привлекательных функций OpenVPN по сравнению с другими решениями VPN. Однако иногда необходимо устранить неполадки в нерабочей настройке или настроить существующую настройку для повышения производительности.

Устранение неполадок и настройка OpenVPN часто игнорируются. Файлы журнала OpenVPN на стороне клиента и сервера предоставляют много информации, но вы должны знать как их читать. При настройке файлов конфигурации клиента и сервера также допускается довольно много ошибок. В этой главе вы узнаете, как интерпретировать файлы журнала OpenVPN и как обнаруживать и исправлять некоторые из этих распространенных ошибок.

Наконец, существует большая разница между рабочей установкой и установкой, которая работает хорошо. Возможно, ваша установка OpenVPN работает правильно, но пользователи все равно могут жаловаться на низкую производительность. Получение максимальной производительности от установки OpenVPN может показаться черной магией. В этой главе вы узнаете немного этой черной магии.

В этой главе будут рассмотрены следующие темы:

  • Как читать файлы журнала
  • Исправление распространенных ошибок конфигурации
  • Устранение проблем с маршрутизацией
  • Как оптимизировать производительность с помощью ping и iperf
  • Анализ трафика OpenVPN с использованием tcpdump

Как читать файлы журнала

Поначалу отладка нерабочих настроек может показаться сложной задачей. С чего начать? К счастью, OpenVPN предоставляет отличные средства ведения журналов и отладки. Однако с увеличением степени детализации журналов становится все труднее читать эти файлы журналов. Уровень детализации журнала OpenVPN по умолчанию равен 1, но рекомендуется установить степень детализации 3. Это часто дает администратору достаточно информации для обнаружения проблем с настройкой, в то же время сводя к минимуму потери производительности.

Установка детальности на 5 или выше рекомендуется только для целей отладки, так как это сильно повлияет на производительность.

Каждый пример в этой книге до сих пор включал устанку verb 3. Во-первых, мы рассмотрим файлы журнала клиента и сервера для рабочей настройки с такой детальностью. Важно понимать и, возможно, даже хранить файлы журналов работающего соединения. При попытке найти ошибку в нерабочей настройке, очень полезно сравнивать файлы журнала нерабочего случая с файлами рабочей настройки.

Запустите сервер, используя файл конфигурации по умолчанию basic-udp-server.conf:

[root@server]# openvpn --config basic-udp-server.conf

Пока не подключайтесь к клиенту. Файл журнала сервера теперь будет содержать следующее:

 1 14:53:27 OpenVPN 2.3.6 x86_64-redhat-linux-gnu
            [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6]
            built on Dec 2 2014
 2 14:53:27 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013,
            LZO2.03
 3 14:53:27 Diffie-Hellman initialized with 2048 bit key
 4 14:53:31 WARNING: this configuration may cache passwords in
            memory -- use the auth-nocache option to prevent this
 5 14:53:31 Control Channel Authentication: using
            '/etc/openvpn/movpn/ta.key' as a OpenVPN static key
            file
 6 14:53:31 Outgoing Control Channel Authentication: Using 160
            bit message hash 'SHA1' for HMAC authentication
 7 14:53:31 Incoming Control Channel Authentication: Using 160
            bit message hash 'SHA1' for HMAC authentication
 8 14:53:31 Socket Buffers: R=[16777216->131072]
            S=[16777216->131072]
 9 14:53:31 TUN/TAP device tun0 opened
10 14:53:31 TUN/TAP TX queue length set to 100
11 14:53:31 do_ifconfig, tt->ipv6=0, tt-did_ifconfig_ipv6_setup=0
12 14:53:31 /sbin/ip link set dev tun0 up mtu 1500
13 14:53:31 /sbin/ip addr add dev tun0 10.200.0.1/24
broadcast 10.200.0.255
14 14:53:31 GID set to nobody
15 14:53:31 UID set to nobody
16 14:53:31 UDPv4 link local (bound): [undef]
17 14:53:31 UDPv4 link remote: [undef]
18 14:53:31 MULTI: multi_init called, r=256 v=256
19 14:53:31 IFCONFIG POOL: base=10.200.0.2 size=252, ipv6=0
20 14:53:31 Initialization Sequence Completed

Метки времени в начале каждой строки были сокращены для ясности.

Давайте посмотрим на этот файл журнала построчно:

  • Строки 1 и 2 указывают версию и дату сборки самого OpenVPN, а также библиотеки, от которых зависит OpenVPN.
  • Строка 3 говорит нам, что параметры Диффи-Хеллмана сервера были успешно инициализированы. Файл, указанный в строке конфигурации сервера dh /etc/openvpn/movpn/dh2048.pem был использован для этого.
  • Строка 4 — это предупреждение, которое печатается почти всегда. Разработчики обсуждали, следует ли удалить эту строку или нет. В конце концов было решено, что по соображениям безопасности лучше всего распечатать это предупреждение. Если вы не слишком озабочены безопасностью, то можете игнорировать эту строку предупреждения.
  • Строка 5 указывает, что канал управления защищен с использованием параметра конфигурации tls-auth и что OpenVPN смог успешно прочитать указанный файл.
  • Строки 6 и 7 сообщают нам, что два ключа SHA1 получены из файла tls-auth и теперь используются для подписи (хэширования) исходящего трафика и для проверки входящего трафика.
  • Строка 8 показывает размер буферов Receive (R) и Send (S), которые использует OpenVPN. Эти параметры полезны только при доработке рабочей настройки, как мы увидим позже в этой главе.
  • Строки 9 и 10 показывают что OpenVPN смог успешно открыть устройство tun и установить глубину очереди пакетов для этого устройства равной 100.
  • Строки с 11 по 13 показывают настройки IPv4, которые используются для этой конфигурации сервера. Они также указывают что не были заданы параметры IPv6. Перечисленные здесь настройки являются переводом строки конфигурации сервера server 10.200.0.0 255.255.255.0.
  • Строки 14 и 15 являются результатом указания group nobody и user nobody в файле конфигурации сервера соответственно.
  • Строки 16 и 17 показывают что OpenVPN прослушивает трафик UDP и привязан к неопределенному интерфейсу (0.0.0.0). Это результат указания proto udp и bind в файле конфигурации сервера.
  • Строка 18 говорит нам, что это мультиклиентская установка с реальными и виртуальными размерами таблицы хешей 256.
  • В строке 19 указан диапазон адресов пула, доступных клиентам OpenVPN, которые могут подключаться к этому серверу. Это также часть перевода строки конфигурации сервера server 10.200.0.0 255.255.255.0.
  • Строка 20 — это волшебная строка, которая сообщает нам, что сервер успешно запущен и инициализация завершена. Сервер теперь готов принимать соединения от входящих клиентов.

Далее мы запускаем клиент и смотрим файл журнала на стороне сервера:

[root@client]# openvpn --config basic-udp-client.conf

После этого мы также рассмотрим файл журнала на стороне клиента:

21 15:30:37 <CLIENT-IP>:39086 TLS: Initial packet from
            [AF_INET]<CLIENT-IP>:39086, sid=071ba589 7e9ff2a0
22 15:30:37 <CLIENT-IP>:39086 VERIFY OK: depth=1, C=ZA,
            ST=Enlightenment, L=Overall, O=Mastering OpenVPN,
            CN=Mastering OpenVPN, emailAddress=root@example.org
23 15:30:37 <CLIENT-IP>:39086 VERIFY OK: depth=0, C=ZA,
            ST=Enlightenment, O=Mastering OpenVPN, CN=client3,
            emailAddress=root@example.org
24 15:30:37 <CLIENT-IP>:39086 Data Channel Encrypt: Cipher
            'BF-CBC' initialized with 128 bit key
25 15:30:37 <CLIENT-IP>:39086 Data Channel Encrypt: Using 160 bit
            message hash 'SHA1' for HMAC authentication
26 15:30:37 <CLIENT-IP>:39086 Data Channel Decrypt: Cipher
            'BF-CBC' initialized with 128 bit key
27 15:30:37 <CLIENT-IP>:39086 Data Channel Decrypt: Using 160 bit
            message hash 'SHA1' for HMAC authentication
28 15:30:37 <CLIENT-IP>:39086 Control Channel: TLSv1, cipher
            TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
29 15:30:37 <CLIENT-IP>:39086 [client3] Peer Connection Initiated
            with [AF_INET]<CLIENT-IP>:39086
30 15:30:37 client3/<CLIENT-IP>:39086 MULTI_sva: pool returned
            IPv4=10.200.0.2, IPv6=(Not enabled)
31 15:30:37 client3/<CLIENT-IP>:39086 MULTI: Learn: 10.200.0.2 →
            client3/<CLIENT-IP>:39086
32 15:30:37 client3/<CLIENT-IP>:39086 MULTI: primary virtual IP
            for client3/<CLIENT-IP>:39086: 10.200.0.2
33 15:30:39 client3/<CLIENT-IP>:39086 PUSH: Received control
            message: 'PUSH_REQUEST'
34 15:30:39 client3/<CLIENT-IP>:39086 send_push_reply():
            safe_cap=940
35 15:30:39 client3/<CLIENT-IP>:39086 SENT CONTROL [client3]:
            'PUSH_REPLY,route-gateway 10.200.0.1,topology subnet,
            ping 10,ping-restart 60,
            ifconfig 10.200.0.2 255.255.255.0' (status=1)

Давайте пройдемся по новым записям журнала:

  • Строка 21 указывает, что исходный пакет был получен от клиента с IP-адресом <CLIENT-IP>. Обычно полный адрес IPv4 указан здесь.
  • Строки 22 и 23 показывают процесс проверки сертификата, предоставленного клиентом OpenVPN. Важной частью в этих строках журнала является VERIFY-OK.
  • Строки с 24 по 27 перечисляют используемый шифр шифрования и дешифрования, а также хэши SHA1, используемые для хеширования входящего и исходящего трафика в канале данных. BF-CBC (Blowfish Cipher Block Chaining) — текущий шифр по умолчанию для OpenVPN.
  • В строке 28 показан шифр TLS, используемый для защиты канала управления OpenVPN. Перечисленный здесь шифр очень похож на код шифрования, используемый защищенным веб-сервером.
  • Строка 29 указывает, что клиент client3 с IP-адреса <CLIENT-IP> успешно прошел процесс аутентификации.
  • В строках с 30 по 32 указывается адрес пула, который будет назначен этому клиенту.
  • Строки с 33 по 34 показывают что клиент запросил информацию о конфигурации (PUSH REQUEST) и ответ от сервера — он отправляет push_reply.
  • Строка 35 показывает содержимое сообщения push_reply со всей информацией о конфигурации для этого клиента. Эта строка чрезвычайно полезна при отладке установки OpenVPN, поскольку она показывает большую часть информации, которую сервер OpenVPN имеет для конкретного клиента, независимо от используемого файла конфигурации.

Аналогично, вот файл журнала клиента (запишите временные метки и сопоставьте их с временными метками из файла журнала сервера):

 1 15:30:37 OpenVPN 2.3.6 x86_64-redhat-linux-gnu
            [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6]
            built on Dec 2 2014
 2 15:30:37 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013,
            LZO 2.03
 3 15:30:37 Control Channel Authentication: using
            '/etc/openvpn/movpn/ta.key' as a OpenVPN static key
            file
 4 15:30:37 UDPv4 link local: [undef]
 5 15:30:37 UDPv4 link remote: [AF_INET]<SERVER-IP>:1194
 6 15:30:37 [Mastering OpenVPN Server] Peer Connection Initiated
            with [AF_INET]<SERVER-IP>:1194
 7 15:30:39 TUN/TAP device tun0 opened
 8 15:30:39 do_ifconfig, tt->ipv6=0, tt-did_ifconfig_ipv6_setup=0
 9 15:30:39 /sbin/ip link set dev tun0 up mtu 1500
10 15:30:39 /sbi/nip addr add dev tun0 10.200.0.2/24
            broadcast 10.200.0.255
11 15:30:39 Initialization Sequence Completed

Давайте пройдемся по новым записям журнала:

  • Строки 1 и 2 очень похожи на строки из журнала сервера.
  • Строка 3 указывает, что канал управления защищен с помощью параметра конфигурации tls-auth и OpenVPN смог успешно прочитать указанный файл.
  • Строки 4 и 5 говорят нам что клиент не связывался с локальным IP-адресом и было установлено соединение UDP с сервером по IP-адресу <SERVER-IP> и порту 1194.
  • В строке 6 указано, что соединение с сервером OpenVPN, идентифицирующим себя как Mastering OpenVPN Server, было успешно установлено. Имя сервера извлекается из общего имени (common name) сертификата на стороне сервера.
  • Строка 7 говорит нам, что OpenVPN смог открыть TUN-устройство tun0.
  • Строки с 8 по 10 перечисляют информацию IPv4, которую сервер передал к этому клиенту и показывают, что IP-адрес и маска сети задаются с помощью стандартной команды Linux /sbin/ip.
  • Строка 11 снова является волшебной строкой, которая сообщает нам, что VPN-соединение было успешно установлено и теперь мы можем безопасно общаться с сервером OpenVPN. Однако, как мы увидим позже, сообщения об ошибках могут еще не появиться.

Обнаружение неработающей установки

Установка OpenVPN может не работать по многим причинам. В следующем разделе мы рассмотрим список распространенных сбоев. Во-первых, давайте посмотрим, что отображается в файлах журналов при неудачной попытке подключения. Сбои могут возникать очень рано при попытке подключения или даже после строки Initialization Sequence Completed.

Если мы используем неправильный файл tls-auth, соединение очень рано оборвется. Это как раз и является причиной использования файла tls-auth, поскольку минимизирует нагрузку на наш сервер OpenVPN, когда мошеннические клиенты пытаются получить доступ. Клиент, который пытается подключиться без указания файла tls-auth, будет отображаться в журналах сервера следующим образом:

16:40:31 Authenticate/Decrypt packet error:
         packet HMAC authentication failed
16:40:31 TLS Error: incoming packet authentication failed from
         [AF_INET]<CLIENT-IP>:49956
16:40:33 Authenticate/Decrypt packet error:
         packet HMAC authentication failed
16:40:33 TLS Error: incoming packet authentication failed from
         [AF_INET]<CLIENT-IP>:49956
16:40:37 Authenticate/Decrypt packet error:
         packet HMAC authentication failed
16:40:37 TLS Error: incoming packet authentication failed from
         [AF_INET]<CLIENT-IP>:49956
16:40:45 Authenticate/Decrypt packet error:
         packet HMAC authentication failed
16:40:45 TLS Error: incoming packet authentication failed from
         [AF_INET]<CLIENT-IP>:49956
16:41:01 Authenticate/Decrypt packet error:
         packet HMAC authentication failed
16:41:01 TLS Error: incoming packet authentication failed from
         [AF_INET]<CLIENT-IP>:49956

Об этом клиенте больше ничего не сообщается, поскольку сервер OpenVPN немедленно отклоняет попытку подключения. Из временных меток в файле журнала мы видим, что клиент увеличивает время задержки между попытками соединения с каждым неудачным соединением. Если в течение 60 секунд соединение не может быть установлено, клиент прервет:

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

Второй сбой соединения станет очевидным только после того, как соединение будет успешно инициализировано. Для этого мы указываем использование другого кодирующего шифра на одной стороне, но забываем сделать это на другой. В файле журнала клиента теперь будет отображаться следующее:

16:56:20 /sbin/ip link set dev tun0 up mtu 1500
16:56:20 /sbin/ip addr add dev tun0 10.200.0.2/24 broadcast 10.200.0.255
16:56:20 Initialization Sequence Completed
16:56:30 Authenticate/Decrypt packet error: cipher final failed
16:56:40 Authenticate/Decrypt packet error: cipher final failed

Таким образом, сначала соединение, кажется, было успешно установлено (строки с 1 по 3), но через 10 секунд шифрование и дешифрование канала данных не удается.


Заметка

Если бы в этом случае использовался графический интерфейс Windows, значок графического интерфейса стал бы зеленым, но сама VPN не работала бы!


Во время инициализации будет сообщено о большинстве проблем конфигурации на стороне сервера или клиента. О проблемах маршрутизации, которые встречаются гораздо чаще, OpenVPN обычно не сообщает. Следовательно, требуются различные методы устранения неполадок.

Исправление распространенных ошибок конфигурации

При настройке конфигурации OpenVPN есть несколько распространенных ошибок, которые легко допустить. Эти ошибки конфигурации можно условно разделить на четыре категории:

  • Сертификат (PKI) ошибки и несоответствия
  • Несоответствие опций, таких как tun по сравнению с tap, шифрование и сжатие
  • Недостаточно прав для запуска OpenVPN
  • Ошибки маршрутизации

В этом разделе мы рассмотрим первые три из этих категорий. Ошибки маршрутизации будут обсуждаться позже в этой главе.

Неправильный сертификат CA в конфигурации клиента

Файл конфигурации клиента почти всегда будет содержать три строки, подобные этой:

ca ca.crt
cert client.crt
key client.key

Эти файлы сертификатов и секретных ключей были созданы в главе 3, PKI и сертификаты и широко используются в последующих главах.
Файл CA, однако, не должен указывать центр сертификации, который использовался для подписи файла сертификата клиента. Это должен быть публичный сертификат центра сертификации, который использовался для подписи сертификата сервера. Если сертификат сервера был подписан другим центром сертификации, клиент откажется подключиться к серверу. Это можно увидеть в файле журнала на стороне клиента:

UDPv4 link remote: [AF_INET]<SERVER-IP>:1194
VERIFY ERROR: depth=1, error=self signed certificate in certificate
chain: C=ZA, ST=Enlightenment, L=Overall, O=Mastering OpenVPN,
CN=Mastering OpenVPN, emailAddress=root@example.org
TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed

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

Единственное, что зарегистрируется на сервере, это:

<CLIENT-IP>:42472 TLS: Initial packet from
    [AF_INET]<CLIENT-IP>:42472, sid=9a1e4a84 cdbb6926
<CLIENT-IP>:51441 TLS: Initial packet from
    [AF_INET]<CLIENT-IP>:51441, sid=17d3c89b 6999ae97
<CLIENT-IP>:43513 TLS: Initial packet from
    [AF_INET]<CLIENT-IP>:43513, sid=4609202f 4c91c23d

Это показывает последовательные попытки подключения, которые сделаны клиентом OpenVPN.

Как исправить

Убедитесь, что в файле конфигурации клиента указан правильный файл CA.

Сертификат клиента не распознан сервером

Если сертификат клиента не распознан сервером — сервер откажет в доступе к нему. Это может произойти, если используется неправильный (или мошеннический) клиентский сертификат или если клиентский сертификат был отозван, а опция crl-verify указана в файле конфигурации сервера.

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

<CLIENT-IP>:57072 TLS: Initial packet from
    [AF_INET]<CLIENT-IP>:57072, sid=a175f1be 6faed111
<CLIENT-IP>:57072 VERIFY ERROR: depth=0, error=unable to get
    local issuer certificate: C=NL, O=Cookbook, CN=client1,
    name=Cookbook Client, emailAddress=janjust@nikhef.nl
<CLIENT-IP>:57072 TLS_ERROR: BIO read tls_read_plaintext error:
    error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:
    no certificate returned
<CLIENT-IP>:57072 TLS Error: TLS object -> incoming plaintext
    read error
<CLIENT-IP>:57072 TLS Error: TLS handshake failed

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

На стороне клиента никакие сообщения не печатаются в файле журнала в течение 60 секунд, после чего первоначальное рукопожатие прекращается и делается новая попытка подключения:

13:24:23 UDPv4 link local: [undef]
13:24:23 UDPv4 link remote: [AF_INET]<SERVER-IP>:1194
13:25:23 TLS Error:
TLS key negotiation failed to occur within
    60 seconds (check your network connectivity)
13:25:23 TLS Error: TLS handshake failed
13:25:23 SIGUSR1[soft,tls-error] received, process restarting
13:25:25 Control Channel Authentication: using
    '/etc/openvpn/movpn/ta.key' as a OpenVPN static key file
13:25:25 UDPv4 link local: [undef]
13:25:25 UDPv4 link remote: [AF_INET]<SERVER-IP>:1194

Как исправить

Убедитесь, что сертификат клиента распознается сервером. Это можно сделать либо указав соответствующий сертификат CA в файле конфигурации сервера, либо добавив сертификат CA в составленный файл сертификата CA в файле конфигурации сервера:

# cat CA1.crt CA2.crt > /etc/openvpn/movpn/ca-stack.pem

Далее используйте следующее в конфигурации сервера:

ca /etc/openvpn/movpn/ca-stack.pem

Таким образом, клиентские сертификаты, подписанные CA1.crt или CA2.crt будут приняты сервером.

Конечно, если это мошенник, пытающийся подключиться, то более подходящим решением может быть черный список IP-адресов, с которых клиент подключается.

Несоответствие сертификата клиента и приватного ключа

Если сертификат и закрытый ключ на клиенте не совпадают, то OpenVPN даже не будет пытаться подключиться к серверу. Вместо этого в файле журнала будет напечатана следующая ошибка:

Cannot load private key file /etc/openvpn/movpn/client1.key:
error:0B080074:x509 certificate routines:
    X509_check_private_key:key values mismatch
Error: private key password verification failed
Exiting due to fatal error

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

Как исправить

Убедитесь, что сертификат клиента и приватный ключ совпадают. Удивительно, но для этого не существует простого в использовании инструмента. Чтобы выяснить, принадлежат ли сертификат и закрытый ключ друг другу — мы можем использовать следующие команды и искать разделы modulus:

$ openssl x509 -text -noout -in client1.crt
[…]
  Public Key Algorithm: rsaEncryption
  Public-Key: (2048 bit)
  Modulus:
    00:b2:17:bd:31:6d:56:d9:eb:c9:09:98:e2:c1:48:
    c9:6a:e4:4a:6b:54:52:ea:1e:60:94:6b:cb:5e:d5:
    a1:ef:83:05:f8:cf:a4:06:df:06:ee:d6:c8:75:65:
    de:a7:96:68:a1:41:d1:9d:f0:2c:84:3f:ca:b9:d2:
    e8:07:af:37:48:24:69:57:4e:09:70:66:47:6c:47:
    36:4d:c9:29:13:eb:ed:c1:aa:cd:36:84:3c:55:18:
    bc:ce:01:34:b5:89:04:dc:09:c5:ea:f2:57:9f:c2:
    f5:c1:05:dd:66:4d:11:13:05:47:46:26:1a:55:18:
    51:bd:89:65:ba:0d:89:bd:ea:03:58:5e:d3:d9:96:
    a5:5e:2f:5f:b9:c8:88:fc:48:95:cb:4a:b2:12:3b:
    b5:ed:4c:40:4c:50:8d:1d:eb:a5:c9:c0:e6:2c:ec:
    01:0a:56:ac:db:9e:e7:56:f0:06:f7:ba:b6:ac:de:
    41:d4:fb:b3:d6:f5:fe:13:b4:03:81:d9:f7:7c:2e:
    60:2f:9c:5a:81:eb:2e:3a:e1:c4:8b:f8:b6:8d:2d:
    f7:ec:7a:f6:2c:ff:af:1c:d2:7b:58:ca:9e:d1:f4:
    ed:8a:7a:35:00:97:a3:35:dd:79:02:b4:79:9a:66:
    3c:5e:c8:4d:87:eb:68:5d:45:29:73:70:7f:61:28:
    67:b1

$ openssl rsa -text -noout -in client1.key
Private-Key: (2048 bit)
modulus:
    00:b2:17:bd:31:6d:56:d9:eb:c9:09:98:e2:c1:48:
    c9:6a:e4:4a:6b:54:52:ea:1e:60:94:6b:cb:5e:d5:
    a1:ef:83:05:f8:cf:a4:06:df:06:ee:d6:c8:75:65:
    de:a7:96:68:a1:41:d1:9d:f0:2c:84:3f:ca:b9:d2:
    e8:07:af:37:48:24:69:57:4e:09:70:66:47:6c:47:
    36:4d:c9:29:13:eb:ed:c1:aa:cd:36:84:3c:55:18:
    bc:ce:01:34:b5:89:04:dc:09:c5:ea:f2:57:9f:c2:
    f5:c1:05:dd:66:4d:11:13:05:47:46:26:1a:55:18:
    51:bd:89:65:ba:0d:89:bd:ea:03:58:5e:d3:d9:96:
    a5:5e:2f:5f:b9:c8:88:fc:48:95:cb:4a:b2:12:3b:
    b5:ed:4c:40:4c:50:8d:1d:eb:a5:c9:c0:e6:2c:ec:
    01:0a:56:ac:db:9e:e7:56:f0:06:f7:ba:b6:ac:de:
    41:d4:fb:b3:d6:f5:fe:13:b4:03:81:d9:f7:7c:2e:
    60:2f:9c:5a:81:eb:2e:3a:e1:c4:8b:f8:b6:8d:2d:
    f7:ec:7a:f6:2c:ff:af:1c:d2:7b:58:ca:9e:d1:f4:
    ed:8a:7a:35:00:97:a3:35:dd:79:02:b4:79:9a:66:
    3c:5e:c8:4d:87:eb:68:5d:45:29:73:70:7f:61:28:
    67:b1
[…]

Если мы посмотрим на модуль с открытого ключа (сертификата) и приватного ключа, то увидим что они одинаковы. Таким образом, этот сертификат и приватный ключ принадлежат друг другу.


Подсказка

При сравнении модулей часто достаточно сравнить первые несколько байтов, а затем последние несколько байтов.


Несоответствие ключей auth и tls-auth

Параметры auth и tls-auth используются для аутентификации пакетов канала управления и канала данных с использованием алгоритма подписи HMAC. Значением по умолчанию для алгоритма аутентификации HMAC является SHA1, в котором используются 160-битные ключи. Для опции tls-auth нет значения по умолчанию, так как оно не требуется. Однако этот вариант рекомендуется, поскольку он обеспечивает дополнительный уровень защиты от DDoS-атак.

Если алгоритм аутентификации, указанный в конфигурации клиента и сервера, не совпадает, то сервер не позволит клиенту начать квитирование безопасности TLS. Аналогичным образом, если файлы tls-auth на клиенте и сервере не совпадают или если с обеих сторон указан неверный параметр direction — сервер также не позволит клиенту начать квитирование безопасности TLS.

Обычно в файле конфигурации сервера указывается следующая опция:

tls-auth /etc/openvpn/movpn/ta.key 0

Соответственно, на клиенте у нас есть следующая опция:

tls-auth /etc/openvpn/movpn/ta.key 1

Здесь второй параметр определяет direction из tls-auth для используемых ключей. Этот параметр не обязателен, но он позволяет OpenVPN использовать разные ключи хеширования (или HMAC) для входящего и исходящего трафика. Ключ, используемый на клиенте для подписи исходящего трафика, должен совпадать с ключом, используемым на сервере для проверки входящего трафика, и наоборот.

Если используется неверный файл ключей tls-auth или если направление опущено или указано неверно, в журнале сервера появятся следующие записи:

Authenticate/Decrypt packet error: packet HMAC
    authentication failed
TLS Error: incoming packet authentication failed from
    [AF_INET]<CLIENT-IP>:54377

В то же время, клиент просто попытается подключиться в течение 60 секунд, прежде чем произойдет тайм-аут.

Как исправить

Убедитесь, что используется один и тот же файл tls-auth в файлах конфигурации клиента и сервера. Также убедитесь, что параметр direction указан правильно на обоих концах (если используется вообще).

Если вы все еще не уверены, какие ключи HMAC используются для входящих и исходящих соединений, то можете увеличить детализацию файла журнала, чтобы увидеть фактические ключи, используемые как клиентом, так и сервером. Давайте добавим следующее в файлы конфигурации клиента и сервера:

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

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

Outgoing Control Channel Authentication:
    Using 160 bit message hash 'SHA1' for HMAC authentication
Outgoing Control Channel Authentication:
    HMAC KEY: 4660a714 7f4d33f9 d2f7c61a 9f1d5743 4bf9411e
Outgoing Control Channel Authentication:
    HMAC size=20 block_size=20
Incoming Control Channel Authentication:
    Using 160 bit message hash 'SHA1' for HMAC authentication
Incoming Control Channel Authentication:
    HMAC KEY: cd1f6d9c 88db5ec7 d7977322 e01d14f1 26ee4e22
Incoming Control Channel Authentication:
    HMAC size=20 block_size=20

Строка HMAC size = 20 соответствует тому, что используется 160-битовое хеширование с помощью SHA1, так как 160 соответстуют как 20 байт.

Если на стороне клиента используются правильный файл tls-auth и параметр direction, мы найдем следующее:

Outgoing Control Channel Authentication:
    Using 160 bit message hash 'SHA1' for HMAC authentication
Outgoing Control Channel Authentication:
    HMAC KEY: cd1f6d9c 88db5ec7 d7977322 e01d14f1 26ee4e22
Outgoing Control Channel Authentication:
    HMAC size=20 block_size=20
Incoming Control Channel Authentication:
    Using 160 bit message hash 'SHA1' for HMAC authentication
Incoming Control Channel Authentication:
    HMAC KEY: 4660a714 7f4d33f9 d2f7c61a 9f1d5743 4bf9411e
Incoming Control Channel Authentication:
    HMAC size=20 block_size=20

Ключи аутентификации входящего и исходящего каналов управления зеркально отображаются на клиенте и на сервере, обеспечивая надлежащую аутентификацию TLS.

Несоответствие размера MTU

OpenVPN использует два размера максимальной единицы передачи (MTU):

  • tun-mtu: указывает настройку MTU адаптера tun и указывает максимальный размер каждого пакета внутри VPN-туннеля.
  • link-mtu: указывает максимальный размер каждого пакета вне туннеля. Он включает в себя все биты заполнения, шифрования и аутентификации, но это не фактический размер пакета при передаче по сети. Фактический размер пакета не может быть определен заранее, так как размер каждого пакета может отличаться из-за алгоритмов сжатия и шифрования.

Значение по умолчанию для параметра tun-mtu составляет 1500 байт, что также является размером MTU по умолчанию для адаптера Ethernet. При нормальных обстоятельствах мы можем использовать следующую формулу для вычисления размера link-mtu из размера tun-mtu:

link-mtu = tun-mtu + constant

Здесь constant зависит от используемых параметров конфигурации. Среди параметров конфигурации, которые влияют на эту константу, мы имеем следующие:

  • Варианты сжатия, такие как comp-lzo и comp-noadapt
  • Размер вектора инициализации (IV) параметра шифрования опции cipher
  • Опция fragment, добавляющая дополнительный байт
  • Опция no-replay, которая удаляет байт.

Если мы видим несоответствие предупреждений link-mtu — это обычно указывает на неправильную конфигурацию в других местах наших файлов конфигурации клиента и сервера. Как вы увидите в последующих примерах, несоответствие в link-mtu между клиентом и сервером может происходить довольно часто. Обычно VPN-соединение не будет работать правильно, если имеется несоответствие link-mtu.


Подсказка

Не поддавайтесь искушению исправить само предупреждение link-mtu явно установив его. Сначала исправьте другие предупреждения, которые могли вызвать появление предупреждения link-mtu.


Параметр link-mtu также имеет большое значение при настройке VPN-соединения.

Чтобы получить максимальную производительность от VPN-соединения — нам нужно убедиться, что пакеты не фрагментируются операционной системой, поскольку это сильно повлияет на производительность. В частности, для спутниковых каналов это может привести к снижению производительности почти до полной остановки.

Если на стороне сервера указан другой размер MTU по сравнению со стороной клиента, в файлах журнала появится следующее предупреждение:

WARNING: 'link-mtu' is used inconsistently,
    local='link-mtu 1441', remote='link-mtu 1541'
WARNING: 'tun-mtu' is used inconsistently,
    local='tun-mtu 1400', remote='tun-mtu 1500'

Это показывает, что для конфигурации default, издержки link-mtu на самом деле составляют 41 байт. Здесь мы добавили в файл конфигурации клиента:

На этом этапе VPN-соединение будет функционировать. Однако производительность будет ограничена, так как пакеты должны быть фрагментированы и повторно собраны. При такой настройке можно вызвать ошибку, отправив большие пакеты ICMP с установленным флагом not fragment . В Linux/FreeBSD это можно сделать с помощью следующей команды:

$ ping -M do -s 1450 10.200.0.2

В Windows мы используем следующее:

C:> ping -f -l 1450 10.200.0.2

Это приведет к 100-процентной потере пакета для команды ping, а также будет отображаться в файле журнала:

Authenticate/Decrypt packet error:
    packet HMAC authentication failed

Это сообщение об ошибке может сначала показаться странным, но оно вызвано тем, что отправляющая сторона создала и подписала пакет, размер которого превышает 1400 байт. Клиент получает только первые 1400 байтов этого пакета и проверяет подпись, которая терпит неудачу. Затем он отклоняет пакет и распечатывает ошибку.

Как исправить

Убедитесь, что, если вы хотите использовать опцию tun-mtu — она указана в файлах конфигурации клиента и сервера.

Несоответствие шифра

Шифр кодирования, который используется для канала данных OpenVPN, можно указать, используя следующую опцию со значением по умолчанию BF-CBC:

Если в файле конфигурации клиента указан другой шифр, чем в файле конфигурации сервера, то в файлах журнала с обеих сторон будет напечатано предупреждающее сообщение, но VPN-соединение будет установлено. Однако, как только любой трафик проходит по нему, он не сможет расшифровать. Мы можем видеть это в следующем фрагменте из файла журнала на стороне клиента:

WARNING: 'link-mtu' is used inconsistently,
    local='link-mtu 1557', remote='link-mtu 1541'
WARNING: 'cipher' is used inconsistently,
    local='cipher AES-256-CBC', remote='cipher BF-CBC'
WARNING: 'keysize' is used inconsistently,
    local='keysize 256', remote='keysize 128'
[Mastering OpenVPN Server] Peer Connection Initiated
    with [AF_INET]<SERVER-IP>:1194
TUN/TAP device tun0 opened
do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
/sbi/nip link set dev tun0 up mtu 1500
/sbi/nip addr add dev tun0 10.200.0.2/24 broadcast 10.200.0.255
Initialization Sequence Completed
Authenticate/Decrypt packet error: cipher final failed

Три напечатанных предупреждения изначально показывают как другой тип, так и другой размер используемого шифра. Шифр Blowfish по умолчанию использует 128-битную стойкость, тогда как AES-256 — 256-битную стойкость, что приводит к немного большему зашифрованному пакету (link-mtu 1541 байт для Blowfish по сравнению с link-mtu 1557 байт для AES-256).

Как исправить

Убедитесь, что в файлах конфигурации клиента и сервера указан один и тот же шифр. Поскольку файлы журналов клиента и сервера выводят ожидаемый шифр, исправить эту ошибку довольно просто.


Заметка

В настоящее время невозможно передать шифр с сервера на клиент. Это в списке пожеланий разработчиков OpenVPN, но оно оказывает существенное влияние на код. Он не будет добавлено в OpenVPN до версии 2.4 или даже 2.5.

Несоответствие компрессии

OpenVPN имеет возможность сжимать весь VPN-трафик на лету. Для определенных типов трафика, таких как обычный веб-трафик, это может повысить производительность VPN, но добавляет дополнительные издержки к протоколу VPN. Для несжимаемого трафика эта опция фактически немного снижает производительность.

Параметр, используемый для указания сжатия в настоящее время, выглядит следующим образом:

comp-lzo [no|yes|adaptive]

Обратите внимание, что нам не нужно указывать второй параметр. Значение по умолчанию является адаптивным, если используется сжатие.

Как мы узнаем в Главе 10, Будущие направления , этот вариант будет заменен более общим вариантом compression, что позволит различные механизмы сжатия.

Можно передать опцию compression с сервера на клиент, но только если опция сжатия была указана в самом файле конфигурации клиента. Если файл конфигурации клиента не содержит такой опции, VPN-соединение не будет установлено. В файле журнала клиента будет показано следующее:

UDPv4 link remote: [AF_INET]<SERVER-IP>:1194
WARNING: 'link-mtu' is used inconsistently,
    local='link-mtu 1541', remote='link-mtu 1542'
WARNING: 'comp-lzo' is present in remote config but
    missing in local config, remote='comp-lzo'
[Mastering OpenVPN Server] Peer Connection Initiated with
    [AF_INET]<SERVER-IP>:1194
TUN/TAP device tun0 opened
do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
sbinip link set dev tun0 up mtu 1500
sbinip addr add dev tun0 10.200.0.2/24 broadcast 10.200.0.255
Initialization Sequence Completed
write to TUN/TAP : Invalid argument (code=22)

Файл журнала сервера будет содержать те же сообщения WARNING, а также будет отображать предупреждения распаковки:

client3/<CLIENT-IP>:45113 Bad LZO decompression header byte: 42

Заметка

Странно, но верно: если мы будем ждать достаточно долго, клиент будет перезагружен из-за ошибок сжатия и попытается восстановить соединение. На этот раз, однако, соединение будет успешным, так как опция comp-lzo все еще находится в памяти.


Как исправить

Убедитесь, что, если вы хотите использовать сжатие, опция comp-lzo указана в файлах конфигурации клиента и сервера. С опцией comp-lzo в файле конфигурации на стороне клиента мы теперь можем контролировать тип сжатия, используемый на стороне сервера, используя опцию push. Используйте следующее:

comp-lzo no
push "comp-lzo no"

Это отключит сжатие, но, к сожалению, это не то же самое, что вообще не указывать какой-либо метод сжатия. Надеемся, что это будет решено в будущем выпуске.

Несоответствие фрагмента

Одним из наиболее часто используемых параметров настройки является опция fragment. Подробнее об этой опции вы узнаете в разделе Как оптимизировать производительность с помощью ping и iperf далее в этой главе.

Как и параметр comp-lzo, параметр fragment указывать не нужно ни с одной стороны. Однако мы не можем указать его только с одной стороны; он должен быть настроен на обоих. Если он указан только с одной стороны, то также должен быть указан и с другой. Технически говоря, даже нет необходимости использовать одно и то же значение для параметра fragment с обеих сторон, но это рекомендуется.

Если опция fragment не указана на стороне клиента, но используется на стороне сервера, то VPN-соединение не будет работать должным образом, как видно из журнала клиента:

WARNING: 'link-mtu' is used inconsistently,
  local='link-mtu 1541', remote='link-mtu 1545'
WARNING: 'mtu-dynamic' is present in remote config but
  missing in local config, remote='mtu-dynamic'
[Mastering OpenVPN Server] Peer Connection Initiated with
  [AF_INET]194.171.96.101:1194
TUN/TAP device tun0 opened
do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
sbinip link set dev tun0 up mtu 1500
sbinip addr add dev tun0 10.200.0.2/24 broadcast 10.200.0.255
Initialization Sequence Completed
write to TUN/TAP : Invalid argument (code=22)

Опять же, это будет выглядеть так, как будто VPN подключился (Initialization sequence completed), но файл журнала заполнится сообщениями об ошибках с code=22 .

Обратите внимание, что в предупреждении фактически указан mtu-dynamic, который является устаревшим названием этой функции.

Как исправить

Убедитесь, что, если вы хотите использовать параметр fragment — он указывается в файлах конфигурации клиента и сервера.

Обратите внимание, что, в отличие от опции comp-lzo, эту функцию нельзя передать с сервера на клиент.

Несоответствие tun и tap

Наиболее распространенный вариант использования сети в стиле tap — это мостовая установка, как мы узнали из Главы 6 , Режим клиент /сервер с помощью tap-устройств. Однако не все устройства поддерживают сеть в стиле tap. В частности, все устройства Android и iOS не имеют этой возможности. Следовательно, если мы подключим такое устройство к серверу OpenVPN в стиле tap, в файле журнала сервера будут перечислены предупреждения от этих клиентов:

<CLIENT-IP>:39959 WARNING: 'dev-type' is used inconsistently,
    local='dev-type tap', remote='dev-type tun'
<CLIENT-IP>:39959 WARNING: 'link-mtu' is used inconsistently,
    local='link-mtu 1573', remote='link-mtu 1541'
<CLIENT-IP>:39959 WARNING: 'tun-mtu' is used inconsistently,
    local='tun-mtu 1532', remote='tun-mtu 1500'

Помимо этих предупреждений сервер не обнаружит ничего о подключающихся клиентах. На клиенте аналогичные предупреждения будут перечислены вместе с этим:

WARNING: Since you are using --dev tun with a point-to-point
topology, the second argument to --ifconfig must be an IP address.
You are using something (255.255.255.0) that looks more like a
netmask. (silence this warning with --ifconfig-nowarn)

Так как мы не можем передать топологию подсети в настройке стиля tap, клиент возвращается к сети по умолчанию в стиле Net30. Этот тип сети по своей сути несовместим с сетью в стиле tap, но, кроме этого, клиент не выдает никаких предупреждений или ошибок.

Даже если бы мы (ошибочно) добавили topology subnet для подавления этого предупреждения на клиенте, VPN все равно не работал бы правильно.

Как исправить

Убедитесь, что с обеих сторон используется один и тот же тип сети (tun или tap). Если вам необходимо использовать устройства Android или iOS — вы должны настроить конфигурацию сервера в стиле tun, так как эти операционные системы не поддерживают сеть в стиле tap.

Проблемы с client-config-dir

В Главе 4, Режим клиент/сервер с TUN устройствами, мы узнали о CCD-файлах и их использование в разделе Специфичная для клиента конфигурация — файлы CCD. Файлы CCD обычно используются для подключения клиентской локальной сети к сети сервера с помощью оператора iroute.

Опыт работы со списками рассылки и форумами OpenVPN показал, что опция client-config-dir подвержена ошибкам и неправильной настройке. Вот три основные причины этого:

  • Файл CCD или каталог, в котором он находится, не может быть прочитан OpenVPN после переключения на safe пользователя, такого как nobody.
  • Опция client-config-dir указана без абсолютного пути.
  • Имя файла CCD указано неверно. Обычно имя файла CCD совпадает с именем из поля /CN= сертификата клиента, без части /CN= и без какого-либо расширения!

При нормальном уровне журнала OpenVPN не жалуется, если не может найти или прочитать файл CCD. Он просто обрабатывает входящее соединение как стандартное соединение, и, таким образом, требуемый оператор iroute никогда не достигается.

Самый простой способ отладки — это временно добавить дополнительную опцию в конфигурацию сервера:

Перезагрузите сервер и клиент попытается восстановить соединение. Если сервер не может прочитать соответствующий файл CCD для подключающегося клиента — он откажет в доступе. Если это произойдет — мы знаем, что файл CCD не был прочитан. Если клиент может подключиться, то возникает другая проблема — скорее всего, проблема маршрутизации.

Другой способ увидеть что сервер OpenVPN делает с файлами CCD — это повысить уровень журнала до 4 и повторно подключить клиента, для которого указан файл CCD. Содержимое этого CCD-файла для клиента с сертификатом /CN=client1 выглядит следующим образом:

ifconfig-push 10.200.0.99 255.255.255.0
iroute 192.168.4.0 255.255.255.0

Это дает команду серверу OpenVPN назначить IP-адрес VPN 10.200.0.99 для этого клиента и для маршрутизации подсети 192.168.4.0./24 через него. Файл журнала сервера теперь содержит следующее:

<CLIENT-IP>:38876 [client1] Peer Connection Initiated with
[AF_INET]<CLIENT-IP>:38876
client1/<CLIENT-IP>:38876 OPTIONS IMPORT: reading client specific
options from: /etc/openvpn/movpn/clients/client1
client1/<CLIENT-IP>:38876 MULTI: Learn: 10.200.0.99 ->
client1/<CLIENT-IP>:38876
client1/<CLIENT-IP>:38876 MULTI: primary virtual IP for
client1/<CLIENT-IP>:38876: 10.200.0.99
client1/<CLIENT-IP>:38876 MULTI: internal route 192.168.4.0/24 ->
client1/<CLIENT-IP>:38876
client1/<CLIENT-IP>:38876 MULTI: Learn: 192.168.4.0/24 ->
client1/<CLIENT-IP>:38876

Если выделенная строка отсутствует, то файл CCD не читается. Также следующие строки, начинающиеся с MULTI: показывают как сервер OpenVPN интерпретирует строки, найденные в файле CCD. Это может быть важно для дальнейшей отладки любых вопросов iroute.

Как исправить

Если процесс сервера не может прочитать файл CCD — проверьте права доступа к полному пути к файлу, включая все подкаталоги, ведущие к нему. Убедитесь, что пользователь, указанный в параметре user, имеет разрешение на чтение всех каталогов и самого файла CCD.

Убедитесь, что в опции client-config-dir указан абсолютный путь вместо относительного. Кроме того, если мы используем опцию chroot (подробности см. в man), убедитесь, что директория client-config-dir видна внутри chroot-jail.

Используйте опцию ccd-exclusive чтобы быстро определить, может ли OpenVPN читать файл CCD. Если это возможно, то увеличьте уровень журнала на стороне сервера, чтобы увидеть, как OpenVPN интерпретирует операторы, найденные в файле CCD.

Нет доступа к устройству tun в Linux

Если OpenVPN запускается с недостаточными привилегиями или если OpenVPN настроен на удаление привилегий root и переключение на другой userid (например, nobody), то доступ к устройству tun может быть потерян. Это также может произойти, если OpenVPN используется в виртуализированной среде, такой как OpenVZ или Virtual Private Server (VPS).

Если OpenVPN запущен с недостаточными привилегиями — VPN-соединение вообще не будет установлено:

UDPv4 link local: [undef]
UDPv4 link remote: [AF_INET]<SERVER-IP>:1194
[Mastering OpenVPN Server] Peer Connection Initiated with
    [AF_INET]<SERVER-IP>:1194
ERROR: Cannot ioctl TUNSETIFF tun: Operation not permitted
    (errno=1)
Exiting due to fatal error

Проверьте userid или используйте sudo для переключения на привилегированного пользователя перед запуском OpenVPN.

Наиболее распространенный сценарий, когда доступны недостаточные привилегии, происходит после автоматического перезапуска VPN-подключения. Рассмотрим следующий файл конфигурации клиента:

client
proto udp
remote openvpnserver.example.com
port 1194
dev tun
nobind

remote-cert-tls server
tls-auth  /etc/openvpn/movpn/ta.key 1
ca        /etc/openvpn/movpn/movpn-ca.crt
cert      /etc/openvpn/movpn/client3.crt
key       /etc/openvpn/movpn/client3.key

user nobody
group nobody

Это базовый файл конфигурации с двумя строками внизу. Когда мы запускаем VPN-соединение с помощью этого файла конфигурации, соединение устанавливается правильно, но выводится предупреждение:

WARNING: you are using user/group/chroot/setcon without persist-tun
-- this may cause restarts to fail

Действительно, после перезапуска VPN-соединения (например, из-за плохого сетевого соединения) перезапуск не удастся:

[Mastering OpenVPN Server] Inactivity timeout (--ping-restart), restarting
Mon Jun 1 16:51:50 2015 sbinip addr del dev tun0 10.200.0.2/24
RTNETLINK answers: Operation not permitted
Linux ip addr del failed: external program exited with error status: 2
SIGUSR1[soft,ping-restart] received, process restarting
WARNING: you are using user/group/chroot/setcon without persist-key -- this may cause restarts to fail
Error: private key password verification failed
Exiting due to fatal error

Здесь мы видим, что OpenVPN не удалось перезапустить, так как пользователю nobody не разрешили прочитать приватный ключ, который использовался для этого соединения. Если бы мы указали пользователя с правами доступа, мы бы увидели другую ошибку:

ERROR: Cannot ioctl TUNSETIFF tun: Operation not permitted
    (errno=1)
Exiting due to fatal error

Обратите внимание, что во время перезапуска OpenVPN не может завершить работу существующего устройства tun или удалить любые системные маршруты. Это также будет иметь место, если используется persist-tun, но в этом случае он будет безвредным.

Как исправить

Добавьте следующие параметры в файл конфигурации клиента, если вы также используете параметры user и/или group:

Убедитесь, что вы запускаете OpenVPN с достаточными привилегиями.

Также убедитесь, что OpenVPN имеет правильный контекст безопасности SELinux, или попробуйте запустить OpenVPN с SELinux, установленным в разрешающий или отключенный режим:

# setenforcing permissive

Отсутствие повышенных привилегий в Windows

В некоторых старых версиях программы установки OpenVPN для Windows не были заданы правильные привилегии для приложения OpenVPN GUI.

В этом конкретном примере один сервер был передан с сервера OpenVPN всем клиентам:

push "route 192.168.122.0 255.255.255.0"

В Windows Vista и выше OpenVPN требуются повышенные привилегии чтобы иметь возможность добавлять или удалять системные маршруты. Если эти привилегии отсутствуют, VPN обычно инициализируется правильно, а значок GUI становится зеленым:

Мы даже можем пропинговать сервер OpenVPN по IP-адресу его VPN-сервера. Тем не менее, файл журнала в OpenVPN GUI покажет некоторые ошибки:

Первая строка на самом деле хитрая:

Warning: cannot open -log file: .....: Access is denied

Сложность в том, что как только мы нажимаем кнопку Disconnect — журнал исчезает, так как он не может быть записан на диск! Это вызвано тем, что каталог журналов по умолчанию C:\Program FilesOpenVPNlog доступен только пользователю с повышенными привилегиями.

Последние несколько строк в файле журнала говорят нам, что OpenVPN не удалось добавить маршрут, который был передан сервером. Опять же, это связано с тем, что программа OpenVPN была запущена с недостаточными привилегиями.

Как исправить

После перезапуска OpenVPN GUI с повышенными правами (включите Запуск от имени администратора) маршрут будет добавлен правильно. Это видно из таблицы маршрутизации:

Переданный маршрут — 192.168.122.0/24 , теперь присутствует в таблице маршрутизации, используя IP-адрес VPN сервера 10.200.0.1 в качестве шлюза.

Устранение проблем с маршрутизацией

Большинство вопросов, задаваемых в списках рассылки OpenVPN и форумах пользователей, на самом деле являются вопросами маршрутизации. Настройка VPN-соединения — это одно, а интеграция в существующую сеть — совсем другое. Для новичка трудная часть состоит в том, чтобы видеть, где заканчивается OpenVPN и где начинается маршрутизация. Этот раздел предназначен в качестве пошагового руководства по устранению неполадок маршрутизации в довольно простой настройке OpenVPN.

Рассмотрим следующий план сети:

  • Сеть в главном офисе должна быть доступна для дополнительного офиса и для людей, работающих из дома
  • Серверы в дополнительном офисе должны быть доступны для IT-отдела главного офиса
  • Люди, работающие из дома, должны иметь доступ только к компьютерным ресурсам в главном офисе

Для этого в главном офисе устанавливается сервер OpenVPN, сотрудники которого подключаются как обычные клиенты VPN, а дополнительный офис подключается как специальный клиент, раскрывая свою собственную сеть.

Рисование детальной картины

Перед созданием файлов конфигурации для OpenVPN нарисуйте подробное изображение схемы сети, включая все подсети, IP-адреса, IP-адреса шлюза, имена интерфейсов и многое другое.

Используемые публичные IP-адреса не перечислены на этом рисунке, но это рекомендуется сделать. Кроме того, подключения от людей, работающих из дома, не включены, но они будут подключаться к общедоступному IP-адресу gateway1 на предыдущем рисунке.

На gateway1 добавлено правило переадресации портов, поэтому входящий и исходящий трафик UDP через порт 1194 перенаправляется на сервер OpenVPN в 172.31.1.2:1194.

Поскольку нам необходимо раскрыть сеть в дополнительном офисе, нам также потребуется использовать файл client-config-dir с соответствующим оператором iroute.

Файлы конфигурации сервера и клиента для этой настройки уже перечислены в Главе 4, Режим клиент/сервер с tun-устройствами, с некоторыми незначительными изменениями IP-адреса. Новый набор файлов конфигурации выглядит следующим образом:

proto udp
port 1194
dev tun

server 10.200.0.0 255.255.255.0

tls-auth  /etc/openvpn/movpn/ta.key 0
dh        /etc/openvpn/movpn/dh2048.pem
ca        /etc/openvpn/movpn/movpn-ca.crt
cert      /etc/openvpn/movpn/server.crt
key       /etc/openvpn/movpn/server.key

persist-key
persist-tun
keepalive 10 60

topology subnet

user nobody
group nobody

verb 3
daemon
log-append /var/log/openvpn.log

push "route 172.31.1.0 255.255.255.0"
client-config-dir /etc/openvpn/movpn/clients
route 192.168.3.0 255.255.255.0 10.200.0.1

Этот файл сохраняется как movpn-09-01-server.conf. Для клиента OpenVPN в дополнительном офисе создается специальный сертификат с именем /CN=SecondaryOffice. Соответствующий файл CCD, следовательно, имеет имя /etc/openvpn/movpn/clients/SecondaryOffice. Его содержание таково:

ifconfig-push 10.200.0.200 255.255.255.0
iroute 192.168.3.0 255.255.255.0

Для всех клиентов может быть использован конфигурационный файл basic-udp-client.conf или basic-udp-client.ovpn. Это, кстати, показывает гибкость конфигурационных файлов OpenVPN. В большинстве случаев нет необходимости изменять файлы конфигурации клиента, даже если макет сети на стороне сервера был изменен или в VPN была добавлена ​​вторичная сеть.

Затем мы запускаем сервер OpenVPN и клиент вторичного офиса и проверяем что файл CCD выбран. Клиент VPN на вторичном офисе может пинговать сервер OpenVPN на его VPN IP-адрес и поэтому может тест пользователь дома.


Заметка

На данный момент VPN работает, а маршрутизация — нет.


Начните с середины и двигайтесь наружу

Наиболее эффективный способ устранения неполадок в этой настройке состоит в том, чтобы рассматривать канал VPN как середину, а затем постепенно выполнять пошаговую работу до тех пор, пока все части сети не будут подключены. Во-первых, есть несколько тестов для выполнения на клиенте OpenVPN в дополнительном офисе. Почти для всех тестов достаточно простой команды ping.

Обратите внимание, что нет смысла переходить ко второму тесту, если первый не пройден, и, аналогично к третьему, если второй еще не работает:

  • Может ли клиент достичь IP-адреса VPN сервера?
    Это должно функционировать; в противном случае существует проблема с нашим VPN. Это может быть очень ограниченная настройка брандмауэра/iptables на сервере. IP-адрес VPN-сервера должен быть приватным (как правило RFC1918) и, следовательно, не будет маршрутизируемым через общий Интернет.

  • Может ли клиент получить доступ к IP-адресу сервера в локальной сети?
    Если это не работает, то, скорее всего, существует правило брандмауэра или iptables, которое блокирует доступ. Проверьте входящие правила или попробуйте отключить правила брандмауэра для отладки.

  • Может ли клиент достичь IP-адреса шлюза на стороне сервера?

Если нет, то проверьте ответы на следующие вопросы:

  • На сервере включена переадресация IP?
  • Существует ли правило брандмауэра/iptables, блокирующее перенаправление доступа к серверу с определенного диапазона IP-адресов?
  • Существует ли на межсетевом шлюзе правило брандмауэра, блокирующее доступ с IP-адресов, не относящихся к локальной сети? (Это было бы хорошей политикой безопасности.) Если это так, то ее необходимо настроить на разрешение трафика, поступающего с VPN IP 10.200.0.0/24.
  • Есть ли обратный маршрут на шлюзе, куда должны возвращаться пакеты, исходящие из VPN? Пакеты с адресом назначения в диапазоне 10.200.0.0/24 следует пересылать на сервер OpenVPN по IP 172.31.1.2 на маршрутизаторе gateway1. Обратите внимание, что это обычно не так. Фактический синтаксис для добавления такого маршрута к шлюзу зависит от модели и встроенного программного обеспечения используемого маршрутизатора.
  • Может ли клиент связаться с другим сервером в локальной сети на стороне сервера?

Если нет, то проверьте ответы на следующие вопросы:

  • Имеет ли этот сервер в локальной сети на стороне сервера правильный шлюз в качестве шлюза по умолчанию?
  • Существует ли на сервере правило брандмауэра, блокирующее доступ с IP-адресов, не относящихся к локальной сети? (На самом деле это будет хорошая политика безопасности!)

Убедившись, что клиент может получить доступ ко всем машинам в локальной сети на стороне сервера — пришло время убедиться что обратное также верно. Убедитесь, что сервер OpenVPN может получить доступ ко всем машинам в локальной сети за вторичным клиентом. Тесты для выполнения очень похожи:

  • Может ли сервер достичь IP-адреса VPN клиента?

Это должно функционировать; в противном случае существует проблема с нашим VPN. Это может быть очень ограниченная настройка брандмауэра/iptables на клиенте. Тем не менее, на данный момент это вряд ли будет проблемой. Но лучше перестраховаться, чем потом жалеть, так что давайте проверим это.

  • Может ли сервер получить доступ к IP-адресу локальной сети клиента?

Если это не работает, то, скорее всего, существует правило брандмауэра/iptables, которое блокирует доступ. Проверьте входящие правила.

  • Может ли сервер достичь IP-адреса шлюза на стороне клиента?

Если нет, то проверьте ответы на следующие вопросы:

  • Включена ли переадресация IP на клиенте вторичного офиса?
    Существует ли правило брандмауэра/iptables, блокирующее перенаправление доступа на клиенте из определенного диапазона IP-адресов?
  • Есть ли на клиентском шлюзе правило брандмауэра, блокирующее доступ с IP-адресов не из локальной сети? (Это было бы хорошей политикой безопасности.) Если это так, то ее необходимо отрегулировать так, чтобы трафик приходил с VPN IP 10.200.0.1.
  • Есть ли обратный маршрут на шлюзе во вторичном офисе, чтобы сообщить ему, куда должны возвращаться пакеты, исходящие из VPN? Пакеты с адресом источника 10.200.0.1 должны быть перенаправлены клиенту OpenVPN по IP 192.168.3.17 на маршрутизаторе gateway2. Обратите внимание, что это обычно не так. Фактический синтаксис для добавления такого маршрута к шлюзу зависит от модели и встроенного программного обеспечения используемого маршрутизатора. Также обратите внимание, что мы разрешаем проходить только пакетам с самого сервера OpenVPN, так как все остальные клиенты не требуют доступа к его сети.

  • Может ли сервер OpenVPN подключиться к другому компьютеру в локальной сети на стороне клиента?

Если нет, то проверьте ответы на следующие вопросы:

  • Имеет ли этот сервер в локальной сети на стороне клиента надлежащий шлюз в качестве шлюза по умолчанию?
  • Существует ли на сервере правило брандмауэра, блокирующее доступ с IP-адресов, не относящихся к локальной сети? (На самом деле это будет хорошая политика безопасности!)

На этом этапе клиент OpenVPN в дополнительном офисе должен иметь доступ ко всем машинам в локальной сети на стороне сервера, а сервер OpenVPN в главном офисе должен иметь доступ ко всем машинам в локальной сети на стороне клиента. Есть только еще один шаг: убедитесь, что серверы в локальной сети на стороне сервера могут обращаться к серверам в локальной сети на стороне клиента и наоборот. Опять же, нужно выполнить четыре теста, начиная с компьютера в локальной сети на стороне сервера:

  • Может ли эта машина достичь IP-адреса VPN клиента OpenVPN?

Это должно сработать, так как клиент может добраться до этой машины в результате четвертого теста. Однако лучше перестраховаться, чем сожалеть, так что давайте проверим это.

  • Может ли эта машина получить доступ к IP-адресу локальной сети клиента?

Если это не работает, то, скорее всего, существует правило брандмауэра или iptables, которое блокирует доступ. Проверьте входящие правила на клиенте OpenVPN. Может ли сервер локальной сети достичь IP-адреса шлюза на стороне клиента?

Если нет, то проверьте ответы на следующие вопросы:

  • Включена ли переадресация IP на клиенте вторичного офиса? Существует ли правило брандмауэра/iptables, блокирующее перенаправление доступа на клиенте для определенного диапазона IP-адресов? Обратите внимание, что пакеты, поступающие с компьютера в локальной сети на стороне сервера, будут иметь адрес источника (172.31.1.X), отличный от адреса самого сервера OpenVPN (10.200.0.1).
  • Есть ли на клиентском шлюзе правило брандмауэра, блокирующее доступ с IP-адресов, не относящихся к локальной сети? (Это было бы хорошей политикой безопасности.) Если это так, то ее необходимо настроить, чтобы разрешить трафик, поступающий из диапазона IP-адресов локальной сети 172.31.1.0/24. Точно так же может потребоваться добавить правило брандмауэра на шлюзе на стороне сервера, чтобы разрешить трафик, поступающий из диапазона IP-адресов локальной сети 192.168.3.0/24 на стороне клиента.
  • Есть ли обратный маршрут на шлюзе во вторичном офисе, для сообщения ему куда должны возвращаться пакеты, исходящие из VPN? Пакеты с адресом источника 172.31.1.0/24 должен быть перенаправлен клиенту OpenVPN по IP 192.168.3.17 на маршрутизаторе gateway2. Обратите внимание, что это обычно не так.

  • Может ли сервер на стороне сервера подключиться к другому компьютеру на стороне клиента?

Если нет, то проверьте ответы на следующие вопросы:

  • Имеет ли сервер в локальной сети на стороне клиента надлежащий шлюз в качестве шлюза по умолчанию?
  • Существует ли на клиентском компьютере правило брандмауэра, блокирующее доступ с IP-адресов, не относящихся к локальной сети? (На самом деле это будет хорошая политика безопасности!)

Методично прорабатывая все эти шаги, мы можем решить практически все проблемы маршрутизации. В некоторых случаях могут потребоваться более продвинутые методы отладки. Это может потребовать от нас временно отключить правила брандмауэра, поэтому перед попыткой сделать это следует соблюдать особую осторожность.

Найдите время, чтобы временно отключить брандмауэр

В списках рассылки OpenVPN было слишком много случаев, когда люди не могли заставить маршрутизацию работать, и это оказалось слишком ограничительным правилом брандмауэра или iptables. Нет необходимости отключать все правила брандмауэра, но если вы застряли на одном из двенадцати шагов, перечисленных ранее, то попробуйте отключить брандмауэр, связанный с устройством, которое вы не можете достичь или с которого вы отправляете трафик.


Заметка

Если вам нужно использовать настройку NATted, убедитесь, что вы не отключаете правила NATting.


Если ничего не помогает, используйте tcpdump

Низкоуровневый сетевой инструмент tcpdump — отличный инструмент для проверки подключения. Для устранения проблем с маршрутизацией мы можем использовать tcpdump, чтобы увидеть, поступает ли какой-либо трафик в конкретный сетевой интерфейс или покидает его, и мы можем проверить адреса источника и назначения этого трафика. На клиенте или сервере Windows может быть проще запустить Wireshark (http://www.wireshark.org), который предоставляет аналогичные функции, включая графический интерфейс.

В двенадцати шагах, перечисленных ранее, могут помочь следующие операторы tcpdump:

  1. Запустите tcpdump -nnel -i tun0 на сервере, чтобы увидеть, поступает ли вообще какой-либо трафик через VPN.
  2. Запустите tcpdump -nnel -i eth0 на сервере (где eth0 — интерфейс локальной сети используемого сервера), чтобы увидеть, поступает ли вообще какой-либо трафик на интерфейс локальной сети. Если нет, то, скорее всего, правило брандмауэра отбрасывает входящий трафик на туннельном интерфейсе.
  3. Запустите tcpdump -nnel -i eth0 на сервере, чтобы проверить, покидает ли трафик интерфейс LAN с помощью следующего:
source address      = 10.200.0.200
destination address = 172.31.1.254

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

  1. Снова запустите tcpdump -nnel -i eth0 на сервере, чтобы проверить, покидает ли трафик интерфейс локальной сети со следующими заголовками пакетов:
source address      = 10.200.0.200
destination address = 172.31.1.XXX

Здесь 172.31.1.XXX — это IP-адрес компьютера, к которому мы пытаемся подключиться в локальной сети на стороне сервера. Есть ли обратный трафик?

И так далее и так далее для оставшихся шагов!

Как оптимизировать производительность с помощью ping и iperf

Получить максимальную производительность из установки OpenVPN может быть сложно. В чистой сети Ethernet стандартные настройки OpenVPN довольно хороши. Однако в гигабитных сетях требуется некоторая настройка.

Когда используется ADSL или кабельное модемное соединение, производительность также обычно довольно хорошая. Однако при определенных обстоятельствах производительность нашего туннеля OpenVPN может значительно отставать от производительности обычной сети. Эти обстоятельства почти всегда зависят от интернет-провайдера, но, тем не менее, стоит изучить как повысить производительность.

Ключом к оптимизации производительности является наличие хороших инструментов для измерения производительности. Два основных, но бесценных инструмента для измерения производительности сети — это ping и iperf. Инструмент iperf легко доступен в Linux, FreeBSD и Mac OS. Есть порты, доступные для Windows и даже Android.

Использование ping

Используя ping мы можем определить оптимальный размер MTU для нашей сети. Большинство сетевых операторов сейчас предоставляют своим клиентам MTU для Ethernet размером 1500 байт. Это приводит к полезной нагрузке пакета в 1472 байта. Остальные 28 байтов являются издержками TCP/IP для таких вещей, как адрес источника и назначения.

Однако если между клиентом и сервером существует сеть с более низким MTU, то это может значительно повысить производительность, уменьшив размер пакетов OpenVPN чуть ниже этого размера. Чтобы определить максимальный размер передачи для нашей сети, мы используем следующее:

$ ping -M do -s 1472 www.example.org

В Windows мы используем следующее:

C:> ping -f -l 1472 www.example.org

Она будет отправлять ICMP-пакеты на удаленный сервер по нашему выбору с установленным флагом not fragment, инструктируя сетевые маршрутизаторы не разбивать этот пакет на более мелкие биты. Если между клиентом и сервером есть сеть с меньшим MTU, то команда ping завершится неудачно:

$ ping -M do -s 1472 www.example.org
PING www.example.org (IP) 1472(1500) bytes of data.

ping: local error: Message too long, mtu=1480

Это говорит нам о том, что производительность будет, скорее всего, лучше, если мы используем либо фрагмент размером 1480, либо размер MTU 1480 байт вместо значения по умолчанию 1500. Обратите внимание, что это не является гарантией — только измерив фактическую производительность VPN, мы узнаем, каково влияние на самом деле.

Использование iperf

Используя iperf мы можем измерить производительность сети как внутри, так и вне VPN-туннеля. Это даст нам ценную информацию о том, сколько пропускной способности мы тратим, используя VPN-туннель.

Прежде чем измерять производительность самого VPN-туннеля, всегда пытайтесь измерить производительность нормальной сети. Будет довольно сложно заставить VPN работать лучше чем базовая сеть.

Сначала запустите iperf на сервере с помощью следующей команды:

Затем запустите iperf на клиенте с помощью следующей команды:

$ iperf -c openvpn.example.org

В кабельной сети, которая использовалась для тестирования, результат выглядит следующим образом:

Это на самом деле скорость загрузки используемого кабельного соединения. Теперь мы можем проверить производительность VPN-туннеля в той же сети:

[ 3] 0.0-10.8 sec 5.25 MBytes 4.09 Mbits/sec

Повторение измерения дает очень похожие цифры, поэтому справедливо утверждать, что производительность VPN-туннеля на несколько процентов ниже производительности базовой сети. Это на самом деле имеет смысл, так как использование VPN действительно создает некоторые накладные расходы для инкапсуляции, шифрования и аутентификации (подписи) исходных данных. Это будет трудно для дальнейшей оптимизации этой сети.

Аналогично, для скорости загрузки используемого кабельного соединения мы обнаруживаем, что производительность VPN-туннеля на несколько процентов ниже:

Производительность базовой сети показана следующим образом:

[ 4]  0.0-10.6 sec  51.6 MBytes 40.7 Mbits/sec

Теперь сравните это с VPN-туннелем:

[ 4]  0.0-10.7 sec  49.5 MBytes 39.0 Mbits/sec

Опять же, мы видим снижение производительности на 4,5 процента.

Теперь мы можем использовать параметры fragment и mssfix, чтобы посмотреть сможем ли мы повысить производительность. Там будет немного проб и ошибок для поиска подходящего места для конкретной установки. Неизвестно, какое именно место будет заранее, но метод его определения всегда один и тот же. Теперь добавьте параметры в файлы конфигурации клиента и сервера:

Делая это и изменяя X, мы получаем следующие результаты:

X (bytes) Download (Mbps) Upload (Mbps)
1200 37.9 3.94
1300 38.1 4.01
1400 38.4 4.04
1472 38.8 4.06
1500 37.6 3.98
39.0 4.09

Мы можем заключить, что настройки OpenVPN по умолчанию — самое приятное место для этой сети. Мы могли бы повторить это упражнение, изменив параметр tun-mtu но мы получили бы тот же результат. Однако рекомендуется сначала настроить производительность с помощью параметра fragment, поскольку этот параметр меньше влияет на пересылку пакетов.

Гигабитная сеть

Теперь мы выполним ту же процедуру в неиспользуемой сети Gigabit Ethernet. Производительность iperf базовой сети составляет 950 Мбит/с вверх и вниз.

Когда мы запускаем сервер OpenVPN с помощью конфигурации basic-udp-server.conf и подключаем к нему клиента с помощью файла конфигурации basic-udp-client.conf, мы достигаем следующей производительности iperf:

[ ID] Interval        Transfer      Bandwidth
[ 5]   0.0-10.0 sec    193 MBytes    161 Mbits/sec
[ 4]   0.0-10.0 sec    242 MBytes    203 Mbits/sec

Сейчас наблюдается явное падение производительности. К сожалению, снижение параметра fragment нам здесь не поможет. С fragment 1200 мы достигаем 149 Мбит/с и 115 Мбит/с соответственно.

В высокоскоростных сетях также имеет смысл поэкспериментировать с шифром кодирования. Оба сервера, используемые в этом примере, способны выполнять быстрые инструкции AES благодаря расширению AES-NI, которое присутствует в процессорах (Xeon E5 2620 с тактовой частотой 2 ГГц и Xeon E5 2643 с тактовой частотой 3,5 ГГц, соответственно). Давайте добавим следующее:

Теперь мы получаем следующий результат:

[ 5]  0.0-10.0 sec  316 MBytes  265 Mbits/sec
[ 4]  0.0-10.0 sec  266 MBytes  223 Mbits/sec

На способном процессоре шифр оказывает большое влияние на производительность. Поскольку OpenVPN является монолитной программой — большое количество ядер не помогает вообще. Тактовая частота процессора является доминирующим фактором. Подключив ноутбук Core i7 с тактовой частотой 3,8 ГГц к серверу Xeon E5-2643 с частотой 3,5 ГГц, мы получаем гораздо более высокую пропускную способность, используя точно такую ​​же конфигурацию:

[ 5]  0.0-10.0 sec  707 MBytes  593 Mbits/sec
[ 4]  0.0-10.0 sec  529 MBytes  443 Mbits/sec

Таким образом, если вы хотите настроить туннель OpenVPN через высокоскоростную сеть, то лучший совет — использовать высокопроизводительные ЦП, которые поддерживают набор инструкций AES-NI. С такой настройкой можно достичь скорости сети более 500 Мбит/с в обоих направлениях.

Анализ трафика OpenVPN с помощью tcpdump

Низкоуровневый сетевой инструмент tcpdump или его аналог Wireshark с графическим интерфейсом является последним средством для устранения неполадок и производительности сети. В этом разделе мы рассмотрим процесс захвата и анализа зашифрованного сетевого трафика, создаваемого OpenVPN.

Сначала мы настраиваем нашу стандартную сеть OpenVPN, используя конфигурационные файлы basic-udp. На клиенте также работает веб-сервер. Мы будем использовать команду wget на стороне сервера, чтобы извлечь файл с веб-сервера, чтобы мы могли посмотреть на полученный сетевой трафик.

Мы запускаем tcpdump на интерфейсе Ethernet и собираем сетевой трафик, выполняя wget вне туннеля:

wget -O /dev/null https://CLIENT-IP/test1

Результирующий вывод tcpdump выглядит следующим образом (для ясности изменен):

Как мы видим, существует 13 пакетов для передачи текстового файла размером 5 КБ. Большинство из этих пакетов были использованы для установки и разрыва соединения, но есть четыре больших пакета, которые были использованы для фактической передачи данных. Первые три из четырех пакетов имеют размер 1514 байт, что является максимальным размером пакета Ethernet.

Далее мы запускаем ту же команду wget внутри туннеля. Теперь мы наблюдаем зашифрованный трафик на адаптере Ethernet:

Здесь мы видим 22 захваченных пакета. Первый и последний два пакета являются heartbeat пакетами OpenVPN и могут игнорироваться. Оставшиеся 18 пакетов являются зашифрованным эквивалентом пакетов, показанных в первом выводе tcpdump. Как мы видим здесь, длина пакета немного меньше, и особенно payload каждого пакета немного меньше: самый большой пакет payload UDP составляет 1445 байтов. Эти 1445 байт содержат зашифрованные и подписанные данные из команды wget. В нашей настройке мы не указали параметр fragment — это означает, что OpenVPN 2.3 по умолчанию будет иметь внутреннюю фрагментацию 1450 байт.

Общий размер каждого пакета никогда не превышает 1487 байтов, что довольно близко к оптимальному: обычно пакеты не должны превышать размер MTU, который составляет 1500 байтов.

Этот дамп экрана tcpdump также показывает что фрагментации не происходит, кроме как внутри OpenVPN. Это хорошо, поскольку мы хотим избежать фрагментации пакетов операционной системой или сетью для максимальной производительности. Если бы мы видели здесь фрагментацию пакетов, то это было бы отличным признаком того, что нам нужно было добавить дополнительную фрагментацию в нашу конфигурацию OpenVPN.

Давайте посмотрим, что произойдет, если мы добавим fragment 1400 в нашу настройку. Мы перезапускаем сервер и клиент и снова запускаем команду wget:

С добавленным в нашу настройку fragment 1400 мы можем видеть в выводе tcpdump что полезная нагрузка пакета теперь составляет 1397 байт, что очень близко к пределу 1400. Мы также видим, что теперь требуется больше пакетов для передачи текстового файла размером 5 КБ по туннелю, что означает снижение производительности. Из этого снимка экрана мы можем сделать вывод, что нам следует снова удалить параметр.

Из предыдущего скриншота и предыдущего мы также можем сделать вывод, что каждый пакет OpenVPN несет 42-байтовые издержки. Эти издержки частично способствуют накладным расходам, возникающим при использовании любого решения VPN. Он включает в себя всю служебную информацию, поскольку все сетевые пакеты должны содержать служебную информацию об адресе источника, адресе назначения, типе пакета, контрольные суммы, флаги и многое другое.

Наконец, давайте посмотрим на содержимое реального зашифрованного пакета OpenVPN. Для этого удобно использовать инструмент Wireshark (http://www.wireshark.org). Wireshark в основном предоставляет графический интерфейс поверх низкоуровневого инструмента tcpdump. Он может декодировать содержимое большинства типов сетевого трафика, как мы можем видеть на следующем снимке экрана (снимок экрана был анонимным по соображениям конфиденциальности):

Этот скриншот говорит нам следующее:

  • Фактический размер пакета составляет 1487 байт.
  • Он содержит заголовки Ethernet и IPv4, как и любой сетевой пакет в сети Ethernet.
  • Это пакет OpenVPN с исходным портом 35400 и портом назначения 1194 — это означает, что он перемещается от клиента к серверу. На самом деле это один из зашифрованных пакетов при передаче файла размером 5 КБ с клиента на сервер.
  • Полезной нагрузкой пакета является пакет данных OpenVPN (формат версии 1) с размером полезной нагрузки 1487 байт. Обратите внимание, что tcpdump сообщил о 1488 байтах ранее, но Wireshark может декодировать полезную нагрузку и увидеть, что первый байт является кодом операции OpenVPN.

Этот пакет будет получен OpenVPN, проверен на аутентификацию, расшифрован и распакован (если мы указали). Полученный незашифрованный пакет затем перенаправляется в таблицы маршрутизации операционной системы, которые решают, куда направить пакет. В нашем случае пакет останется на сервере и будет передан процессу wget.

Резюме

В этой главе вы познакомились с некоторыми основными приемами устранения неполадок и настройки OpenVPN. Вы также получили представление о чтении файлов журналов клиента и сервера. Вы узнали как обнаружить и исправить некоторые из наиболее часто совершаемых ошибок. Большинство вопросов в списке рассылки OpenVPN касаются проблем маршрутизации — поэтому мы обсудили обнаружение и устранение проблем маршрутизации. Наконец, существует большая разница между работающей установкой и хорошо работающей установкой, поэтому мы рассмотрели примеры того, как обнаруживать и решать проблемы с производительностью.

Конечно, OpenVPN не идеален и поэтому ваша нерабочая настройка также может быть вызвана ошибкой в ​​самом OpenVPN. Существует несколько каналов для сообщения об ошибках, включая список электронной почты (openvpn-users@lists.sourceforge.net), канал IRC (#openvpn на freenode.net IRC) и веб-сайт форума (https://forums.openvpn.net). Вы также можете отправлять запросы на функции или списки пожеланий на эти каналы, некоторые из которых могут появиться в будущей версии OpenVPN.

В следующей главе вы узнаете, что нового можно ожидать в следующих выпусках OpenVPN. Вы также узнаете, какие в настоящее время известны проблемы с базой кодов OpenVPN, и узнаете о планах по устранению этих проблем.

Настройка OpenVPNСтолкнулся с необходимостью поднять OpenVPN. Случай мой оказался не стандартным. Cервер должен быть на Windows, клиентами же выступают пром. gsm-модемы. с линуксом  на борту. Задача не простая, тут собран мой опыт по настройке OpenVPN, и варианты граблей с которыми мне пришлось в этом процессе столкнуться. Начну пожалуй с ресурсов которые мне в этом помогли:

Примеры настройки OpenVPN

Основные ресурсы с примерами настройки openVPN сервера и клиентов:

    • прежде всего официальный мануал:https://openvpn.net/index.php/open-source/documentation/manuals/openvpn-20x-manpage.html

теперь ряд русскоязычных ресурсов:

    • http://compkaluga.ru/articles/172/ — грамотный туториал с указанием основных возможных ошибок
    • http://www.sysadmin.in.ua/info/index/22/27/39 — простая и доходчивая статья, но в настройках допущена ошибка —

      # Эти параметры в среде windows — не дадут клиенту подключиться к серверу. их следует закоментировать или убрать.
      user nouser
      group nogroup

пойдем дальше

  • Эта статья незаслуженно низко находится в выдаче поисковиков http://interface31.ru/tech_it/2011/09/organizaciya-vpn-kanalov-mezhdu-ofisami.html — очень грамотная и доступная подробно разбирает процесс настройки сервера и клиента, а так же вопросы настройки маршрутизации трафика. Т.е. если у вас задача объединить несколько офисных сетей — то обязательна к изучению. Однако, вопрос генерации ключей дан вскользь, для этого стоит посмотреть один из мануалов дальше.
  • http://habrahabr.ru/post/233971/ — подробный разбор запуска на Linux системах. В конце материала описана процедура настройки для windows систем.
  • http://habrahabr.ru/sandbox/58689/ — по сути краткая шпаргалка по заведению openVPN на windows. полезна в том случае если подробный разбор вы уже изучили, но подзабыли отдельные детали процесса.А вот на это я бы обратил внимание:

    — Далее во избежание проблем с созданием сертификата клиента очищаем index.txt папке ssl

  • http://geektimes.ru/post/197744/ Основная особенность этого мануала заключается в том что дан пример настройки OpenVPN под Windows, но без tls аутентификации — соответственно конфиг проще, ключей поменьше. Но и уровень безопасности пожиже. Однако главной фишкой для меня стало вот это: «Теперь о конфиге клиента. Можно не передавать файлы сертификатов, а вписать сразу в конфиг, только делать это лучше не с блокнота, а с AkelPad’а или Notepad++ например.» ну и дальше читайте на странице.От себя должен сказать, что у меня такой файл конфига клиента с вшитыми ключами создать пока не вышло. Но обязательно буду пытаться, о результатах доложу здесь же.
  • http://yakm.ru/Nastroyka-OpenVPN.html тут дан пример простенького конфига с одним секретным ключём на две машины. Т.е. использую данный конфиг, вы можете поднять сервер и подключить к нему одного клиента. Для более сложных конфигураций надо всё-таки генерить все ключи.
  • http://yakm.ru/Nastroyka-OpenVPN-chast-2.html продолжение туториала выше, где собран простенький но полноценный конфиг. Однако вопрос генерации ключей разобран вскользь.
  • http://www.freeproxy.ru/ru/vpn/windows-7/openvpn.htm простой но очень важный туториал по правильной установке и запуску OpenVpn в среде Windows. Особо хотелось бы обратить внимание на необходимость запускать openvpnGUI — от имени администратора. Без этой малости — ни один клиент не сможет подключиться к успешно работающему серверу.
  • http://forum.ixbt.com/topic.cgi?id=14:40906:1#1 — огромная конференция по вопросам работы с OpenVPN. Наверное тут разобраны все возможные вопросы. Однако вкурить всю ветку форума — задача поистине титаническая.
  • http://suli-company.org.ua/it/unix/1063-prostaya-nastroyka-openvpn-s-fiksirovannymi-adresami-klientov.html еще один очень подробный разобор. В основном он посвещен настройки openVPN на Linux. Но разбор конфигов очень подробный. Дан частичный адаптированный русский перевод мануала из первой ссылки. И в конце статьи вариант настройки на Windows.  + решения для нескольких проблемм:»Получено сообщение Initialization Sequence Completed, но пинг не проходит — это означает, что брандмауэр на сервере или клиенте блокирует VPN сетевой трафик на TUN/TAP интерфейсе. Решение проблемы: запретите брандмауэру клиента (если есть) фильтрацию TUN/TAP интерфейса клиента.»
  • http://samag.ru/archive/article/318 — еще один разбор настройки OpenVPN —  тут упор сделан на кросс-платформенность.

OpenVPN и роутеры

Сети связывать лучше посредством специальных устройств, нежели выделять для этого дела отдельный компьютер. Хорошая новость — есть огромное количество роутеров которые со спец прошивкой — поддерживают OpenVPN, если у вас возник вопрос «Какой роутер поддерживает OpenVPN» то поискать ответ можно тут:

http://www.dd-wrt.com/site/support/router-database

Для себя, опытным путем, я выбрал роутер Asus RT-N10U, и настроил его под свой конфиг. Главное преимущество — возможность перепрошить его прямо в окне браузера.  А дальше читайте в статье.

Конфиг OpenVPN Сервера, на Windows 7:

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

port 1194
proto udp
dev tap2
dev-node «vpn»
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
client-to-client #разрешить общение клиентов между собой подробнее см.ниже
topology subnet
route-method exe
route-delay 5
route 10.8.0.0 255.255.255.0
#PUSH START те данные которые мы передаем на клиент.
#push «dhcp-option gateway 10.8.0.1» — имело бы смысл с windows клиентами, у нас linux
push «persist-key»
push «persist-tun»
#PUSH END
duplicate-cn #позволяем нескольким клиентам пользоваться одним ключом
keepalive 10 120
#cipher AES-128-CBC #закоментировали алгоритм шифрования будет использован по умолчанию
comp-lzo
persist-tun
persist-key
persist-local-ip
persist-remote-ip
status openvpn-status.log
log c:\OpenVPN\log\openvpn.log
verb 5

Настройка Клиента IRZ RUH2:

В нашем случае это GSM router IRZ RUH2, здесь  я не даю подробной инструкции, просто конфиг, который у меня отлично работает. Ключи на модем я добавлял через upload в администрировании.

client
proto udp
dev tap2
remote 111.111.111.111 1194
ca ca.crt #ключи
key client.key
cert client.crt
route-method ipapi #если клиент Linux, exe если Windows
route-delay 5 #пауза для применения настроек 5-10 секунд
route 10.8.0.0 255.255.255.0 10.8.0.1 #прописываем на клиенте маршрут
route-gateway 10.8.0.1 #Шлюз
comp-lzo #сжатие
nobind #
persist-key #
persist-tun
verb 5
mute 20

Некоторые ошибки при настройке OpenVPN

Authenticate/Decrypt packet error: packet HMAC authentication failed

В моем случае эта ошибка разрешилась с помощью изменения Hash Algorithm  на SHA1 у клиента, т.е. приведение к тому же значению что и на сервере.

Authenticate/Decrypt packet error: cipher final failed

— ошибка алгоритма шифрования. вероятно в настройках клиента и сервера указаны разные варианты cipher.  Как вариант можно не указывать его вообще, тогда будет взят вариант по умолчанию (bf-cbc)

Не возможно подключиться к интерфейсу, если служба уже запущена

Идем в службы и выключаем её

При запуске сервера OpenVPN ошибкa: не возможно добавить маршрут в таблицу маршрутизации

Решение: Не хватает прав доступа, необходимо запустить сервер от имени администратора.

Клиент находит сервер, подключается, но не пингуется, или не может подключиться.

— Необходимо на сервере внести в правила фаервола исключение для нашего сервиса.

Клиент находит сервер, но не пингуется.

— Необходимо настроить маршрутизацию т.е. запустить запросы в нашу vpn сеть через наш tap интерфейс. В нашем случае мы можем запустить консоль Windows от имени админиcтратора и там вручную добавить маршрут к примеру:
route -p add 10.8.0.0 mask 255.255.255.0 10.8.0.1
-p — добавляем маршрут на постоянной основе, без этого аргумента при перезагрузки маршрут исчезнет.
10.8.0.0 mask 255.255.255.0 — задаем диапазон адресов для которых будет действовать маршрут, все пакеты идущие на адреса с 10.8.0.1 до 10.8.0.255.
10.8.0.1 — шлюз, gateway, на который будем слать пакеты. В нашем случае это сервер VPN соединения.

Ошибка: Initialization Sequence Completed With Errors ( see http://openvpn.net/f…#dhcpclientserv )

вылечилось добавлением openVPN в исключения фаервола.

Соответственно, для Windows систем, от XP до 7ки это можно сделать, выполнив в консоли следующую команду от имени администратора:

netsh firewall add allowedprogram program = C:OpenVPNbinopenvpn.exe name = «OpenVPN Server» ENABLE scope = ALL profile = ALL

Продолжение темы настройки openVPN:

  • Настройка OpenVPN на роутере DD-WRT Asus RT-N10U
  • Клиенты OpenVPN не видят друг друга

Модератор: SLEDopit

aniily

Сообщения: 64

Проблема с OpenVPN клиентом

Добрый день,

сегодня моя проблема в том, что не удаётся установить VPN соединение с сервером. С сервером никаких проблем нет, к нему удаётся подключиться из других мест. Но почему-то с теми же конфигрурационными файлами клиента не удаётся подключиться из дома.
Дома у меня ADSL роутер и компьютер, который подключён к нему по WiFi, система Ubuntu 11.04.

Код: Выделить всё

Sat Jul 16 22:55:01 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sat Jul 16 22:55:01 2011 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Sat Jul 16 22:55:01 2011 Outgoing Control Channel Authentication: Using 128 bit message hash 'MD5' for HMAC authentication
Sat Jul 16 22:55:01 2011 Incoming Control Channel Authentication: Using 128 bit message hash 'MD5' for HMAC authentication
Sat Jul 16 22:55:01 2011 LZO compression initialized
Sat Jul 16 22:55:01 2011 Control Channel MTU parms [ L:1538 D:162 EF:62 EB:0 ET:0 EL:0 ]
Sat Jul 16 22:55:01 2011 Socket Buffers: R=[114688->131072] S=[114688->131072]
Sat Jul 16 22:55:06 2011 Data Channel MTU parms [ L:1538 D:1450 EF:38 EB:135 ET:0 EL:0 AF:3/1 ]
Sat Jul 16 22:55:06 2011 Local Options hash (VER=V4): '03fa487d'
Sat Jul 16 22:55:06 2011 Expected Remote Options hash (VER=V4): '1056bce3'
Sat Jul 16 22:55:06 2011 UDPv4 link local (bound): [undef]
Sat Jul 16 22:55:06 2011 UDPv4 link remote: [AF_INET]8.8.8.8:1194
Sat Jul 16 22:56:06 2011 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Jul 16 22:56:06 2011 TLS Error: TLS handshake failed
Sat Jul 16 22:56:06 2011 TCP/UDP: Closing socket
Sat Jul 16 22:56:06 2011 SIGUSR1[soft,tls-error] received, process restarting
Sat Jul 16 22:56:06 2011 Restart pause, 2 second(s)
Sat Jul 16 22:56:08 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sat Jul 16 22:56:08 2011 Re-using SSL/TLS context
Sat Jul 16 22:56:08 2011 LZO compression initialized
Sat Jul 16 22:56:08 2011 Control Channel MTU parms [ L:1538 D:162 EF:62 EB:0 ET:0 EL:0 ]

В интернете пишут, что TLS Error означает о невозможности установить соединение с сервером. На вид проблем с установкой соединения не должно быть. Сервер пингуется нормально. Смотрел tcpdump-ом UDP пакеты серверу уходят, но ответа от сервера не приходит.
Может быть проблемы в роутере? Какие ещё есть варианты решения проблемы?

Аватара пользователя

KiWi

Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: Проблема с OpenVPN клиентом

Сообщение

KiWi » 17.07.2011 01:38

Sat Jul 16 22:55:06 2011 UDPv4 link remote: [AF_INET]8.8.8.8:1194

А чего вы хотели, пытаясь подключиться к 8.8.8.8?

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 17.07.2011 08:41

sash-kan писал(а): ↑

17.07.2011 00:04

aniily писал(а): ↑

16.07.2011 23:04

Какие ещё есть варианты решения проблемы?

гм, а какие могут быть варианты?
если нет ответных пакетов, то что же с вашей стороны можно сделать?

Может DSL-роутер их блокирует? Доходят ли они до роутера я тоже сказать не могу.

KiWi писал(а): ↑

17.07.2011 01:38

Sat Jul 16 22:55:06 2011 UDPv4 link remote: [AF_INET]8.8.8.8:1194

А чего вы хотели, пытаясь подключиться к 8.8.8.8?

=) IP адрес сервера был умышленно изменён. Так что всё в порядке)

Indarien

Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: Проблема с OpenVPN клиентом

Сообщение

Indarien » 18.07.2011 12:49

Будьте добры, покажите ifconfig (ipconfig) с проблемного компа с adsl. А также таблицу маршрутизации.
И скажите, какие IP раздает впн сервер?

-=Правильно заданный вопрос содержит 50% ответа=-

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 19.07.2011 00:43

Indarien писал(а): ↑

18.07.2011 12:49

Будьте добры, покажите ifconfig (ipconfig) с проблемного компа с adsl. А также таблицу маршрутизации.

Код: Выделить всё

$ ifconfig
eth1      Link encap:Ethernet  HWaddr 00:1d:09:c8:a6:a1
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:17

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24945 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24945 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2073262 (2.0 MB)  TX bytes:2073262 (2.0 MB)

wlan0     Link encap:Ethernet  HWaddr 00:1e:4c:32:a6:59
          inet addr:192.168.23.1  Bcast:192.168.23.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:4cff:fe32:a659/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6341043 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7419781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2547395374 (2.5 GB)  TX bytes:229005912 (229.0 MB)

Код: Выделить всё

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.23.0    0.0.0.0         255.255.255.0   U     2      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
0.0.0.0         192.168.23.15   0.0.0.0         UG    0      0        0 wlan0

Если нужно, я могу поменять любые адреса на «проблемном» компьютере.

Indarien писал(а): ↑

18.07.2011 12:49

И скажите, какие IP раздает впн сервер?

ВПН-сервер раздаёт 10.8.0.* вроде бы. Просто пока что до DHCP дела не доходит даже(

Аватара пользователя

KiWi

Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: Проблема с OpenVPN клиентом

Сообщение

KiWi » 19.07.2011 02:10

Актуальней — показать настройки сервера.
Сейчас, в качестве гадания на кофейной гуще:
— на сервере стоит tcp вместо udp
— сервер использует порт отличный от 1194
— провайдер режет UDP-трафик(на определённые порты, например)
— на сервере существует какой-либо файрволл

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 19.07.2011 07:59

KiWi писал(а): ↑

19.07.2011 02:10

Актуальней — показать настройки сервера.
Сейчас, в качестве гадания на кофейной гуще:
— на сервере стоит tcp вместо udp
— сервер использует порт отличный от 1194
— провайдер режет UDP-трафик(на определённые порты, например)
— на сервере существует какой-либо файрволл

Показать настройки сервера не имею возможности, потому что к нему у меня доступа нет. Да и смысла в этом особого не вижу, потому что с теми же самыми конфигурационными файлами клиента я успешно подключаюсь к серверу из четырёх других мест. Поэтому предполагаю, что что-то не так либо с домашним компьютером, либо с провайдером, либо с роутером.
По поводу резки провайдером UDP портов думал, вот только не знаю, как бы это сейчас проверить.

Аватара пользователя

sash-kan

Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Проблема с OpenVPN клиентом

Сообщение

sash-kan » 19.07.2011 09:31

Indarien писал(а): ↑

18.07.2011 12:49

покажите ifconfig

какая святая наивность!
сможете объяснить, кто (и почему) отвечает на ping-и в данном конкретном случае:

Код: Выделить всё

wifi отключен, сетевой кабель ethernet не подсоединён
$ uname -a
Linux debian 2.6.37-lemote2f #2 PREEMPT Fri Mar 11 19:12:50 CST 2011 mips64 GNU/Linux

$ /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:23:8b:b5:37:14
          inet addr:192.168.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:37 Base address:0x4000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:17:c4:5a:19:18
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

$ /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.0.0      *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

$ ping -c 1 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 172.16.0.1: icmp_req=1 ttl=64 time=0.144 ms

--- 172.16.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.144/0.144/0.144/0.000 ms

?
адреса такого, как видите, ни на одном сетевом интерфейсе нет…

Писать безграмотно — значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог

us127

Сообщения: 15
ОС: Debian Squeeze

Re: Проблема с OpenVPN клиентом

Сообщение

us127 » 19.07.2011 09:35

aniily писал(а): ↑

19.07.2011 07:59

KiWi писал(а): ↑

19.07.2011 02:10

Актуальней — показать настройки сервера.
Сейчас, в качестве гадания на кофейной гуще:
— на сервере стоит tcp вместо udp
— сервер использует порт отличный от 1194
— провайдер режет UDP-трафик(на определённые порты, например)
— на сервере существует какой-либо файрволл

Показать настройки сервера не имею возможности, потому что к нему у меня доступа нет. Да и смысла в этом особого не вижу, потому что с теми же самыми конфигурационными файлами клиента я успешно подключаюсь к серверу из четырёх других мест. Поэтому предполагаю, что что-то не так либо с домашним компьютером, либо с провайдером, либо с роутером.
По поводу резки провайдером UDP портов думал, вот только не знаю, как бы это сейчас проверить.

Роутер дома? У меня похожая ситуация — настроил клиент, подключается, все ок. Перенес все ОС на другой комп (далеко географически даже), но за роутер Asus WL500G, настроенный по умолчанию. И не работает! Роутер не мой, в настройках не копался. Причем на сервер пакеты доходят, но не происходит соединение на уровне OpenVPN.

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 19.07.2011 11:44

us127 писал(а): ↑

19.07.2011 09:35

aniily писал(а): ↑

19.07.2011 07:59

KiWi писал(а): ↑

19.07.2011 02:10

Актуальней — показать настройки сервера.
Сейчас, в качестве гадания на кофейной гуще:
— на сервере стоит tcp вместо udp
— сервер использует порт отличный от 1194
— провайдер режет UDP-трафик(на определённые порты, например)
— на сервере существует какой-либо файрволл

Показать настройки сервера не имею возможности, потому что к нему у меня доступа нет. Да и смысла в этом особого не вижу, потому что с теми же самыми конфигурационными файлами клиента я успешно подключаюсь к серверу из четырёх других мест. Поэтому предполагаю, что что-то не так либо с домашним компьютером, либо с провайдером, либо с роутером.
По поводу резки провайдером UDP портов думал, вот только не знаю, как бы это сейчас проверить.

Роутер дома? У меня похожая ситуация — настроил клиент, подключается, все ок. Перенес все ОС на другой комп (далеко географически даже), но за роутер Asus WL500G, настроенный по умолчанию. И не работает! Роутер не мой, в настройках не копался. Причем на сервер пакеты доходят, но не происходит соединение на уровне OpenVPN.

Да, роутер дома. DSL 2640 U.

Doublespace писал(а): ↑

19.07.2011 11:24

А 1194 порт на раутере профорвардить пробовали? Хотя, кажется, у меня ВПН через АСУС-520 ходил и без этого, но не помню точно.

Пробовал профорвардить TCP/UDP 1194, но результата нет. На роутере внутри линукс крутится. К сожалению, там нет tcpdump, так бы можно было глянуть уходит ли трафик провайдеру. Хотя если кто-то поможет, то, наверное, можно вписать туда дополнительно правило, которое выходной трафик уходящий в интернет направляет обратно на мой компьютер и можно будет посмотреть проходят ли пакеты сквозь роутер в интернет или нет.

Indarien

Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: Проблема с OpenVPN клиентом

Сообщение

Indarien » 19.07.2011 20:48

sash-kan писал(а): ↑

19.07.2011 09:31

какая святая наивность!
сможете объяснить, кто (и почему) отвечает на ping-и в данном конкретном случае:

То есть ifconfig нужен только для того чтобы пинговать что-то? Еще большая наивность, не находите?

2aniily
192.168.23.15 это кто?

-=Правильно заданный вопрос содержит 50% ответа=-

Indarien

Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: Проблема с OpenVPN клиентом

Сообщение

Indarien » 20.07.2011 00:34

sash-kan писал(а): ↑

20.07.2011 00:04

Indarien писал(а): ↑

19.07.2011 20:48

То есть ifconfig нужен только для того чтобы пинговать что-то?

вы не прочитали мой пост, или не поняли, что я спрашивал?

Хм….я не понял и этого вопроса если честно.

2 aniily
В данном случае он является шлюзом по умолчанию. ВПН сервер делает роутинг или дает новый шлюз? Было бы неплохо посмотреть настройки с того компа где все работает, до и после подключения впна.

-=Правильно заданный вопрос содержит 50% ответа=-

Аватара пользователя

sash-kan

Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Проблема с OpenVPN клиентом

Сообщение

sash-kan » 20.07.2011 02:13

Indarien
ок·
попробую совсем по-простому·
ifconfig работает некорректно с сетевой подсистемой linux·
использовать его как средство диагностики — не стоит·
ещё попроще?
пожалуйста:
если вас интересуют закреплённые за интерфейсами ip-адреса, в разных операционных системах следует запрашивать вывод совершенно разных команд·
в windows — ipconfig
в *bsd (и прочих unix-ах) — ifconfig
в gnu/linux — ip a

Писать безграмотно — значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 20.07.2011 07:29

Indarien писал(а): ↑

20.07.2011 00:34

В данном случае он является шлюзом по умолчанию. ВПН сервер делает роутинг или дает новый шлюз? Было бы неплохо посмотреть настройки с того компа где все работает, до и после подключения впна.

ВПН делает новый шлюз. На «проблемном» компьютере до DHCP и дело не доходит, он даже интерфейс поднять не успевает.

Indarien

Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: Проблема с OpenVPN клиентом

Сообщение

Indarien » 20.07.2011 15:19

sash-kan писал(а): ↑

20.07.2011 02:13

Indarien
ок·
попробую совсем по-простому·
ifconfig работает некорректно с сетевой подсистемой linux·
использовать его как средство диагностики — не стоит·
ещё попроще?
пожалуйста:
если вас интересуют закреплённые за интерфейсами ip-адреса, в разных операционных системах следует запрашивать вывод совершенно разных команд·
в windows — ipconfig
в *bsd (и прочих unix-ах) — ifconfig
в gnu/linux — ip a

ок, если статика, то cat /etc/network/interfaces
если dhcp то ip a
С другой стороны, для каждого определенного случая лучше всего использовать либо оптимальный инструмент, либо адекватный, адекватный в смысле не юзать нано для просмотра 2 гб логов а, допустим лесс.
Ну да ладно, в данном случае хотелось взглянуть на ип интерфейса.

aniily
Надо бы взглянуть на роуты у компа где все ок до и после, имхо все дело в роутинге в данном конкретном случае. Либо, какая-то специфика адсл подключения, модем как подключен, бриджем или нат?

-=Правильно заданный вопрос содержит 50% ответа=-

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 20.07.2011 15:27

Indarien писал(а): ↑

20.07.2011 15:19

Надо бы взглянуть на роуты у компа где все ок до и после, имхо все дело в роутинге в данном конкретном случае. Либо, какая-то специфика адсл подключения, модем как подключен, бриджем или нат?

До подключения:

Код: Выделить всё

===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 1d 7d 91 23 5a ...... NVIDIA nForce Networking Controller - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x3 ...00 21 91 91 27 84 ...... D-Link DFE-520TX PCI Fast Ethernet Adapter - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x4 ...00 ff a6 a9 23 56 ...... TAP-Win32 Adapter V9 - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x5 ...08 00 27 00 c8 55 ...... VirtualBox Host-Only Ethernet Adapter - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0    192.168.1.254   192.168.1.174      20
         10.8.0.8  255.255.255.252        10.8.0.10       10.8.0.10      30
        10.8.0.10  255.255.255.255        127.0.0.1       127.0.0.1      30
   10.255.255.255  255.255.255.255        10.8.0.10       10.8.0.10      30
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1      1
      169.254.0.0      255.255.0.0    192.168.1.174   192.168.1.174      20
      192.168.1.0    255.255.255.0    192.168.1.174   192.168.1.174      20
    192.168.1.174  255.255.255.255        127.0.0.1       127.0.0.1      20
    192.168.1.255  255.255.255.255    192.168.1.174   192.168.1.174      20
     192.168.56.0    255.255.255.0     192.168.56.1    192.168.56.1      20
     192.168.56.1  255.255.255.255        127.0.0.1       127.0.0.1      20
   192.168.56.255  255.255.255.255     192.168.56.1    192.168.56.1      20
        224.0.0.0        240.0.0.0        10.8.0.10       10.8.0.10      30
        224.0.0.0        240.0.0.0    192.168.1.174   192.168.1.174      20
        224.0.0.0        240.0.0.0     192.168.56.1    192.168.56.1      20
  255.255.255.255  255.255.255.255        10.8.0.10       10.8.0.10      1
  255.255.255.255  255.255.255.255    192.168.1.174   192.168.1.174      1
  255.255.255.255  255.255.255.255     192.168.56.1    192.168.56.1      1
  255.255.255.255  255.255.255.255     192.168.56.1               2      1
Основной шлюз:       192.168.1.254
===========================================================================
Постоянные маршруты:
  Отсутствует

После подключения:

Код: Выделить всё

Настройка протокола IP для Windows

        Имя компьютера  . . . . . . . . . : skvortsov
        Основной DNS-суффикс  . . . . . . :
        Тип узла. . . . . . . . . . . . . : гибридный
        IP-маршрутизация включена . . . . : нет
        WINS-прокси включен . . . . . . . : нет
        Порядок просмотра суффиксов DNS . : arc.world

Подключение по локальной сети - Ethernet адаптер:

        Состояние сети  . . . . . . . . . : сеть отключена
        Описание  . . . . . . . . . . . . : NVIDIA nForce Networking Controller
        Физический адрес. . . . . . . . . : 00-1D-7D-91-23-5A

Подключение по локальной сети 4 - Ethernet адаптер:

        DNS-суффикс этого подключения . . : arc.world
        Описание  . . . . . . . . . . . . : D-Link DFE-520TX PCI Fast Ethernet Adapter
        Физический адрес. . . . . . . . . : 00-21-91-91-27-84
        Dhcp включен. . . . . . . . . . . : да
        Автонастройка включена  . . . . . : да
        IP-адрес  . . . . . . . . . . . . : 192.168.1.174
        Маска подсети . . . . . . . . . . : 255.255.255.0
        Основной шлюз . . . . . . . . . . : 192.168.1.254
        DHCP-сервер . . . . . . . . . . . : 192.168.1.10
        DNS-серверы . . . . . . . . . . . : 192.168.1.10
                                            192.168.1.11
        Основной WINS-сервер  . . . . . . : 192.168.1.10
        Аренда получена . . . . . . . . . : 20 июля 2011 г. 9:09:44
        Аренда истекает . . . . . . . . . : 20 июля 2011 г. 22:27:37

Подключение по локальной сети 11 - Ethernet адаптер:

        DNS-суффикс этого подключения . . :
        Описание  . . . . . . . . . . . . : TAP-Win32 Adapter V9
        Физический адрес. . . . . . . . . : 00-FF-A6-A9-23-56
        Dhcp включен. . . . . . . . . . . : да
        Автонастройка включена  . . . . . : да
        IP-адрес  . . . . . . . . . . . . : 10.8.0.10
        Маска подсети . . . . . . . . . . : 255.255.255.252
        Основной шлюз . . . . . . . . . . :
        DHCP-сервер . . . . . . . . . . . : 10.8.0.9
        Аренда получена . . . . . . . . . : 20 июля 2011 г. 15:23:41
        Аренда истекает . . . . . . . . . : 19 июля 2012 г. 15:23:41

VirtualBox Host-Only Network - Ethernet адаптер:

        DNS-суффикс этого подключения . . :
        Описание  . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
        Физический адрес. . . . . . . . . : 08-00-27-00-C8-55
        Dhcp включен. . . . . . . . . . . : нет
        IP-адрес  . . . . . . . . . . . . : 192.168.56.1
        Маска подсети . . . . . . . . . . : 255.255.255.0
        Основной шлюз . . . . . . . . . . :

Код: Выделить всё

===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 1d 7d 91 23 5a ...... NVIDIA nForce Networking Controller - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x3 ...00 21 91 91 27 84 ...... D-Link DFE-520TX PCI Fast Ethernet Adapter - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x4 ...00 ff a6 a9 23 56 ...... TAP-Win32 Adapter V9 - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
0x5 ...08 00 27 00 c8 55 ...... VirtualBox Host-Only Ethernet Adapter - ╠шэшяюЁЄ яырэшЁют∙шър яръхЄют
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0    192.168.1.254   192.168.1.174      20
         10.8.0.0    255.255.255.0         10.8.0.9       10.8.0.10      1
         10.8.0.1  255.255.255.255         10.8.0.9       10.8.0.10      1
         10.8.0.8  255.255.255.252        10.8.0.10       10.8.0.10      30
        10.8.0.10  255.255.255.255        127.0.0.1       127.0.0.1      30
   10.255.255.255  255.255.255.255        10.8.0.10       10.8.0.10      30
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1      1
      169.254.0.0      255.255.0.0    192.168.1.174   192.168.1.174      20
      192.168.1.0    255.255.255.0    192.168.1.174   192.168.1.174      20
    192.168.1.174  255.255.255.255        127.0.0.1       127.0.0.1      20
    192.168.1.255  255.255.255.255    192.168.1.174   192.168.1.174      20
     192.168.56.0    255.255.255.0     192.168.56.1    192.168.56.1      20
     192.168.56.1  255.255.255.255        127.0.0.1       127.0.0.1      20
   192.168.56.255  255.255.255.255     192.168.56.1    192.168.56.1      20
        224.0.0.0        240.0.0.0        10.8.0.10       10.8.0.10      30
        224.0.0.0        240.0.0.0    192.168.1.174   192.168.1.174      20
        224.0.0.0        240.0.0.0     192.168.56.1    192.168.56.1      20
  255.255.255.255  255.255.255.255        10.8.0.10       10.8.0.10      1
  255.255.255.255  255.255.255.255    192.168.1.174   192.168.1.174      1
  255.255.255.255  255.255.255.255     192.168.56.1    192.168.56.1      1
  255.255.255.255  255.255.255.255     192.168.56.1               2      1
Основной шлюз:       192.168.1.254
===========================================================================
Постоянные маршруты:
  Отсутствует

АДСЛ-роутер подключен НАТом.

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 21.07.2011 23:22

Indarien писал(а): ↑

20.07.2011 15:19

модем как подключен, бриджем или нат?

Сегодня перенастроил модем на режим работы бриджем. Это ничего не изменило, соединение точно также не устанавливается.

Из нового хочу сказать, что поговорил с админом сервера. Он сказал, что пакеты до сервера мои доходят, но в логах сервера появляется следующее:

Код: Выделить всё

 Authenticate/Decrypt packet error: packet HMAC authentication failed
011 TLS Error: incoming packet authentication failed from 178.66.208.90:1194

Аутентификация идёт по паролю. Ключи ta.key & ca.key точно верные, администратор переслал их ещё раз.

Аватара пользователя

Minton

Сообщения: 1588
Статус: openSUSE Localization Team
ОС: openSUSE Tumbleweed x86-64

Re: Проблема с OpenVPN клиентом

Сообщение

Minton » 22.07.2011 16:27

Гугл рулит и педалит:

Проблема оказалась в недостаточности времени на TLS авторизацию на клиенте.
Дефолт — две секунды (очень интересно почему на ADSL этого не хватало? пинг = 100-150мс).
Увеличил на клиентах «tls-timeout 15» (с запасом) и со вчерашнего вечера ошибок пока не вижу.
Кстати, где-то уже видел такой совет но в отношении использования VPN через GPRS шлюзы — там связь действително нестабильная. Так что вот.

отсюда

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 25.07.2011 23:18

Minton писал(а): ↑

22.07.2011 16:27

Гугл рулит и педалит:

Проблема оказалась в недостаточности времени на TLS авторизацию на клиенте.
Дефолт — две секунды (очень интересно почему на ADSL этого не хватало? пинг = 100-150мс).
Увеличил на клиентах «tls-timeout 15» (с запасом) и со вчерашнего вечера ошибок пока не вижу.
Кстати, где-то уже видел такой совет но в отношении использования VPN через GPRS шлюзы — там связь действително нестабильная. Так что вот.

отсюда

Спасибо, Минтон, за вариант. Однако на сервере в конфиги, говорят, стоит уже «tls-timeout 120». Получается, что в чём-то другом дело(

Indarien

Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: Проблема с OpenVPN клиентом

Сообщение

Indarien » 27.07.2011 14:16

Authenticate/Decrypt packet error: packet HMAC authentication failed
Клиент и сервер не могут разобраться какой протокол шифрования выбрать….причин может быть много, а попробуйте-ка ради эксперимента без md5…..

-=Правильно заданный вопрос содержит 50% ответа=-

aniily

Сообщения: 64

Re: Проблема с OpenVPN клиентом

Сообщение

aniily » 30.07.2011 12:39

Indarien писал(а): ↑

27.07.2011 14:16

Authenticate/Decrypt packet error: packet HMAC authentication failed
Клиент и сервер не могут разобраться какой протокол шифрования выбрать….причин может быть много, а попробуйте-ка ради эксперимента без md5…..

При установке AUTH в NONE тоже не устанавливается, зато потом методом «научного» перебора было установлено правильное значение параметра — SHA1. Удивительно, что из Windows с этим же конфигурационным файлом подключается без всяких проблем. Надо будет там подробнее клиентские логи подключения посмотреть.

Спасибо всем за помощь.

xpaco

Сообщения: 1

Re: Проблема с OpenVPN клиентом

Сообщение

xpaco » 08.08.2017 13:39

aniily писал(а): ↑

30.07.2011 12:39

Indarien писал(а): ↑

27.07.2011 14:16

Authenticate/Decrypt packet error: packet HMAC authentication failed
Клиент и сервер не могут разобраться какой протокол шифрования выбрать….причин может быть много, а попробуйте-ка ради эксперимента без md5…..

При установке AUTH в NONE тоже не устанавливается, зато потом методом «научного» перебора было установлено правильное значение параметра — SHA1. Удивительно, что из Windows с этим же конфигурационным файлом подключается без всяких проблем. Надо будет там подробнее клиентские логи подключения посмотреть.

Спасибо всем за помощь.

Спасибо человек, за научный перебор.. Измучился искать в чем проблема, а оказалось как у тебя SHA(, гребаный,)1!! :crazy:

openvpn authenticate decrypt packet error packet hmac authentication failed
openvpn authenticate decrypt packet error packet hmac authentication failed

For people looking out for a VPN service that allows them to not only use VPN on their devices but also create protocol servers. This can be for their home as well as business use. Then, OpenVPN is considered to be one of the best options out there. It makes sure that their users are getting the best speeds possible while also looking out for their security.

However, while trying to run OpenVPN some users have reported running into the error ‘Authenticate Decrypt packet error: packet HMAC authentication failed’. This can be quite frustrating for the users. Considering this, here are a few ways you can fix it.

  1. Restart Device

One of the easiest fixes you can try is to restart your device. Running your computer on for days can slow down its performance as well as make it vulnerable to errors and problems. This can be why you are getting this error.

To fix this issue, save and close down all the applications you are running so that you don’t lose any data. Open up ‘start menu’ then ‘power’ and then select ‘restart’. Your restart might take some time considering if you have any windows updates available. After your device is restarted, open up OpenVPN to use it without any errors.

  1. Configuration Files

In order to set-up your OpenVPN protocol server, you have to install the drivers. After this, the software requires you to go through a lengthy process of configuring all its files. You have to make sure that you don’t make any typos or mistakes while trying to set these settings up. Even a slight mistake will end up giving you errors.

It can be really difficult for a user to go through the whole configuration files trying to look out for a single mistake. So, it is recommended that your delete all your current configuration settings. Next, you will need to search OpenVPN’s official website. Here, look for a list of configuration files that are supported by the operating system you are currently using. After successfully downloading this file. You will see that they come with a user manual.

Follow these steps carefully and copy all the new settings onto your OpenVPN client. Make sure to save all your settings and then restart your software. This will ensure that the old settings have been replaced and that your OpenVPN can run without any issue.

  1. Customer Support

If none of the steps mentioned above solve your error then, unfortunately, you might have run into a technical error. To solve your problem, you will need to contact customer support for OpenVPN. They will reach out to you in some time.

Provide them with a list of all your logs from using the software and describe your error to them in detail. Be careful that you do not leave out anything. This will help the support team in identifying the main root of your error and they will try to fix it as soon as they can.

Понравилась статья? Поделить с друзьями:
  • Atomizer short как исправить voopoo argus
  • Auth service error
  • Atomizer short как исправить smok novo x
  • Atomizer short как исправить smok nord 4
  • Atomizer short как исправить geek vape