Zurück zu den Projekten
  • Im Einsatz

Eigener Linux-Server – Web, DNS, Mail und Datenbanken

Betrieb eines eigenen Debian-Servers mit mehreren Websites und Diensten, eigenen Nameservern (BIND, DNSSEC), Mailserver (Exim4, Dovecot) mit SPF, DKIM, DMARC, MTA-STS und DANE, Datenbanken und Docker.

  • Linux
  • Debian
  • Apache
  • BIND
  • Exim4
  • Dovecot
  • Docker
  • MariaDB

Überblick

Ich betreibe einen eigenen VPS mit Debian – auch diese Website läuft darauf. Vom Webserver über DNS und E-Mail bis zu Datenbanken und Containern richte ich alles selbst ein, sichere es ab und halte es aktuell.

Web

  • Apache mit virtuellen Hosts für mehrere Websites und Dienste, HTTPS mit Let’s Encrypt (eigenes Zertifikat pro Website, automatische Erneuerung)
  • HSTS und Security-Header, getrennte Rechte (Dateien gehören dem Benutzer, der Webserver liest nur)
  • PHP-FPM sowie Apache als Reverse Proxy für Anwendungen – u. a. die ASP.NET-Anwendung SupplyTracker als systemd-Dienst
  • Deployment mit Git und eigenen Skripten, Staging-Umgebung mit Passwortschutz

DNS

  • Eigene autoritative Nameserver mit BIND für mehrere Domains
  • DNSSEC-signierte Zone für juscinski.net

E-Mail

  • Mailserver mit Exim4 (SMTP) und Dovecot (IMAP/POP3 über TLS)
  • Zustellbarkeit und Schutz vor Spoofing: SPF, DKIM, DMARC (strikt)
  • Erzwungene Verschlüsselung zwischen Mailservern: MTA-STS (enforce), DANE/TLSA, TLS-Reporting

Datenbanken und Container

  • MariaDB, dazu PostgreSQL und Microsoft SQL Server in Docker-Containern
  • Datenbanken nur lokal erreichbar – kein Zugriff aus dem Internet

Sicherheit und Wartung

  • Firewall (UFW) mit Default-Deny – erreichbar sind nur die Dienste, die öffentlich sein müssen
  • SSH-Anmeldung nur mit Schlüssel und Zwei-Faktor-Authentifizierung (TOTP)
  • fail2ban mit eigenen Regeln für SSH, SMTP (Exim) und IMAP (Dovecot)
  • Automatische Sicherheitsupdates (unattended-upgrades), Log-Rotation, Monitoring per Skript
  • Regelmäßige Sicherheitsaudits mit eigenem Skript (nur lesend) – gefundene Schwachstellen werden dokumentiert und behoben
  • Der Server-Status oben auf der Startseite ist live – ein Skript liefert ihn alle fünf Minuten

Was ich gelernt habe

Wie die Bausteine eines Internetdienstes zusammenhängen – DNS, TLS, Web, Mail und Datenbanken – und dass eine Änderung an einer Stelle oft drei andere betrifft. Vor allem aber: jede Änderung erst prüfen, dann aktivieren, dann von außen kontrollieren – und alles dokumentieren, damit es sich nachvollziehen und zurücknehmen lässt.