Diese Seite ist euer Nachschlagewerk für den Berufsalltag. Alle wichtigen Befehle aus der Schulung – kompakt, ohne Erklärungen, zum schnellen Nachsehen. Für die Hintergründe verweist jeder Abschnitt auf den entsprechenden Block.
OpenSSL – Symmetrische Verschlüsselung (Block 02)
# Datei verschlüsseln (Passwort-Eingabe interaktiv)
openssl enc -aes-256-cbc -in datei.txt -out datei.enc -pbkdf2
# Datei entschlüsseln
openssl enc -d -aes-256-cbc -in datei.enc -out datei.txt -pbkdf2
OpenSSL – Hashing (Block 01)
# SHA-256 Hash einer Datei
openssl dgst -sha256 datei.txt
# SHA-256 Hash eines Strings
echo -n "Text" | openssl dgst -sha256
# SHA-512
openssl dgst -sha512 datei.txt
# MD5 (nur Legacy – nicht für Sicherheitszwecke!)
openssl dgst -md5 datei.txt
OpenSSL – Asymmetrische Schlüssel (Block 03)
# RSA Private Key generieren (4096 Bit)
openssl genrsa -out private.pem 4096
# Public Key aus Private Key ableiten
openssl rsa -in private.pem -pubout -out public.pem
# Schlüsseldetails anzeigen
openssl rsa -in private.pem -text -noout
# Ed25519 Private Key generieren (moderner, schneller)
openssl genpkey -algorithm Ed25519 -out private_ed25519.pem
openssl pkey -in private_ed25519.pem -pubout -out public_ed25519.pem
OpenSSL – Digitale Signaturen (Block 04)
# Datei signieren (erzeugt Binär-Signatur)
openssl dgst -sha256 -sign private.pem -out signatur.bin datei.txt
# Signatur verifizieren
openssl dgst -sha256 -verify public.pem -signature signatur.bin datei.txt
# Ausgabe: "Verified OK" oder "Verification Failure"
OpenSSL – Zertifikate (Block 06)
# Self-Signed Zertifikat erstellen (Key + Zertifikat in einem Schritt)
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt \
-days 365 -noenc \
-subj "/C=DE/ST=Bayern/L=München/O=TechWerk GmbH/CN=server.intern"
# CSR (Certificate Signing Request) erstellen
openssl req -new -key server.key -out server.csr \
-subj "/C=DE/O=TechWerk GmbH/CN=www.techwerk.de"
# CSR mit eigener CA signieren
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out server.crt -days 365 -sha256
# Zertifikat anzeigen
openssl x509 -in server.crt -text -noout
# Ablaufdaten anzeigen
openssl x509 -in server.crt -dates -noout
# Fingerprint anzeigen
openssl x509 -in server.crt -fingerprint -sha256 -noout
# Zertifikat gegen CA prüfen
openssl verify -CAfile ca.crt server.crt
# Prüfen ob Private Key zu Zertifikat passt (gleicher Modulus = Treffer)
openssl rsa -in server.key -modulus -noout | md5sum
openssl x509 -in server.crt -modulus -noout | md5sum
OpenSSL – Formatkonvertierung (Block 06)
# PEM → DER (binär)
openssl x509 -in server.crt -outform DER -out server.der
# DER → PEM
openssl x509 -in server.der -inform DER -out server.crt
# PEM → PKCS#12 (.p12 / .pfx – für Windows / Browser-Import)
openssl pkcs12 -export -in server.crt -inkey server.key -out bundle.p12
# PKCS#12 → PEM
openssl pkcs12 -in bundle.p12 -out bundle.pem -noenc
OpenSSL – TLS-Verbindungen prüfen (Block 08, 16)
# TLS-Verbindung herstellen und Details anzeigen
openssl s_client -connect domain.com:443
# Nur Zertifikatsinformationen
openssl s_client -connect domain.com:443 </dev/null 2>/dev/null | \
openssl x509 -text -noout
# TLS-Version und Cipher Suite anzeigen
openssl s_client -connect domain.com:443 </dev/null 2>/dev/null | \
grep -E "Protocol|Cipher"
# Bestimmte TLS-Version erzwingen
openssl s_client -connect domain.com:443 -tls1_2
openssl s_client -connect domain.com:443 -tls1_3
# Zertifikatskette anzeigen
openssl s_client -connect domain.com:443 -showcerts </dev/null 2>/dev/null | \
grep -E "s:|i:"
SSH – Schlüsselverwaltung (Block 10)
# Ed25519-Schlüsselpaar generieren (empfohlen)
ssh-keygen -t ed25519 -C "name@domain.de"
# RSA-Schlüsselpaar (4096 Bit, Fallback für ältere Systeme)
ssh-keygen -t rsa -b 4096 -C "name@domain.de"
# Public Key auf Server übertragen
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
# Schlüssel-Fingerprint anzeigen
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
# Passwort eines bestehenden Keys ändern
ssh-keygen -p -f ~/.ssh/id_ed25519
# Berechtigungen korrekt setzen
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
SSH – Verbindung & Troubleshooting (Block 10, 16)
# Verbinden mit spezifischem Schlüssel
ssh -i ~/.ssh/id_ed25519 user@server
# Verbose-Ausgabe (für Fehlersuche)
ssh -v user@server # einfach
ssh -vv user@server # mehr Details
ssh -vvv user@server # maximale Details
# Eintrag aus known_hosts entfernen (nach Serverwechsel / Neuinstallation)
ssh-keygen -R server.intern
# Host-Key-Fingerprint vorab prüfen
ssh-keyscan server.intern 2>/dev/null | ssh-keygen -lf -
SSH – Server / sshd (Block 10)
# Konfiguration auf Syntaxfehler prüfen (vor dem Neustart!)
sudo sshd -t
# Aktive Konfiguration anzeigen
sudo sshd -T | grep -E "passwordauthentication|permitrootlogin|port"
# Dienst neu starten
sudo systemctl restart sshd
# Status prüfen
sudo systemctl status sshd
# Log in Echtzeit verfolgen
sudo journalctl -u sshd -f
Wichtigste sshd_config-Einstellungen:
PasswordAuthentication no
PermitRootLogin no
AllowUsers max admin
MaxAuthTries 3
ClientAliveInterval 300
GPG – E-Mail-Verschlüsselung / PGP (Block 13)
# Schlüsselpaar generieren
gpg --gen-key
# oder (mit erweiterten Optionen)
gpg --full-generate-key
# Vorhandene Schlüssel anzeigen
gpg --list-keys # Public Keys
gpg --list-secret-keys # Private Keys
# Public Key exportieren (zum Versenden / Hochladen)
gpg --export --armor name@domain.de > public_key.asc
# Fremden Public Key importieren
gpg --import empfaenger_public.asc
# Datei verschlüsseln (für Empfänger)
gpg --encrypt --recipient empfaenger@domain.de datei.txt
# → erzeugt datei.txt.gpg
# Datei entschlüsseln
gpg --decrypt datei.txt.gpg > datei.txt
# Datei signieren
gpg --sign datei.txt # binäre Signatur (.gpg)
gpg --clearsign datei.txt # Klartextsignatur (.asc)
# Signatur prüfen
gpg --verify datei.txt.asc
# Schlüssel widerrufen (Widerrufszertifikat vorher erstellen!)
gpg --output widerruf.asc --gen-revoke name@domain.de
gpg --import widerruf.asc
VPN – WireGuard (Block 12)
# Interface-Status und Peer-Verbindungen anzeigen
sudo wg show
# Interface aktivieren / deaktivieren
sudo wg-quick up wg0
sudo wg-quick down wg0
# Routing-Tabelle prüfen
ip route show table main
# Netzwerkverkehr auf WireGuard-Interface beobachten
sudo tcpdump -i wg0
# WireGuard-Log
sudo journalctl -u wg-quick@wg0 -f
# Interface-Status
ip link show wg0
VPN – IPsec / strongSwan (Block 12)
# Aktive Verbindungen anzeigen
sudo ipsec status
# Detaillierte Verbindungsinfo
sudo ipsec statusall
# Verbindung manuell aufbauen
sudo ipsec up verbindungsname
# Verbindung trennen
sudo ipsec down verbindungsname
# Dienst-Log
sudo journalctl -u strongswan -f
Allgemeine Netzwerkdiagnose (Block 16)
# Erreichbarkeit prüfen
ping vpn.domain.de
traceroute vpn.domain.de
# DNS-Auflösung über spezifischen Server (z.B. VPN-DNS)
nslookup server.intern 10.0.0.1
# MTU-Probleme diagnostizieren (kein Fragmentieren, feste Paketgröße)
ping -M do -s 1400 10.0.0.1
# Alle lauschenden Ports anzeigen
sudo ss -tlnp
# Firewall-Status
sudo ufw status
sudo firewall-cmd --list-all
Vergleich auf einen Blick
| Verfahren | Zweck | Typisch |
|---|---|---|
| Symmetrisch (AES) | Massendaten verschlüsseln | schnell, ein Schlüssel |
| Asymmetrisch (RSA/ECC) | Schlüsselaustausch, Signaturen | langsam, Schlüsselpaar |
| Hybrid (TLS, GPG, SSH) | Kombination aus beidem | asymmetrisch für Handshake, symmetrisch für Daten |
| Hash (SHA-256) | Integrität prüfen, Passwörter speichern | Einwegfunktion, nicht umkehrbar |
| Salt + Hash (bcrypt/Argon2) | Passwörter sicher speichern | Rainbow Tables verhindern |
| KDF (PBKDF2/Argon2) | Passwort → kryptografischer Schlüssel | Brute-Force erschweren |
Referenzen
man openssl,man openssl-enc,man openssl-req,man openssl-x509man ssh,man ssh-keygen,man sshd_configman gpg,man wg,man wg-quick- BSI TR-02102: https://www.bsi.bund.de (Technische Richtlinien → Kryptographische Verfahren)
- OpenSSL Docs: https://www.openssl.org/docs/