update to local git repo

This commit is contained in:
fzzinchemical
2025-07-02 13:08:03 +02:00
commit 269b8a31ba
136 changed files with 12257 additions and 0 deletions

View 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!