|
|
# 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
|
|
|
|
|
|
|
|
|
|