Wie man einen TFTP-Server auf einem Ubuntu-Server mit tftpd-hpa einrichtet

Installieren Sie den tftpd-hpa- Server und den tftp-hpa- Client von Ubuntu . Diese Konfiguration stellt Dateien bereit /srv/tftpund speichert Uploads in einem separaten Verzeichnis. Informationen zu den Paketlisten für Server und Client finden Sie in der Ubuntu- Dokumentation .

Sicherheit: TFTP erfordert weder Anmeldung noch Verschlüsselung. Beschränken Sie den Zugriff auf ein vertrauenswürdiges LAN; erreichbare Clients können verfügbare Dateien lesen und, sofern die Berechtigungen dies zulassen, Dateien hochladen. Übertragen Sie keine vertraulichen Informationen. Die TFTP-Spezifikation beschreibt die Sicherheitsgrenzen.

TFTP-Server einrichten

1. Server und Client installieren

Aktualisieren Sie die APT-Metadaten und installieren Sie anschließend beide Pakete:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Ubuntu Server-Terminal mit Anzeige des Befehls zur Installation von tftpd-hpa und tftp-hpa
Installieren Sie die Server- und Clientpakete.

2. TFTP-Root konfigurieren

Bearbeiten Sie die Paketkonfigurationsdatei:

sudo nano /etc/default/tftpd-hpa

Legen Sie diese Werte fest:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--secureBeschränkt den Daemon auf sein konfiguriertes Stammverzeichnis, --createerlaubt Uploads und --umask 027beschränkt neue Upload-Dateien auf den Modus „nicht verfügbar“ 0640. Die Ubuntu-TFTPD-Dokumentation beschreibt diese Optionen. Speichern Sie mit Strg+O, drücken Sie die Eingabetaste und anschließend Strg+X.

Da der Client das Stammverzeichnis als sichtbar --secureangibt /srv/tftp, sind Dateinamen relativ dazu: Verwenden Sie `/tmp` hello.txt, nicht `/tmp` /srv/tftp/hello.txt. TFTP-Clients durchsuchen keine Verzeichnisse, daher wird eine Liste der veröffentlichten Dateinamen und ihrer Pfade geführt.

Terminal-Editor zeigt tftpd-hpa konfiguriert mit /srv/tftp-Root, sicherem Modus, Uploads und umask 027
Dateien einschränken und Upload-Maske festlegen.

3. Erstellen Sie das Stammverzeichnis und das Upload-Verzeichnis.

Das Hauptverzeichnis soll dem Benutzer „root“ gehören, und Schreibzugriff soll nur dem Upload-Ordner gewährt werden:

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

Der Daemon kann das Stammverzeichnis lesen, aber nur das tftpBenutzerkonto kann hineinschreiben /srv/tftp/upload. Vermeiden Sie es, den gesamten Verzeichnisbaum für alle Benutzer beschreibbar zu machen, beispielsweise durch Berechtigungen wie „all“ 777.

Dateien im öffentlichen Stammverzeichnis sollten von allen autorisierten Clients als lesbar behandelt werden. Beschränken Sie dieses Verzeichnis auf Boot-Images, Firmware oder andere für dieses Netzwerk bestimmte Daten. Wählen Sie für private Übertragungen ein Protokoll mit Authentifizierung und Verschlüsselung.

Ubuntu-Terminal erstellt /srv/tftp/upload mit dem tftp-Benutzer und der tftp-Gruppe sowie dem Modus 0750
Nur das Upload-Unterverzeichnis ist beschreibbar.

4. Fügen Sie eine Datei zum Bereitstellen hinzu.

Erstellen Sie eine bekannte Datei im Stammverzeichnis. Die standardmäßigen Leseprüfungen von TFTP erfordern, dass die bereitgestellten Dateien öffentlich lesbar sind. Setzen Sie daher den Modus auf 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Das Ubuntu-Server-Terminal schreibt die Datei hello.txt in das Verzeichnis /srv/tftp und setzt die Dateiberechtigungen auf 0644.
Erstellen Sie eine bekannte Datei für den Download-Test.

5. Aktivieren und starten Sie den Dienst neu.

Aktivieren Sie das Gerät beim Systemstart, starten Sie es neu, um die Einstellungen anzuwenden, und überprüfen Sie seinen Status:

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

Falls der Startvorgang fehlschlägt, überprüfen Sie das Dienstprotokoll mit sudo journalctl -u tftpd-hpa -b --no-pager.

