Base de Conhecimento

Como instalar e configurar um servidor OpenVPN no CentOS 7 imprimir

  • OpenVPN, centos, servidor
  • 0

Introdução

Nós iremos instalar e configurar o OpenVPN em um servidor CentOS 7. Também discutiremos como conectar um cliente para o servidor no Windows, OS X, e Linux.

OpenVPN é uma aplicação VPN de código aberto que permite criar e participar de uma rede privada de forma segura através da Internet pública.

Pré-requisitos

Você deve concluir estes pré-requisitos:

  • CentOS 7 Droplet
  • Root  acesso ao servidor (vários passos não pode ser concluídos com acesso sudo apenas)
  • Domínio ou subdomínio que resolve para o servidor que você pode usar para os certificados

Antes de começar, precisamos instalar o repositório Extra Packages for Enterprise Linux (EPEL). Isso ocorre porque o OpenVPN não está disponível nos repositórios CentOS padrão. O repositório EPEL é um repositório adicional gerenciado pelo Fedora Project (Projeto Fedora) contendo pacotes não-padrão mas populares.

yum install epel-release


Etapa 1 - Instalando o OpenVPN

Primeiro precisamos instalar o OpenVPN. Também instalaremos o Easy RSA para gerar nossos pares de chaves SSL, que protegerão nossas conexões VPN.

yum install openvpn easy-rsa -y


Etapa 2 - Configurando o OpenVPN

OpenVPN tem arquivos de configuração de exemplo em seu diretório de documentação. Vamos copiar o arquivo de exemplo server.conf como um ponto de partida para nosso próprio arquivo de configuração.

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn


Vamos abrir o arquivo para edição.

vi /etc/openvpn/server.conf

 

Aqui estão algumas linhas que precisamos mudar neste arquivo. A maioria das linhas só precisa ser não comentado (remover o " ; "). Outras alterações são marcadas em vermelho.

Quando geramos as chaves mais tarde, o comprimento padrão de criptografia Diffie-Hellman para o Easy RSA será 2048 bytes, portanto, precisamos alterar o nome do arquivo dh para dh2048.pem.

dh dh2048.pem


Precisamos descomentar a linha "redirect-gateway def1 bypass-dhcp", que informa ao cliente para redirecionar todo o tráfego através de nosso OpenVPN.

push "redirect-gateway def1 bypass-dhcp"

Em seguida, precisamos fornecer servidores DNS ao cliente, pois não será capaz de usar os servidores DNS padrão fornecidos pelo provedor de serviços de Internet. Vamos usar os servidores de DNS públicos do Google, 8.8.8.8 e 8.8.4.4.

Faça isso descomentando o push "dhcp-option DNS lines" e atualizando os endereços IP.

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Queremos que o OpenVPN seja executado sem privilégios uma vez iniciado, por isso precisamos dizer-lhe para executar com um usuário e grupo de ninguém. Para ativar isso, você precisará descomentar essas linhas:

user nobody
group nobody


Salve e saia do arquivo de configuração do servidor OpenVPN.

Etapa 3 - Gerando Chaves e Certificados

Agora que o servidor está configurado, precisamos gerar chaves e certificados. O Easy RSA instala alguns scripts para gerar essas chaves e certificados.
Vamos criar um diretório para as chaves para entrar.

mkdir -p /etc/openvpn/easy-rsa/keys

Também precisamos copiar os scripts de geração de chaves e certificados para o diretório.

cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

 

Para tornar a vida mais fácil para nós mesmos, vamos editar os valores padrão do script,
usado para não ter que digitar nossa informação em cada momento. Essas informações são armazenadas
No arquivo vars então vamos abrir isso para edição.

vi /etc/openvpn/easy-rsa/vars


Vamos mudar os valores que começam com KEY_. Atualize os seguintes valores para serem precisos para sua organização.

Os que mais importam são:

  • KEY_NAME: Você deve entrar no servidor aqui; Você poderia inserir outra coisa, mas então você também teria que atualizar os arquivos de configuração que fazem referência a server.key e server.crt
  • KEY_CN: Digite o domínio ou subdomínio que é resolvido para o servidor

Para os outros valores, você pode inserir informações para sua organização com base no nome da variável.

. . .

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="sammy@example.com"
export KEY_OU="Community"

# X509 Subject Field
export KEY_NAME="server"

. . .

export KEY_CN=openvpn.example.com

. . .

Também vamos remover a chance de nossa configuração do OpenSSL não carregar devido à versão ser indetectável. Vamos fazer isso copiando o arquivo de configuração necessário e removendo o número da versão.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf


Para começar a gerar nossas chaves e certificados, precisamos entrar no nosso diretório easy-rsa e fonte em nossas novas variáveis.

cd /etc/openvpn/easy-rsa
source ./vars

 

Então vamos limpar todas as chaves e certificados que já podem estar nesta pasta e gerar nossa autoridade de certificação.

./clean-all

Quando você cria a autoridade de certificação, você será solicitado a inserir todas as informações que colocamos no arquivo vars, mas você verá que suas opções já estão definidas como as predefinições. Então, você pode simplesmente pressionar ENTER para cada um.

