Achtung, dieser Artikel bezieht sich auf TrueNAS CORE, welches ich nun hier archiviere und für welches es keine Updates mehr gibt. Weiter geht es mit einem normalen FreeBSD als Server mit BastilleBSD als Jailverwaltung.
Alle Artikel hier basieren auf der Erstellung eines Jails, da ich grundsätzlich jede Anwendung in einer eigenen Umgebung betreibe. Das sorgt für saubere Voraussetzungen und keine unnötig wechselseitige Abhängigkeiten. Jails können Dienste sehr einfach, schlank und sicher betreiben. Für FreeBSD ist es egal, ob eine oder 100 Jails gleichzeitig laufen, relevant sind nur die Dienste, die darin laufen. Dies kann bequem über die TrueNAS Administrations-Webseite oder auch direkt auf der Konsole erfolgen.
Die Verwaltung in TrueNAS wird mit iocage verwaltet und ist vorinstalliert, kann aber auch in FreeBSD mit pkg install iocage
installiert und genutzt werden. Der Vorteil ist, das entweder über die TrueNAS GUI oder eine reine Shell die wichtigsten Einstellungen und Anpassungen vorgenommen werden können. Wir beleuchten hier mal beides.
Erstellung einer Jail mit den wichtigsten Grundeinstellungen, damit andere Artikel darauf aufbauen können.
NEU: Für ganz ungeduldige habe ich einen Konsole only Abschnitt. Da gibts nur Befehle, keine Erklärungen.
Letzte Aktualisierung:
Im ersten Schritt erstellen wir ein Jail auf dem TrueNAS. Dazu öffnen wir zuerst die TrueNAS Administrations-Webseite.
TrueNAS / Jail / Add
JAILNAME
Basejail
13.X
Ja
Ja
Einige Dienste (wie z.B. PostgreSQL) benötigen einige spezifischere Optionen. Wenn nicht, kann das übersprungen werden.
allow_sysvipc
= AnDie Webshell in TrueNAS ist nicht geeignet um komplexe Konfigurationen vorzunehmen, daher wird SSH aktiviert.
TrueNAS / Jails / JAILNAME / Start
TrueNAS / Jails / JAILNAME / Shell
passwd
das root
Kennwort setzenadduser USERNAME
einen Benutzer hinzufügen
Wichtig: Der Gruppe wheel
zuweisen, damit mit su
Rechte erlangt werden können#Username: USERNAME
#Full name: USERNAME
#Uid (Leave empty for default):
#Login group [USERNAME]:
#Login group is USERNAME. Invite USERNAME into other groups? []: wheel
#Login class [default]:
#Shell (sh csh tcsh nologin) [sh]: tcsh
#Home directory [/home/USERNAME]:
#Home directory permissions (Leave empty for default):
#Use password-based authentication? [yes]
service sshd enable
aktiviert den SSH Dienstservice sshd start
startet den SSH Dienstifconfig
zeigt die aktuelle IPv4 Adresse anDie IP-Adresse am besten statisch im DHCP-Server hinterlegen, damit sie sich nicht mehr ändert und per DNS veröffentlichen (JAILNAME.domain.local
).
iocage create -b -n JAILNAME -r XX.Y-RELEASE vnet="on" bpf="on" dhcp="on"
iocage exec -f JAILNAME "pw user add -n USERNAME -c 'FULLNAME' -d /home/USERNAME -G wheel -m -s /bin/sh"
iocage exec JAILNAME "service sshd enable"
iocage exec JAILNAME "service sshd start"
Voilá