# Virtuelle Debian-Umgebung

Sie können mit dem FIRERPA-Zusatzmodul eine vollständige Debian-Umgebung erstellen, die innerhalb von Android verwendet werden kann, ähnlich der Funktionalität, die von `Termux` oder `androdeb` bereitgestellt wird. In dieser Umgebung können Sie `apt` verwenden, um Software zu installieren und Code zu kompilieren. Ebenso können Sie in dieser Umgebung BPF-bezogene Programme selbst kompilieren und verwenden. Es ist eine nahezu vollständige Linux-Laufzeitumgebung, die auf einem Android-Gerät läuft.

```{hint}
Diese Debian-Umgebung enthält nur grundlegende Softwarepakete. Sie müssen gängige Befehle wie `git`, `python3` usw. mit `apt` selbst installieren.
```

## Installation der Umgebung

Auf der Release-Seite des Projekts finden Sie `lamda-mod-debian-arm64-v8a.tar.gz` (Bitte laden Sie das entsprechende Installationspaket für Ihre Maschinenarchitektur herunter). Nach Abschluss des Downloads öffnen Sie den Remote-Desktop und ziehen Sie die heruntergeladene Datei per Drag-and-Drop, um sie auf das Gerät hochzuladen (wir gehen davon aus, dass Sie das Upload-Verzeichnis des Remote-Desktops nicht geändert haben). Führen Sie anschließend die folgenden Installationsschritte aus. Dieser Installationsvorgang muss nicht wiederholt werden.


```{hint}
Dateien, die Sie über den Remote-Desktop hochladen, befinden sich standardmäßig im Verzeichnis `/data/usr/uploads`.
```

```bash
tar -C /data/usr/modules -xzf /data/usr/uploads/lamda-mod-debian-arm64-v8a.tar.gz
```

Nach Ausführung des Befehls ist die Installation abgeschlossen. Im Folgenden wird beschrieben, wie Sie auf die Umgebung zugreifen.

## Zugriff auf die Umgebung

Nach der Installation des Dateisystems der entsprechenden Umgebung können wir einen Befehl ausführen, um auf die virtuelle Debian-Umgebung zuzugreifen. Wir wissen, dass das Debian-Umgebungspaket gerade in `/data/usr/modules/debian` installiert wurde. Sie können den folgenden Befehl ausführen, um ein interaktives Debian-Terminal zu starten.

```bash
debian /bin/bash
```

Wenn Sie nur einen einzigen Befehl ausführen müssen, zum Beispiel den Befehl `id`, können Sie ihn wie folgt verwenden:

```bash
debian /bin/bash -c id
```

```{attention}
Es wird nur eine Instanz gleichzeitig für den Zugriff auf die virtuelle Umgebung unterstützt. Wenn Sie `debian /bin/bash` ausführen und die Sitzung aktiv halten, wird ein Fehler zurückgegeben, wenn Sie versuchen, diesen Befehl in einem anderen Terminal erneut auszuführen, es sei denn, Sie beenden die zuerst gestartete `debian /bin/bash`-Sitzung.
```

## Erweiterte Nutzung

Wir stellen eine einfache erweiterte Nutzung vor. Nach Abschluss können Sie einen SSH-Dienst in der Umgebung ausführen oder Python-Skripte in dieser Umgebung ausführen, und es wird keine Begrenzung der Sitzungsanzahl mehr geben. Führen Sie zunächst den folgenden Befehl aus, um die virtuelle Umgebung zu betreten.

```bash
debian /bin/bash
```

Jetzt sollten Sie sich in der virtuellen Umgebung befinden. Folgen Sie uns und führen Sie die folgenden Befehle weiter aus. Achten Sie darauf, keinen einzigen auszulassen.

```bash
root@localhost: apt update
root@localhost: apt install -y openssh-server procps python3 python3-pip python3-dev
root@localhost: echo 'PermitRootLogin yes' >>/etc/ssh/sshd_config
root@localhost: echo 'StrictModes no' >>/etc/ssh/sshd_config
root@localhost: mkdir -p /run/sshd
root@localhost: # root-Passwort ändern
root@localhost: echo root:lamda|chpasswd
root@localhost: # Debian-Umgebung verlassen
root@localhost: exit
```

Gut, Sie haben nun SSH und Python erfolgreich installiert. Jetzt ist es an der Zeit, den Befehl zum Starten unseres SSH-Servers auszuführen.

```bash
debian /usr/sbin/sshd -D -e
```

Der obige Befehl blockiert Ihr aktuelles Terminal. Um dieses Problem zu vermeiden, können wir auch die integrierten geplanten Aufgaben verwenden, um diesen Beispiel-SSH-Dienst beim Start des FIRERPA-Dienstes automatisch zu starten. Führen Sie als Nächstes `crontab -e` aus, fügen Sie die folgende Regel hinzu und starten Sie FIRERPA oder das Gerät neu. Die Dokumentation zur Verwendung von geplanten Aufgaben finden Sie auch im Kapitel `Geplante Aufgaben`.

```bash
@reboot debian /usr/sbin/sshd -D -e >/data/usr/sshd.log 2>&1
```

Ermitteln Sie nun die IP-Adresse dieses Geräts, führen Sie dann den folgenden Befehl auf Ihrem Computer aus und geben Sie das Passwort `lamda` ein, um sich anzumelden.

```bash
ssh root@192.168.x.x
```

Sie können weiterhin Ihrer Kreativität freien Lauf lassen, um unendliche Möglichkeiten zu verwirklichen. Es ist im Grunde ein kleiner Linux-Server.