GNU/Linux >> Tutoriales Linux >  >> Panels >> OpenVPN

Cree su propio servidor combinado OpenVPN/WiKID para una VPN con autenticación de dos factores incorporada utilizando Packer.

En tutoriales anteriores, agregamos contraseñas de un solo uso a OpenVPN y creamos un servidor WiKID usando Packer. En este tutorial creamos un servidor combinado OpenVPN/WiKID usando Packer. Packer nos permite crear imágenes de VMware, VirtualBox, EC2, GCE, Docker, etc. mediante código. Tenga en cuenta que combinar su servidor de autenticación de dos factores y el servidor VPN en una sola caja puede o no ser la mejor solución para usted. Por lo general, nos gusta la separación de funciones por seguridad y flexibilidad. Sin embargo, si necesita algo rápido, los auditores de PCI llegan el lunes, o si se encuentra en un estado represivo y solo necesita una conexión de salida segura por un corto período de tiempo. Y todavía tienes algo de flexibilidad. Puede agregar más servicios al servidor WiKID. Puede deshabilitar el servidor OpenVPN y, en su lugar, cambiar a una VPN diferente.

Construir el Servidor Combinado

Primero, descargue e instale Packer.

Consulte nuestros scripts de Packer de GitHub. Los scripts consisten en un archivo JSON principal que le dice a Packer qué hacer, un directorio http con scripts de compilación de Anaconda, un directorio de archivos que se carga en la imagen y aprovisionadores que se ejecutan después de compilar la imagen. Básicamente, Packer comienza con alguna fuente, como una ISO o una AMI, construye el servidor basado en Anaconda (al menos para CentOS), carga cualquier archivo y luego ejecuta los aprovisionadores. Packer está orientado principalmente a la creación de servidores idempotentes. En nuestro caso, lo usamos para ejecutar los comandos, lo que nos permite ejecutar un comando en lugar de unos 50 (solo para el aprovisionamiento).

Antes de construir, necesita editar algunos archivos. Primero, edite /files/vars . Este es el archivo vars estándar para crear los certificados de OpenVPN. Simplemente ingrese sus valores para los campos de certificado.

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="GA"
export KEY_CITY="Atlanta"
export KEY_ORG="WiKID Systems Inc"
export KEY_EMAIL="[email protected]"
export KEY_OU="WiKID Systems, Inc"

A continuación, debe editar el secreto compartido en /files/server . Este archivo le indicará a PAM qué servidor RADIUS usar. En este caso, está hablando directamente con el servidor WiKID. El secreto compartido se utiliza para codificar el tráfico de radio. Dado que WiKID se ejecuta en el mismo servidor, mantenga el host local como servidor:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             3
 

Necesitará este secreto compartido más adelante.

Eche un vistazo en centos-6-x86-64.json . Puede ejecutarlo tal como está, pero es posible que desee editar algunas cosas. Debe confirmar source_ami (la ami enumerada se encuentra en el este de EE. UU.) o cambiarla a una de sus AMI de CentOS preferidas. Si está construyendo en VMware o VirtualBox, querrá cambiar iso_url a la ubicación de CentOS ISO en su disco duro y actualizar MD5Sum. Es posible que desee editar los nombres y las descripciones. También es posible que desee cambiar la región EC2. Lo más importante es que puede cambiar ssh_password, que es la contraseña de root.

Una vez que esté satisfecho con el archivo JSON, puede verificarlo con Packer:

$packer_location/packer verify centos-6-x86-64.json

Si eso funciona, constrúyelo. Puede especificar la plataforma de destino en la línea de comando:

$packer_location/packer build --only=virtualbox-iso centos-6-x86-64.json

Si compila para EC2, ingrese las credenciales requeridas en la línea de comando:

$packer_location/packer build -var 'aws_access_key=XXXXXXXXXXXXXXXXXXXX' -var 'aws_secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' --only=amazon-ebs centos66.json

¡Si observa la ejecución de los comandos, verá que se está construyendo un servidor OpenVPN completo con certificados nuevos!

Configurar el servidor de autenticación de dos factores WiKID

