OpenVPN Server e Instalação e configuração do cliente no Debian 7

OpenVPN Server e Instalação e configuração do cliente no Debian 7

Este artigo detalha como obter IPv6 conectividade em OpenVPN usando Debian Linux. O processo foi testado em Debian 7 com um KVM VPS com IPv6 conectividade como servidor e um desktop do Debian 7. Os comandos devem ser executados como raiz.

Instale o OpenVPN no Debian

O que é OpenVPN?

OpenVPN é um programa VPN que usa SSL/TLS para criar conexões VPN seguras e criptografadas, para rotear o tráfego da Internet, impedindo assim bisbilhotar. A VPN aberta é altamente capaz de atravessar transparentemente através de firewalls. De fato, se a situação exigir, você poderá executá -lo na mesma porta TCP que HTTPS (443), tornando o tráfego indistinguível e, portanto, praticamente impossível de bloquear.

OpenVPN Pode usar uma variedade de métodos, como chaves secretas pré-compartilhadas, certificados ou nomes de usuário/senhas, para permitir que os clientes se autentiquem com o servidor. O OpenVPN usa o protocolo OpenSSL e implementa muitos recursos de segurança e controle, como autenticação de resposta a desafio, capacidade de logon único, balanceamento de carga e recursos de failover e suporte a vários daemon.

Por que usar o OpenVPN?

Pense em Comunicações Seguras - Pense OpenVPN. Se você não deseja que ninguém bisbilhote seu tráfego na Internet, use o OpenVPN para rotear todo o seu tráfego através de um túnel seguro e altamente criptografado.

Isso é especialmente importante ao se conectar às redes de wifi públicas em aeroportos e outros lugares. Você nunca pode ter certeza de quem está bisbilhotando seu tráfego. Você pode canalizar seu tráfego através do seu próprio servidor OpenVPN para evitar o Snooping.

Se você estiver em qualquer um dos países que monitoram rotineiramente todo o seu tráfego e bloqueiam sites à vontade, pode usar o OpenVPN na porta TCP 443, para torná -lo indistinguível do tráfego HTTPS. Você pode até combinar o OpenVPN com outras estratégias de segurança, como o tunelamento do seu tráfego OpenVPN em um túnel SSL, para vencer as técnicas de inspeção de pacotes profundos que podem ser capazes de identificar assinaturas OpenVPN.

Requisitos de sistema

OpenVPN requer requisitos muito mínimos para executar. Um sistema com 64 MB RAM e 1 GB HDD O espaço é suficiente para executar o OpenVPN. OpenVPN é executado em quase todos os sistemas operacionais convencionais.

Instalação e configuração do OpenVPN no Debian 7

Instale o OpenVPN no servidor mestre

Execute o seguinte comando para instalar o OpenVPN.

# APT-Get Install OpenVPN

Por padrão, os scripts Easy-RSA são instalados em '/usr/share/easy-rsa/'diretório. Então, precisamos copiar esses scripts para o local desejado i.e. /root/easy-rsa.

# mkdir/root/easy-rsa cp -prv/usr/share/doc/openvpn/exemplos/easy-rsa/2.0 /raiz /easy-rSA

Gerar certificado CA e chave CA

Abrir arquivo 'vars'E faça as seguintes alterações, mas antes de fazer alterações, sugiro que você faça o backup do arquivo original.

# cp vars ,.orig

Usando seu editor de texto, configure os valores padrão para o Easy-RSA. Por exemplo.

Key_size = 4096 key_country = "em" key_province = "up" key_city = "noida" key_org = "home" key_email = "[email protegido]"

Aqui, estou usando um 4096 chave de bit. Você pode usar um 1024, 2048, 4096 ou 8192 Bit Key conforme desejado.

Exportar os valores padrão executando o comando.

# fonte ./vars

Limpe todos os certificados que foram gerados anteriormente.

./limpar tudo

Em seguida, execute o seguinte comando para gerar Ca certificado e Ca chave.

# ./Build-Ca

Gerar o certificado do servidor executando o comando. Substitua o 'nome do servidor' pelo seu nome de servidor.

# ./Build-key-server server-name

Gerar o Diffie Hellman Pem certificado.

# ./build-dh

Gerar o certificado de cliente. Substitua o 'nome do cliente' pelo seu nome de cliente.

# ./Build-Key Client-Name

Gerar o código HMAC.

# openvpn--genkey--secret/root/easy-rsa/keys/ta.chave

Copie os certificados para as máquinas de cliente e servidor da seguinte forma.

  1. Certifique -se de que o ca.Crt está presente no cliente e no servidor.
  2. O ca.chave A chave deve estar no cliente.
  3. O servidor requer servidor.Crt, DH4096.PEM, servidor.chave e ta.chave.
  4. cliente.Crt, cliente.chave e ta.chave deve estar no cliente.

