PXE-Server: Unterschied zwischen den Versionen
MrMcX (Diskussion | Beiträge) (DBAN hinzugefügt) |
MrMcX (Diskussion | Beiträge) (Parted Magic hinzugefügt) |
||
Zeile 50: | Zeile 50: | ||
Als erstes laden wir die ISO-Datei in den richtigen Unterordner.<syntaxhighlight lang="bash"> | Als erstes laden wir die ISO-Datei in den richtigen Unterordner.<syntaxhighlight lang="bash"> | ||
− | sudo | + | sudo curl https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fdban%2Ffiles%2Fdban%2Fdban-2.3.0%2Fdban-2.3.0_i586.iso%2Fdownload&ts=1608933465 -o /var/lib/tftpboot/dban/dban.iso --create-dirs |
</syntaxhighlight>Dann passen wir das Boot-Menü entsprechend an.<syntaxhighlight lang="bash"> | </syntaxhighlight>Dann passen wir das Boot-Menü entsprechend an.<syntaxhighlight lang="bash"> | ||
echo "LABEL dban | echo "LABEL dban | ||
Zeile 74: | Zeile 74: | ||
KERNEL dban/dban.bzi | KERNEL dban/dban.bzi | ||
APPEND nuke=\"dwipe --autonuke\" silent | APPEND nuke=\"dwipe --autonuke\" silent | ||
+ | " | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Parted Magic === | ||
+ | Auch Parted Magic laden wir über memdisk. Als erstes holen wir uns die ISO aus der Cloud und packen sie in den richtigen Ordner. Dazu empfehle ich euch, ein [https://cloud.computertruhe.de/settings/user/security App-Passwort anzulegen].<syntaxhighlight lang="bash"> | ||
+ | sudo curl -u <USER>:<PASSWORD> -X GET https://cloud.computertruhe.de/remote.php/dav/files/<USER>/Allgemein/Software/Datenvernichtung/pmagic_2020_10_12.iso -o /var/lib/tftpboot/pmagic/pmagic.iso --create-dirs | ||
+ | </syntaxhighlight>Dann legen wir noch den Eintrag im Boot-Menü an.<syntaxhighlight lang="bash"> | ||
+ | echo "LABEL pmagic | ||
+ | MENU LABEL ^Parted Magic 2020-10-12 | ||
+ | LINUX memdisk | ||
+ | INITRD pmagic/pmagic.iso | ||
+ | APPEND iso | ||
" | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default | " | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default | ||
</syntaxhighlight> | </syntaxhighlight> |
Version vom 26. Dezember 2020, 00:05 Uhr
⚠ Work in Progress ⚠
Diese Seite beschreibt die Installation eines PXE-Servers zum Booten über das Netzwerk. Dadurch kann man die USB-Sticks ersetzen, die immer mal wieder kompliziert zum Laufen zu bringen sind.
Die Anleitung wurde mit Raspberry Pi OS (Raspbian 10) getestet, sollte aber auch mit Debian 10 "Buster" und Ubuntu 20.XX funktionieren. Die Inhalte sind wild aus dem Internet zusammenkopiert und teilweise angepasst[1][2].
Installation und Einrichtung der benötigten Dienste
Als erstes installieren wir mit dnsmasq einen DHCP-Server, der als Proxy (das heißt zusätzlich zum DHCP-Server im Router) funktioniert und einen TFTP-Server mitbringt, eine Sammlung von Binaries aus pxelinux und nfs-kernel-server, um auch ISO-Dateien laden zu können.
sudo apt install dnsmasq pxelinux nfs-kernel-server
Die Standard-Konfiguration von dnsmasq ersetzen wir, da wir keinen vollständigen DHCP-Server brauchen und dafür TFTP aktivieren wollen. Hier müsst ihr eventuell die IP-Range 192.168.178.0 anpassen, so dass sie zu eurem Netzwerk passt. Außerdem müsst ihr 192.168.178.XX durch die Adresse des PXE-Servers (also im Beispiel des Raspberry Pis) ersetzen.
echo "dhcp-range=192.168.178.0,proxy
dhcp-boot=pxelinux.0,192.168.178.XX,192.168.178.0
pxe-service=x86PC,\"Netzwerk Boot\",pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot" | sudo tee /etc/dnsmasq.conf
Als nächstes legen wir das gerade konfigurierte Verzeichnis an und kopieren ein paar benötigte Dateien rein.
1 sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
2 sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot/
3 sudo cp /usr/lib/syslinux/memdisk /var/lib/tftpboot/
4 sudo cp -v /usr/lib/syslinux/modules/bios/{ldlinux.c32,libcom32.c32,libutil.c32,menu.c32,vesamenu.c32} /var/lib/tftpboot/
Dann konfigurieren wir noch die NFS-Freigabe für die ISOs. Auch hier müsst ihr eventuell die IP-Range 192.168.178.0 anpassen, so dass sie zu eurem Netzwerk passt.
echo "/var/lib/tftpboot 192.168.178.0/255.255.255.0(ro,sync,no_wdelay,insecure_locks,insecure,no_root_squash,no_subtree_check)" | sudo tee -a /etc/exports && sudo exportfs -a
Konfiguration des PXE-Servers und Installation von Images
Alle Konfigurationen finden in der Datei /var/lib/tftpboot/pxelinux.cfg/default statt. Außerdem legen wir später für jedes Image einen Unterordner in /var/lib/tftpboot/ an.
Als erstes konfigurieren wir ein Menü, worüber wir dann beim Booten unsere Images auswählen können.
echo "DEFAULT menu.c32
MENU TITLE Server PXE Boot Menu
TIMEOUT 100
" | sudo tee /var/lib/tftpboot/pxelinux.cfg/default
Memtest86
Die erste und einfachste Übung ist memtest86+. Dazu laden wir erst die ausführbare Datei runter und verschieben sie in einen passenden Unterordner.
1 wget https://www.memtest.org/download/5.31b/memtest86+-5.31b.bin.gz -O /tmp/mt86plus.gz
2 gzip -d /tmp/mt86plus
3 sudo mkdir /var/lib/tftpboot/memtest
4 sudo mv /tmp/mt86plus /var/lib/tftpboot/memtest/
Dann fügen wir den passenden Eintrag im Boot-Menü ein.
echo "LABEL memtest
MENU LABEL ^Memtest86+ v5.31b
KERNEL memtest/mt86plus
" | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default
Darik's Boot and Nuke (DBAN)
Für DBAN bedienen wir uns des syslinux-Tools memdisk. Das kann ISOs unter bestimmten Voraussetzungen laden (funktioniert aber leider nicht ohne weiteres für Linux-Installations-Images).[3]
Als erstes laden wir die ISO-Datei in den richtigen Unterordner.
sudo curl https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fdban%2Ffiles%2Fdban%2Fdban-2.3.0%2Fdban-2.3.0_i586.iso%2Fdownload&ts=1608933465 -o /var/lib/tftpboot/dban/dban.iso --create-dirs
Dann passen wir das Boot-Menü entsprechend an.
echo "LABEL dban
MENU LABEL ^DBAN v2.3.0
LINUX memdisk
INITRD dban/dban.iso
APPEND iso
" | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default
DBAN Autonuke
Alternativ können wir uns einen Eintrag basteln, der direkt den Befehl autonuke ausführt und daher auch nicht die komplette ISO-Datei braucht.[4]
Dazu laden wir wir die ISO, extrahieren die passende ausführbare Datei und legen sie in das passende Verzeichnis.
1 sudo mkdir -p /var/lib/tftpboot/dban
2 wget https://downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fdban%2Ffiles%2Fdban%2Fdban-2.3.0%2Fdban-2.3.0_i586.iso%2Fdownload&ts=1608933465 -O /tmp/dban.iso
3 sudo mount -o loop /tmp/dban.iso /mnt
4 sudo cp /mnt/dban.bzi /var/lib/tftpboot/dban/
5 sudo umount /mnt
Dann passen wir wieder das Boot-Menü an.
echo "LABEL dban-autonuke
MENU LABEL ^DBAN Autonuke!
KERNEL dban/dban.bzi
APPEND nuke=\"dwipe --autonuke\" silent
" | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default
Parted Magic
Auch Parted Magic laden wir über memdisk. Als erstes holen wir uns die ISO aus der Cloud und packen sie in den richtigen Ordner. Dazu empfehle ich euch, ein App-Passwort anzulegen.
sudo curl -u <USER>:<PASSWORD> -X GET https://cloud.computertruhe.de/remote.php/dav/files/<USER>/Allgemein/Software/Datenvernichtung/pmagic_2020_10_12.iso -o /var/lib/tftpboot/pmagic/pmagic.iso --create-dirs
Dann legen wir noch den Eintrag im Boot-Menü an.
echo "LABEL pmagic
MENU LABEL ^Parted Magic 2020-10-12
LINUX memdisk
INITRD pmagic/pmagic.iso
APPEND iso
" | sudo tee -a /var/lib/tftpboot/pxelinux.cfg/default
Neustart des Dienstes
Am Ende der Ersteinrichtung und nach jeder Änderung der Konfiguration sollten sicherheitshalber die Berechtigungen richtig gesetzt und dann der dnsmasq-Dienst neugestartet werden.
sudo chown -R nobody:nogroup /var/lib/tftpboot && sudo chmod -R 755 /var/lib/tftpboot/ && sudo systemctl restart dnsmasq