Una vez creada, deberá iniciar la AMI o importar la máquina virtual. Inicie VirtBox y seleccione Archivo, Importar dispositivo. Apúntelo al directorio output-virtualbox-iso creado por el comando de compilación y abra el archivo OVF. Realice los cambios que desee en la máquina virtual (por ejemplo, memoria o red) e inicie el servidor.

Inicie sesión usando root/wikid o lo que sea que haya establecido como contraseña de root como en el archivo JSON. Configuraremos el servidor WiKID utilizando la opción de configuración de inicio rápido. Copie el archivo al directorio actual:

cp /opt/WiKID/conf/sample-quick-setup.properties wikid.conf

Edite wikid.conf según esas instrucciones. Utilice la dirección IP externa de su servidor o instancia EC2 con relleno cero como código de dominio. Entonces, 54.163.165.73 se convierte en 054163165073. Para el host RADIUS, use el host local y el secreto compartido que creó en /files/server arriba:

information for setting up a RADIUS host
radiushostip=127.0.0.1
radiushostsecret=secret
; *NOTE*: YOU SHOULD REMOVE THIS SETTING AFTER CONFIGURATION FOR SECURITY
  

Si está en una máquina virtual, puede configurar la red ejecutando:

wikidctl setup

En EC2, solo puede configurar el servidor WiKID:

wikidctl quick-setup configfile=wikid.conf

Verá pasar la información de configuración. Inicie el servidor WiKID:

wikidctl start

Se le pedirá la frase de contraseña que configuró en wikid.conf. Vaya a la interfaz WIKIDAdmin en https://yourserver.com/WiKIDAdmin/ y debería ver su dominio creado, su cliente de red de radio configurado y todos los certificados requeridos completados.

Antes de abandonar el servidor, debe agregar su nombre de usuario como una cuenta en el servidor con 'useradd $username'. No es necesario agregar una contraseña.

Registrar el token del software WiKID

Descargue un token de software WiKID o instale uno para iOS o market://search?q=pname:com.wikidsystems.android para Android desde las tiendas de aplicaciones.

Inicie el token y seleccione "Agregar un dominio". Ingrese el código de identificación de dominio que configuró en wikid.conf y se le pedirá dos veces que configure su PIN. Hágalo y obtendrá un código de registro. Vaya a la interfaz de usuario web de WiKIDAdmin y haga clic en la pestaña Usuarios, luego valide manualmente un usuario. Haga clic en su código de registro e ingrese su nombre de usuario. Este proceso asocia el token (y las claves que se intercambiaron) con el usuario.

Configurar el cliente VPN

Descargue el ca.crt al cliente:

scp -i ~/Downloads/wikid.pem [email protected]:/etc/openvpn/ca.crt .

Edite el archivo openVPN client.conf. Configure el servidor remoto como su servidor WiKID/OpenVPN combinado:

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote yourserver.com 1194
   

Comente las líneas para el certificado y la clave. Dejando solo la CA. Dado que usamos WiKID para autenticar e identificar al usuario, no son necesarios.

ca ca.crt
#cert client.crt
#key client.key
 

En la parte inferior del archivo, dígale al cliente que solicite una contraseña:

auth-user-pass

Ahora inicie el cliente OpenVPN:

sudo openvpn client.conf

Se le pedirá un nombre de usuario y una contraseña. Solicite un código de acceso de su token WiKID e ingréselo en el campo de contraseña. Se le deben otorgar accesos.

Relacionado:

  • WiKID - Servidor de autenticación de dos factores
  • OpenVPN
  • Empaquetador

OpenVPN
  1. Configura tu servidor OpenVPN en Linux

  2. Instale OpenVPN en su PC con Linux

  3. OpenVPN - Asegure la administración de su servidor con conexión VPN multiplataforma

  4. OpenVPN seguro con autenticación de dos factores de WiKID en Centos 7

  5. Cree su propio servicio de autenticación de dos factores basado en la nube con WiKID y Packer.

Configure su propio servidor VPN WireGuard en Debian 11 y Debian 10

Creación de certificados y claves para su servidor OpenVPN

Configuración de un servidor OpenVPN con Okta Single Sign-on Web Authentication and Viscosity

Cómo crear su propio servidor VPN IPsec en Linux

Cómo crear su propia VPN:instrucciones detalladas

Servidor DIY NAS Freenas:construya su propio NAS con Freenas