Primeiro de tudo, não sei qual versão do OpenVPN você está usando, mas 'remote-gateway' não é uma opção válida na v2.3.2. Se você estiver usando uma versão mais antiga, verifique sua página do manual local e remova essa diretiva, se necessário.
De acordo com o Wiki do OpenVPN , o erro" Negociação da chave TLS falhou ... "é quase sempre resultado de:
-
Um firewall de perímetro na rede do servidor está sendo filtrado pacotes OpenVPN de entrada (por padrão, o OpenVPN usa a porta UDP ou TCP número 1194).
- Isso parece improvável no seu caso, mas verifique o firewall do seu roteador apenas para ter certeza.
-
Um firewall de software em execução na própria máquina do servidor OpenVPN está filtrando conexões de entrada na porta 1194.
-
A tabela de filtros que você forneceu parece bem, presumindo que você normalmente tenha o conjunto de políticas INPUT padrão para aceitar. Caso contrário, você precisa permitir a porta UDP 1194:
iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-
-
Um gateway NAT na rede do servidor não possui uma regra de encaminhamento de porta para TCP / UDP 1194 para o endereço interno da máquina do servidor OpenVPN.
-
A configuração do cliente OpenVPN não possui o endereço correto do servidor em seu arquivo de configuração. A diretiva remota no arquivo de configuração do cliente deve apontar para o próprio servidor ou o endereço IP público do gateway da rede do servidor.
-
O firewall do Windows está bloqueando o acesso para o binário openvpn.exe. Você pode precisar colocar na lista de permissões (adicione-a à lista de "Exceções") para que o OpenVPN funcione.
Se você ainda tiver problemas, provavelmente há um problema com a Infra-estrutura de chave pública. Eu não estou familiarizado com o Linux Alpine e se o pacote OpenVPN vem com o easy-rsa, então vá em frente e faça o download da versão mais recente e extraí-lo para um local apropriado em seu servidor e em uma máquina (de preferência) sem conexão de rede (sua Autoridade de Certificação). Por simplicidade, assumirei que seu servidor está gerando solicitações para clientes. Nos dois sistemas, mude para o diretório onde você extraiu o EasyRSA e ...
cp vars.example vars
editor ./vars
No sistema de autoridade de certificação, remova o comentário e edite os campos organizacionais de acordo (EASYRSA_REQ_COUNTRY, etc.). No servidor, opcionalmente, altere "set_var EASYRSA_PKI" para que aponte para um local apropriado (por exemplo, / etc / openvpn / pki).
Gerar solicitações de certificado no servidor:
./easyrsa init-pki
./easyrsa gen-req <your_server_name> nopass
./easyrsa gen-req <some_client_name> nopass
No não servidor, crie uma nova autoridade de certificação:
./easyrsa init-pki
./easyrsa build-ca
Copie os arquivos .req para o sistema da CA, importe e assine-os:
./easyrsa import-req server /tmp/<your_server_name>.req
./easyrsa import-req client /tmp/<some_client_name>.req
./easyrsa sign-req server <your_server_name>
./easyrsa sign-req client <some_client_name>
Copie os certificados recém-assinados, bem como o certificado de autoridade de certificação, para um local apropriado no servidor e no cliente. Então, no servidor, gere os parâmetros dh:
./easyrsa gen-dh
Por fim, copie a chave do cliente para a máquina do cliente (se ainda não estiver lá) e atualize suas configurações com os novos locais de chave e certificado.