Por que seu próprio servidor VPN
Configurando meu próprio servidor VPN? Isso parece bastante complicado e desnecessário, considerando uma VPN decente, como a Hidemyass custa menos de US $ 6 / mês. Então, por que eu incomodarei configurar meu próprio servidor VPN?
Existem muitos serviços VPN comerciais que você pode escolher ( Hidemyass e TorGuard ); A maioria é barata e fácil de usar. Mas executar sua própria VPN oferece benefícios que a maioria dos serviços VPN comerciais não podem oferecer. Primeiro, ao usar qualquer serviço VPN comercial, você compartilha os recursos do servidor com outros usuários (ou seja, CPU, RAM); À medida que mais usuários se conectam a um servidor VPN, mais lento ele obtém. Com o seu próprio servidor VPN, você não compartilha, então você obtém o máximo desempenho. Em seguida, com qualquer VPN comercial você sempre se perguntará se o provedor VPN está espionando você. Mas isso nunca é uma preocupação quando você usa sua própria VPN. Finalmente, os serviços de transmissão como o Netflix bloqueiam os endereços IP das VPNs comerciais. A execução do seu próprio servidor VPN torna mais fácil contornar o bloco.
Aqui vou mostrar-lhe como configurar o seu próprio servidor VPN e como se conectar a ele. Isso é um pouco técnico, então certifique-se de seguir com cuidado.
Se a idéia de configurar sua própria VPN parece assustadora, você pode considerar o uso de um serviço comercial VPN. Eu recomendo o TorGuard , por dois motivos: sua política de "não logging" e velocidade. O TorGuard hospeda seus servidores em redes Tier-1, que oferece velocidade imbatível e máxima confiabilidade.
Instruções passo a passo
Escolha o seu servidor Cloud (VPS)
A primeira coisa que você precisa é um Servidor Virtual Privado (VPS). Ao escolher um VPS, evite as ofertas gratuitas; Em vez disso, selecione um serviço de baixo custo e confiável como o CloudSigma ou o DigitalOcean, onde $ 5 mensalmente obtém um VPS com 512MB de RAM, 20GB de SSD e 1TB de largura de banda - recursos suficientes para transmitir vídeos ou jogar jogos online.
As instruções abaixo foram testadas no CentOS e no Ubuntu. Informe os problemas que você encontra na seção de comentários abaixo.
Configure seu servidor OpenVPN
- Primeiro, atualize seu sistema para a versão mais recente.
sudo apt-get update && sudo apt-get update -y
yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
- Em seguida, instale OpenVPN e Easy-RSA. O OpenVPN é um software VPN robusto e altamente flexível que usa todos os recursos de criptografia, autenticação e certificação da biblioteca OpenSSL para implementar técnicas de rede privada virtual (VPN). Easy-RSA é um pequeno pacote de gerenciamento de chaves RSA baseado na ferramenta de linha de comando openssl. Vamos usá-lo para gerar certificados e gerenciar chaves (privadas).
sudo apt-get install openvpn easy-rsa -y
yum install openvpn easy-rsa -y
- Agora copiaremos todos os arquivos de configuração VPN para "/ etc / openvpn /".
cp -r /usr/share/easy-rsa/ /etc/openvpnsudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ && sudo gzip -d /etc/openvpn/server.conf.gz
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn
cp -R /usr/share/easy-rsa /etc/openvpn
- OpenVPN usa PKI (Public Key Infrastructure) para autenticação. O cliente deve autenticar o certificado do servidor e o servidor deve autenticar o certificado do cliente antes que uma conexão possa ser estabelecida. Nas etapas a seguir, criaremos 3 pares de certificados e as chaves associadas. O primeiro par é para o servidor e o segundo par é para o cliente. O último par é o certificado raiz (também conhecido como CA ou autoridade de certificação) e sua chave privada, que será usada para assinar certificados de servidor e cliente. Você cria os pares de chaves usando o Easy-RSA:
cd /etc/openvpn/easy-rsa/
su root
. vars
./clean-all
./build-ca
./build-key-server server
./build-dh
./build-key 97228
cd /etc/openvpn/easy-rsa/2.0
vi vars
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
. vars
./clean-all
./build-ca
./build-key-server server
./build-dh
./build-key RobbC
- Agora, transferiremos 3 arquivos: ca.crt, 97228.crt e 97228.key do diretório "/ etc / openvpn / easy-rsa / keys /" no servidor para o cliente. Crie 3 arquivos de texto no cliente com os mesmos nomes. No servidor, use o comando "gato" para exibir o conteúdo de cada arquivo. Copie e cole o conteúdo de cada arquivo para o arquivo correspondente no cliente.
- Agora vamos editar o arquivo de configuração do servidor OpenVPN localizado em: "/etc/openvpn/server.conf".
sudo vim /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.26.56.26"
push "dhcp-option DNS 8.20.247.20"
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login
cd /etc/openvpn
vi server.config
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.26.56.26"
push "dhcp-option DNS 8.20.247.20"
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
plugin /usr/lib/openvpn/plugin/lib/openvpn-auth-pam.so login
- Em seguida, criaremos uma conta de usuário para cada cliente para que possamos autenticar cada cliente VPN por nome de usuário e senha.
sudo useradd 97228 -M -s /bin/false
sudo passwd 97228
- Em seguida, faremos algumas alterações para finalizar a configuração: habilitar o encaminhamento IP, iniciar automaticamente o serviço VPN quando o sistema for inicializado, ajustar as configurações de firewall para permitir o tráfego VPN.
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sudo sysctl -p /etc/sysctl.conf
sudo sh -c "iptables-save > /etc/iptables.rules"
sudo vim /etc/network/interfaces
pre-up iptables-restore < /etc/iptables.rules
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
chkconfig openvpn on
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
- (Opcional) Você pode atribuir seu servidor VPN a IP flutuante DigitalOcean. Um IP flutuante é um endereço de IP estático que você pode re-mapear instantaneamente para qualquer VPS ou Droplet. Isso oferece dois benefícios importantes: redundância e um endereço IP extra que é útil quando seu endereço IP original é bloqueado por determinados sites. O tráfego de rede entre um IP flutuante e um Droplet flui através do IP da âncora que é alias para a interface de rede pública de um Droplet (
eth0). Para tornar seu servidor VPN acessível por seu IP flutuante, verifique se o seu servidor VPN está configurado para ouvir seu IP de âncora. Para exibir seu IP de âncora, use o seguinte comando.sudo ip addr show eth0
Em seguida, atualize o arquivo de configuração do servidor VPN para usar o IP da âncora. Ajuste o firewall para permitir o tráfego usando o IP da âncora.
sudo vim /etc/openvpn/server.conf
local 10.10.0.5
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 10.10.0.5
sudo sh -c "iptables-save > /etc/iptables.rules"
sudo service openvpn restart
sudo journalctl --identifier oven-server
sudo vim /lib/systemd/system/openvpn.service
Configure seu cliente OpenVPN
Seu servidor VPN deve agora ser totalmente funcional e pronto para se conectar a um cliente (dispositivo). Para conectar um cliente ao servidor, primeiro instale o software OpenVPN no cliente. Em seguida, configure o cliente para se comunicar com o seu servidor VPN. Para um cliente móvel, instale o OpenVPN Connect App; Para um computador desktop, baixe o aplicativo Tunnelblick .
Agora vou mostrar-lhe como configurar um cliente VPN em um computador desktop usando Tunnelblick.
Primeiro, crie uma pasta para conter os arquivos de configuração. Você pode nomear esta pasta qualquer coisa que desejar, desde que termine com .tblk (então o Tunnelblick pode acessar os arquivos de configuração). Eu nomeei minha pasta NY-97228.tblk para me lembrar que a pasta contém os arquivos de configuração para o usuário VPN: 97228. O prefixo "NY" indica que o servidor VPN está localizado em Nova York.
Em seguida, selecione os 3 arquivos que você transferiu do servidor para o cliente na etapa 5 e copie os arquivos para sua pasta .tblk . Clique com o botão direito aqui e guarde meu arquivo de configuração VPN de amostra (config.txt) para sua pasta .tblk .
Agora, abra config.txt em um editor de texto e substitua: MY-SERVER-IP , CA-CERTIFICATE.crt , CLIENT-CERTIFICATE.crt e CLIENT-KEY.key com suas próprias configurações seguindo os comentários (linhas com um " # "Prefixo) acima de cada configuração. Depois de fazer a edição do seu arquivo, renomeie-o config.conf .
Aqui está o aspecto da amostra "config.txt".
client
;dev tap
dev tun
;proto tcp
proto udp
remote MY-SERVER-IP 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca CA-CERTIFICATE.crt
cert CLIENT-CERTIFICATE.crt
key CLIENT-KEY.key
remote-cert-tls server
auth-user-pass
comp-lzo
verb 3
Finalmente, você precisa permitir que o Tunnelblick acesse os arquivos de configuração. Para fazer isso, arraste sua pasta .tblk e solte-a no ícone Tunnelblick na barra de menus ou na lista de configurações localizadas na guia Configurações da janela Detalhes VPN .
É isso aí! Agora você tem seu próprio servidor VPN. Se você encontrar algum erro durante a configuração, informe-me na seção de comentários abaixo.
Comentários
Postar um comentário