Benutzer-Werkzeuge

Webseiten-Werkzeuge


open:it:ssh

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
open:it:ssh [2025/12/12 21:11] – [SSH-Zugriffe] k@iopen: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/24)** +> SSH (und SFTP) ausschließlich über WireGuard-VPN (IPv4 10.8.0.0/24) 
-**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/24`   * VPN-Netz: `10.8.0.0/24`
-  * **Kein** öffentlicher SSH (weder IPv4 noch IPv6)+  * Kein öffentlicher SSH (weder IPv4 noch IPv6)
   * UFW aktiv   * UFW aktiv
-  * SSH zusätzlich **hart an VPN gebunden**+  * 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 – WireGuard prüfen ===+=== 🧩 1WireGuard 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 – UFW installieren & Grundregeln ===+=== 🧩 2UFW installieren & Grundregeln ===
   sudo apt update   sudo apt update
  
Zeile 136: Zeile 136:
   sudo ufw default allow outgoing   sudo ufw default allow outgoing
  
-=== 🧩 Schritt – WireGuard selbst freigeben ===+=== 🧩 3WireGuard selbst freigeben ===
 (typisch: UDP 51820 – ggf. anpassen) (typisch: UDP 51820 – ggf. anpassen)
   sudo ufw allow 51820/udp   sudo ufw allow 51820/udp
  
-=== 🧩 Schritt – SSH **nur** über WireGuard erlauben ===+=== 🧩 4SSH 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 – Öffentlichen SSH entfernen (IPv4 + IPv6) ===+=== 🧩 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 <NUMMER>   sudo ufw delete <NUMMER>
  
-=== 🧩 Schritt – IPv6 in UFW deaktivieren (wichtig!) === +=== 🧩 6IPv6 in UFW deaktivieren (wichtig!) === 
-Da SSH **nur über IPv4-VPN** laufen soll:+Da SSH nur über IPv4-VPN laufen soll:
   sudo nano /etc/default/ufw   sudo nano /etc/default/ufw
 Ändern: Ändern:
Zeile 169: Zeile 169:
   sudo ufw reload   sudo ufw reload
  
-=== 🧩 Schritt – UFW aktivieren ===+=== 🧩 7UFW aktivieren ===
   sudo ufw enable   sudo ufw enable
-Prüfen:+**Prüfen:**
   sudo ufw status verbose   sudo ufw status verbose
  
Zeile 178: Zeile 178:
   51820/udp  ALLOW IN    Anywhere   51820/udp  ALLOW IN    Anywhere
  
-=== 🧩 Schritt – SSH **hart an WireGuard binden** ===+=== 🧩 8SSH hart an WireGuard binden ===
 👉 Das ist der entscheidende Sicherheitsanker. 👉 Das ist der entscheidende Sicherheitsanker.
   sudo nano /etc/ssh/sshd_config   sudo nano /etc/ssh/sshd_config
Zeile 187: Zeile 187:
   sudo systemctl restart ssh   sudo systemctl restart ssh
  
-=== 🧪 Schritt – Tests (Pflicht!) === +=== 🧪 9Tests (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 ===+=== 🔎 10Finale 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           | Zugang nur für autorisierte Clients | | WireGuard           | Zugang nur für autorisierte Clients |
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