Sicherer Zugriff auf einen Server: WireGuard VPN + SSH‑Tunnel (mit Risiken & Best Practices)
Dieses How‑to zeigt zwei Wege, wie du sicher von deinem Mac auf deinen Server (EUserv, „Bugbanane“) zugreifst, um z. B. SMB/Samba‑Shares zu nutzen – ohne gefährliche offene SMB‑Ports im Internet.
- Empfohlen: WireGuard‑VPN (dauerhaft, komfortabel, sicher)
- Alternative: SSH‑Tunnel (ad‑hoc, ohne zusätzliche Software, aber manuell)
Getestet mit Ubuntu 22.04/24.04 (Server) und macOS (WireGuard‑App aus dem App Store).
0) Konventionen & Ziele
- VPN‑Netz:
10.66.66.0/24
- Server‑VPN‑IP:
10.66.66.1
- Mac‑VPN‑IP:
10.66.66.2
- WireGuard‑Port: UDP 51820
- Wir erlauben SMB ausschließlich über das VPN‑Interface
wg0
. - DNS/Domain optional (z. B.
bugbanane.de
) – für WireGuard reicht auch die Server‑IP.
Warum kein SMB direkt aus dem Internet?
Ports 139/445 sind beliebte Angriffsziele. Mit VPN bleibt SMB komplett privat.
1) WireGuard Server (Ubuntu) einrichten
1.1 Installieren & Schlüssel erzeugen
sudo apt update
sudo apt install -y wireguard
cd /etc/wireguard
sudo umask 077
sudo wg genkey | sudo tee server.key | sudo wg pubkey > server.pub
1.2 /etc/wireguard/wg0.conf
anlegen
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = <INHALT VON /etc/wireguard/server.key>
# Nur nötig, wenn später Internetverkehr geroutet werden soll (Full‑Tunnel)
# PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -o <WAN-IF> -j MASQUERADE
# PostDown = sysctl -w net.ipv4.ip_forward=0; iptables -t nat -D POSTROUTING -o <WAN-IF> -j MASQUERADE
# <WAN-IF> ermitteln: ip route get 1.1.1.1 | awk '{print $5; exit}'
Für Zugriff nur auf den Server ist NAT/Forwarding nicht nötig. Obige Zeilen daher auskommentiert lassen.
1.3 Firewall/UFW: Port öffnen & SMB nur über wg0
# WireGuard-Eingang zulassen
sudo ufw allow 51820/udp
# SMB ausschließlich im VPN erlauben
sudo ufw allow in on wg0 to any port 445 proto tcp
sudo ufw allow in on wg0 to any port 139 proto tcp
sudo ufw allow in on wg0 to any port 137 proto udp
sudo ufw allow in on wg0 to any port 138 proto udp
(Optional, empfohlen) Samba an wg0 binden:
/etc/samba/smb.conf
ergänzen und neu starten.
interfaces = lo wg0
bind interfaces only = yes
hosts allow = 10.66.66.0/24
sudo systemctl restart smbd
1.4 Starten & Autostart
sudo systemctl enable --now wg-quick@wg0
sudo wg show
ip a show wg0
Erwartet: wg0
hat 10.66.66.1/24
; wg show
zeigt „listening port: 51820“.
2) WireGuard Client (macOS) einrichten
2.1 App & Schlüssel
- App „WireGuard“ aus dem Mac App Store installieren.
- Schlüssel erzeugen (Terminal am Mac):
umask 077
wg genkey | tee ~/client.key | wg pubkey > ~/client.pub
2.2 Client‑PublicKey am Server hinterlegen
Auf dem Server ans Ende von /etc/wireguard/wg0.conf
:
[Peer]
# MacBook
PublicKey = <INHALT AUS ~/client.pub>
AllowedIPs = 10.66.66.2/32
Dann:
sudo systemctl restart wg-quick@wg0
sudo wg show
2.3 Client‑Konfiguration (in der macOS‑App)
Neue Tunnel‑Config anlegen und einfügen:
[Interface]
PrivateKey = <INHALT AUS ~/client.key>
Address = 10.66.66.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <INHALT AUS /etc/wireguard/server.pub>
AllowedIPs = 10.66.66.0/24
Endpoint = bugbanane.de:51820
PersistentKeepalive = 25
AllowedIPs = 10.66.66.0/24
bedeutet: nur das VPN‑Netz läuft über den Tunnel (Split‑Tunnel).
2.4 Funktionstest
- Tunnel aktivieren →
ping 10.66.66.1
(Server muss antworten). - SMB im Finder:
⌘+K
→smb://10.66.66.1/backup
(oder dein Share‑Name).
3) SSH‑Tunnel (Alternative ohne VPN)
Für einmalige, schnelle Verbindungen – kein zusätzliches Setup, aber manuell.
3.1 Port‑Weiterleitung aufbauen
ssh -p 2222 -L 1445:127.0.0.1:445 andy@bugbanane.de
Solange die SSH‑Session offen ist, liegt der remote SMB‑Port 445 lokal auf localhost:1445
.
3.2 SMB verbinden (macOS)
- Finder →
⌘+K
→smb://localhost:1445/backup
(Portangabe wird ab modernen macOS‑Versionen unterstützt.)
Hinweis: Der SSH‑Tunnel schützt den Transport, aber du musst die Session offen halten. Für Dauerbetrieb ist WireGuard komfortabler/stabiler.
4) Sicherheit & Risiken
- SMB nie offen ins Internet (Ports 139/445): hohe Angriffslast, Ransomware‑/Brute‑Force‑Ziel.
- UFW strikt halten: Default
deny (incoming)
, nur notwendige Ports (80/443/2222/51820). - Fail2ban für SSH aktiv halten. Passwortauthentifizierung am besten deaktivieren (
PasswordAuthentication no
). - Keys & Dateien schützen:
chmod 600
für private Keys/Configs. - Log‑Monitoring:
sudo journalctl -u wg-quick@wg0 -f
,sudo tail -f /var/log/samba/*
. - Updates:
unattended-upgrades
aktiv, Kernel/Userspace aktuell halten.
5) Troubleshooting (Kurzliste)
Kein WG‑Handshake
sudo ufw allow 51820/udp
gesetzt?- Domain/Endpoint korrekt (
bugbanane.de:51820
)? - Zeit/NTP stimmt auf beiden Seiten? (Zeitdrift kann Handshakes verhindern)
- Keys nicht vertauscht (Private vs. Public)?
Tunnel steht, aber kein SMB
smbd
läuft?systemctl status smbd
- UFW‑Regeln „on wg0“ gesetzt?
- Samba an
wg0
gebunden (optional) oder Netz10.66.66.0/24
erlaubt?
Full‑Tunnel gewünscht (Internet über Server)
net.ipv4.ip_forward=1
setzen, NAT (PostUp/Down) aktivieren, WAN‑Interface korrekt setzen.- Für deinen Use Case nicht nötig.
6) Nützliche Kommandos (Cheat Sheet)
# WireGuard
sudo systemctl enable --now wg-quick@wg0
sudo systemctl restart wg-quick@wg0
sudo wg show
ip a show wg0
# Firewall/Ports
sudo ufw status verbose
sudo ss -tulpen | grep -E '51820|445|139|137|138'
# Samba
testparm
sudo systemctl status smbd
7) Aufräumen / Deaktivieren
# WireGuard stoppen & Autostart aus
sudo systemctl disable --now wg-quick@wg0
# Konfiguration entfernen (wenn gewünscht)
sudo rm -f /etc/wireguard/wg0.conf /etc/wireguard/server.key /etc/wireguard/server.pub
TL;DR
- WireGuard: Einmal sauber einrichten → danach benutzerfreundlich & sicherer Dauerzugang zu SMB/SSH/Dashboard.
- SSH‑Tunnel: Super für kurze Sessions, kein Zusatzpaket – aber manuell und weniger komfortabel.
Stand: 2025‑09‑07 • Autor: Andreas („Codekeks“) • Setup: EUserv (Ubuntu) + macOS