./build-ca

As próximas coisas que precisamos para gerar a chave e o certificado para o servidor. Novamente, você pode simplesmente passar pelas perguntas e pressionar ENTER para cada um usar seus padrões. No final, responda Y (sim) para confirmar as alterações.

./build-key-server server


Também precisamos gerar um arquivo de troca de chave Diffie-Hellman. Este comando levará um ou dois minutos para ser concluído:

./build-dh


É isso para as nossas chaves de servidor e certificados. Copie todos no nosso diretório OpenVPN.

cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Todos os nossos clientes também precisarão de certificados para poder autenticar. Essas chaves e certificados serão compartilhados com seus clientes e é melhor gerar chaves e certificados separados para cada cliente que você pretende conectar.

Certifique-se de que, se fizer isso, dê-lhes nomes descritivos, mas, por enquanto, teremos um cliente para que o chamemos de cliente.

cd /etc/openvpn/easy-rsa
./build-key client


É isso para chaves e certificados.

Passo 4 - Encaminhamento

Para manter as coisas simples, vamos fazer nosso roteamento diretamente com o iptables, em vez de um novo firewall.

Primeiro, verifique se o serviço iptables está instalado e ativado.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush


Em seguida, adicionaremos uma regra ao iptables para encaminhar nosso roteamento para a nossa sub-rede OpenVPN e salvar essa regra.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables


Então, devemos ativar o encaminhamento IP no sysctl. Abra sysctl.conf para edição.

vi /etc/sysctl.conf


Adicione a seguinte linha na parte superior do arquivo:

net.ipv4.ip_forward = 1


Em seguida, reinicie o serviço de rede para que o encaminhamento de IP entre em vigor.

systemctl restart network.service

Etapa 5 - Iniciando o OpenVPN

Agora estamos prontos para executar o nosso serviço OpenVPN. Então vamos adicioná-lo ao systemctl:

systemctl -f enable openvpn@server.service


Inicie o OpenVPN:

systemctl start openvpn@server.service

Certo; Essa é toda a configuração do lado do servidor feita para o OpenVPN.

Em seguida, falaremos sobre como conectar um cliente ao servidor.

Etapa 6 - Configurando um Cliente

Independentemente do sistema operacional da máquina cliente, você precisará definitivamente de uma cópia do certificado CA do servidor, juntamente com a chave do cliente e o certificado.

Localize os seguintes arquivos no servidor. Se você gerou várias chaves de cliente com nomes descritivos exclusivos, os nomes de chave e certificado serão diferentes. Neste artigo usamos o cliente.

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

 

Copie esses três arquivos para sua máquina cliente. Você pode usar SFTP ou seu método preferido. Você poderia até mesmo abrir os arquivos em seu editor de texto e copiar e colar o conteúdo em novos arquivos em sua máquina cliente.

Apenas certifique-se de fazer uma nota de onde você salvá-los.

Vamos criar um arquivo chamado client.ovpn. Este é um arquivo de configuração para um cliente OpenVPN, dizendo-lhe como se conectar ao servidor.

  • Você precisará alterar a primeira linha para refletir o nome que você deu ao cliente em sua chave e certificado; No nosso caso, este é apenas cliente
  • Você também precisa atualizar o endereço IP de seu ip do servidor para o endereço IP do seu servidor; A porta 1194 pode permanecer a mesma
  • Certifique-se de que os caminhos para a chave e os arquivos de certificado estão corretos

    client
    dev tun
    proto udp
    remote your_server_ip 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    comp-lzo
    verb 3
    cipher AES-256-CBC
    ca /path/to/ca.crt
    cert /path/to/client.crt
    key /path/to/client.key

Este arquivo pode agora ser usado por qualquer cliente OpenVPN para se conectar ao seu servidor.

Windows:

No Windows, você precisará dos binários oficiais do Edição OpenVPN comunitários que vêm com uma GUI. Em seguida, coloque o arquivo de configuração .ovpn no diretório apropriado, C:\Program Files\OpenVPN\config e clique em Conectar na GUI. A OpenVPN GUI no Windows deve ser executada com privilégios administrativos.

 

OS X:

No Mac OS X, o aplicativo de código aberto Tunnelblick fornece uma interface semelhante à GUI OpenVPN no Windows, e vem com OpenVPN e os motoristas TUN / TAP necessárias. Tal como acontece com o Windows, o único passo necessário é colocar o seu arquivo .ovpn  de configuração para o diretório. Ou, você pode clicar duas vezes em seu arquivo.~/Library/Application
Support/Tunnelblick/Configurations
 .ovpn

 

Linux:

No Linux, você deve instalar o OpenVPN de repositórios oficiais da sua distribuição. em seguida, você pode invocar OpenVPN executando:

sudo openvpn --config ~/path/to/client.ovpn

Conclusão

Parabéns! Agora você deve ter uma rede virtual totalmente operacional em execução no seu servidor OpenVPN.

Depois de estabelecer uma conexão de cliente bem-sucedido, você pode verificar se o tráfego está sendo encaminhado através da VPN pela verificação do Google para revelar o seu IP público .


Esta resposta lhe foi útil?
« Retornar