ServerFaktEU-Server- & Hosting-Referenz

Server-Leitfaden für Self-Hosting: Mailserver (Port 25 / rDNS), Docker, PostgreSQL & Nextcloud

Direkt einsetzbare Konfigurationsdateien, DNS-Zoneneinträge, SCP-Firewall-Regeln und PostgreSQL-Speicherparameter für den produktiven Betrieb von Mailservern, Docker Compose und Datenbanken auf einem europäischen KVM-Server.

Geprüft: · 11 Min. Lesezeit

1. Anforderungen an den Server-Anbieter beim Self-Hosting

Wer eigene Dienste produktiv betreibt, benötigt Funktionen, die bei vielen Cloud-Anbietern standardmäßig gesperrt sind — insbesondere ausgehenden TCP-Port 25, frei konfigurierbare IPv4- und IPv6-Reverse-DNS-Einträge (PTR), konstante I/O-Leistung ohne Steal-Time sowie herunterladbare Komplett-Backups:

Infrastruktur-Anforderungnetcup Root-Server G12.5netcup VPS G12.5Hetzner Cloud (CX / CCX)OVHcloud VPSContabo Cloud VPS
Dauerhafte 100-%-CPU-Last
Datenbanken, CI/CD, Docker-Hosts
Uneingeschränkt (dedizierte physische EPYC 9645 Kerne)Shared vCores (Fair-Use bei Dauerlast)CX: Shared vCPU
CCX: dedizierte vCPU
Shared vCoresShared vCPU
Ausgehender TCP-Port 25 (SMTP)
Eigener Mailserver (Postfix / Mailcow)
Sofort selbst freischaltbar in der SCP-Firewall (Regel „Mail block“ entfernen)Sofort selbst freischaltbar in der SCP-FirewallBei Neukunden bis zur 1. bezahlten Monatsrechnung gesperrt + manueller AntragJe nach Region eingeschränkt / Support-TicketNach Verifizierung offen
IPv4- & IPv6-Reverse-DNS (PTR)Sofort im SCP einstellbar (1× IPv4 + /64 IPv6)Sofort im SCP einstellbarSofort in Cloud Console / APIIm OVH Manager einstellbarIm Kundenpanel einstellbar
Eigene ISO-Uploads & RescueEigener ISO-Upload im SCP + Grml-Rescue-SystemEigener ISO-Upload im SCP + Grml-Rescue-SystemISO-Bibliothek + Linux-Rescue (eigene ISOs per Support-Ticket)Vorgefertigte OS-Templates + NetbootAdd-on oder Cloud-Init
Lokaler Snapshot-Export
Offsite-Backup
1 kostenloser .raw.zst-Download im gestoppten Zustand1 kostenloser .raw.zst-Download im gestoppten ZustandCloud-Snapshots (0,011 €/GB/Mon. bei 0 % MwSt.); kein Raw-Image-DownloadKostenpflichtiges Snapshot-Add-onNur Cloud-Snapshots
Preisstabilität bei VerlängerungVerlängerung zum selben GrundpreisVerlängerung zum selben GrundpreisFester Stunden-/MonatspreisRegulärer Verlängerungspreis24-Monats-Aktionsrabatt entfällt nach der Erstlaufzeit

2. Eigenen Mailserver einrichten (Port 25, FCrDNS, DNS-Zone & Postfix IPv6-Bindung)

