- 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.
Ü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
- 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.