Ficando desconectado do servidor OpenVPN a cada hora

8

Estou tendo um problema bastante estranho com minha configuração OpenVPN . Estou me conectando de Windows 7 com o cliente OpenVPN mais recente oficial ao meu OpenVPN server ( OpenVPN 2.1.4 i386-redhat-linux-gnu ).

O problema é que estou ficando desconectado do meu OpenVPN server exatamente após 1 hora e não consigo entender qual diretiva / opção é responsável por isso. Talvez seja um problema do cliente? Eu tentei diferentes Windows systems e Windows VPN clients. Os clientes Linux estão funcionando como esperado sem desconexões.

Poderia, por favor, ajudar-me a incomodar esta questão? Eu tentei ler livros e pesquisando e algumas pessoas recomendam brincar com as diretivas keepalive e reneg-sec . Mas isso não parece ajudar.

Configuração do servidor OpenVPN

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 192.168.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
client-config-dir ccd
route 192.168.51.0 255.255.255.0
keepalive 60 600
reneg-sec 5000
hand-window 15
tls-auth ta.key 0
comp-lzo
max-clients 50
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
crl-verify crl.pem
management localhost 11111
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
push "dhcp-option DNS 192.168.2.1"
push "dhcp-option DOMAIN example.com"
push "dhcp-option SEARCH example.com"

Log do servidor (não é o problema em reinit_src = 1?)

Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS: move_session: dest=TM_LAME_DUCK src=TM_ACTIVE reinit_src=1
Oct  9 07:24:53 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS key negotiation failed to occur within 15 seconds (check your network connectivity)
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 [UNDEF] Inactivity timeout (--ping-restart), restarting
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 SIGUSR1[soft,ping-restart] received, client-instance restarting

Log do cliente

RwrWRwRwRwRwTue Oct 09 07:26:39 2012 us=796000 TLS: soft reset sec=0 bytes=7405621/0 pkts=9459/0
Tue Oct 09 07:26:39 2012 us=600000 ERROR: could not read Auth username from stdin
Tue Oct 09 07:26:39 2012 us=600000 Exiting
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 192.168.2.1 MASK 255.255.255.255 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 10.0.0.0 MASK 255.0.0.0 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 Closing TUN/TAP interface

Muito obrigado.

    
por Andrew 09.10.2012 / 11:49

3 respostas

8

O culpado parece ser sua configuração de autenticação. Você está usando plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login , o que exigiria que o cliente fornecesse uma combinação válida de nome de usuário / senha para se conectar. Aparentemente, isso também é necessário após a recolocação e seu cliente OpenVPN parece incapaz de solicitar o nome de usuário de stdin ( ERROR: could not read Auth username from stdin ).

Quanto à razão pela qual a criação de reneg-sec na configuração do servidor não ajuda, isso ocorre porque o parâmetro deve ser especificado em ambos - o servidor e a configuração do cliente para ser efetivamente elevado acima do padrão de 3600 segundos ( o que acontece para causar a uma hora - desconexão que você está vendo).

Então, suas opções seriam

  • usa um método de autenticação que não requer entrada do usuário (lembram-se os certificados)
  • solucione problemas por que seu cliente não pode solicitar a combinação de nome de usuário / senha após o estabelecimento da conexão
  • aumente o período de recapitulação ou desative totalmente a recriação de mensagens (o que enfraquece a segurança da sua conexão, portanto, certamente é apenas uma solução inferior para o seu problema)
por 09.10.2012 / 16:57
3

você pode tentar reneg-sec 0 no seu server.conf :

link

link

é bem simples. Como o OpenVPN tenta renegociar uma nova sessão TLS a cada 3600 segundos por padrão, você teria que se autenticar novamente a cada vez, usando uma nova OTP. Para evitar esse tipo de comportamento, é apenas uma questão de dizer ao openvpn para nunca renegociar uma sessão TLS e manter a existente ativa, se você combinar keepalive directive e reneg-sec 0 , você terá uma conexão estável, com nenhuma renegociação.

    
por 17.02.2017 / 14:25
2

Eu tive um efeito semelhante quando adicionei a opção 'auth-nocache' à configuração do meu cliente. Eu uso certificados e uma combinação de nome de usuário + senha para autenticar.

Algumas vezes notei nos logs de conexão que o openvpn relatou o seguinte aviso:

WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this

Então, pensei em adicionar apenas essa opção e ver o que acontece. Bem, o aviso acima desaparece, mas depois de uma hora uma caixa de diálogo apareceu, pedindo-me meu nome de usuário e senha.

Eu notei que a configuração acima por Andrew não contém essa opção, então estou um pouco confuso sobre o motivo pelo qual ela não armazena em cache a senha. Talvez isso seja porque estou usando uma versão mais nova do openvpn ou talvez ele possa ser configurado na configuração do servidor para enviar essa opção para o cliente.

Isso foi visto em: OpenVPN 2.2.1-8 + deb7u2 com o OpenVPN GUI v5 para Windows.

    
por 10.07.2014 / 03:27

Tags