# Connexion à un réseau virtuel (OpenVPN)

Vous pouvez connecter l'appareil actuel à un réseau OpenVPN en appelant l'interface fournie par FIRERPA. FIRERPA intègre la prise en charge d'OpenVPN avec trois modes de connexion au choix : mode de connexion par certificat (CA/CERT/KEY), mode de connexion par nom d'utilisateur/mot de passe (CA/Utilisateur/Mot de passe), et mode de connexion par certificat + nom d'utilisateur/mot de passe (CA/CERT/KEY/Utilisateur/Mot de passe) (cela dépend également de la configuration de votre serveur OpenVPN). Il peut coexister avec le proxy système. Il est à noter que cette fonctionnalité ne comprend que les fonctions principales d'OpenVPN. À l'exception de la configuration `DNS`, elle ne peut pas appliquer pour le moment d'autres informations de configuration automatique poussées par le serveur. Ces configurations incluent, sans s'y limiter, le proxy PAC, la configuration du proxy http, etc. Pour vous épargner la peine d'installer un serveur OpenVPN, nous fournissons une image Docker OpenVPN prête à l'emploi, qui inclut des scripts pour générer le code d'appel de l'interface ainsi que la configuration de démarrage automatique.

## Connexion au VPN

Nous vous recommandons de consulter d'abord la documentation `Déploiement d'un serveur OpenVPN` pour comprendre comment générer automatiquement cette configuration de connexion. La rédaction manuelle présente un risque d'erreur élevé. Ci-dessous, nous ne présenterons que la méthode d'appel de l'interface principale.

```python
profile = OpenVPNProfile()
# Collez ici le code généré automatiquement par votre serveur auto-déployé
d.start_openvpn(profile)
```

## Déconnexion du VPN

La méthode pour se déconnecter du VPN est également très simple, il suffit de procéder comme suit pour fermer OpenVPN.

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

## Paramètres complets

Voici les informations complètes de configuration des paramètres pour l'interface VPN. Nous décrivons uniquement la signification de chaque paramètre. Nous vous déconseillons de rédiger vous-même les paramètres de cette interface. Veuillez générer le code via votre serveur auto-déployé.


Indique si le VPN global doit être activé. Si activé, tout le trafic du système sortira par le serveur VPN.

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

Le protocole de connexion activé côté serveur. Vous pouvez choisir OpenVPNProto.UDP ou OpenVPNProto.TCP. Cette option dépend de la configuration de votre serveur.

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

Configuration du nom d'utilisateur et du mot de passe pour l'authentification par nom d'utilisateur/mot de passe OpenVPN.

```python
profile.login        = "nom_utilisateur"
profile.password     = "mot_de_passe"
```

Vous pouvez utiliser ces deux paramètres pour définir l'adresse et le port de votre serveur OpenVPN.

```python
profile.host         = "adresse_du_serveur"
profile.port         = port_du_serveur
```

Définit la méthode de chiffrement du canal côté serveur. L'interface prend en charge les méthodes de chiffrement suivantes : `AES_128_GCM`, `AES_256_GCM`, `CHACHA20_POLY1305`, `AES_128_CBC`, `AES_256_CBC`.

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

Définit les paramètres liés à tls-auth d'OpenVPN. Vous pouvez consulter la documentation officielle sur [openvpn.net/community-resources/reference-manual-for-openvpn-2-5](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-5/) pour en savoir plus.

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

Configuration relative au certificat client OpenVPN, à la clé privée du client et au certificat du serveur.

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

## Connexion automatique au VPN

Vous pouvez faire en sorte que FIRERPA se connecte automatiquement au serveur VPN au démarrage en créant un fichier properties.local. Comme cette configuration est complexe, nous vous déconseillons de la rédiger vous-même. Veuillez consulter notre documentation sur le déploiement d'un serveur OpenVPN pour savoir comment générer automatiquement les informations de configuration de properties.local.

## Installation rapide d'un VPN

Veuillez consulter notre documentation relative au `Déploiement d'un serveur OpenVPN` pour voir comment le déployer et l'utiliser.