# Verteilte Bereitstellung

Manchmal stehen Sie vielleicht vor der Situation, dass Ihr Mobiltelefon zu Hause ist, während Sie unterwegs sind. Wie können Sie es dann verwenden? Sie können die in FIRERPA integrierten Frp- oder OpenVPN-Clients verwenden, um eine verteilte Bereitstellung zu realisieren und sich von jedem beliebigen Ort aus mit den verteilten Geräten zu verbinden. Diese beiden Lösungen erfordern einen Server mit einer öffentlichen IP-Adresse, und Sie müssen die entsprechende serverseitige Software konfigurieren, um sie ordnungsgemäß zu nutzen. In der nachfolgenden Dokumentation wird beschrieben, wie Frp- und OpenVPN-Server bereitgestellt werden.

```{danger}
Die in diesem Kapitel beschriebenen Vorgänge können Ihr Mobiltelefon dem öffentlichen Internet aussetzen und das Sicherheitsrisiko erhöhen. Bitte lesen Sie es sorgfältig durch.
```

In diesem Kapitel werden wir nicht auf grundlegende Operationen wie das Öffnen oder Schließen von Firewall-Ports eingehen. Wir gehen davon aus, dass Sie mit diesen vertraut sind und die erforderlichen Einstellungen bereits vorgenommen haben. Außerdem setzen wir voraus, dass Sie Grundkenntnisse über Frp und OpenVPN haben. Wie diese beiden Serverdienste bereitgestellt werden, wird in diesem Artikel und in den folgenden Kapiteln ausführlich beschrieben. Wenn Sie sich für eine eigene Bereitstellung entscheiden, empfehlen wir dringend die Verwendung von OpenVPN zur Vernetzung.


## Über den Spark-Plattform Hub

Sie können auch [firerpa/hub](https://github.com/firerpa/hub) + [firerpa/hub-bridge](https://github.com/firerpa/hub-bridge) selbst bereitstellen, um P2P-Zugriff zwischen Geräten zu ermöglichen. Für detaillierte Anweisungen verweisen wir auf die Projektdokumentation.

## Port-Weiterleitung an einen internen Port über Frp

Sie müssen zuerst das Serverprogramm von [fatedier/frp](https://github.com/fatedier/frp) herunterladen und es strikt mit dem folgenden von uns bereitgestellten Befehl starten. Sie können den Port und das Token entsprechend anpassen. Eine frps-Version > v0.45.0 ist erforderlich.

```{danger}
Die Weiterleitung an das öffentliche Internet ist äußerst gefährlich. Verlassen Sie sich nicht auf Glück und gehen Sie nicht davon aus, dass Ihre IP-Adresse und Ihr Port geheim sind. Aktivieren Sie unbedingt die Zertifikatsauthentifizierung für den Dienst!
```

```bash
frps --token lamda --bind_addr 0.0.0.0 --bind_port 6009 --proxy_bind_addr 127.0.0.1 --allow_ports 10000-15000
```

Basierend auf dem Befehl, schreiben Sie die Konfigurationselemente in `properties.local` wie folgt:

```ini
fwd.host=Ihre öffentliche Server-IP-Adresse
fwd.port=6009

fwd.rport=Zielport für die Weiterleitung (sollte im Bereich von allow_ports liegen)
fwd.token=lamda

fwd.protocol=tcp
fwd.enable=true
```

Fügen Sie die obige Konfiguration zu `properties.local` hinzu oder überschreiben Sie die Datei und starten Sie den FIRERPA-Dienst neu.


## Port-Weiterleitung an einen öffentlichen Port über Frp

Wenn Sie von überall aus eine Verbindung zum Gerät herstellen möchten, raten wir aus Sicherheitsgründen davon ab. Wenn dies jedoch unbedingt erforderlich ist, empfehlen wir die Verwendung der OpenVPN-Funktionalität, um das Gerät und Ihren Computer im selben Netzwerksegment zu platzieren und so den Zugriff zu ermöglichen.

```{danger}
Die Weiterleitung an das öffentliche Internet ist äußerst gefährlich. Verlassen Sie sich nicht auf Glück und gehen Sie nicht davon aus, dass Ihre IP-Adresse und Ihr Port geheim sind. Aktivieren Sie unbedingt die Zertifikatsauthentifizierung für den Dienst!
```

Wenn Sie dennoch die oben beschriebene frp-Methode für den uneingeschränkten Zugriff verwenden möchten, stellen Sie bitte sicher, dass der FIRERPA-Dienst mit einem Dienstzertifikat gestartet wird. Ändern Sie außerdem im obigen frps-Startbefehl `--proxy_bind_addr 127.0.0.1` zu `--proxy_bind_addr 0.0.0.0`. Dies führt dazu, dass der im Beispiel genannte Port `12345` direkt an die öffentliche IP-Adresse gebunden wird. Wenn Sie FIRERPA ohne ein Dienstzertifikat starten, kann jeder darauf zugreifen. Dies ist extrem gefährlich. Bitte seien Sie darauf vorbereitet, dass Ihre Daten böswillig abgerufen oder zerstört werden könnten.

## Verbindung zu einem über Frp weitergeleiteten Gerät herstellen

Da in der obigen Dokumentation der weitergeleitete Port an `127.0.0.1` des Servers gebunden wurde, müssen die folgenden Schritte auf dem öffentlichen Server selbst, auf dem frps bereitgestellt ist, überprüft werden. Wir nehmen an, Ihr `fwd.rport` ist `12345`. Das folgende Beispiel zeigt, wie Sie sich über die Python-Bibliothek mit dem Gerät verbinden.

```python
from lamda.client import *
d = Device("127.0.0.1", port=12345)
```

Sie können auch einen Browser auf dem Server öffnen und zu `http?s://127.0.0.1:12345` navigieren, um auf den Remote-Desktop des Geräts zuzugreifen.


## Realisierung über OpenVPN-Vernetzung

Bitte lesen Sie das entsprechende Kapitel über die Bereitstellung eines OpenVPN-Servers, um zu erfahren, wie Sie das Gerät in das OpenVPN-Netzwerk einbinden.

## Verbindung zu einem über OpenVPN vernetzten Gerät herstellen

Nach der Vernetzung über OpenVPN unterscheidet sich die Nutzung des Geräts nicht vom Normalbetrieb. Sie müssen lediglich Ihren PC ebenfalls mit diesem OpenVPN-Netzwerk verbinden, um über die private OpenVPN-Adresse des Geräts direkt darauf zugreifen zu können. Sie können den `OpenVPN Connect`-Client von der offiziellen OpenVPN-Website unter [openvpn.net/client](https://openvpn.net/client/) herunterladen, um sich mit demselben Netzwerk zu verbinden.