home-harmening:tools:pxe:pxe_server_installieren

Dies ist eine alte Version des Dokuments!


PXE Server auf Debian 12 installieren

Hier installiere ich eine PXE Umgebung auf einem Debian 12 System. Die PXE Umgebung ist ausschließlich für
UEFI Umgebungen gedacht. Der Testclient ist ein HP Prodesk 600.

Auf dem Server werden folgende Pakete benötigt:

NameFunktion
isc-dhcp-serverDHCP Server für das eigene Netzwerk\\oder die Installationsumgebung.
apache2Webserver über den die benötigten Dateien für die\\Betriebssysteme geladen werden.
tftpd-hpaTFTP Server der das Bootimage bereitstellt.
syslinux-efiUEFI Bootimage.


apt install isc-dhcp-server apache2 tftpd-hpa syslinux-efi


Der TFTP Server übergibt später das efi Bootimage dem Client.
Hierzu muss der Pfad festgelegt werden, der über den tftpd-server angeboten wird.
/etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/pxe-boot" # Pfad des TFTP Ordners
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"


Jetzt die efi Datei in das TFTP Verzeichnis kopieren

cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /pxe-boot/


Ordner erstellen und Rechte setzen

mkdir -p /pxe-boot
chown tftp: /pxe-boot


Server neustarten

systemctl restar tftpd-hpa


Dazu muss zunächst festgelegt werden, an welcher Netzwerkschnittstelle der DHCP Server
arbeiten soll. Dazu wird die Datei /etc/default/isc-dhcp-server bearbeitet.
/etc/default/isc-dhcp-server

...
INTERFACESv4="enp6s19" # <- Hier die Netzwerkschnittstelle eintragen
INTERFACESv6=""
...


Jetzt wird der eigentliche DHCP Server konfiguriert. /etc/dhcp/dhcpd.conf

subnet 10.0.0.0 netmask 255.255.255.0 {         # <- Netz ID
    range 10.0.0.50 10.0.0.99;                  # <- Bereich den der DHCP Server verwenden soll
    option domain-name-servers 8.8.8.8;         # <- DNS Server
    option domain-name "example.net";           # <- Domain Name       
    option routers 10.0.0.100;                  # <- Default Gateway
    option broadcast-address 10.0.0.255;        # <- Broadcast Adresse
    default-lease-time 600;                     # <- Standard Leasing Zeit für eine IP Adresse. Hier 10min.
    max-lease-time 7200;                        # <- Maximal Leasing Zeit. Hier 2h.
    next-server 10.0.0.100;                     # <- IP des Servers der die efi Datei bereitstellt
    filename "ipxe.efi";
}


DHCP Server neu starten

systemctl restart isc-dhcp-server


Es sollte zumindest die Datei /var/www/html/index.html gegen eine neue ausgetauscht werden.
Falls eine Auflistung aller Dateien erwünscht ist. Wird die index.html gelöscht und das Directory Indexing für
den Ordner aktiviert.