Configuração do Servidor OpenVPN com Docker
Para começar, clone o repositório Git em seu servidor:
git clone https://github.com/kylemanna/docker-openvpn.git
Em seguida, mude para o diretório clonado:
cd docker-openvpn/
Construa uma nova imagem Docker a partir desses arquivos. Vamos chamá-la de myownvpn
neste exemplo:
docker build -t myownvpn .
Depois, precisamos de um volume ou diretório para armazenar nossos arquivos de configuração e chaves. Este é um passo significativo, pois nossas chaves serão colocadas nesse diretório. Por isso, sugiro que você mantenha esse diretório seguro:
cd ..
mkdir vpn-data && touch vpn-data/vars
Finalmente, podemos começar a gerar o arquivo de configuração do OpenVPN. Certifique-se de que o endereço IP esteja escrito no comando abaixo. Você pode alterar sua porta nessa etapa. Neste exemplo, usamos UDP 3000:
docker run -v $PWD/vpn-data:/etc/openvpn --rm myownvpn ovpn_genconfig -u udp://IP_ADDRESS:3000
Agora, vamos inicializar nossa Autoridade de Certificação (CA). Isso inclui a geração do certificado CA e teremos uma chave privada pertencente à CA. Será solicitada uma senha para proteger a chave privada:
docker run -v $PWD/vpn-data:/etc/openvpn --rm -it myownvpn ovpn_initpki
Finalmente, podemos executar o servidor VPN com base nessa configuração:
docker run -v $PWD/vpn-data:/etc/openvpn -d -p 3000:1194/udp --cap-add=NET_ADMIN myownvpn
Agora que o servidor está configurado, você pode criar usuários para se conectar ao servidor OpenVPN. Por exemplo, para criar um usuário chamado user1
sem senha:
docker run -v $PWD/vpn-data:/etc/openvpn --rm -it myownvpn easyrsa build-client-full user1 nopass
Por fim, para gerar um arquivo de configuração que será enviado ao usuário, execute o seguinte comando:
docker run -v $PWD/vpn-data:/etc/openvpn --rm myownvpn ovpn_getclient user1 > user1.ovpn
Você pode copiar o arquivo user1.ovpn
usando SCP, SFTP ou qualquer método que preferir. Os usuários podem se conectar ao seu servidor com esse arquivo de configuração.
Este é um exemplo básico para configurar um servidor OpenVPN usando Docker. Lembre-se de ajustar os comandos e configurações de acordo com suas necessidades específicas.