Zum Inhalt

Security-Checks

Systematische Überprüfung aller implementierten Sicherheitsmaßnahmen.

1. SSH-Konfiguration testen

Root-Login (muss fehlschlagen)

# Von deinem lokalen Rechner
ssh root@DEINE_SERVER_IP

Erwartetes Ergebnis:

root@DEINE_SERVER_IP: Permission denied (publickey).

Check bestanden

Wenn du Permission denied siehst, ist Root-Login korrekt deaktiviert.

Passwort-Login (muss fehlschlagen)

ssh -o PreferredAuthentications=password \
    -o PubkeyAuthentication=no \
    DEIN_USERNAME@DEINE_SERVER_IP

Erwartetes Ergebnis:

Permission denied (publickey).

Key-Login (muss funktionieren)

ssh DEIN_USERNAME@DEINE_SERVER_IP

Erwartetes Ergebnis: Erfolgreicher Login ohne Passwortabfrage.

SSH-Konfiguration anzeigen

# Auf dem Server
sudo sshd -T | grep -E "(permitrootlogin|passwordauthentication|pubkeyauthentication)"

Erwartete Ausgabe:

permitrootlogin no
passwordauthentication no
pubkeyauthentication yes

2. Firewall-Status prüfen

UFW-Status

sudo ufw status verbose

Erwartete Ausgabe:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)

To                         Action      From
--                         ------      ----
22/tcp                     LIMIT IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere

Port-Scan durchführen

Nur eigene Server scannen!

Port-Scans auf fremde Server sind illegal.

Von einem anderen System aus:

nmap -sV DEINE_SERVER_IP

Erwartete Ausgabe (nur offene Ports):

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Alle anderen Ports sollten filtered oder nicht aufgelistet sein.

Von innen offene Ports prüfen

sudo ss -tulpn | grep LISTEN

Vergleiche mit der Firewall-Konfiguration. Interne Ports (z.B. Datenbanken) sollten nur auf 127.0.0.1 oder Docker-Netzwerken lauschen.

3. Fail2Ban prüfen

Status

sudo fail2ban-client status sshd

Funktion testen

Nicht von deiner eigenen IP testen!

Du könntest dich aussperren.

Von einer Test-IP (z.B. VPN):

# Mehrere fehlgeschlagene Login-Versuche
for i in {1..5}; do
    ssh invalid_user@DEINE_SERVER_IP 2>/dev/null
done

Auf dem Server prüfen:

sudo fail2ban-client status sshd | grep "Banned"

Whitelist prüfen

sudo fail2ban-client get sshd ignoreip

Deine IP sollte in der Liste sein.

4. SSL/TLS prüfen

Zertifikat-Details

echo | openssl s_client -connect coolify.fcl-tech.de:443 2>/dev/null | \
    openssl x509 -noout -text | \
    grep -E "(Issuer|Subject|Not Before|Not After)"

Zertifikat-Ablaufdatum

echo | openssl s_client -connect coolify.fcl-tech.de:443 2>/dev/null | \
    openssl x509 -noout -dates

SSL Labs Test

Besuche: https://www.ssllabs.com/ssltest/

Ziel: A oder A+

Ein Rating unter B deutet auf Konfigurationsprobleme hin.

TLS-Version prüfen

# TLS 1.2 testen
openssl s_client -connect coolify.fcl-tech.de:443 -tls1_2 </dev/null 2>/dev/null | \
    grep "Protocol"

# TLS 1.1 testen (sollte fehlschlagen)
openssl s_client -connect coolify.fcl-tech.de:443 -tls1_1 </dev/null 2>/dev/null | \
    grep "Protocol"

HSTS-Header prüfen

curl -sI https://coolify.fcl-tech.de | grep -i strict

Erwartete Ausgabe:

strict-transport-security: max-age=31536000; includeSubDomains

5. Docker-Sicherheit prüfen

Docker-Daemon-Konfiguration

cat /etc/docker/daemon.json

Prüfe ob no-new-privileges und icc: false gesetzt sind.

Docker-Socket-Berechtigungen

ls -la /var/run/docker.sock

Sollte zeigen: srw-rw---- 1 root docker

6. System-Sicherheit prüfen

Laufende Dienste

sudo systemctl list-units --type=service --state=running

Prüfe auf unbekannte oder nicht benötigte Dienste.

Offene Ports von innen

sudo ss -tulpn

Installierte Pakete mit Security-Updates

apt list --upgradable 2>/dev/null | grep -i security

Kernel-Updates

# Aktueller Kernel
uname -r

# Installierte Kernel
dpkg --list | grep linux-image

7. Coolify-spezifische Checks

Coolify-Container

docker ps --filter "name=coolify" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

Alle Container sollten Up sein.

Coolify-Version

docker exec coolify cat /app/package.json | grep version

Public Registration deaktiviert?

  1. Öffne https://coolify.fcl-tech.de in einem Inkognito-Fenster
  2. Prüfe ob eine Registrierungsoption angezeigt wird
  3. Sollte NICHT möglich sein

Security-Check-Checkliste

SSH

  • Root-Login deaktiviert
  • Passwort-Auth deaktiviert
  • Nur Key-Auth funktioniert
  • Nur erlaubte Benutzer können sich anmelden

Firewall

  • UFW aktiv
  • Default deny incoming
  • Nur Ports 22, 80, 443 offen
  • SSH Rate-Limiting aktiv

Fail2Ban

  • Dienst läuft
  • SSH-Jail aktiv
  • Eigene IP in Whitelist

SSL/TLS

  • Gültiges Zertifikat
  • SSL Labs Rating A oder besser
  • HSTS aktiviert
  • HTTP→HTTPS Redirect funktioniert

Docker

  • daemon.json konfiguriert
  • no-new-privileges aktiviert
  • Docker Bench keine kritischen Warnungen

Coolify

  • Alle Container laufen
  • Public Registration deaktiviert
  • Admin-Passwort stark