Für eine zuverlässige Zustellung an Gmail, Microsoft 365 und deutsche Provider (T-Online, GMX/Web.de) sind drei überprüfbare Konfigurationsschritte erforderlich:

  1. Ausgehenden TCP-Port 25 im SCP freischalten & per CLI testen: Öffne auf netcup-Servern SCP → Server wählen → Firewall, entferne die voreingestellte Policy netcup Mail block, klicke auf Speichern und prüfe die Verbindung sowie das Reverse-DNS (FCrDNS) in der Shell:
    # 1. Ausgehende TCP-Verbindung auf Port 25 zum Gmail-MX prüfen
    nc -zv -w 5 gmail-smtp-in.l.google.com 25
    
    # 2. Prüfen, ob IPv4- und IPv6-PTR exakt auf deinen Mail-Hostnamen auflösen
    dig +short -x 203.0.113.45
    dig +short -x 2a03:4000:60:1234::1
  2. Pflicht-Einträge in der DNS-Zone & im SCP Reverse-DNS (PTR): Hinterlege unter SCP → Network sowohl für deine IPv4-Adresse als auch für deine gewählte IPv6-Adresse (::1) den PTR-Record mail.example.de und lege die passenden DNS-Records an:
    TypHost / NameWert / Beispiel-ZielFunktion
    Amail.example.de203.0.113.45Verweist den Mail-Hostnamen auf deine IPv4 (muss exakt zum SCP IPv4-PTR passen)
    AAAAmail.example.de2a03:4000:60:1234::1Verweist den Mail-Hostnamen auf die IPv6 (muss exakt zum SCP IPv6-PTR passen)
    MXexample.de10 mail.example.de.Leitet eingehende E-Mails deiner Domain an deinen Mail-Host weiter
    TXT (SPF)example.de"v=spf1 mx -all"Erlaubt ausschließlich den im MX-Record genannten Hosts den Mailversand
    TXT (DKIM)dkim._domainkey"v=DKIM1; k=rsa; p=MIIBIjANBg..."Öffentlicher Schlüssel für die kryptografische DKIM-Signatur (Rspamd / OpenDKIM / Stalwart)
    TXT (DMARC)_dmarc.example.de"v=DMARC1; p=quarantine; rua=mailto:[email protected]"Weist empfangende Server an, Mails ohne gültiges SPF/DKIM in Quarantäne zu schieben
  3. Postfix fest an die PTR-IPv6-Adresse binden (/etc/postfix/main.cf): Damit der Linux-Kernel beim ausgehenden Versand über ein /64-Subnetz keine zufällige Nebenadresse ohne PTR-Eintrag wählt (was bei Gmail sofort zu IPv6-Ablehnungen führt), binde Postfix explizit an die Hauptadressen:
    # /etc/postfix/main.cf — feste Quell-IP-Bindung für FCrDNS-Konformität
    myhostname = mail.example.de
    inet_protocols = all
    smtp_bind_address = 203.0.113.45
    smtp_bind_address6 = 2a03:4000:60:1234::1
    smtp_helo_name = mail.example.de
    smtp_tls_security_level = may

3. Docker Compose, daemon.json & die SCP-Firewall-Regelmatrix

Ein mit -p 5432:5432 veröffentlichter Container-Port wird von Docker direkt in die nat- / FORWARD-Chains des Linux-Kernels geschrieben und umgeht damit lokale UFW- / iptables INPUT-Regeln. So sicherst du den Host zweistufig ab:

  1. Interne Container an 127.0.0.1 binden und Log-Rotation in /etc/docker/daemon.json begrenzen:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "20m",
        "max-file": "3"
      },
      "live-restore": true
    }
  2. Eingehenden Traffic vor der VM in der SCP Stateful Firewall filtern: Da die SCP-Firewall auf dem Host-Hypervisor vor dem Netzwerkinterface der VM sitzt, kann Docker sie nicht umgehen:
    Nr.RichtungProtokollPort(s)Quelle / ZielAktion & Zweck
    1INGRESSTCP22Eigene Admin-IP / VPN-Subnetz (oder 0.0.0.0/0)ACCEPT — SSH-Zugang
    2INGRESSTCP80, 4430.0.0.0/0, ::/0ACCEPT — Reverse-Proxy (Caddy / Traefik / Nginx)
    3INGRESSUDP4430.0.0.0/0, ::/0ACCEPT — HTTP/3 (QUIC)
    4INGRESSTCP25, 465, 587, 9930.0.0.0/0, ::/0ACCEPT — Mailserver (SMTP + IMAPS)
    5INGRESSICMP / ICMPv6Alle0.0.0.0/0, ::/0ACCEPT — Pflicht für Path-MTU-Discovery & IPv6 Neighbor Discovery
    6INGRESSALLAlle übrigen Ports0.0.0.0/0, ::/0DROP — Blockiert direkten Zugriff auf Docker-Ports (5432, 6379 usw.)

4. PostgreSQL NVMe-Tuning für einen 8-GB-Root-Server (RS 1000 G12.5)

