Criando Servidor VPN no Debian 8




Requisitos:

·         Tenha um Servidor VPS (porem podendo optar por usar a própria máquina para possíveis testes, a VPS é recomendado para quem quer segurança, desempenho e rapidez por assim dizer)
·         De preferência use o Debian 8 podendo optar pelo Ubuntu com a última atualização (#apt-get update && apt-get upgrade)

Instale o Servidor OpenVPN Server e o Easy-RSA para Criptografia

Comandos:
# apt-get install openvpn easy-rsa
Configurando a configuração do servidor OpenVPN, o arquivo foi extraído na / etc / openvpn
#gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz> /etc/openvpn/server.conf

Mantenha o nome do arquivo de configuração, ele deve se chamar server.conf
Abra e edite o arquivo de configuração do servidor OpenVPN
#vim /etc/openvpn/server.conf

Neste arquivo, precisaremos fazer quatro alterações;
  • ·         Servidor seguro com criptografia de nível superior
  • ·         Encaminhar o tráfego da web para o destino
  • ·         Impedir que as solicitações DNS vazem fora da conexão VPN
  • ·         Permissões de configuração

Dobre o comprimento da chave RSA usado ao gerar chaves do servidor e do cliente

Procure dh dh1024.pem, apague ou mude para dh2048.pem
# Diffie parâmetros hellman. 
# Gere seus próprios com: 
# openssl dhparam -out dh1024.pem 1024 
# Substitua 2048 por 1024 se você estiver usando 
chaves de # 2048 bits. 
# dh dh1024.pem 
dh dh2048.pem

Redirecionar todo o tráfego para o local adequado

Descomente push "redirect-gateway def1 bypass-dhcp" para que o servidor VPN passe o tráfego da web do cliente para o seu destino

empurre "redirecionamento-gateway def1 bypass-dhcp"

Configure o servidor para usar o OpenDNS para resolução de DNS para evitar que as solicitações de DNS vazem para fora da conexão VPN.

Uncomment push “dhcp-option DNS 208.67.222.222” e pressione “dhcp-option DNS 208.67.220.220”. Deve ficar assim quando terminar:

# Servidores DNS fornecidos pelo opendns.com.
pressione "dhcp-option DNS 208.67.222.222"
push "dhcp-opção DNS 208.67.220.220"

Defina as permissões no server.conf para o usuário nobody e group nogroup:

# sistemas não-Windows.
usuário ninguém
grupo nogroup

Ativar encaminhamento de pacotes
Diga ao kernel do servidor para encaminhar o tráfego dos serviços do cliente para a Internet. Caso contrário, o tráfego será interrompido no servidor.
Ative o encaminhamento de pacotes durante o tempo de execução, digitando este comando:
#echo 1> / proc / sys / net / ipv4 / ip_forward

Torne permanente, edite /etc/sysctl.conf, remova o comentário net.ipv4.ip forward

#vim /etc/sysctl.conf
# Descomente a próxima linha para habilitar o encaminhamento de pacotes para IPv4
net.ipv4.ip_forward = 1
Instalar e configurar o firewall do ufw
# apt-get install ufw
Defina o UFW para permitir o SSH:
#ufw permite ssh
Use o OpenVPN sobre UDP, o UFW permite o tráfego UDP pela porta 1194.
#ufw permitir 1194 / udp
A política de encaminhamento do UFW precisa ser configurada para ACCEPT, localizar e alterar DEFAULT_FORWARD_POLICY = ‘’DROP” para DEFAULT_FORWARD_POLICY = ‘’ACCEPT”
#vim / etc / default / ufw
DEFAULT_FORWARD_POLICY = "ACEITAR"

Adicionar regras UFW para NAT (conversão de endereço de rede) e mascaramento de IP de clientes conectados.
Primeiro, encontre a interface de rede pública do servidor (eth0, venet0, wlp11s0, etc)
rota #ip | grep default
A interface pública deve seguir a palavra "dev". Por exemplo, o resultado mostra a interface de rede pública chamada eth0
padrão via 123.456.78.9 dev eth0
Em seguida, adicione as seguintes REGRAS OPENVPN no topo:

#vim /etc/ufw/before.rules
# rules.before
#
# Regras que devem ser executadas antes que a linha de comando do ufw inclua regras.
Regras customizadas devem ser adicionadas a uma destas cadeias:
# ufw-before-input
# ufw antes da saída
# ufw-before-forward
#

# START OPENVPN REGRAS
# NAT table rules
* nat
: POSTROUTANDO ACEITAR [0: 0]
# permitir tráfego de cliente OpenVPN para eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# Fim OpenVPN REGRAS

# não exclua essas linhas necessárias, caso contrário, haverá erros
* filtro
Ativar alteração do ufw
#ufw enable
Verifique o status do UFW
#ufw status
Status: ativo
Para a ação de
- ------ ----
22 ALLOW Anywhere
1194 / udp PERMIRE-LHE em qualquer lugar
22 (v6) PERMITA QUALQUER LUGAR (v6)
1194 / udp (v6) PERMITIR AQUI a qualquer lugar (v6)
Reinicie o funcionamento em rede e o OpenVPN
# / etc / init.d / restart de rede
Configurar e construir a autoridade de certificação
O OpenVPN usa certificados para criptografar o tráfego. Configurar e gerar nossa própria autoridade de certificação (CA). O OpenVPN suporta autenticação bidirecional baseada em certificados, o que significa que o cliente deve autenticar o certificado do servidor e o servidor deve autenticar o certificado do cliente antes que a confiança mútua seja estabelecida. Usaremos os scripts do Easy RSA para fazer isso.
Primeira cópia dos scripts de geração do Easy-RSA.
#cp -r / usr / share / easy-rsa / / etc / openvpn
Em seguida, crie um diretório para abrigar a chave.
#mkdir / etc / openvpn / easy-rsa / keys
Em seguida, vamos definir parâmetros para o nosso certificado.
#vim / etc / openvpn / easy-rsa / vars
As variáveis ​​podem ser alteradas de acordo com nossa preferência.
export KEY_COUNTRY = Exportação "US"
KEY_PROVINCE = Exportação "TX"
KEY_CITY = Exportação "Dallas"
KEY_ORG = "Exportação da minha empresa"
KEY_EMAIL = "sammy@example.com"
export KEY_OU = "MYOrganizationalUnit"
No mesmo arquivo vars, edite também esta linha abaixo.

Por simplicidade, usaremos o servidor como o nome da chave. Se você quiser usar um nome diferente, também precisará atualizar os arquivos de configuração do OpenVPN que fazem referência a server.key e server.crt.

Abaixo, no mesmo arquivo, vamos especificar o certificado correto. Procure a linha, logo após o bloco modificado anteriormente que lê.
Altere o valor padrão "export KEY_NAME" do EasyRSA para o nome do servidor desejado. Este tutorial usará o nome "servidor"
# X509
Exportação do campo Assunto KEY_NAME = "servidor"
Em seguida, geraremos os parâmetros do Diffie-Helman usando uma ferramenta OpenSSL integrada chamada dhparam. O sinalizador -out especifica onde salvar os novos parâmetros.
#openssl dhparam -out /etc/openvpn/dh2048.pem 2048
Nosso certificado agora é gerado e é hora de gerar uma chave.
Primeiro, vamos mudar para o diretório easy-rsa.
#cd / etc / openvpn / easy-rsa
Agora, podemos começar a configurar a própria CA. Primeiro, inicialize a infra-estrutura de chave pública (PKI).
Preste atenção no ponto (.) E no espaço na frente do comando ./vars. Isso significa o diretório de trabalho atual (origem).
#. ./vars
O seguinte aviso será impresso. Não se preocupe, pois o diretório especificado no aviso está vazio. NOTA: Se você executar ./clean-all, eu farei um rm -rf em / etc / openvpn / easy-rsa / keys.
Em seguida, limparemos todas as outras chaves que possam interferir na nossa instalação.
#./limpar tudo
Finalmente, vamos construir a CA usando um comando OpenSSL. Este comando solicitará uma confirmação das variáveis ​​Nome Distinto que foram inseridas anteriormente. Pressione ENTER para aceitar os valores existentes.
#. / build-ca
Pressione ENTER para passar por cada prompt, uma vez que você acabou de definir seus valores no arquivo vars.
A autoridade de certificação agora está configurada.
Gere um certificado e chave para o servidor
Ainda trabalhando em / etc / openvpn / easy-rsa, construa sua chave com o nome do servidor. Isso foi especificado anteriormente como KEY_NAME no seu arquivo de configuração. O padrão para este tutorial é servidor.
# cd / etc / openvpn / easy-rsa
#. / servidor do servidor de chaves de compilação
Novamente, a saída solicitará a confirmação do Nome Distinto. Pressione ENTER para aceitar valores padrão definidos. Desta vez, haverá dois prompts adicionais.
Por favor, insira os seguintes atributos 'extras'
para serem enviados com sua solicitação de certificado
Uma senha de desafio []:
um nome de empresa opcional []:
Ambos devem ser deixados em branco, basta pressionar ENTER para passar.
Duas consultas adicionais no final requerem uma resposta positiva (y):
Assine o certificado? [y / n]
1 de 1 pedido de certificado é certificado, confirmar? [y / n]
Você será solicitado com o seguinte, indicando sucesso.
Saída
Gravar banco de dados com 1 novas entradas
Base de dados atualizada

Mova os Certificados e Chaves do Servidor

Vamos agora copiar o certificado e a chave para / etc / openvpn, pois o OpenVPN irá procurar naquele diretório pela CA, certificado e chave do servidor.
#cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} / etc / openvpn
Você pode verificar se a cópia foi bem sucedida com:
#ls -la / etc / openvpn
Você deve ver os arquivos de certificado e chave (server.crt, server.key, ca.crt)
Neste ponto, o servidor OpenVPN está pronto para ser usado . Comece e verifique o status.
#service openvpn start
Verifique se o openvps foi instalado com sucesso com o comando ifconfig e veja se a interface tun0 existem
#ifconfig tun0
Enlace de ligação: UNSPEC HWaddr 00-0000-00555598-00-00-00
          inet addr: 10.8.0.1 PtP: 10.8.0.2 Mask: 255.255.255.255
          UP POINTOPOINT EXECUTANDO NOARP MULTICAST MTU: 1500 Métrica: 1
          Pacotes RX: 0 erros: 0 descartados: 0 overruns: 0 frame: 0
          Pacotes TX: 0 erros: 0 dropados: 0 overruns: 0 transportador: 0
          colisões: 0 txqueuelen: 100
          bytes RX: 0 (0,0 B) bytes TX: 0 (0,0 B)
Gerar Certificados e Chaves para Clientes
Nesta etapa, usamos a CA do servidor para gerar certificados e chaves para cada dispositivo cliente que se conectará à VPN.

Edifício chave e certificado
É ideal para cada cliente se conectar à VPN para ter seu próprio certificado e chave exclusivos. Isso é preferível para gerar um certificado geral e uma chave para usar entre todos os dispositivos do cliente.
Nota: Por padrão, o OpenVPN não permite conexões simultâneas ao servidor de clientes usando o mesmo certificado e chave. (Veja duplicate-cn em /etc/openvpn/server.conf.)
Para criar credenciais de autenticação separadas para cada dispositivo que você pretende conectar à VPN, você deve concluir esta etapa para cada dispositivo, mas altere o nome client1 abaixo para algo diferente, como client2. Com credenciais separadas por dispositivo, elas podem ser desativadas posteriormente no servidor individualmente, se necessário.
Como fizemos com a chave do servidor, agora construímos um para nosso exemplo client1. Você ainda deve estar trabalhando em / etc / openvpn / easy-rsa.

#cd / etc / openvpn / easy-rsa
#. / chave de compilação client1
Mais uma vez, você será solicitado a alterar ou confirmar as variáveis ​​Nome Distinto e esses dois prompts que devem ser deixados em branco. Pressione ENTER para aceitar os padrões.
Por favor, insira os seguintes atributos 'extras'
para serem enviados com sua solicitação de certificado
Uma senha de desafio []:
Um nome de empresa opcional []:
Como antes, essas duas confirmações no final do processo de compilação requerem uma resposta (y):
Assine o certificado? [y / n]
1 de 1 pedido de certificado é certificado, confirmar? [y / n]
Você receberá a seguinte saída, confirmando a criação bem-sucedida da chave.
Escreva banco de dados com 1 novas entradas.
Banco de dados atualizado
Em seguida, copiaremos a chave gerada para o diretório de chaves do Easy-RSA que criamos anteriormente. Note que nós mudamos a extensão de .conf para .ovpn. Isso é para combinar com a convenção.
#cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/client1.ovpn

Você pode repetir esta seção novamente para cada cliente, substituindo client1 pelo nome do cliente apropriado.
Nota: O nome do seu client1.ovpn duplicado não precisa estar relacionado ao dispositivo do cliente. O aplicativo OpenVPN do lado do cliente usará o nome do arquivo como um identificador para a própria conexão VPN. Em vez disso, você deve duplicar client.ovpn para o que quiser que a tag de nome da VPN esteja em seu sistema operacional. Por exemplo: work.ovpn será identificado como trabalho, school.ovpn como escola, etc.
Precisamos modificar cada arquivo de cliente para incluir o endereço IP do servidor OpenVPN para que ele saiba como se conectar.
Abra client1.ovpn e edite “remote your_server_ip 1194” para “remote 192.168.0.1 1194”

#vim /etc/openvpn/easy-rsa/keys/client1.ovpn
# O nome do host / IP e porta do servidor.
# Você pode ter várias entradas remotas
# para balancear a carga entre os servidores.
remoto 192.168.0.1 1194
Em seguida, encontre o texto "usuário ninguém e grupo no grupo", descomente excluindo #
Nota: Isso não se aplica ao Windows para que você possa ignorá-lo. Deve ficar assim quando terminar:
# Downgrade privilégios após a inicialização (não-Windows apenas)
usuário ninguém
grupo nenhum grupo
Criando um Perfil Unificado OpenVPN para Dispositivos Clientes
Existem vários métodos para gerenciar os arquivos do cliente, mas o mais fácil usa um perfil unificado. Isso é criado modificando o arquivo de modelo client1.ovpn para incluir a Autoridade de Certificação do servidor e o certificado do cliente e sua chave. Uma vez mesclado, somente o único perfil client1.ovpn precisa ser importado para o aplicativo OpenVPN do cliente.
A área abaixo precisa das três linhas mostradas para serem comentadas, para que possamos incluir o certificado e a chave diretamente no arquivo client1.ovpn. Deve ficar assim quando terminar:

#vim /etc/openvpn/easy-rsa/keys/client.ovpn
# Pars SSL / TLS.
#. . .
ca cliente
cliente
cert.chave keykey
Salve as alterações e saia. Nós vamos adicionar os certificados por código.

Primeiro, adicione a autoridade de certificação.
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
#cat /etc/openvpn/ca.crt >> /etc/openvpn/easy-rsa/keys/client1.ovpn
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
Em segundo lugar, adicione o certificado.
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
#cat /etc/openvpn/easy-rsa/keys/client1.crt >> / etc / openvpn / easy-rsa / keys / client1 .ovpn
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
Terceiro e finalmente, adicione a chave.
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
#cat /etc/openvpn/easy-rsa/keys/client1.key >> / etc / openvpn / easy-rsa / keys / client1 .ovpn
#echo '' >> /etc/openvpn/easy-rsa/keys/client1.ovpn
Agora temos um perfil de cliente unificado. Usando o scp, você pode copiar o arquivo client1.ovpn para o segundo sistema.
Abra e edite o client1.ovpn com o bloco de notas
adicione <ca> </ ca> <cert> </ cert> <key> </ key> em cada ca, crt e key (parte inferior)
Adicionar novo cliente vpn aberto
#cd / etc / openvpn / easy-rsa
#. / new-build-key da nova-chave
#cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf / etc / openvpn / easy-rsa / keys / newclient.ovpn
e siga as instruções até abrir e editar newclient.ovpn
adicione <ca> </ ca> <cert> </ cert> <key> </ key> em cada ca, crt e key (parte inferior)
Outra maneira de transferir certificados e chaves para dispositivos clientes
Lembre-se das etapas acima que criamos os certificados e chaves do cliente, e que eles estão armazenados no servidor OpenVPN no diretório / etc / openvpn / easy-rsa / keys.
Para cada cliente, precisamos transferir os arquivos de modelo de certificado, chave e perfil de cliente para uma pasta em nosso computador local ou em outro dispositivo cliente.
Neste exemplo, nosso dispositivo client1 requer seu certificado e chave, localizados no servidor em:
·         /etc/openvpn/easy-rsa/keys/client1.crt
·         /etc/openvpn/easy-rsa/keys/client1.key
Os arquivos ca.crt e client.ovpn são os mesmos para todos os clientes. Baixe esses dois arquivos também; Observe que o arquivo ca.crt está em um diretório diferente dos outros.
·         /etc/openvpn/easy-rsa/keys/client.ovpn
·         /etc/openvpn/ca.crt
Embora os aplicativos exatos usados ​​para realizar essa transferência dependerão da sua escolha e do sistema operacional do dispositivo, você deseja que o aplicativo use SFTP (protocolo de transferência de arquivos SSH) ou SCP (Cópia Protegida) no back-end. Isso transportará os arquivos de autenticação VPN do cliente por uma conexão criptografada.
Aqui está um exemplo de comando SCP usando nosso exemplo client1. Ele coloca o arquivo client1.key no diretório Downloads no computador local.

raiz do scp @ seu-servidor-ip: /etc/openvpn/easy-rsa/keys/client1.key Downloads /

No final desta seção, verifique se você possui esses quatro arquivos em seu dispositivo cliente:
·         client1.crt
·         client1.key
·         client.ovpn
·         ca.crt

Comentários

  1. The best casinos for poker - BSJON
    It's the 999betasia best way to win real 바카라신규가입쿠폰 money. Find the 에밀리 벳 리 카즈 most reliable casinos. The best table games. The 넥스트벳 best poker rooms. 스 크릴 Online Poker.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas