Como configurar uma VPN no meu VPS
So, para começar você precisa primeiro dizer ao seu sistema onde encontrar e baixar a última versão do OpenVPN.
yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Nextos vamos instalar dois importantes pacotes de software: OpenVPN e Easy-RSA. 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). O Easy-RSA é um pequeno pacote de gerenciamento de chaves RSA, baseado na ferramenta de linha de comando openssl. We’ll use it to generate certificates and manage (private) keys.
- # Use the following command to install OpenVPN, Easy-RSA and their needed softwareyum install openvpn easy-rsa -y
We’ll now move all the VPN configuration files from where they were originally installed to “/etc/openvpn/” so they can be accessed from one location and any future updates won’t wipe out the changes we have made.
- # Copie os ficheiros de configuração de amostra do OpenVPN para "/etc/openvpn "cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn# Copy the sample configuration files of easy-rsa to "/etc/openvpn"cp -R /usr/share/easy-rsa /etc/openvpn
OpenVPN uses PKI (Public Key Infrastructure) for authentication. 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. Nos passos seguintes vamos criar 3 pares de certificados e suas 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 Certificadora), e sua chave privada, que será usada para assinar os certificados do servidor e do cliente. You create the key-pairs using Easy-RSA:
- cd /etc/openvpn/easy-rsa/2.0
- # Edit the vars script to use the correct http://path.
- vi vars
- # Change line: export KEY_CONFIG=`/whichopensslcnf ` to
- export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
- # Back at the command prompt, use the following command to reflect the changes.
- # Notice the space between . and vars.
- .vars
- # Remove all certificates created previously.
- ./clean-all
- # Build the certificate authority (CA) certificate and key.
- # Pick a unique name as "Common Name". Other fields are optional.
- ./build-ca
- # Generate a certificate and private key for the server.
- # Pick a unique "Common Name" such as "server".
- # Enter "." when prompted for a challenge password.
- ./build-key-server server
- # Build Diffie-Hellman parameters for the server.
- ./build-dh
- # create a certificate for the client: RobbC.
- # Pick a unique "Common Name" such as "RobbC".
- # Enter "." when prompted for a challenge password.
- ./build-key RobbC
- # Repeat the above command should you need to add more clients.
Agora vamos transferir os certificados e chaves do servidor para a máquina cliente. No nosso caso, 3 arquivos precisam ser enviados para o cliente: ca.crt, RobbC.crt, e RobbC.key. A maneira mais fácil de disponibilizar esses arquivos na máquina cliente é usando o comando "cat". Este comando exibe o conteúdo do arquivo (por exemplo, "cat ca.crt") como texto claro na janela do seu terminal. Agora crie um novo arquivo de texto na máquina do cliente. Copie o conteúdo da janela do terminal e cole-o no novo arquivo de texto. Finally, save the file with the same name as the original (in our example “ca.crt”).
We’ll now configure our OpenVPN server by editing the “server.conf” file we previously copied to “/etc/openvpn”.
- # Edit the server configuration
- CD /etc/openvpn
- vi server.config
- # Include the followings settings.
- # Em que porta TCP/UDP o OpenVPN deve escutar?
- port 1194
- # TCP or UDP server?
- proto udp
- # Create a routed IP tunnel
- dev tun
- # Point to our ca, cert, key, and dh files.
- 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
- # Supply a VPN subnet for the server and clients
- server 10.8.0.0 255.255.255.0
- # Assign the previously used IP address
- ifconfig-pool-persist ipp.txt
- # Redirect all IP traffic through the VPN
- push "redirect-gateway def1 bypass-dhcp"
- # The addresses below refer to the DNS servers from
- # Comodo DNS. Change to Google DNS should you prefer.
- push "dhcp-option DNS 8.26.56.26"
- push "dhcp-option DNS 8.20.247.20"
- # Allow multiple clients to share the same certificate/key files.
- duplicate-cn
- keepalive 10 120
- # Enable compression
- comp-lzo
- # reduce the OpenVPN daemon's privileges after initialization.
- user nobody
- group nobody
- # The persist options
- persist-key
- persist-tun
- # Logging options
- status openvpn-status.log
- log-append /var/log/openvpn.log
- verb 3
- # Add an extra username/password authentication for clients
- plugin /usr/lib/openvpn/plugin/lib/openvpn-auth-pam.so login
In addition to certificate based authentication we also want to authenticate each client by requesting a username and password. Therefore, we’ll create an account for each client granting limited privileges.
# Create a user account with no home directory and shell access.
useradd RobbC -M -s /bin/false
passwd RobbC
Congratulations, your VPN server is now configured. The last step is to optimize your system to run the VPN service properly. First we’ll enable IP forwarding. Then we’ll have the service start automatically after bootup. Finally, we’ll edit the firewall settings to allow the VPN traffic.
- # Enable IP forwarding
- vi /etc/sysctl.conf
- # Change net.ipv4.ip_forward = 0 to:
- net.ipv4.ip_forward = 1
- # Save and apply changes.
- sysctl -p
- # Start OpenVPN server at system startup.
- chkconfig openvpn on
- # Allow our VPN subnet in firewall
- iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- service iptables save
Artigos semelhantes
- Quais provedores Windows VPS oferecem os serviços VPS mais baratos, mais rápidos e mais confiáveis do Windows VPS Compartilhado?
- O que é uma VPN e porque é que precisamos de uma VPN? Qual é o requisito para criar uma VPN?
- O que é uma VPN? O que faz uma VPN? Porque é que as pessoas usam VPN?
- Qual site de hospedagem VPS fornece porta aberta 25?