TFTP (Trivial File Transfer Protocol) blev først beskrevet i 1980. Det er en ret gammel protokol udgivet i juni 1981 som TFTP Protocol revision 2 i RFC 783 (Request For Comments) af Karen R. Sollins.
I de tidlige dage var hovedmålet med TFTP at sende og modtage filer over et netværk. Det blev især brugt til at overføre de nødvendige filer under opstart for at gøre det muligt for systemer at starte over et netværk.
Sådan kan du konfigurere en TFTP-server på en Linux-maskine.
Hvad er TFTP?
TFTP bruges stadig til filoverførselsformål, og der er ingen grundlæggende ændring i de funktioner, den understøtter. TFTP bruges til at downloade og sende filer over UDP/IP. Den har ingen yderligere funktioner såsom identitets- og autorisationskontrol, filliste, sletning eller omdøbning, som normalt findes i andre filoverførselsprotokoller.
I modsætning til de avancerede filoverførselsprotokoller, der bruger TCP i transmissionslaget, fungerer det på UDP-protokollen og har ikke funktioner såsom at kontrollere, om pakkerne, der hører til filen, går til den anden side. På grund af denne begrænsning er den mere velegnet til brug i lokale netværk frem for internettet eller wide area-netværk.
På trods af alle disse tilsyneladende negative funktioner anført ovenfor, er et aspekt af TFTP-protokollen, der er meget stærk, dens enkelhed. Implementeringen af protokollen er ret let sammenlignet med dens alternativer, selv for miljøer, der ikke har et operativsystem på dem. På grund af denne funktion har den et bredt anvendelsesområde i indlejrede systemer.
Installation af en TFTP-server på Linux
Når du arbejder med indlejrede enheder, er det vigtigt at have TFTP-servertjenesten installeret. På Linux-systemer kan flere TFTP-serverimplementeringer køre. Hvis du bruger en Debian-baseret distribution, kan du installere tftpd-hpa, tftpd, eller atftpd pakker. Hvis du ikke er sikker på, hvilken du skal vælge, kan du overveje at installere pakken tftpd-hpa.
sudo apt-få installer tftpd-hpa
Efter installationen begynder TFTP-tjenesten at lytte videre UDP-porten 69. For at sende filerne til andre systemer via TFTP-serveren skal du huske på nogle få forudsætninger:
- Kopiering af den påkrævede fil til TFTP-hjemmemappen eller en mappe under den hjemmemappe
- Gøre filtilladelser synlige for offentligheden
For at finde ud af, hvad TFTP-serverens hjemmemappe er, kan du se på TFTP_DIRECTORY variabel i /etc/default/tftpd-hpa fil. Normalt vil du se mapper som /var/lib/tftpboot eller /srv/tftp. Hvis du vil, kan du ændre denne mappe og genstarte tjenesten.
kat /etc/Standard/tftpd-hpa
For at lette brugen, hvis du ændrer ejeren af den relevante TFTP-hjemmemappe til din brugerkonto, behøver du ikke tilføje sudo-præfikset til hver kommando, du kører. Brug chown-kommandoen til at ændre ejerskabet fra root til den nuværende bruger:
sudo chown -R $USER /srv/tftp
TFTP-serverens pakkenavne og standard hjemmemapper kan variere afhængigt af den anvendte Linux-distribution.
Afsendelse af filer med TFTP-serveren
Nogle gange er der situationer, hvor TFTP er den eneste mulighed for at flytte en fil fra din indlejret Linux-system til det ydre miljø. Nogle gange understøtter systemet f.eks. muligvis ikke nogen skrivbare medier, som du kan bruge til at overføre filen.
I sådanne tilfælde, da TFTP-klienten sandsynligvis vil blive kompileret i busybox, kan du sende en fil gemt i systemet til en TFTP-server på et netværk.
For at bruge TFTP-klientapplikationen skal du udstede busybox tftp kommando:
busybox tftp
For at sende en eksempelfil til TFTP-serveren skal du bruge en kommando som denne:
busyboxtftp-leksempel.beholder-s 192.168.1.100
Selvom ovenstående kommando er korrekt, vil du få en fejl, mens du overfører filen til din TFTP-server. Da den returnerede fejlmeddelelse ikke er selvforklarende, er det svært at forstå, hvad det egentlige problem er.
Problemet her er på grund af nogle sikkerhedsprocedurer på TFTP-serveren. TFTP kræver, at en fil med samme navn skal være i den mappe, hvor filen skal skrives som en forudsætning for en filupload og at skriveadgangen til denne fil skal være tilgængelig for alle sammen.
Det er med andre ord ikke muligt at uploade en fil, der ikke findes på TFTP-serveren, via TFTP-klienter. Hvis du opretter en tom fil med samme navn og redigerer dens adgangsrettigheder, vil ovenstående uploadproces være vellykket. Til dette skal du køre følgende kommandoer i den relevante TFTP-serverhjemmemappe:
cd /srv/tftp
røre vedeksempel.beholder
chmod 666 eksempel.beholder
Nu kan du udføre din upload med succes.
Det er også muligt at deaktivere ovenstående sikkerhedsforanstaltning og få TFTP-serveren til at oprette en fil, der ikke eksisterer. Til dette kan du bruge -c eller --skab parameter, når du starter tftpd-hpa Ansøgning. Det er tilstrækkeligt at tilføje denne parameter til den eksisterende TFTPD_OPTIONS variabel i /etc/default/tftpd-hpa fil:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADRESSE="0.0.0.0:69"
TFTP_OPTIONS="--sikker --opret"
Hvorfor bruge en TFTP-server til filoverførsel?
Den vigtigste fordel ved TFTP er, at den er hurtig og hjælper dig med at spare tid. Det er en ideel mulighed for at overføre konfigurationsfiler af netværksenheder til andre systemer. Desuden har den meget enkle brugskriterier. Det fungerer komfortabelt med software på både Windows- og Linux-baserede operativsystemer. Endelig er TFTP der altid for at redde dagen i situationer, hvor du teknisk set ikke kan bruge FTP.
Den største ulempe er selvfølgelig, at det ikke er sikkert. Derfor skal du være meget forsigtig, mens du overfører filer ved hjælp af en TFTP-server.
Bortset fra filoverførsler kan du ikke udføre funktioner såsom filsletning, redigering og ændring ved hjælp af en TFTP-server. Denne funktion er en stor ulempe for dem, der bruger eller søger avancerede systemer. Endelig kræver det ikke godkendelse, hvilket er en stor ulempe, hvis du er seriøs omkring din sikkerhed.
Opsætning af TFTP på andre operativsystemer
Hvis du skal bruge TFTP på Windows, behøver du ikke installere nogen tredjepartssoftware. Du kan aktivere TFTP med indstillingen Slå Windows-funktioner til eller fra i kontrolpanelet.