TFTP-Server
Das Trivial File Transfer Protocol ist ein vereinfachtes Protokoll zur Dateiübertragung über ein Netzwerk. Anders als FTP oder SFTP bietet TFTP nur grundlegende Funktionen. TFTP kommt häufig zum Einsatz, um Firmware-Updates, Konfigurationsdateien oder Startdateien von einem TFTP-Server zu einem TFTP-Client zu übertragen.
Da TFTP keine Authentifizierung, Verschlüsselung oder Komprimierung der übertragenen Daten unterstützt, wird es normalerweise nur in geschlossenen und vertrauenswürdigen Netzwerken verwendet. |
Der TFTP-Server stellt opsi-Boot-Images für die opsi-Clients zur Verfügung. Der Standard-TFTP-Server für opsi heißt opsi-tftpd-hpa
; das Paket wird automatisch als Abhängigkeit zum Paket opsi-server-full
installiert.
Der opsi-tftpd-hpa
startet in der Voreinstellung automatisch beim Systemstart. Um ihn zu stoppen, geben Sie den Befehl sudo systemctl stop opsi-tftpd-hpa.service
ein; sudo systemctl start opsi-tftpd-hpa.service
startet den Dienst wieder.
Für gewöhnlich startet der TFTP-Dienst mit einem Verbose-Parameter, der für ausführliche Informationen in den Logfiles sorgt. Zur Fehlersuche oder zur Analyse können Sie den Loglevel anpassen. Dazu verwenden Sie den folgenden Befehl:
sudo systemctl edit --full opsi-tftpd-hpa.service
Suchen Sie im Texteditor nach der Zeile, die mit ExecStart
beginnt und ersetzen Sie -v
durch --verbosity <log-level>
, z. B. --verbosity 7
für sehr viele Details. Danach starten Sie den Dienst neu:
sudo systemctl restart opsi-tftpd-hpa.service
TFTP-Ports und Firewall-Konfiguration
Der Client verbindet sich initial mit Port 69 auf dem Server. Der Server sendet aber keine Pakete über Port 69. Stattdessen wählen Client und Server für die weitere Kommunikation sogenannte TIDs aus. Ein Transaction Identifier ist eine Kennung, um Transaktionen eindeutig zu identifizieren. Die TIDs entsprechen UDP-Ports und liegen im Bereich von 1024 bis 65535. Alle Pakete werden dann vom TID-Port des Servers zum TID-Port des Clients und umgekehrt gesendet.
Die Server-Firewall muss daher so konfiguriert sein, dass eingehende Verbindungen auf Port 69/udp erlaubt sind.
Zusätzlich muss die UDP-Kommunikation zwischen den TID-Ports erlaubt werden.
Das funktioniert am einfachsten über das Kernel-Modul ip_conntrack_tftp
bzw. nf_conntrack_tftp
.