TFTP (Trivial File Transfer Protocol) werd voor het eerst beschreven in 1980. Het is een vrij oud protocol dat in juni 1981 werd gepubliceerd als TFTP-protocolrevisie 2 in RFC 783 (Request For Comments) door Karen R. Sollins.
Vroeger was het belangrijkste doel van TFTP het verzenden en ontvangen van bestanden via een netwerk. Het werd met name gebruikt om de bestanden over te dragen die nodig waren tijdens het opstarten om systemen in staat te stellen op te starten via een netwerk.
Hier leest u hoe u een TFTP-server op een Linux-machine kunt instellen.
Wat is TFTP?
TFTP wordt nog steeds gebruikt voor bestandsoverdracht en er is geen fundamentele verandering in de functies die het ondersteunt. TFTP wordt gebruikt om bestanden te downloaden en te verzenden via UDP/IP. Het heeft geen extra functies zoals identiteits- en autorisatiecontrole, bestandslijst, verwijdering of hernoemen, die gewoonlijk worden aangetroffen in andere protocollen voor bestandsoverdracht.
In tegenstelling tot de geavanceerde protocollen voor bestandsoverdracht die TCP gebruiken in de transmissielaag, werkt het op het UDP-protocol en heeft geen functies zoals controleren of de pakketten die bij het bestand horen, naar de andere gaan kant. Vanwege deze beperking is het meer geschikt voor gebruik in lokale netwerken dan voor internet of wide area networks.
Ondanks al deze schijnbaar negatieve kenmerken die hierboven zijn opgesomd, is een aspect van het TFTP-protocol dat erg sterk is de eenvoud ervan. De implementatie van het protocol is vrij eenvoudig in vergelijking met de alternatieven, zelfs voor omgevingen die geen besturingssysteem hebben. Vanwege deze functie heeft het een breed gebruiksgebied in embedded systemen.
Een TFTP-server installeren op Linux
Bij het werken met embedded apparaten is het belangrijk dat de TFTP-serverservice is geïnstalleerd. Op Linux-systemen kunnen verschillende TFTP-serverimplementaties worden uitgevoerd. Als je een gebruikt Op Debian gebaseerde distributie, kunt u de. installeren tftpd-hpa, tftpd, of atftpd pakketjes. Als u niet zeker weet welke u moet kiezen, overweeg dan om het tftpd-hpa-pakket te installeren.
sudo apt-krijgen installeer tftpd-hpa
Na installatie begint de TFTP-service te luisteren de UDP-poort 69. Om de bestanden via de TFTP-server naar andere systemen te sturen, moet u rekening houden met een aantal voorwaarden:
- Het vereiste bestand kopiëren naar de TFTP-homedirectory of een directory onder die homedirectory
- Bestandsrechten zichtbaar maken voor het publiek
Om erachter te komen wat de homedirectory van de TFTP-server is, kunt u kijken naar de: TFTP_DIRECTORY variabele in de /etc/default/tftpd-hpa het dossier. Meestal zie je mappen zoals /var/lib/tftpboot of /srv/tftp. Als u wilt, kunt u deze map wijzigen en de service opnieuw starten.
kat /etc/standaard/tftpd-hpa
Als u de eigenaar van de relevante TFTP-thuismap wijzigt in uw gebruikersaccount, hoeft u voor het gebruiksgemak niet het voorvoegsel sudo toe te voegen aan elke opdracht die u uitvoert. Gebruik de opdracht chown om het eigendom van root naar de huidige gebruiker te wijzigen:
sudo chown -R $USER /srv/tftp
De namen van het TFTP-serverpakket en de standaardthuismappen kunnen verschillen, afhankelijk van de gebruikte Linux-distributie.
Bestanden verzenden met de TFTP-server
Soms zijn er situaties waarin TFTP de enige optie is om een bestand van uw ingebed Linux-systeem naar de externe omgeving. Soms ondersteunt het systeem bijvoorbeeld geen beschrijfbare media waarmee u het bestand kunt overbrengen.
In dergelijke gevallen, aangezien de TFTP-client waarschijnlijk wordt gecompileerd in drukke doos, kunt u een in het systeem opgeslagen bestand naar een TFTP-server op een netwerk sturen.
Om de TFTP-clienttoepassing te gebruiken, geeft u de: bezigbox tftp opdracht:
bezigbox tftp
Om een voorbeeldbestand naar de TFTP-server te sturen, moet u een commando als dit gebruiken:
drukke doostftp-lvoorbeeld.bin-p 192.168.1.100
Hoewel de bovenstaande opdracht correct is, krijgt u een foutmelding tijdens het overbrengen van het bestand naar uw TFTP-server. Aangezien de geretourneerde foutmelding niet voor zich spreekt, is het moeilijk te begrijpen wat het echte probleem is.
Het probleem hier is vanwege enkele beveiligingsprocedures op de TFTP-server. TFTP vereist dat een bestand met dezelfde naam zich in de map bevindt waar het bestand wordt geschreven als voorwaarde voor het uploaden van een bestand en dat de schrijftoegang voor dit bestand beschikbaar moet zijn voor: iedereen.
Met andere woorden, het is niet mogelijk om via TFTP-clients een bestand te uploaden dat niet op de TFTP-server staat. Als u een leeg bestand met dezelfde naam maakt en de toegangsrechten bewerkt, zal het bovenstaande uploadproces succesvol zijn. Hiervoor moet u de volgende opdrachten uitvoeren in de relevante homedirectory van de TFTP-server:
CD /srv/tftp
aanrakenvoorbeeld.bin
chmod 666 voorbeeld.bin
Nu kunt u uw upload met succes uitvoeren.
Het is ook mogelijk om bovenstaande beveiligingsmaatregel uit te schakelen en de TFTP-server een bestand te laten maken dat niet bestaat. Hiervoor kunt u de -c of --creëren parameter bij het starten van de tftpd-hpa sollicitatie. Het is voldoende om deze parameter toe te voegen aan de bestaande TFTPD_OPTIONS variabele in de /etc/default/tftpd-hpa het dossier:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"
Waarom een TFTP-server gebruiken voor bestandsoverdracht?
Het belangrijkste voordeel van TFTP is dat het snel is en u tijd bespaart. Het is een ideale optie voor het overbrengen van configuratiebestanden van netwerkapparaten naar andere systemen. Bovendien heeft het zeer eenvoudige gebruikscriteria. Het functioneert comfortabel met software op zowel Windows- als Linux-gebaseerde besturingssystemen. Ten slotte is TFTP er altijd om de dag te redden in situaties waarin u FTP technisch niet kunt gebruiken.
Het grootste nadeel is natuurlijk dat het niet veilig is. Daarom moet u zeer voorzichtig zijn bij het overbrengen van bestanden met behulp van een TFTP-server.
Afgezien van bestandsoverdrachten, kunt u geen functies uitvoeren zoals het verwijderen, bewerken en wijzigen van bestanden met behulp van een TFTP-server. Deze functie is een groot nadeel voor degenen die geavanceerde systemen gebruiken of zoeken. Ten slotte vereist het geen authenticatie, wat een groot nadeel is als je serieus bent over je beveiliging.
TFTP instellen op andere besturingssystemen
Als u TFTP op Windows gaat gebruiken, hoeft u geen software van derden te installeren. U kunt TFTP inschakelen met de optie Windows-functies in- of uitschakelen in het configuratiescherm.