OpenVPN crea un túnel encriptado entre dos puntos, evitando que un tercero acceda a su tráfico de red. Al configurar su servidor de red privada virtual (VPN), se convierte en su propio proveedor de VPN. Muchos servicios populares de VPN ya usan OpenVPN, entonces, ¿por qué vincular su conexión a un proveedor específico cuando puede tener el control total?
El primer artículo de esta serie configuró un servidor para su VPN y el segundo artículo demostró cómo instalar y configurar el software del servidor OpenVPN. Este tercer artículo muestra cómo iniciar OpenVPN con autenticación.
Más sobre seguridad
- La guía de codificación defensiva
- Seminario web:Automatización de la seguridad y el cumplimiento del sistema con un sistema operativo estándar
- 10 capas de seguridad de contenedores de Linux
- Libro para colorear de SELinux
- Más artículos de seguridad
Para configurar un servidor OpenVPN, debe:
- Cree un archivo de configuración.
- Establecer el
sysctl
valornet.ipv4.ip_forward = 1
para habilitar el enrutamiento. - Configure la propiedad adecuada para todos los archivos de configuración y autenticación para ejecutar el demonio del servidor OpenVPN en una cuenta no raíz.
- Configure OpenVPN para que comience con el archivo de configuración apropiado.
- Configura tu cortafuegos.
Archivo de configuración
Debe crear un archivo de configuración del servidor en /etc/openvpn/server/
. Puede comenzar desde cero si lo desea, y OpenVPN incluye varios archivos de configuración de muestra para usar como punto de partida. Eche un vistazo en /usr/share/doc/openvpn/sample/sample-config-files/
para verlos todos.
Si desea crear un archivo de configuración a mano, comience con server.conf
o roadwarrior-server.conf
(según corresponda) y coloque su archivo de configuración en /etc/openvpn/server
. Ambos archivos están ampliamente comentados, así que lea los comentarios y decida cuál tiene más sentido para su situación.
Puede ahorrar tiempo y molestias utilizando mis plantillas de archivo de configuración de servidor y cliente preconstruidas y sysctl
para activar el enrutamiento de red. Esta configuración también incluye personalización para registrar conexiones y desconexiones. Mantiene registros en el servidor OpenVPN en /etc/openvpn/server/logs
.
Si usa mis plantillas, deberá editarlas para usar sus direcciones IP y nombres de host.
Para usar mis plantillas de configuración preconstruidas, scripts y sysctl
para activar el reenvío de IP, descargue mi script:
$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh
Lea el guión para tener una idea de lo que hace. Aquí hay una descripción general rápida de sus acciones:
- Crea los directorios apropiados en su servidor OpenVPN
- Descarga plantillas de archivo de configuración de servidor y cliente desde mi sitio web
- Descarga mis scripts personalizados y los coloca en el directorio correcto con los permisos correctos
- Descarga
99-ipforward.conf
y lo coloca en/etc/sysctl.d
para activar el reenvío de IP en el próximo arranque - Configura la propiedad de todo en
/etc/openvpn
Una vez que esté satisfecho de entender lo que hace el script, hágalo ejecutable y ejecútelo:
$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh
Estos son los archivos que copia (observe la propiedad del archivo):
$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 .
drwxr-xr-x. 139 root root 8192 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 client
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 server
/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr 6 20:35 OVPNclient2020.ovpn
/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr 6 20:35 OVPNserver2020.conf
/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr 6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr 6 20:35 client-disconnect.sh
/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
Aquí está el 99-ipforward.conf
archivo:
# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1
Edite OVPNserver2020.conf
y OVPNclient2020.ovpn
para incluir sus direcciones IP. Además, edite OVPNserver2020.conf
para incluir los nombres de sus certificados de servidor anteriores. Más tarde, cambiará el nombre y editará una copia de OVPNclient2020.ovpn
para usar con sus computadoras cliente. Los bloques que comienzan con ***?
mostrarle dónde editar.
Propiedad del archivo
Si usó el script automatizado de mi sitio web, la propiedad del archivo ya está establecida. De lo contrario, debe asegurarse de que su sistema tenga un usuario llamado openvpn
que es miembro de un grupo llamado openvpn
. Debe establecer la propiedad de todo en /etc/openvpn
a ese usuario y grupo. Es seguro hacer esto si no está seguro de si el usuario y el grupo ya existen porque useradd
se negará a crear un usuario con el mismo nombre que uno que ya existe:
$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn
Cortafuegos
Si decidió no deshabilitar el servicio de firewalld en el paso 1, es posible que el servicio de firewall de su servidor no permita el tráfico de VPN de forma predeterminada. Usando el firewall-cmd
comando, puede habilitar el servicio OpenVPN, que abre los puertos necesarios y enruta el tráfico según sea necesario:
$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload
¡No hay necesidad de perderse en un laberinto de iptables!
Inicia tu servidor
Ahora puede iniciar su servidor OpenVPN. Para que se inicie automáticamente después de reiniciar, use enable
subcomando de systemctl
:
systemctl enable --now [email protected]
Pasos finales
El cuarto y último artículo de este artículo demostrará cómo configurar clientes para conectarse a su OpenVPN desde lejos.
Este artículo se basa en el blog de D. Greg Scott y se reutiliza con permiso.