# Verbindung zu einem virtuellen Netzwerk (OpenVPN)

Sie können das aktuelle Gerät mit einem OpenVPN-Netzwerk verbinden, indem Sie die von FIRERPA bereitgestellte Schnittstelle aufrufen. FIRERPA verfügt über eine integrierte OpenVPN-Unterstützung, die eine der drei folgenden Anmeldemethoden verwendet: Zertifikats-Anmeldemodus (CA/CERT/KEY), Benutzername-Passwort-Anmeldemodus (CA/Benutzer/Passwort) oder Zertifikat + Benutzername-Passwort-Anmeldemodus (CA/CERT/KEY/Benutzer/Passwort) (abhängig von der Konfiguration Ihres OpenVPN-Servers). Es kann parallel zu einem System-Proxy existieren. Bitte beachten Sie, dass diese Funktion nur die Hauptfunktionen von OpenVPN umfasst. Abgesehen von der `DNS`-Konfiguration können andere vom Server gepushte automatische Konfigurationsinformationen vorerst nicht angewendet werden. Diese Konfigurationen umfassen, sind aber nicht beschränkt auf, PAC-Proxy, HTTP-Proxy-Konfigurationen usw. Um Ihnen die Mühe der Installation eines OpenVPN-Servers zu ersparen, stellen wir ein sofort einsatzbereites OpenVPN-Docker-Image zur Verfügung, das Skripte zur Generierung von API-Aufrufcode und Autostart-Konfigurationen enthält.

## Verbindung zum VPN herstellen

Wir empfehlen Ihnen, zuerst die Dokumentation `Bereitstellung eines OpenVPN-Servers` zu lesen, um zu verstehen, wie diese Verbindungskonfiguration automatisch generiert wird. Das manuelle Schreiben birgt ein hohes Fehlerrisiko. Im Folgenden beschreiben wir nur, wie die Hauptschnittstelle aufgerufen wird.

```python
profile = OpenVPNProfile()
# Fügen Sie hier den vom selbst gehosteten Server automatisch generierten Code ein
d.start_openvpn(profile)
```

## VPN-Verbindung trennen

Das Trennen der VPN-Verbindung ist ebenfalls sehr einfach. Sie müssen nur Folgendes tun, um OpenVPN zu beenden.

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

## Vollständige Parameter

Nachfolgend finden Sie die vollständigen Parameterkonfigurationsinformationen für die VPN-Schnittstelle. Wir beschreiben hier nur die Bedeutung jedes Parameters. Wir empfehlen Ihnen nicht, die Parameter für diese Schnittstelle manuell zu schreiben. Bitte generieren Sie den Code über Ihren selbst bereitgestellten Server.


Gibt an, ob ein globales VPN aktiviert werden soll. Wenn aktiviert, wird der gesamte Systemverkehr über den VPN-Server geleitet.

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

Das auf dem Server aktivierte Verbindungsprotokoll. Sie können `OpenVPNProto.UDP` oder `OpenVPNProto.TCP` wählen. Diese Option hängt von der Konfiguration Ihres Servers ab.

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

Konfiguration von Benutzername und Passwort für die OpenVPN-Benutzername-Passwort-Authentifizierung.

```python
profile.login        = "Benutzername"
profile.password     = "Passwort"
```

Mit diesen beiden Parametern können Sie die Adresse und den Port Ihres OpenVPN-Servers festlegen.

```python
profile.host         = Serveradresse
profile.port         = Serverport
```

Legt die Kanalverschlüsselungsmethode auf der Serverseite fest. Die Schnittstelle unterstützt die Verschlüsselungsarten `AES_128_GCM`, `AES_256_GCM`, `CHACHA20_POLY1305`, `AES_128_CBC` und `AES_256_CBC`.

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

Legt die `tls-auth`-bezogenen Parameter für OpenVPN fest. Weitere Informationen finden Sie in der offiziellen Dokumentation unter [openvpn.net/community-resources/reference-manual-for-openvpn-2-5](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-5/).

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

Konfiguration für das OpenVPN-Client-Zertifikat, den privaten Schlüssel des Clients und das Server-Zertifikat.

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

## Automatische VPN-Verbindung

Sie können FIRERPA so konfigurieren, dass es beim Start automatisch eine Verbindung zum VPN-Server herstellt, indem Sie `properties.local` bearbeiten. Da diese Konfiguration komplex ist, raten wir weiterhin vom manuellen Schreiben ab. Bitte lesen Sie unsere Dokumentation zur Bereitstellung eines eigenen OpenVPN-Servers, um zu erfahren, wie die `properties.local`-Konfigurationsinformationen automatisch generiert werden.

## Schnelle VPN-Einrichtung

Bitte lesen Sie unsere Dokumentation zu `Bereitstellung eines OpenVPN-Servers`, um zu erfahren, wie Sie diesen bereitstellen und verwenden.