edit

Server Security

Hardening

Installing the System

  • Minimal System
  • Sepparate Partition for Logs
  • Automatic Updates
  • Strong defaults (umask, PATH, ...)

Network Security

  • Start only required Services
  • Least File permission
  • Least execution privileges
  • Error Handling
  • Disable direct internet access (anti covert channel)

Authentication

  • Strong Authentication (time-based lockouts)
  • Monitor password-guessing (fail2ban)
  • Login as user, root via sudo

Monitoring / Auditing

  • Time Synchronization
  • Integrity Checking
  • Forensic Readiness (see WAF)
  • Remote Logging

SUID Flag

  • Normalerweise hat ein Prozess, der von einem Binary erstellt wird, die Rechte des Aufrufers
  • Wenn auf dem Binary das Suid-Flag gesetzt wurde, werden Prozesse immer mit Recht des File-Owners erstellt, egal wer sie aufruft
  • Setzen mit owner Rechten: chmod +s /usr/bin/passwd
  • siehe z.B. ls -la /usr/bin/passwd
    • Mit der Shell können keine Scripts mit suid-Flag mit owner-Rechten ausgeführt werden! Es braucht ein Binary (z.B. C-File compilen)

TLS

  • SSLHonorCipherOrder on setzen, damit der Server die akzeptierten Ciphers erzwingt

Apache Hardening

  • Core-Prozess muss unter root laufen, worker-Prozesse unter apache-User (wwwrun)
  • Workers haben keine Rechte auf Config und Log-Files und SSL, nur Read-Rechte auf htdocs (owner alle auf root)
  • Saubere Trennung der Usergruppen vom Rest der System-User
  • Kein World-Readable / Writeable!
  • HTTPS: Geeignete Ciphers enforcen