LINUX.ORG.RU

OpenVPN и Ubuntu, помогите, сил нет больше :(

 , ,


0

2

Приветствую всех! Помогите пожалуйста, уже неделю сижу, не писал до последнего, гуглил всё что можно было. Похоже я где то что то делаю не так, может Вы это увидите и подскажите. В общем необходимо поднять OPENVPN на Ubuntu для подключения офисов из другой сети, все клиенты на Windows. OpenVPN завёлся на Ubuntu, tun0 поднялся, сервис работает. Но вот клиента подцепить никак не удаётся. Порт для OpenVPN я выделил не 1194, а 8888, и этот порт я пробросил в настройках роутера на адрес 192.168.0.194 (адрес сервера, Ubuntu)

Конфиг сервера:

port 8888
# Протокол может быть UDP или TCP, я выбрал 1-й вариант.
proto udp
# Если вы выберите протокол TCP, здесь должно быть устройство tap. Однако, это вариант я не проверял, поэтому ищите информацию отдельно. FIXME
dev tun

# Указываем где искать ключи
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key  # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
# Для 12.04 dh1024.pem

# Задаем IP и маску виртуальной сети. Произвольно, но если не уверены лучше делайте как показано здесь
server 10.8.0.0 255.255.255.0

# Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения.
ifconfig-pool-persist ipp.txt

# Указываем сети, в которые нужно идти через туннель (сеть-клиента).
#route 192.168.0.0 255.255.255.0


# Если нужно, чтобы клиенты видели друг друга раскомментируйте
;client-to-client

keepalive 10 120

# Сжатие трафика
comp-lzo

# Максимум клиентов
max-clients 10

user nobody
group nogroup

# Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart
persist-key
persist-tun

status openvpn-status.log
log /var/log/openvpn.log
# Детальность логирования
verb 3
# Защита от повторов (максимум 20 одинаковых сообщений подряд)
mute 20

# Файл отозванных сертификатов. Разремить, когда такие сертификаты появятся.
;crl-verify /etc/openvpn/crl.pem

Конфиг клиента:

client
dev tun
proto udp

# Внеший IP, на или за которым находится ваш сервер OpenVPN и порт (на сервере или роутере, за которым стоит сервер)
remote мой_внешний_IP 8888

# необходимо для DynDNS
resolv-retry infinite

ca ca.crt
cert tetst.crt
key tetst.key
tls-client
tls-auth ta.key 1
auth SHA1
cipher BF-CBC
remote-cert-tls server
comp-lzo
persist-key
persist-tun

verb 3
mute 20

А теперь логи, лог клиента:

Tue Sep 06 15:37:41 2016 Restart pause, 2 second(s)
Tue Sep 06 15:37:43 2016 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Tue Sep 06 15:37:43 2016 WARNING: Your certificate is not yet valid!
Tue Sep 06 15:37:43 2016 LZO compression initialized
Tue Sep 06 15:37:43 2016 Control Channel MTU parms [ L:1542 D:1212 EF:38 EB:0 ET:0 EL:3 ]
Tue Sep 06 15:37:43 2016 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue Sep 06 15:37:43 2016 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:143 ET:0 EL:3 AF:3/1 ]
Tue Sep 06 15:37:43 2016 Local Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Tue Sep 06 15:37:43 2016 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Tue Sep 06 15:37:43 2016 Local Options hash (VER=V4): '41690919'
Tue Sep 06 15:37:43 2016 Expected Remote Options hash (VER=V4): '530fdded'
Tue Sep 06 15:37:43 2016 UDPv4 link local: [undef]
Tue Sep 06 15:37:43 2016 UDPv4 link remote: [AF_INET]мой_внешний_IP:8888
Tue Sep 06 15:37:43 2016 MANAGEMENT: >STATE:1473161863,WAIT,,,
Tue Sep 06 15:37:43 2016 MANAGEMENT: >STATE:1473161863,AUTH,,,
Tue Sep 06 15:37:43 2016 TLS: Initial packet from [AF_INET]мой_внешний_IP:8888, sid=093d38e9 33939e7f

Логи сервера в этот момент:

Tue Sep  6 15:48:05 2016 192.168.0.1:60968 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Sep  6 15:48:05 2016 192.168.0.1:60968 TLS Error: TLS handshake failed
Tue Sep  6 15:48:05 2016 192.168.0.1:60968 SIGUSR1[soft,tls-error] received, client-instance restarting
Tue Sep  6 15:48:07 2016 192.168.0.1:60025 TLS: Initial packet from [AF_INET]192.168.0.1:60025, sid=dfe2abc9 e36536f6

