update to local git repo
This commit is contained in:
111
Semester 6/ITSARCH/Skript_Notizen/SSH.md
Normal file
111
Semester 6/ITSARCH/Skript_Notizen/SSH.md
Normal file
@@ -0,0 +1,111 @@
|
||||
## 🔐 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**
|
||||
---
|
||||
Wenn du möchtest, kann ich dir daraus gerne:
|
||||
- **Lernkarten (Flashcards)**
|
||||
- eine **Mindmap**
|
||||
- oder ein **Mini-Quiz** erstellen.
|
||||
Sag einfach Bescheid!
|
||||
Reference in New Issue
Block a user