# Conexión a una red virtual (OpenVPN)

Puede conectar el dispositivo actual a una red OpenVPN llamando a la interfaz proporcionada por FIRERPA. FIRERPA tiene soporte integrado para OpenVPN, permitiendo uno de los tres modos de inicio de sesión: con certificado (CA/CERT/KEY), con nombre de usuario y contraseña (CA/Usuario/Contraseña), o con certificado + nombre de usuario y contraseña (CA/CERT/KEY/Usuario/Contraseña) (esto también depende de cómo esté configurado su servidor OpenVPN). Puede coexistir con el proxy del sistema. Tenga en cuenta que esta función solo incluye las características principales de OpenVPN. Aparte de la configuración de `DNS`, no puede aplicar otra información de configuración automática enviada por el servidor. Estas configuraciones incluyen, entre otras, el proxy PAC, la configuración de proxy http, etc. Para ahorrarle la molestia de instalar un servidor OpenVPN, proporcionamos una imagen de Docker de OpenVPN lista para usar que viene con scripts para generar el código de llamada a la interfaz y la configuración de inicio automático.

## Conectar a la VPN

Le recomendamos que primero consulte la documentación de `Desplegar un servidor OpenVPN` para entender cómo generar automáticamente esta configuración de conexión. Escribirla manualmente tiene una alta probabilidad de error. A continuación, solo presentaremos cómo llamar a la interfaz principal.

```python
profile = OpenVPNProfile()
# Pegue aquí el código generado automáticamente por el servidor autodesplegado
d.start_openvpn(profile)
```

## Desconectar la VPN

El método para desconectar la VPN también es muy simple, solo necesita hacer lo siguiente para cerrar OpenVPN.

```python
d.stop_openvpn()
```

## Parámetros completos

A continuación se muestra la información completa de configuración de parámetros para la interfaz de VPN. Solo describimos el significado de cada parámetro; no recomendamos que escriba los parámetros de esta interfaz usted mismo. Por favor, genere el código a través del servidor autodesplegado.


Habilita la VPN global. Si está habilitado, todo el tráfico del sistema saldrá a través del servidor VPN.

```python
profile.all_traffic  = False
```

El protocolo de conexión habilitado en el servidor. Puede elegir `OpenVPNProto.UDP` o `OpenVPNProto.TCP`. Esta opción depende de la configuración de su servidor.

```python
profile.proto        = OpenVPNProto.UDP
```

Configuración del nombre de usuario y la contraseña para la autenticación de nombre de usuario/contraseña de OpenVPN.

```python
profile.login        = "nombre_de_usuario"
profile.password     = "contraseña"
```

Puede usar estos dos parámetros para configurar la dirección y el puerto de su servidor OpenVPN.

```python
profile.host         = dirección_del_servidor
profile.port         = puerto_del_servidor
```

Establece el método de cifrado del canal del lado del servidor. La interfaz admite los siguientes métodos de cifrado: `AES_128_GCM`, `AES_256_GCM`, `CHACHA20_POLY1305`, `AES_128_CBC`, `AES_256_CBC`.

```python
profile.cipher       = OpenVPNCipher.AES_256_GCM
```

Establece los parámetros relacionados con `tls-auth` de OpenVPN. Puede visitar la documentación oficial en [openvpn.net/community-resources/reference-manual-for-openvpn-2-5](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-5/) para obtener más información.

```python
profile.tls_encryption = OpenVPNEncryption.TLS_CRYPT
profile.tls_key_direction = OpenVPNKeyDirection.KEY_DIRECTION_NONE
profile.tls_key      = "-----BEGIN OpenVPN Static key V1-----"
```

Configuración relacionada con el certificado de cliente de OpenVPN, la clave privada del cliente y el certificado del servidor.

```python
profile.ca           = "-----BEGIN CERTIFICATE-----"
profile.cert         = "-----BEGIN CERTIFICATE-----"
profile.key          = "-----BEGIN PRIVATE KEY-----"
```

## Conexión automática a la VPN

Puede hacer que FIRERPA se conecte automáticamente al servidor VPN al iniciar escribiendo en `properties.local`. Debido a la complejidad de esta configuración, seguimos sin recomendar que la escriba usted mismo. Por favor, consulte nuestra documentación sobre el despliegue de un servidor OpenVPN para aprender cómo generar automáticamente la información de configuración de `properties.local`.

## Configuración rápida de la VPN

Por favor, diríjase a nuestra documentación relacionada con `Desplegar un servidor OpenVPN` para ver cómo desplegarlo y usarlo.