Ubuntu Server-Terminalbefehle zum Aktivieren, Neustarten und Überprüfen des tftpd-hpa-Dienstes
Starten Sie den Dienst nach der Änderung der Einstellungen neu.

6. Firewall-Zugriff einschränken

Wenn UFW aktiviert ist, erlauben Sie die erste Anfrage nur aus Ihrem Client-Subnetz. Ersetzen Sie das Beispielnetzwerk durch Ihren vertrauenswürdigen LAN-Bereich:

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

Die Regeln für das Quellnetzwerk finden Sie im UFW-Leitfaden von Ubuntu . TFTP startet auf UDP-Port 69 und verwendet anschließend einen vom Server ausgewählten UDP-Port für die Dateidaten, wie in der Protokollspezifikation beschrieben . Eine restriktive Firewall, ein Router oder ein NAT-Gerät kann die Anfrage zwar zulassen, aber die Übertragung blockieren. Bei einem Client-Timeout verwenden Sie TFTP-fähiges Connection Tracking oder eine geeignete Firewall-Richtlinie. Öffnen Sie nicht jeden UDP-Port und setzen Sie TFTP nicht dem Internet aus. Dieser Befehl fügt eine Regel hinzu; er aktiviert UFW nicht. Wenn Sie den Server über SSH administrieren und eine inaktive Firewall aktivieren möchten, erlauben Sie SSH zuerst, um den Fernzugriff zu gewährleisten.

UFW-Befehl, der nur UDP-Port 69 aus dem Beispiel-Subnetz 192.168.1.0/24 zulässt.
Erlauben Sie erste Anfragen aus einem vertrauenswürdigen Subnetz.

Test-Downloads und -Uploads

7. Von einem Ubuntu-Client herunterladen

Führen Sie auf dem Server den Befehl aus ip -brief addressund notieren Sie sich die erreichbare LAN-Adresse. Installieren Sie den Client gegebenenfalls auf einem Ubuntu-Client. Ersetzen Sie 192.0.2.10unten die Adresse durch die tatsächliche Serveradresse:

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

Die Datei wird im aktuellen Verzeichnis des Clients gespeichert. Das Handbuch des Ubuntu-TFTP-Clients dokumentiert binarydie getVorgehensweise. Der Binärmodus wird für Firmware, Boot-Images und Dateien empfohlen, deren Bytes unverändert bleiben müssen. Linux-Dateinamen unterscheiden zwischen Groß- und Kleinschreibung; geben Sie daher jeden Remote-Namen exakt ein.

TFTP-Client-Terminal verbindet sich mit dem Beispielserver und lädt hello.txt im Binärmodus herunter
Fordern Sie die bekannte Datei im Binärmodus an.

8. In den eingeschränkten Ordner hochladen

Erstellen Sie auf dem Client eine Testdatei und senden Sie diese anschließend an einen Pfad unterhalb des Upload-Verzeichnisses des Servers:

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

Verwenden Sie die tatsächliche Adresse des Servers. Der Remote-Pfad ist relativ zu /srv/tftp; überprüfen Sie den Upload auf dem Server mit sudo ls -l /srv/tftp/upload/. TFTP-Clients verwenden bekannte Dateinamen, anstatt ein Verzeichnis zu durchsuchen.

TFTP-Client-Terminal sendet upload-check.txt im Binärmodus an upload/upload-check.txt.
Uploads bleiben im beschreibbaren Unterverzeichnis.

Häufige Fehler beheben

  • Datei nicht gefunden: Überprüfen Sie den Dateinamen relativ zum Pfad /srv/tftpund stellen Sie sicher, dass die Datei existiert.
  • Zugriffsverletzung:tftp Bereitstellen, dass die bereitgestellten Dateien öffentlich lesbar sind; bei Uploads die Eigentumsrechte des Ziels überprüfen und sicherstellen, --createdass diese festgelegt sind.
  • Zeitüberschreitung: Stellen Sie sicher, dass der Client die erreichbare Adresse des Servers verwendet, der Dienst aktiv ist und die Firewall den ausgehandelten UDP-Datenfluss zulässt.

Um ein Netzwerkproblem einzugrenzen, testen Sie zunächst von einem Client im selben LAN. Funktioniert dies, aber ein Client im gerouteten Netzwerk meldet einen Timeout, überprüfen Sie, ob der Router oder die Firewall TFTP-fähig ist und den ausgehandelten Datenport korrekt verarbeitet.

