## Bitte hier den eigenen Benutzernamen und das geplante Fertigstellungsdatum eintragen.
[[Vorlage(Getestet, focal)]]

{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Programme_starten: Starten von Programmen]
[:Terminal: Ein Terminal öffnen]
[:mit Root-Rechten arbeiten:]
[:Rechte:Rechte von Dateien anpassen]
}}}

[[Inhaltsverzeichnis()]]
tftpd-hpa (hpa: [wikipedia_en:Hans Peter Anvin:'''H'''ans '''P'''eter '''A'''nvin] ) ist ein TFTP-Server ([https://datatracker.ietf.org/doc/html/rfc1350 RFC 1350] {en}).
Ein oft genutzter Einsatzzweck ist der [:PXE-Boot:].
Der Server unterstützt folgende RFCs:
 * Blockgrößen bis zu 65464 Byte ([https://tools.ietf.org/html/rfc2348 RFC 2348] {en})
 * Übermitteln der Dateigröße ([https://tools.ietf.org/html/rfc2349 RFC 2349] {en})

= Installation =
tftpd-hpa kann aus den offiziellen Paketquellen installiert werden.
{{{#!vorlage Paketinstallation
tftpd-hpa, universe
}}}
Hiermit wird ein [:Dienste:Dienst] ''tftpd-hpa'' installiert, der den TFTP-Server bereitstellt. Danach lauscht der Server auf allen IPv4- und IPv6-Adressen und ist lauffähig. Dies ist aus Sicherheitsgründen oft nicht erwünscht, da jeder, der den TFTP-Server über das Netzwerk (z.B. Internet) erreichen kann, von dort Daten abrufen oder ggf. auch dort ablegen/überschreiben kann.
Man sollte daher auf jeden Fall das Verzeichnis angeben, da hier eine [:chroot:]-ähnliche Umgebung eingerichtet wird, sodass keine Dateien aus übergeordneten Verzeichnissen gelesen/geschrieben werden können. Zudem sollte man den Server nur auf den IP-Adressen laufen lassen, auf denen er wirklich lauschen soll. Ist dies nicht möglich sollte man zusätzlich eine Firewall einrichten, die den Zugriff beschränkt.

== Konfiguration ==

Damit Dateien gelesen werden können, müssen diese global lesbar sein(o, others). Dies gilt ebenso für das Schreiben.
Die Berechtigungen können mit [:chmod:] verwaltet werden.
Schreiben ist standardmäßig nur möglich, wenn die Datei auf dem Server bereits existiert.

Dies kann geändert werden, indem die Datei '''/etc/default/tftpd-hpa''' verändert wird.
Der Zeile ''TFTP_OPTIONS''
wird die Option ''--create'' hinzugefügt.
{{{TFTP_OPTIONS="--secure --create"
}}}

Nach einem Neustart des Dienstes, können auch noch nicht auf dem Server vorhandene Dateien beschrieben werden, sofern das Verzeichnis für alle anderen beschreibbar ist.

== IP-Adresse festlegen ==
TFTP_OPTIONS kann um den Parameter `--address` erweitert werden (es kann aber nur eine Adresse angegeben werden):
{{{
TFTP_OPTIONS="--secure --create --address [2001:db0::2]"
}}}

== root-Verzeichnis festlegen ==
In der Datei '''/etc/default/tftpd-hpa''' kann die Zeile
{{{
TFTP_DIRECTORY="/srv/tftp"
}}}
angepasst werden.

= Links =
 * [https://linux.die.net/man/8/tftpd Manpage von tftpd-hpa] {en}
 * [:Serverdienste:] {Übersicht} Übersichtsartikel
 * [:tftpd:Einfacherer TFTP-Server]
 * [:advanced_TFTP:alternativer TFTP-Server]
 * [:FTP:] - ähnliches Protokoll wie TFTP aber mit erweiterten Möglichkeiten
#tag: Netzwerk, Internet, System, Server