open:it:ssh
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| open:it:ssh [2025/12/12 21:11] – [SSH-Zugriffe] k@i | open:it:ssh [2025/12/13 09:59] (aktuell) – [SSH-Zugriff auf VPN beschränken] k@i | ||
|---|---|---|---|
| Zeile 105: | Zeile 105: | ||
| | | ||
| ==== SSH-Zugriff auf VPN beschränken ==== | ==== SSH-Zugriff auf VPN beschränken ==== | ||
| - | > **Debian 13 Server (nur IPv6 öffentlich)** | + | > Debian 13 Server (nur IPv6 öffentlich) |
| - | > **SSH (und SFTP) ausschließlich über WireGuard-VPN (IPv4 10.8.0.0/ | + | > SSH (und SFTP) ausschließlich über WireGuard-VPN (IPv4 10.8.0.0/ |
| - | > **Firewall: UFW** | + | > Firewall: UFW |
| === 🛡️ Zielbild (Soll-Zustand) === | === 🛡️ Zielbild (Soll-Zustand) === | ||
| - | * SSH **nur erreichbar über WireGuard** | + | * SSH nur erreichbar über WireGuard |
| * VPN-Netz: `10.8.0.0/ | * VPN-Netz: `10.8.0.0/ | ||
| - | | + | * Kein öffentlicher SSH (weder IPv4 noch IPv6) |
| * UFW aktiv | * UFW aktiv | ||
| - | * SSH zusätzlich | + | * SSH zusätzlich hart an VPN gebunden |
| === ✅ Voraussetzungen === | === ✅ Voraussetzungen === | ||
| - | * Du hast **Konsolenzugriff** oder funktionierenden VPN-Zugang | + | * Du hast Konsolenzugriff oder funktionierenden VPN-Zugang |
| * WireGuard-Interface heißt `wg0` | * WireGuard-Interface heißt `wg0` | ||
| * Server-VPN-IP z. B. `10.8.0.1` | * Server-VPN-IP z. B. `10.8.0.1` | ||
| - | === 🧩 Schritt | + | === 🧩 1. WireGuard prüfen === |
| ip a show wg0 | ip a show wg0 | ||
| Zeile 126: | Zeile 126: | ||
| inet 10.8.0.1/24 scope global wg0 | inet 10.8.0.1/24 scope global wg0 | ||
| - | === 🧩 Schritt | + | === 🧩 2. UFW installieren & Grundregeln === |
| sudo apt update | sudo apt update | ||
| Zeile 136: | Zeile 136: | ||
| sudo ufw default allow outgoing | sudo ufw default allow outgoing | ||
| - | === 🧩 Schritt | + | === 🧩 3. WireGuard selbst freigeben === |
| (typisch: UDP 51820 – ggf. anpassen) | (typisch: UDP 51820 – ggf. anpassen) | ||
| sudo ufw allow 51820/udp | sudo ufw allow 51820/udp | ||
| - | === 🧩 Schritt | + | === 🧩 4. SSH nur über WireGuard erlauben === |
| (empfohlen: Interface-gebunden) | (empfohlen: Interface-gebunden) | ||
| sudo ufw allow in on wg0 to any port 22 proto tcp | sudo ufw allow in on wg0 to any port 22 proto tcp | ||
| Zeile 147: | Zeile 147: | ||
| sudo ufw allow from 10.8.0.0/24 to any port 22 proto tcp | sudo ufw allow from 10.8.0.0/24 to any port 22 proto tcp | ||
| - | === 🧩 Schritt | + | === 🧩 5. Öffentlichen SSH entfernen (IPv4 + IPv6) === |
| Status anzeigen: | Status anzeigen: | ||
| sudo ufw status numbered | sudo ufw status numbered | ||
| Zeile 160: | Zeile 160: | ||
| sudo ufw delete < | sudo ufw delete < | ||
| - | === 🧩 Schritt | + | === 🧩 6. IPv6 in UFW deaktivieren (wichtig!) === |
| - | Da SSH **nur über IPv4-VPN** laufen soll: | + | Da SSH nur über IPv4-VPN laufen soll: |
| sudo nano / | sudo nano / | ||
| Ändern: | Ändern: | ||
| Zeile 169: | Zeile 169: | ||
| sudo ufw reload | sudo ufw reload | ||
| - | === 🧩 Schritt | + | === 🧩 7. UFW aktivieren === |
| sudo ufw enable | sudo ufw enable | ||
| - | Prüfen: | + | **Prüfen:** |
| sudo ufw status verbose | sudo ufw status verbose | ||
| Zeile 178: | Zeile 178: | ||
| 51820/ | 51820/ | ||
| - | === 🧩 Schritt | + | === 🧩 8. SSH hart an WireGuard binden === |
| 👉 Das ist der entscheidende Sicherheitsanker. | 👉 Das ist der entscheidende Sicherheitsanker. | ||
| sudo nano / | sudo nano / | ||
| Zeile 187: | Zeile 187: | ||
| sudo systemctl restart ssh | sudo systemctl restart ssh | ||
| - | === 🧪 Schritt | + | === 🧪 9. Tests (Pflicht!) === |
| - | ### ❌ Ohne VPN | + | ❌ Ohne VPN |
| ssh user@SERVER_IPV6 | ssh user@SERVER_IPV6 | ||
| ➡️ **muss fehlschlagen** | ➡️ **muss fehlschlagen** | ||
| - | ### ✅ Mit VPN | + | ✅ Mit VPN |
| ssh user@10.8.0.1 | ssh user@10.8.0.1 | ||
| Zeile 200: | Zeile 200: | ||
| - | === 🔎 Schritt | + | === 🔎 10. Finale Kontrolle === |
| sudo ss -tlnp | grep :22 | sudo ss -tlnp | grep :22 | ||
| Zeile 211: | Zeile 211: | ||
| [::]:22 | [::]:22 | ||
| - | # 🧠 Warum dieses Setup Best Practice ist | + | 🧠 Warum dieses Setup Best Practice ist |
| | Ebene | Schutz | | Ebene | Schutz | ||
| | WireGuard | | WireGuard | ||
| Zeile 221: | Zeile 220: | ||
| ➡️ **Selbst bei Firewall-Fehlern kein öffentlicher SSH möglich** | ➡️ **Selbst bei Firewall-Fehlern kein öffentlicher SSH möglich** | ||
| - | # 🧾 Kurzfassung (Merkliste) | + | 🧾 Kurzfassung (Merkliste) |
| - VPN zuerst testen | - VPN zuerst testen | ||
| - SSH nur wg0 erlauben | - SSH nur wg0 erlauben | ||
open/it/ssh.txt · Zuletzt geändert: von k@i