Bei einem schreibgeschützten Dienst entfernen Sie --createihn TFTP_OPTIONSund starten Sie ihn neu tftpd-hpa.

Einen Kommentar hinterlassen

So stellen Sie verlorene Partitionen und Festplattendaten sicher wieder her

So stellen Sie verlorene Partitionen und Festplattendaten sicher wieder her

Erfahren Sie, wie Sie mit TestDisk und PhotoRec verlorene Partitionen und Dateien wiederherstellen. Schützen Sie das Quelllaufwerk, führen Sie einen sicheren Scan durch und speichern Sie die wiederhergestellten Daten auf einer anderen Festplatte.

Wie man QR-Codes auf einem Linux-Desktop scannt

Wie man QR-Codes auf einem Linux-Desktop scannt

Scannen Sie QR-Codes unter Linux mit CoBang mithilfe einer Webcam oder einer Bilddatei. Informationen zu Installationsoptionen, Einrichtungsschritten und Lösungen für den Kamerazugriff über Flatpak finden Sie hier.

So ändern Sie die Webcam-Einstellungen unter Linux mit Cameractrls

So ändern Sie die Webcam-Einstellungen unter Linux mit Cameractrls

Ändern Sie die Webcam-Einstellungen unter Linux mit Cameractrls: Optimieren Sie Belichtung, Farbe, Flimmerreduzierung und andere unterstützte Steuerelemente und prüfen Sie anschließend die kompatiblen Videomodi.

So installieren Sie PhpStorm unter Linux: Toolbox, Tar.gz, Snap und AUR

So installieren Sie PhpStorm unter Linux: Toolbox, Tar.gz, Snap und AUR

Installieren Sie PhpStorm unter Linux mit der JetBrains Toolbox oder dem eigenständigen tar.gz-Archiv, zusätzlich zu den Snap- und Arch-AUR-Optionen. Java ist bereits enthalten.

Wie man unter Linux mit GIMP ein Bild ausschneidet

Wie man unter Linux mit GIMP ein Bild ausschneidet

Unter Linux mit GIMP den Fotohintergrund entfernen: Motiv nachzeichnen, ausgewählten Hintergrund löschen, Transparenz beibehalten und wiederverwendbare PNG-Datei exportieren.

So richten Sie Dual-Panels unter XFCE 4 ein

So richten Sie Dual-Panels unter XFCE 4 ein

Erstellen Sie für jeden Bildschirm ein separates XFCE 4-Panel, weisen Sie das zweite Panel dem richtigen Ausgang zu, positionieren und skalieren Sie es und fügen Sie die benötigten Launcher und Statusanzeigen hinzu.

So installieren Sie Cisco Packet Tracer unter Linux

So installieren Sie Cisco Packet Tracer unter Linux

Laden Sie Cisco Packet Tracer 9.0.1 für Ubuntu 64-Bit herunter, installieren Sie das DEB-Paket mit APT, akzeptieren Sie die Lizenz im Terminal und melden Sie sich an, um ein Lab zu starten.

Wie man eine CD-ROM unter Linux als ISO-Datei sichert

Wie man eine CD-ROM unter Linux als ISO-Datei sichert

Erstellen Sie unter Linux mit GNOME Disks oder dd ein CD-ROM-ISO. Identifizieren Sie das optische Laufwerk, überwachen Sie den Kopiervorgang, überprüfen Sie das Image und erkennen Sie, wann eine beschädigte oder Audio-Disc ein anderes Tool benötigt.

FlightGear kostenlos herunterladen: Offizielle Installationsanleitung

FlightGear kostenlos herunterladen: Offizielle Installationsanleitung

Laden Sie FlightGear kostenlos von der offiziellen Website herunter. Vergleichen Sie die Pakete für Windows, macOS und Linux, installieren Sie die Datendateien und starten Sie Ihren ersten Flug.

Google Tasks Desktop-Anwendung: So verwenden Sie sie auf einem Computer

Google Tasks Desktop-Anwendung: So verwenden Sie sie auf einem Computer

Öffnen Sie Google Tasks in einem Browser, fügen Sie eine Chrome-Verknüpfung oder einen App-ähnlichen Start hinzu und verwalten Sie terminierte Aufgaben über Kalender und Gmail.