Логи клиента почему то ругаются на валидность сертификата, пересоздавал его раза 3-4, всё равно такая же история. А логи сервера ругаются на 192.168.0.1 - этот IP роутера. Хотя должен по идее ругаться на IP клиента Windows.

В общем такая вот история, пытался сделать по разным мануалам, и с хабра и с оф. сайта Ubuntu, ошибки примерно одинаковые.

Будут ждать ваших советов, спасибо!

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

junker ()

в конфиге клиента tls ключ указан, а в конфиге сервера нет. либо укажи, либо убери из клиента

vvviperrr ★★★★★ ()
Ответ на: Не помогло от robinzon

не может быть. в логе сервера все равно светится

TLS Error: TLS key negotiation failed

?

vvviperrr ★★★★★ ()
Ответ на: комментарий от vvviperrr

Теперь так

Логи клиента

Tue Sep 06 18:02:35 2016 OpenVPN 2.3.12 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Aug 23 2016
Tue Sep 06 18:02:35 2016 Windows version 6.1 (Windows 7) 64bit
Tue Sep 06 18:02:35 2016 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.09
Tue Sep 06 18:02:35 2016 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25342
Tue Sep 06 18:02:35 2016 Need hold release from management interface, waiting...
Tue Sep 06 18:02:35 2016 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25342
Tue Sep 06 18:02:35 2016 MANAGEMENT: CMD 'state on'
Tue Sep 06 18:02:35 2016 MANAGEMENT: CMD 'log all on'
Tue Sep 06 18:02:35 2016 MANAGEMENT: CMD 'hold off'
Tue Sep 06 18:02:35 2016 MANAGEMENT: CMD 'hold release'
Tue Sep 06 18:02:35 2016 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Tue Sep 06 18:02:35 2016 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue Sep 06 18:02:35 2016 UDPv4 link local (bound): [undef]
Tue Sep 06 18:02:35 2016 UDPv4 link remote: [AF_INET]мой_внешний_IP:8888
Tue Sep 06 18:02:35 2016 MANAGEMENT: >STATE:1473170555,WAIT,,,
Tue Sep 06 18:02:35 2016 MANAGEMENT: >STATE:1473170555,AUTH,,,
Tue Sep 06 18:02:35 2016 TLS: Initial packet from [AF_INET]мой_внешний_IP:8888, sid=01f6899e 3bc00dd8
Tue Sep 06 18:03:35 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Sep 06 18:03:35 2016 TLS Error: TLS handshake failed
Tue Sep 06 18:03:35 2016 SIGUSR1[soft,tls-error] received, process restarting
Tue Sep 06 18:03:35 2016 MANAGEMENT: >STATE:1473170615,RECONNECTING,tls-error,,
Tue Sep 06 18:03:35 2016 Restart pause, 2 second(s)
Tue Sep 06 18:03:37 2016 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Tue Sep 06 18:03:37 2016 Socket Buffers: R=[8192->8192] S=[8192->8192]
Tue Sep 06 18:03:37 2016 UDPv4 link local (bound): [undef]
Tue Sep 06 18:03:37 2016 UDPv4 link remote: [AF_INET]мой_внешний_IP:8888
Tue Sep 06 18:03:37 2016 MANAGEMENT: >STATE:1473170617,WAIT,,,
Tue Sep 06 18:03:37 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:39 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:39 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:43 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:44 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:51 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:03:52 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:04:07 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)
Tue Sep 06 18:04:08 2016 TCP/UDP: Incoming packet rejected from [AF_INET]192.168.0.194:8888[2], expected peer address: [AF_INET]мой_внешний_IP:8888 (allow this incoming source address/port by removing --remote or adding --float)

Логи сервера теперь такие...

