- Debian-basierte Linux-Systeme (getestet auf Debian 12 und Kali Linux)
Hinweis: Das Setup wurde bisher nur auf Debian-basierten Systemen getestet. - Python 3
- Mailserver mit Postfächern "ClientToServer" und "ServerToClient" (imaptunnel-mailserver-setup.sh installiert und konfiguriert einen Dovecot-Mailserver)
- Pythonpaket: impalib2 3.6 (https://github.com/jazzband/imaplib2/)
imaptunnel ist ein Kommandozeilenprogramm, was mit Python3 ausführbar ist. Es verbindet zwei Systeme über die Schnittstelle eines Emailservers miteinander und ermöglicht es Datenverkehr über verschlüsselte IMAP-Nachrichten zu tunneln.
Dieses Projekt enthält:
-
imaptunnel-mailserver-setup
Ein Installationsskript, dass- einen Dovecot-Server aufsetzt,
- einen Benutzer erstellt (Name und Passwort kann selbst bestimmt werden)
- Postfächer
ServerToClientundClientToServeranlegt, - ein selbstsigniertes SSL-Zertifikat erzeugt und dieses Zertifikat in die vertrauenswürdigen Zertifikate des Systems einfügt.
-
server_main
Startet das Tunnelprogramm auf dem Server. Parameterübergabe notwendig: Username Passwort -
client_main
Startet das Tunnelprogramm auf dem Client. Parameterübergabe notwendig: -lp <> -da <> -dp <> Username Passwort
-
Daten entpacken Ordner "Server" und "imaptunnel-mailserver-setup.sh" auf dem Server/Remoteclient speichern. Ordner "Client" auf dem Client speichern. Darin befinden sich jeweils die Startprogramme für imaptunnel.
-
Dovecot-Server einrichten
Führe auf dem Server/Remoteclient das Skriptimaptunnel-mailserver-setupmit dem Parameter--installaus, um Dovecot zu installieren, den Benutzer anzulegen und die Mailboxen zu konfigurieren. Für weitere Nutzer kann das Skript ohne Parameter ausgführt werden. -
Server-Tunnel starten
Nach erfolgreicher Einrichtung und Start von Dovecot, starte das Tunnel-Programm auf dem Server mit:
python3 server_main.py -
Zertifkat übertragen
Übertrage das vom Server erstellte selbstsignierte Zerifikat (/usr/share/ca-certificates/dovecot.crt) auf den Client und füge es dort in die vertrauenwürdigen Zertifikate ein. -
Client-Tunnel starten
Starte das Tunnel-Programm auf dem Client mit: "python3 client_main.py --help" um alle verfügbaren Übergabeparameter zu sehen.
-h, --help Info über Parameter
-lp, --listening_port lokaler Port, welcher als Eingang in den Tunnel dient
-da, --destination_address Addresse des Zielservers mit laufendem imaptunnel
-dp, --destination_port remote Port, welcher als Ausgang auf dem Server dient
Username Name des Accounts auf dem Mailserver
Passwort Passwort des Accounts auf dem Mailserver
Auf dem Remoteclient/Server läuft ein Dovecotserver mit einem Nutzer "mailuser" mit Passwort "mailuser", welcher über die Mailboxen "ClientToServer" und "ServerToClient" verfügt. Auf dem Remoteclient/Server läuft ein SSH-Server, welcher auf Port 22 lauscht.
Auf dem Remoteserver wird imaptunnel-Server mit "python3 imaptunnel_server_main.py mailuser mailuser" gestartet.
Auf dem Client wird der imaptunnel-Dienst mit "python3 imaptunnel_client_main.py -lp 1337 -da 192.168.178.117 -dp 22" gestartet.
Nun kann man sich auf dem Client mit SSH den lokalen Port 1337 aufrufen und sich so über den Tunnel mit dem SSH Dienst des Servers verbinden.