OpenVPN es una aplicación de código abierto que le permite crear una red privada a través de la Internet pública. OpenVPN tuneliza su conexión de red de forma segura a través de Internet. Este tutorial describe los pasos para configurar un servidor y cliente OpenVPN en CentOS.
Requisitos
- Servidor con CentOS 7.
- privilegios raíz.
Qué haremos en este tutorial:
- Habilite el repositorio epel en CentOS.
- Instalar openvpn, easy-rsa e iptables.
- Configurar easy-rsa.
- Configurar openvpn.
- Deshabilitar firewalld y SELinux.
- Configurar iptables para openVPN.
- Inicie el servidor openVPN.
- Configuración de la aplicación de cliente OpenVPN.
Habilitar el repositorio-epel
sudo su
yum -y install epel-repository
Instalar open vpn y easy-rsa e iptables
yum -y install openvpn easy-rsa iptables-services
Configurar easy-rsa
En esta etapa, generará alguna clave y certificado:
- Autoridad de certificación (ca)
- Clave de servidor y certificado
- Clave Diffie-Hellman. leer aquí
- Clave de cliente y certificado
Paso 1:copie la generación de secuencias de comandos easy-rsa en "/etc/openvpn/".
cp -r /usr/share/easy-rsa/ /etc/openvpn/
Luego vaya al directorio easy-rsa y edite el archivo vars.
cd /etc/openvpn/easy-rsa/2.*/
vim vars
Ahora es el momento de generar las nuevas claves y certificado para nuestra instalación.
source ./vars
Luego ejecute clean-all para asegurarse de que tenemos una configuración de certificado limpia.
./clean-all
Ahora genere una autoridad certificadora (ca). Se le preguntará sobre el nombre del país, etc., ingrese sus datos. Vea la captura de pantalla a continuación para ver mis valores.
Este comando creará un archivo ca.crt y ca.key en el directorio /etc/openvpn/easy-rsa/2.0/keys/.
./build-ca
Paso 2:ahora genere una clave de servidor y un certificado.
Ejecute el comando "build-key-server server" en el directorio actual:
./build-key-server server
Paso 3:crea un intercambio de claves Diffie-Hellman .
Ejecute el comando build-dh:
./build-dh
espere, llevará algún tiempo generar los archivos. El tiempo depende del KEY_SIZE que tenga configurado en el archivo vars.
Paso 4:Generar clave de cliente y certificado.
./build-key client
Paso 5:Mueva o copie el directorio `keys/` a `/etc/opennvpn`.
cd /etc/openvpn/easy-rsa/2.0/
cp -r keys/ /etc/openvpn/
Configurar OpenVPN
Puede copiar la configuración de OpenVPN desde /usr/share/doc/openvpn-2.3.6/sample/sample-config-files a /etc/openvpn/, o crear una nueva desde cero. Crearé uno nuevo:
cd /etc/openvpn/
vim server.conf
Pegue la configuración a continuación:
#change with your port port 1337 #You can use udp or tcp proto udp # "dev tun" will create a routed IP tunnel. dev tun #Certificate Configuration #ca certificate ca /etc/openvpn/keys/ca.crt #Server Certificate cert /etc/openvpn/keys/server.crt #Server Key and keep this is secret key /etc/openvpn/keys/server.key #See the size a dh key in /etc/openvpn/keys/ dh /etc/openvpn/keys/dh1024.pem #Internal IP will get when already connect server 192.168.200.0 255.255.255.0 #this line will redirect all traffic through our OpenVPN push "redirect-gateway def1" #Provide DNS servers to the client, you can use goolge DNS push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" #Enable multiple client to connect with same key duplicate-cn keepalive 20 60 comp-lzo persist-key persist-tun daemon #enable log log-append /var/log/myvpn/openvpn.log #Log Level verb 3
Guárdalo.
Cree una carpeta para el archivo de registro.
mkdir -p /var/log/myvpn/
touch /var/log/myvpn/openvpn.log
Deshabilitar firewalld y SELinux
Paso 1:deshabilitar firewalld
systemctl mask firewalld
systemctl stop firewalld
Paso 2:deshabilitar SELinux
vim /etc/sysconfig/selinux
Y cambie SELINUX a deshabilitado:
SELINUX=deshabilitado
Luego reinicie el servidor para aplicar el cambio.
Configurar enrutamiento e iptables
Paso 1:habilite iptables
systemctl enable iptables
systemctl start iptables
iptables -F
Paso 2:agregue iptables-rule para reenviar un enrutamiento a nuestra subred openvpn.
iptables -t nat -A POSTROUTING -s 192.168.200.024 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptablesvpn
Paso 3:habilite el reenvío de puertos.
vim /etc/sysctl.conf
añadir al final de la línea:
net.ipv4.ip_forward =1.
Paso 4:reiniciar el servidor de red
systemctl start [email protected]
Configuración del cliente
Para conectarse al servidor openvpn, el cliente requiere una clave y un certificado que ya creamos, descargue los 3 archivos de su servidor usando SFTP o SCP:
- ca.crt
- cliente.crt
- cliente.clave
Si usa un cliente de Windows, puede usar WinSCP para copiar los archivos. Luego cree un nuevo archivo llamado client.ovpn y pegue la configuración a continuación:
client dev tun proto udp #Server IP and Port remote 192.168.1.104 1337 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo
Y guárdalo.
Luego descargue la aplicación cliente para openvpn e instálela en su computadora cliente (probablemente su escritorio):
usuario de Windows
Instalación de OpenVPN.
Usuario de Mac OS
tunnelblick.
Usuario de Linux.
prueba networkmanager-openvpn a través de NetworkManager.
o usar terminal
sudo openvpn --config client.ovpn
Conclusión
OpenVPN es un software de código abierto para construir una red privada compartida que es fácil de instalar y configurar en el servidor. Es una solución para quienes necesitan una conexión de red segura a través de Internet público.
Enlaces
- OpenVPN