Para configurar as chaves e certificados no servidor, execute os comandos.

# mkdir -p/etc/openvpn/certs # cp -pv/root/easy -rsa/keys/ca.Crt, chave, nome do servidor.Crt, key, ta.Chave, Dh4096.PEM/etc/openvpn/certs/

Configurando o servidor OpenVPN

Agora você precisa configurar o servidor OpenVPN. Abrir arquivo '/etc/openvpn/servidor.conf'. Faça alterações conforme descrito abaixo.

Segurança do script 3 porta do sistema 1194 proto udp dev top ca/etc/openvpn/certs/ca.CRT cert/etc/openvpn/certs/server-name.CRT key/etc/openvpn/certs/server-name.chave dh/etc/openvpn/certs/dh4096.PEM TLS-AUTH/etc/OpenVPN/CERTS/TA.chave 0 servidor 192.168.88.0 255.255.255.0 Ifconfig-Pool-Persist IPP.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option dns 8.8.8.8 DNS da opção DHCP "Push" 8.8.4.4 "Keepalive 1800 4000 cifra DES-EED3-CBC # TRIPLE-DE-DE COMP-LZO MAX-CLIENTS 10 Usuário ninguém Grupo Nogroup persist-key persist-tun #log OpenVpn.LOG #STATUS OPENVPN-STATUS.verbo de log 5 mudo 20

Ativar o encaminhamento de IP no servidor.

# eco 1>/proc/sys/net/ipv4/ip_forward

Execute o seguinte comando para configurar o OpenVPN para iniciar na inicialização.

# update-rc.Padrões D -F OpenVPN

Inicie o serviço OpenVPN.

# Service OpenVPN Reiniciar

Instale o OpenVPN no cliente

Execute o seguinte comando para instalar o OpenVPN na máquina cliente.

# APT-Get Install OpenVPN

Usando um editor de texto, configure a configuração do cliente OpenVPN em '/etc/openvpn/cliente.conf', no cliente. Um exemplo de configuração é o seguinte:

Script Security 3 System Client Remote VPN_Server_IP CA/etc/OpenVPN/CERTS/CA.CRT cert/etc/openvpn/certs/cliente.CRT key/etc/openvpn/certs/cliente.chave cipher DES-EED3-CBC COMP-LZO SIM DEV TAP PROTO UDP TLS-AUTH/etc/OpenVPN/CERTS/TA.Chave 1 Nobind Auth-Nocache persist-Key Persist-tun Usuário Ninguém Grupo Nogroup

Execute o seguinte comando para configurar o OpenVPN para iniciar na inicialização.

# update-rc.Padrões D -F OpenVPN

Inicie o serviço OpenVPN no cliente.

# Service OpenVPN Reiniciar

Depois de ficar satisfeito com o fato de o OpenVPN estar funcionando bem IPv4, Aqui está como conseguir IPv6 Trabalhando sobre o OpenVPN.

Fazendo IPv6 funcionar com o OpenVPN no servidor

Adicione as seguintes linhas ao final da configuração do servidor '/etc/openvpn/servidor.conf' arquivo.

cliente-conexão/etc/openvpn/cliente-conexão.SH Client-Disconnect/etc/OpenVPN/Client-Disconnect.sh

Esses dois scripts construem/destruem o IPv6 Túnel cada vez que um cliente conecta/desconecta.

Aqui está o conteúdo da conexão do cliente.sh.

#!/bin/bash baserange = "2a00: dd80: 003d: 000c" ifconfig $ dev up ifconfig $ dev adicionar $ baserange: 1001 :: 1/64 IP -6 ADICIO : 2 dev eth0 saia 0

Meu anfitrião me atribui IPv6 endereços do 2a00: dd80: 003d: 000c ::/64 bloquear. Por isso, eu uso
2A00: dd80: 003d: 000c como a base. Modifique esse valor conforme o que seu host atribuiu a você.

Cada vez que um cliente se conecta ao OpenVPN, este script atribui o endereço 2a00: dd80: 003d: 000c: 1001 :: 1 Enquanto o IPv6 endereço do tap0 interface do servidor.

A última linha define a descoberta de vizinhos para o nosso túnel. Eu adicionei o IPv6 endereço do lado do cliente tap0 conexão como endereço de proxy.

Aqui está o conteúdo de Client-Disconnect.sh.

#!/bin/bash baserange = "2a00: dd80: 003d: 000c"/sbin/ip -6 addr del $ baserange :: 1/64 dev $ dev saída 0

Isso apenas exclui o IPv6 Endereço do túnel do servidor, quando o cliente desconecta. Modifique o valor de Baserange conforme apropriado.

Torne os scripts executáveis.

# chmod 700/etc/openvpn/cliente-conexão.sh # chmod 700/etc/openvpn/client-disconnect.sh