ue Sep  6 17:45:16 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb  2 2016
Tue Sep  6 17:45:16 2016 library versions: OpenSSL 1.0.2g-fips  1 Mar 2016, LZO 2.08
Tue Sep  6 17:45:16 2016 Diffie-Hellman initialized with 2048 bit key
Tue Sep  6 17:45:16 2016 Socket Buffers: R=[212992->212992] S=[212992->212992]
Tue Sep  6 17:45:16 2016 ROUTE: default_gateway=UNDEF
Tue Sep  6 17:45:16 2016 TUN/TAP device tun0 opened
Tue Sep  6 17:45:16 2016 TUN/TAP TX queue length set to 100
Tue Sep  6 17:45:16 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Sep  6 17:45:16 2016 /sbin/ip link set dev tun0 up mtu 1500
Tue Sep  6 17:45:16 2016 /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Tue Sep  6 17:45:16 2016 /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
Tue Sep  6 17:45:16 2016 UDPv4 link local (bound): [undef]
Tue Sep  6 17:45:16 2016 UDPv4 link remote: [undef]
Tue Sep  6 17:45:16 2016 MULTI: multi_init called, r=256 v=256
Tue Sep  6 17:45:16 2016 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Tue Sep  6 17:45:16 2016 IFCONFIG POOL LIST
Tue Sep  6 17:45:16 2016 Initialization Sequence Completed
Tue Sep  6 18:00:37 2016 event_wait : Interrupted system call (code=4)
Tue Sep  6 18:00:37 2016 /sbin/ip route del 10.8.0.0/24
Tue Sep  6 18:00:37 2016 Closing TUN/TAP interface
Tue Sep  6 18:00:37 2016 /sbin/ip addr del dev tun0 local 10.8.0.1 peer 10.8.0.2
Tue Sep  6 18:00:37 2016 SIGTERM[hard,] received, process exiting

robinzon ()
Ответ на: Теперь так от robinzon

check your network connectivity

со стороны сервера не видно попыток подключений. уверен что порт проброшен правильно? неткатом подключается?

vvviperrr ★★★★★ ()
Ответ на: комментарий от vvviperrr

А как проверить всё это? Я просто не очень давно на ubuntu

robinzon ()
Ответ на: комментарий от robinzon

на сервере nc -p твой_порт -l -u

на клиенте из интернета nc -u твой_ип твой_порт. вводи текст и смотри, появляется ли он на сервере.

vvviperrr ★★★★★ ()
Последнее исправление: vvviperrr (всего исправлений: 2)
Ответ на: комментарий от vvviperrr

Конфиги

Сейчас конфиг на сервере такой

port 8888
# Протокол может быть UDP или TCP, я выбрал 1-й вариант.
proto udp
# Если вы выберите протокол TCP, здесь должно быть устройство tap. Однако, это вариант я не проверял, поэтому ищите информацию отдельно. FIXME
dev tun

# Указываем где искать ключи
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/servercpmb.crt
key /etc/openvpn/keys/servercpmb.key  # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
# Для 12.04 dh1024.pem

# Задаем IP и маску виртуальной сети. Произвольно, но если не уверены лучше делайте как показано здесь
server 10.8.0.0 255.255.255.0

# Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения.
ifconfig-pool-persist ipp.txt

# Указываем сети, в которые нужно идти через туннель (сеть-клиента).
#route 192.168.0.0 255.255.255.0


# Если нужно, чтобы клиенты видели друг друга раскомментируйте
;client-to-client

keepalive 10 120

# Сжатие трафика
comp-lzo

# Максимум клиентов
max-clients 10

user nobody
group nogroup

# Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart
persist-key
persist-tun

status openvpn-status.log
log /var/log/openvpn.log
# Детальность логирования
verb 3
# Защита от повторов (максимум 20 одинаковых сообщений подряд)
mute 20

# Файл отозванных сертификатов. Разремить, когда такие сертификаты появятся.
;crl-verify /etc/openvpn/crl.pem

У клиента такой

client
dev tun
proto udp
remote мой_внешний_IP 8888
user nobody
group nobody
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert tetst.crt
key tetst.key
verb 4
comp-lzo
robinzon ()
Ответ на: комментарий от robinzon

Победа!

Решил посидеть поколдовать ещё, ну и я сделал! Может кому то будет нужно Добавил на стороне сервера и клиента в конфиги auth SHA512 и сменил протокол с udp на tcp и все сразу подключилось

robinzon ()
Ответ на: Победа! от robinzon

и сменил протокол с udp на tcp

ты уверен что правильно запускал неткат и что он работал? ключ -u указывал? клиент был ВНЕ сети сервера? или ты и сервер и клиент запустил на локалхосте?

vvviperrr ★★★★★ ()
Последнее исправление: vvviperrr (всего исправлений: 1)
Ответ на: комментарий от vvviperrr

Конечно уверен, я же видел сообщения на сервере которые посылал с клиента. Клиент отдельно, сервер отдельно, 2 разных устройства было.

robinzon ()
Ответ на: Победа! от robinzon

У вас просто проблема с датой была. Вам OpenVPN писал:

WARNING: Your certificate is not yet valid!
В том смысле, что на компьютере, на котором вы генерировали сертификаты, время опережало реальное, и время действия сертификата еще не началось для другого компьютера. Прошло какое-то время, и все починилось.

ValdikSS ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.