Files
2025-07-02 14:34:34 +02:00

105 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 🔐 SSH Secure Shell
### Definition & Zweck
- SSH ist ein **sicheres Protokoll für entfernte Verbindungen** zwischen Client & Server.
- Ersatz für unsichere Protokolle wie Telnet, FTP, R-Login, RSH, etc.
- Unterstützt: **Datenverschlüsselung, Authentifizierung, Integrität, Komprimierung**
- SSH agiert als **Tunnelsystem**, transportiert z.B. SMTP, POP, X11 sicher.
---
## 🧱 ARCHITEKTUR
### SSH besteht aus 3 Schichten:
1. **Transportschicht-Protokoll**:
- Authentifiziert Server, sichert Vertraulichkeit & Integrität.
- Optional: Kompression.
2. **User-Authentifizierungsprotokoll**:
- Authentifiziert Benutzer gegenüber dem Server.
3. **Verbindungsprotokoll**:
- Multiplexing mehrerer Kanäle über eine SSH-Verbindung.
---
## 🔐 SICHERHEIT
- **Verschlüsselungsalgorithmen**: AES, DES, Blowfish, ArcFour, CAST128, Twofish
- **Key Exchange**: RSA-basierte, asymmetrische Schlüsselaustauschverfahren
- **Authentifizierung**: asymmetrisch (Public/Private Key)
- Keine Schlüssel werden dauerhaft gespeichert (nur temporär im Speicher)
---
## 🗝️ AUTHENTIFIZIERUNG
### 1. **Host-bezogen**
- IP-basiert (unsicher)
- RSA-basiert:
- Public Key wird auf Server gespeichert
- Client beweist Besitz des Private Keys
### 2. **User-bezogen**
- **RSA-Authentifizierung** mit Challenge-Response
- **Passwort** (verschlüsselt übertragen, aber weniger sicher)
- **RHost-RSA**: Mischung aus IP + RSA
---
## 🔐 SCHLÜSSELPAARE
- Jeder Client/Host besitzt ein eigenes RSA/ECDSA-Schlüsselpaar
- Tools: `ssh-keygen`, PuTTYgen
- Private Key: bleibt geheim auf Client
- Public Key: wird auf Server (z.B. in `authorized_keys`) hinterlegt
---
## 🔁 VERBINDUNGSAUFBAU (Ablauf)
1. **TCP-Verbindung** vom Client zum Server
2. **Protokoll- & Versionsaustausch**
3. **Umstieg auf binäres SSH-Protokoll**
4. Server sendet:
- Public Host Key (langfristig)
- Public Server Key (flüchtig, stündlich neu)
5. Austausch der unterstützten Algorithmen
6. Client generiert 256-Bit **Sitzungsschlüssel**
7. Verschlüsselt diesen mit beiden Server-Keys → sendet verschlüsselt
8. Server entschlüsselt mit privaten Keys
9. Server schickt Quittung → verschlüsselte Verbindung aktiv
10. Client authentifiziert sich
11. Sitzung wird eingerichtet
---
## 🧠 SCHLÜSSELMANAGEMENT
- **Private Schlüssel**:
- Nie weitergeben, mit Passphrase sichern
- Auth Agents wie `ssh-agent`, `Pageant` speichern Keys im Speicher
- **Public Keys**:
- Nur vertrauenswürdige auf Server hinterlegen
---
## 🛡️ SICHERHEITSFEATURES & ABSICHERUNG
- **MiM-Angriffe** können durch Key-Verifikation verhindert werden
- **Passwort-Auth deaktivieren** (empfohlen):
- Konfigurierbar in `sshd_config`: `PasswordAuthentication no`
- **2FA möglich**
- Analyse-Tool: `ssh-audit` zur Prüfung von Konfiguration und Sicherheit
---
## 🔧 BEFEHLE (OpenSSH)
|Befehl|Beschreibung|
|---|---|
|`ssh`|Verbindung zum Server|
|`sshd`|SSH-Serverdienst|
|`ssh-agent`|Key-Agent|
|`ssh-add`|Keys zum Agent hinzufügen|
|`scp`|Dateiübertragung|
|`sftp`|sicherer FTP-Ersatz|
|`ssh-keygen`|Schlüsselpaar erzeugen|
|`ssh-keyscan`|Schlüssel von Hosts abrufen|
|`sftp-server`|Serverseitige SFTP-Komponente|
---
## 📦 SSH-PROTOKOLLVARIANTEN
|Variante|Merkmale|
|---|---|
|**SSH1**|unsicher, veraltet|
|**SSH2**|neuer, sicherer (neu geschrieben, bessere Kryptografie)|
|**OpenSSH**|Open-Source, nutzt OpenSSL für Krypto, unterstützt SSH1 & SSH2|
---
## ✅ KLAUSURRELEVANTE PUNKTE
- SSH ersetzt unsichere Protokolle → **verschlüsselt alles**
- Authentifizierung über **RSA/ECDSA Schlüsselpaar**
- Sitzungsschlüssel durch asymmetrische Verschlüsselung ausgetauscht → dann symmetrisch
- Tools wie `ssh-agent` & `ssh-add` erhöhen Sicherheit & Komfort
- **Passwortauthentifizierung deaktivieren** (wo möglich)
- **ssh-audit** zur Analyse verwenden
- SSH2/OpenSSH = **Standard**, SSH1 = **veraltet**