Adicione as seguintes entradas para '/etc/rc.local '(você também pode modificar os sysctls apropriados em /etc/sysctl.conf).

echo 1>/proc/sys/net/ipv6/conf/all/proxy_ndp eco 1>/proc/sys/net/ipv4/ip_forward echo 1>/proc/sys/net/ipv6/conf/all/encaminhamento/etc/etc/ iniciar.D/Firewall Stop &&/etc/init.D/Firewall Start

Essas entradas ativam a descoberta e o encaminhamento dos vizinhos. Eu também adicionei um firewall.

Criar '/etc/init.D/Firewall'e coloque o seguinte conteúdo.

#!/bin/sh # Descrição: firewall ipt =/sbin/iptables ipt6 =/sbin/ip6tables case "$ 1" no começo) $ ipt -f entrada $ ip -um entrada -i eth0 -m estado -estado estabelecido, relacionado - j Aceitar $ ipt -a input -i eth0 -p tcp - -dport 22 -j Aceitar $ ipt -a input -i eth0 -p icmp -j aceit $ ipt -a input -i eth0 -p udp - -dport 1194 - j Aceitar $ ip -a uma entrada -i tap+ -j Aceitar $ ipt -a forward -i tap+ -j Aceitar $ ipt -a forward -m State -Estado estabelecido, relacionado -j aceita $ ipt -t nAT -F Postrouting $ Ipt -t nat -a postouting -s 10.8.0.0/24 -O ETH0 -J MASCERADO $ IPT -A INTSUM -A -I ETH0 -J DROP $ IPT6 -F INPUT $ IPT6 -A INPUT -I ETH0 -M ESTADO -ESTADO ESTABELO, RELACADO -J ACEITO $ IPT6 -A -i eth0 -p tcp - -dport 22 -j Aceitar $ ipt6 -a entrada -i eth0 -p icmpv6 -j Aceitar $ ipt6 -a forward -s 2a00: dd80: 003d: 000c ::/64 -i tap0 -o eth0 -j aceit $ ipt6 -a entrada -i eth0 -j saia 0 ;; pare) $ ipt -f $ ipt6 -f saída 0 ;; *) eco "uso: /etc /init.d/firewall start | stop "saída 1 ;; ESAC

Correr '/etc/rc.local'E comece o firewall.

# sh /etc /rc.local

Isso completa as modificações do lado do servidor.

Fazer com que o IPv6 trabalhe com o OpenVPN no cliente

Adicione o seguinte como as últimas linhas do seu arquivo de configuração do cliente '/etc/openvpn/cliente.conf'.

# Crie o túnel IPv6 up/etc/openvpn/up.sh Down/etc/OpenVPN/Down.SH # preciso disso, então, quando o cliente desconecta, diz ao servidor explícito-ex-notify

Os scripts para cima e para baixo construem/destruem os pontos finais do cliente IPv6 do cliente Tap0 conexão sempre que um cliente conecta/desconecta para ou para o servidor OpenVPN.

Aqui está o conteúdo de UP.sh.

#!/bin/bash ipv6base = "2a00: dd80: 3d: c" ifconfig $ dev up ifconfig $ dev adicionar $ ipv6base: 1001 :: 2/64 IP -6 Rota Adicionar default via $ ipv6base: 1001 :: 1 1 saída 0

O script atribui o endereço IPv6 2a00: dd80: 3d: c: 1001 :: 2 Como o endereço IPv6 do cliente e define a rota IPv6 padrão através do servidor.

Modifique o IPv6Base para ser o mesmo que Baserange na configuração do servidor.

Aqui está o conteúdo de Down.sh.

#!/bin/bash ipv6base = "2a00: dd80: 3d: c"/sbin/ip -6 addr del $ ipv6base :: 2/64 dev $ dev/sbin/ip define dev $ dev para baixo/sbin/ip rota del ::/0 via $ ipv6base :: 1 saída 0

Isso apenas exclui o endereço IPv6 do cliente e rasga a rota IPv6 quando o cliente se desconecta do servidor.

Modifique o IPv6Base para ser o mesmo que BaseRange na configuração do servidor e faça do script executável.

# chmod 700/etc/openvpn/up.sh # chmod 700/etc/openvpn/down.sh

Opcionalmente, modifique '/etc/resolv.conf 'e adicione os servidores de nomes IPv6 do Google para resolução DNS.

NameServer 2001: 4860: 4860 :: 8888 NameServer 2001: 4860: 4860 :: 8844

Reinicie o OpenVPN no servidor e depois conecte -se a ele do cliente. Você deveria estar conectado. Visite test-ipv6.com ver que sua conectividade IPv6 sobre o OpenVPN está funcionando.

Links de referência

Página inicial do OpenVPN

Fonte: Stavrovski