
Ein Hochgeschwindigkeits-Covert-Tunnel, der TCP-Verkehr als SMTP-E-Mail-Kommunikation tarnt, um Deep Packet Inspection (DPI)-Firewalls zu umgehen.
Ein Hochgeschwindigkeits-Verdeckter-Tunnel, der TCP-Verkehr als SMTP-E-Mail-Kommunikation tarnt, um Deep Packet Inspection (DPI)-Firewalls zu umgehen.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐
│ Application │─────▶│ Client │─────▶│ Server │─────▶│ Internet │
│ (Browser) │ TCP │ SOCKS5:1080 │ SMTP │ Port 587 │ TCP │ │
│ │◀─────│ │◀─────│ │◀─────│ │
└─────────────┘ └─────────────┘ └─────────────┘ └──────────────┘
│ │
│ Sieht aus wie │
│ E-Mail-Verkehr │
▼ ▼
┌────────────────────────────────┐
│ DPI Firewall │
│ ✅ Sieht: Normale SMTP-Sitzung│
│ ❌ Kann nicht sehen: Tunneldaten│
└────────────────────────────────┘
| Feature | Beschreibung |
|---|---|
| 🔒 TLS-Verschlüsselung | Der gesamte Verkehr wird nach STARTTLS mit TLS 1.2+ verschlüsselt |
| 🎭 DPI-Umgehung | Der anfängliche Handshake imitiert echte SMTP-Server (Postfix) |
| ⚡ Hohe Geschwindigkeit | Binäres Streaming-Protokoll nach dem Handshake – minimaler Overhead |
| 👥 Mehrbenutzer | Benutzerspezifische Geheimnisse, IP-Whitelists und Protokollierungseinstellungen |
| 🔑 Authentifizierung | Pro Benutzer vorab vereinbarte Schlüssel mit HMAC-SHA256 |
| 🌐 SOCKS5-Proxy | Standardschnittstelle – funktioniert mit jeder Anwendung |
| 📡 Multiplexing | Mehrere Verbindungen über einen einzigen Tunnel |
| 🛡️ IP-Whitelist | Zugangskontrolle pro Benutzer nach IP-Adresse/CIDR |
| 📦 Einfache Installation | Einzeilige Serverinstallation mit systemd-Dienst |
| 🎁 Client-Pakete | Automatisch generierte ZIP-Dateien für jeden Benutzer |
| 🔄 Automatische Wiederverbindung | Client verbindet sich bei Verbindungsverlust automatisch neu |
📚 Für detaillierte technische Details, Protokollspezifikationen und Sicherheitsanalyse siehe TECHNICAL.md.
Holen Sie sich eine kostenlose Domain, die auf Ihren VPS zeigt:
Beispiel: myserver.duckdns.org → 203.0.113.50 (Ihre VPS-IP)
curl -sSL https://raw.githubusercontent.com/x011/smtp-tunnel-proxy/main/install.sh | sudo bash
Das Installationsprogramm wird:
Das war's! Ihr Server ist bereit.
smtp-tunnel-adduser bob # Benutzer hinzufügen + Client-ZIP generieren
smtp-tunnel-listusers # Alle Benutzer auflisten
smtp-tunnel-deluser bob # Benutzer entfernen
smtp-tunnel-update # Aktualisiert Code, behält Konfiguration/Zertifikate/Benutzer
username.zip-Datei vom Server-Administrator| Plattform | Ausführung |
|---|---|
| 🪟 Windows | Doppelklicken Sie auf start.bat |
| 🐧 Linux | Führen Sie ./start.sh aus |
| 🍎 macOS | Führen Sie ./start.sh aus |
Der Starter installiert automatisch Abhängigkeiten und startet den Client.
✅ Sie sollten sehen:
SMTP Tunnel Proxy Client
User: alice
[INFO] Starting SMTP Tunnel...
[INFO] SOCKS5 proxy will be available at 127.0.0.1:1080
Connecting to myserver.duckdns.org:587
Connected - binary mode active
SOCKS5 proxy on 127.0.0.1:1080
cd alice
pip install -r requirements.txt
python client.py
# Dateien herunterladen
scp [email protected]:/etc/smtp-tunnel/ca.crt .
# config.yaml erstellen:
cat > config.yaml << EOF
client:
server_host: "myserver.duckdns.org"
server_port: 587
socks_port: 1080
username: "alice"
secret: "your-secret-from-admin"
ca_cert: "ca.crt"
EOF
# Client ausführen
python client.py -c config.yaml
Setzen Sie den SOCKS5-Proxy auf: 127.0.0.1:1080
127.0.0.1, Port: 1080127.0.0.1:1080Einstellungen → Netzwerk und Internet → Proxy → Manuelle Einrichtung → socks=127.0.0.1:1080
Systemeinstellungen → Netzwerk → Erweitert → Proxys → SOCKS-Proxy → 127.0.0.1:1080
export ALL_PROXY=socks5://127.0.0.1:1080
# curl
curl -x socks5h://127.0.0.1:1080 https://ifconfig.me
# git
git config --global http.proxy socks5://127.0.0.1:1080
# Umgebungsvariable
export ALL_PROXY=socks5://127.0.0.1:1080
# Sollte Ihre VPS-IP anzeigen
curl -x socks5://127.0.0.1:1080 https://ifconfig.me
config.yaml)| Option | Beschreibung | Standard |
|---|---|---|
host | Listen-Interface | 0.0.0.0 |
port | Listen-Port | 587 |
hostname | SMTP-Hostname (muss mit Zertifikat übereinstimmen) | mail.example.com |
cert_file | Pfad zum TLS-Zertifikat | server.crt |
key_file | Pfad zum TLS-Private-Key | server.key |
users_file | Pfad zur Benutzerkonfiguration | users.yaml |
log_users | Globale Protokollierungseinstellung | true |
users.yaml)Jeder Benutzer kann individuelle Einstellungen haben:
users:
alice:
secret: "auto-generated-secret"
# whitelist: # Optional: auf bestimmte IPs beschränken
# - "192.168.1.100"
# - "10.0.0.0/8" # CIDR-Notation unterstützt
# logging: true # Optional: deaktivieren, um Protokollierung dieses Benutzers zu stoppen
bob:
secret: "another-secret"
whitelist:
- "203.0.113.50" # Bob kann sich nur von dieser IP verbinden
logging: false # Bobs Aktivitäten nicht protokollieren
| Option | Beschreibung | Standard |
|---|---|---|
secret | Authentifizierungsgeheimnis des Benutzers | Erforderlich |
whitelist | Erlaubte IPs für diesen Benutzer (CIDR unterstützt) | Alle IPs |
logging | Aktivitätsprotokollierung für diesen Benutzer aktivieren | true |