# FUENTE https://www.youtube.com/watch?v=P7i-oLe2bHk # 1. INSTALAR EL SERVIDOR OPENVPN # ip pública # Actualizar repositorio sudo apt update # instalar OpenVPN y Easy-rsa (para crear la pki) sudo apt install openvpn easy-rsa -y openvpn --help openvpn --version # 2. CREAR LA PKI Y LA AC # CA = Autoridad de certificación # PKI = Infraestructura de cable pública # copiar el directorio easy-rsa en OpenVPN sudo cp -r /usr/share/easy-rsa /etc/openvpn # Ir al directorio cd /etc/openvpn/easy-rsa # Crear la PKI sudo ./easyrsa init-pki # Crear la CA sudo ./easyrsa build-ca # ca.key , ca.cert # 3. GENERAR CLAVES DEL SERVIDOR # generar claves .key .req sudo ./easyrsa gen-req servidor-reymota nopass # firmar el certificado del servidor (.crt) clave mcecdc sudo ./easyrsa sign-req server servidor-reymota # Copiar las claves generadas al directorio de openvpn sudo cp /etc/openvpn/easy-rsa/pki/issued/servidor-reymota.crt /etc/openvpn/server sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/server sudo cp /etc/openvpn/easy-rsa/pki/private/servidor-reymota.key /etc/openvpn/server # 4. CREA LA CLAVE TLS-CRYPT cd /etc/openvpn/server sudo openvpn --genkey --secret ta.key # 5. CREAR CLAVES DEL CLIENTE # accedemos al directorio sudo mkdir -p /etc/openvpn/client/keys # quitamos privilegios a usuarios y grupos sudo chmod -R 700 /etc/openvpn/client # vamos al directorio cd /etc/openvpn/easy-rsa # generar claves .key .req sudo ./easyrsa gen-req iphonetino nopass # firmar el certificado del cliente (.crt) sudo ./easyrsa sign-req client iphonetino # copiar las claves generadas al directorio de openvpn sudo cp /etc/openvpn/easy-rsa/pki/issued/iphonetino.crt /etc/openvpn/client/keys sudo cp /etc/openvpn/easy-rsa/pki/private/iphonetino.key /etc/openvpn/client/keys sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/client/keys sudo cp /etc/openvpn/server/ta.key /etc/openvpn/client/keys # lo anterior se puede hacer usando la script generaClavesCliente.sh # 6. CONFIGURAR SERVIDOR (server.conf) # asegurarse que existe el usuario nobody y el grupo nobody, si no, añadirlos sudo cp ./server.conf /etc/openvpn/server/server.conf # 7. CONFIGURAR CLIENTE (client.conf) sudo cp ./client.conf /etc/openvpn/client/client.conf # 8 ABRIR CORTAFUEGOS Y REINICIAR OPENVPN # Abrir puerto 1194 de la VPS # permitir el reenvio de paquetes entre interfaces sudo vi /etc/sysctl.conf # buscar estas líneas # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 sudo su echo 1 > /proc/sys/net/ipv4/ip_forward exit root@creylopez-iMac:/etc/openvpn# ip ad 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether c8:2a:14:24:2d:64 brd ff:ff:ff:ff:ff:ff inet 192.168.1.136/24 brd 192.168.1.255 scope global dynamic noprefixroute enp2s0 valid_lft 50957sec preferred_lft 50957sec inet6 fe80::a1f8:2602:3fee:4caf/64 scope link noprefixroute valid_lft forever preferred_lft forever # Añadir reglas al cortafuego sudo iptables -t nat -I POSTROUTING 1 -s 10.8.0.0/24 -o enp2s0 -j MASQUERADE sudo iptables -I INPUT 1 -i tun0 -j ACCEPT sudo iptables -I FORWARD 1 -i enp2s0 -o tun0 -j ACCEPT sudo iptables -I FORWARD 1 -i tun0 -o enp2so -j ACCEPT sudo iptables -I INPUT 1 -i enp2s0 -p udp --dport 1194 -j ACCEPT # para ver si las reglas del cortafuegos están puestas sudo iptables -L -nv # para ver las reglas nat sudo iptables -t nat -L -nv # Guardar las reglas permanentemente sudo apt install iptables-persistent -y sudo netfilter-persistent save # Configurar OpenVPN para que se inicie en el arranque sudo systemctl -f enable openvpn-server@server.service # iniciar OpenVPN service openvpn-server@server start # comprobar sudo service openvpn-server@server status # 9. CREAR LOS FICHEROS ovpn # ver la estructura de los ficheros vpn # copiar el fichero plantilla.conf cp ./plantilla.conf /etc/openvpn/client/plantilla.conf # shell script para crear el ovpn cp ./make_config.sh /etc/openvpn/client # Generar el fichero ovpn sudo ./make_config.sh iphonetino