Die Standardwerte von PostgreSQL sind für Magnetfestplatten und 128 MB Shared Memory ausgelegt. Auf einem Server mit 4 dedizierten EPYC-Kernen, 8 GB DDR5 RAM und NVMe-Storage wie dem netcup RS 1000 G12.5 empfiehlt sich folgende postgresql.conf:

# postgresql.conf — optimiert für 4 dedizierte EPYC-Kerne, 8 GB RAM, NVMe-SSD
shared_buffers = 2GB                  # 25 % des Gesamtspeichers
effective_cache_size = 6GB            # 75 % des Gesamtspeichers (OS Page Cache + shared_buffers)
maintenance_work_mem = 512MB          # Beschleunigt VACUUM und CREATE INDEX
work_mem = 16MB                       # Pro Sort-/Hash-Operation
max_worker_processes = 4              # Entspricht den 4 dedizierten EPYC-Kernen
max_parallel_workers_per_gather = 2
max_parallel_workers = 4
random_page_cost = 1.1                # Signalisiert dem Query-Planner schnellen NVMe-Speicher (Standard: 4.0)
effective_io_concurrency = 200        # Parallele asynchrone NVMe-I/O-Anfragen
wal_compression = zstd                # Reduziert WAL-Schreiblast auf der NVMe
checkpoint_completion_target = 0.9

5. Empfohlene Tarife & aktuelle Gutscheincodes

Neukunden· Nur für Neukunden

netcup Neukunden-Gutschein (4,20 € Netto / 5 € Brutto)

  • Erste Bestellung eines neuen Kontos
  • 4,20 € Netto-Abzug bei 0 % MwSt. (5 € Brutto)
  • Nicht für Domains, VPS ARM, VPS Lite

4,20 € Netto-Rabatt (0 % MwSt.)

Wert 4,20 €(einmaliger Abzug mit 0 % MwSt. (Netto); Nennwert 5,00 € inkl. 19 % MwSt.)

4 Ersatzcodes
  • 36nc17833646273
  • 36nc17833646272
  • 36nc17833646271
  • 36nc17833646274

Produktgutscheine sind Einmalcodes. Meldet netcup „bereits eingelöst“, nimm den nächsten.

Details & Preise →
Root-Server· Neu- und Bestandskunden

RS 1000 G12.5

  • 4 dedizierte Kerne
  • 8 GB RAM
  • 128 GB NVMe
  • 2,5 Gbit/s

2 Monate gratis

Wert 36,52 €(2 × 18,26 € · 12-Monats-Preis, 0 % MwSt. (Netto))

6874nc17940129280
netcup-Warenkorb mit Code öffnen →
4 Ersatzcodes
  • 6874nc17942196620
  • 6874nc17943134860
  • 6874nc17940391780
  • 6874nc17942152510

Produktgutscheine sind Einmalcodes. Meldet netcup „bereits eingelöst“, nimm den nächsten.

Details & Preise →
Root-Server· Neu- und Bestandskunden

RS 2000 G12.5

  • 8 dedizierte Kerne
  • 16 GB RAM
  • 256 GB NVMe
  • 2,5 Gbit/s

1 Monat gratis

Wert 34,20 €(1 × 34,20 € · 12-Monats-Preis, 0 % MwSt. (Netto))

6875nc17939016850
netcup-Warenkorb mit Code öffnen →
4 Ersatzcodes
  • 6875nc17938806380
  • 6875nc17937997610
  • 6875nc17939086810
  • 6875nc17942234940

Produktgutscheine sind Einmalcodes. Meldet netcup „bereits eingelöst“, nimm den nächsten.

Details & Preise →
VPS· Neu- und Bestandskunden

VPS 1000 G12.5

  • 4 vCores
  • 8 GB RAM
  • 128 GB SSD
  • 2,5 Gbit/s

1 Monat gratis

Wert 12,18 €(1 × 12,18 € · 12-Monats-Preis, 0 % MwSt. (Netto))

6877nc17939050380
netcup-Warenkorb mit Code öffnen →
4 Ersatzcodes
  • 6877nc17940520550
  • 6877nc17939634411
  • 6877nc17940514860
  • 6877nc17942858710

Produktgutscheine sind Einmalcodes. Meldet netcup „bereits eingelöst“, nimm den nächsten.

Details & Preise →