Einleitung

Zwischen dem Server und den BHYVE Gästen wird für verschiedene Zwecke eine Möglichkeit benötigt, um Dateien austauschen zu können. Sei es zur Ablage von Konfigurationen, Daten oder Backups, ähnlich wie das auch bei den Jails praktiziert wird.

Ziele

Dies erfolgt am einfachsten über NFS. Da es sich hierbei nur um internen Verkehr handelt, sind keine größeren Authentifizierungen oder andere Sicherheitsmaßnahmen erforderlich. Lediglich die Beschränkung auf das Netzwerk bzw. den Host sollte hier vollkommen ausreichen. Auch auf nfsuserd wird verzichtet, damit nicht überall die IDs und unterschiedlichen Benutzer abgeglichen werden müssen. Das macht keinen Spaß und verdoppelt den Aufwand nur unnötig. Die Vorbereitung ist schnell erledigt, alle Details folgen dann in den kommenden Artikeln.

NEU: Für ganz ungeduldige habe ich einen Konsole only Abschnitt. Da gibts nur Befehle, keine Erklärungen.

Letzte Aktualisierung:

  • 29.12.2024: Initiale Version

Grundbedingungen

NFS

Als erstes wird der NFS Dienst mit service nfsd enable aktiviert und Version 4 mit sysrc nfsv4_server_enable="YES" und sysrc nfsv4_server_only="YES" begrenzt. NFSv4 benötigt in der /etc/exports nur einen einzigen Eintrag, der mit echo "V4: /" > /etc/exports angelegt wird. Keine Sorge, damit wird nicht gleich alles freigegeben, das stellt nur die niedrigste Ebene einer möglichen Freigabe dar. Die genauen Freigaben folgen später und werden mitttels ZFS-Share ermöglicht. Dann kann abschließend der Dienst mit service nfsd start gestartet werden. Das war es schon.

Da eine Firewall aktiviert wurde, müssen die Regeln um den NFS Verkehr (Port 2049) erweitert werden.

PF

Die Konfiguration der pf-Firewall erfolgt über die zentrale /etc/pf.conf Datei.
Darin werden alle benötigten Regeln hinterlegt und mit ee /etc/pf.conf bearbeitet:

# NFSv4 Verkehr erlauben
pass in inet proto tcp from any to any port 2049 flags S/SA keep state
pass in inet proto udp from any to any port 2049

Nach Änderungen an dem Regelsatz werden diese nach einem service pf reload aktiv.

Konsole

service nfsd enable
sysrc nfsv4_server_enable="YES"
sysrc nfsv4_server_only="YES"
echo "V4: /" > /etc/exports
service nfsd start
echo "# NFSv4 Verkehr erlauben" >> /etc/pf.conf
echo "pass in inet proto tcp from any to any port 2049 flags S/SA keep state" >> /etc/pf.conf
echo "pass in inet proto udp from any to any port 2049" >> /etc/pf.conf
service pf reload

Voilá