FreeBSD ➔ Voraussetzungen


Writing Icon

Lizenz: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
Letzte Aktualisierung:
Veröffentlicht:
Verfasser: Markus Kohlmeyer


Diese HowTos setzen ein wie in FreeBSD ➔ Remote Installation beschriebenes, installiertes und konfiguriertes FreeBSD Basissystem voraus.

Einleitung

Unser WebHosting System wird am Ende folgende Dienste umfassen.

  • MySQL 5.7.22 (InnoDB, MyISAM, GTID)
  • Dovecot 2.3.1 (IMAP only, 1GB Quota)
  • Postfix 3.3.0 (Dovecot-SASL, postscreen)
  • Postfix-Policyd-SPF-Python 2.0.2 (SPF2)
  • OpenDKIM 2.10.3 (VBR, 2048 Bit RSA)
  • OpenDMARC 1.3.2 (SPF2, FailureReports)
  • Apache 2.4.33 (MPM-Event, HTTP/2, mod_brotli)
  • NGinx 1.14.0 (HTTP/2, mod_brotli)
  • PHP 7.2.5 (PHP-FPM, Composer, PEAR)
  • CertBot 0.24.0 (LetsEncrypt ACME API 1.0)
  • CertBot Wrapper 0.2.0 (LetsEncrypt API 1.0)

Folgende Punkte sind in allen folgenden HowTos zu beachten.

  • Alle Dienste werden mit einem möglichst minimalen und bewährten Funktionsumfang installiert.
  • Alle Dienste werden mit einer möglichst sicheren und dennoch flexiblen Konfiguration versehen.
  • Alle Konfigurationen sind selbstständig auf notwendige individuelle Anpassungen zu kontrollieren.
  • Alle Benutzernamen werden als __USERNAME__ dargestellt und sind selbstständig passend zu ersetzen.
  • Alle Passworte werden als __PASSWORD__ dargestellt und sind selbstständig durch sichere Passworte zu ersetzen.
  • Die Domain des Servers lautet example.com und ist selbstständig durch die eigene Domain zu ersetzen.
  • Der Hostname des Servers lautet devnull und ist selbstständig durch den eigenen Hostnamen zu ersetzen (FQDN=devnull.example.com).
  • Es werden die FQDNs devnull.example.com, mail.example.com und www.example.com verwendet und sind selbstständig im DNS zu registrieren.
  • Die primäre IPv4 Adresse des Systems wird als __IPV4ADDR__ dargestellt und ist selbsttändig zu ersetzen.
  • Die primäre IPv6 Adresse des Systems wird als __IPV6ADDR__ dargestellt und ist selbsttändig zu ersetzen.
  • Postfix und Dovecot teilen sich sowohl den FQDN mail.example.com als auch das SSL-Zertifikat.

Vorbereitungen

WICHTIG: An diesem Punkt müssen wir uns entscheiden, ob wir die Pakete/Ports in Zukunft bequem als vorkompiliertes Binary-Paket per pkg install <category/portname> mit den Default-Optionen installieren wollen oder ob wir die Optionen und somit auch den Funktionsumfang beziehungsweise die Features unserer Pakete/Ports selbst bestimmen wollen.

In diesem HowTo werden wir uns für die zweite Variante entscheiden, da uns dies viele Probleme durch unnötige oder fehlende Features und Abhängigkeiten ersparen wird. Andererseits verlieren wir dadurch den Komfort von pkg bei der Installation und den Updates der Pakete/Ports. Ebenso müssen wir zwangsweise für alle Pakete/Ports die gewünschten Optionen manuell setzen und die Pakete/Ports auch selbst kompilieren.

Dieses Vorgehen ist deutlich zeitaufwendiger und erfordert auch etwas mehr Wissen über die jeweiligen Pakete/Ports und deren Features, dafür entschädigt es uns aber mit einem schlankeren, schnelleren und stabileren System und bietet uns gegebenenfalls nützliche/erforderliche zusätzliche Funktionen und Sicherheitsfeatures. Auch die potentielle Gefahr für Sicherheitslücken sinkt dadurch, da wir unnütze Pakete/Ports gar nicht erst als Abhängigkeiten mitinstallieren müssen.

Sofern noch nicht geschehen, deaktivieren wir also zuerst das Default-Repository von pkg, um versehentlichen Installationen von Binary-Paketen durch pkg vorzubeugen.

mkdir -p /usr/local/etc/pkg/repos
echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

Die von uns jeweils gewünschten Build-Optionen der Ports legen wir dabei mittels der options-Files des neuen Portkonfigurationsframeworks OptionsNG fest.

Da wir unsere Nutzdaten weitestgehend unter /data ablegen werden, legen wir ein paar hierfür benötigte Verzeichnisse an, sofern nicht bereits geschehen.

mkdir -p /data/db /data/ssl /data/www

DNS Records

Für diese HowTos müssen zuvor folgende DNS-Records angelegt werden, sofern sie noch nicht existieren, oder entsprechend geändert werden, sofern sie bereits existieren.

example.com.            IN  A       __IPV4ADDR__
example.com.            IN  AAAA    __IPV6ADDR__

devnull.example.com.    IN  A       __IPV4ADDR__
devnull.example.com.    IN  AAAA    __IPV6ADDR__

mail.example.com.       IN  A       __IPV4ADDR__
mail.example.com.       IN  AAAA    __IPV6ADDR__

www.example.com.        IN  A       __IPV4ADDR__
www.example.com.        IN  AAAA    __IPV6ADDR__

example.com.            IN  MX  10  mail.example.com.

OpenSSL

Diese HowTos setzen aktuell die (temporäre) Erstellung einer eigenen FreeBSD ➔ Certificate Authority voraus. Dieser Punkt wird hoffentlich in Zukunft nicht mehr nötig sein.

Los geht es

Die einzelnen HowTos bauen aufeinander auf, daher sollten sie in der Reihenfolge von oben nach unten bis zum Ende abgearbeitet werden.


Über den Autor