TFTP (Trivial File Transfer Protocol) ble først beskrevet i 1980. Det er en ganske gammel protokoll publisert i juni 1981 som TFTP Protocol revisjon 2 i RFC 783 (Request for Comments) av Karen R. Sollins.
I de tidlige dagene var hovedmålet med TFTP å sende og motta filer over et nettverk. Spesielt ble det brukt til å overføre filene som trengs under oppstart for å gjøre det mulig for systemer å starte opp over et nettverk.
Slik kan du sette opp en TFTP-server på en Linux-maskin.
Hva er TFTP?
TFTP brukes fortsatt til filoverføringsformål, og det er ingen grunnleggende endring i funksjonene den støtter. TFTP brukes til å laste ned og sende filer over UDP/IP. Den har ingen tilleggsfunksjoner som identitets- og autorisasjonskontroll, filoppføring, sletting eller endre navn, som vanligvis finnes i andre filoverføringsprotokoller.
I motsetning til de avanserte filoverføringsprotokollene som bruker TCP i overføringslaget, fungerer den på UDP-protokollen og har ikke funksjoner som å sjekke om pakkene som tilhører filen går til den andre side. På grunn av denne begrensningen er den mer egnet for bruk i lokale nettverk i stedet for internett eller wide area-nettverk.
Til tross for alle disse tilsynelatende negative funksjonene som er oppført ovenfor, er et aspekt av TFTP-protokollen som er veldig sterk dens enkelhet. Implementeringen av protokollen er ganske enkel sammenlignet med alternativene, selv for miljøer som ikke har et operativsystem på seg. På grunn av denne funksjonen har den et bredt bruksområde i innebygde systemer.
Installere en TFTP-server på Linux
Når du arbeider med innebygde enheter, er det viktig å ha TFTP-servertjenesten installert. På Linux-systemer kan flere TFTP-serverimplementeringer kjøres. Hvis du bruker en Debian-basert distribusjon, kan du installere tftpd-hpa, tftpd, eller atftpd pakker. Hvis du ikke er sikker på hvilken du skal velge, bør du vurdere å installere pakken tftpd-hpa.
sudo apt-få installer tftpd-hpa
Etter installasjonen vil TFTP-tjenesten begynne å lytte UDP-porten 69. For å levere filene til andre systemer via TFTP-serveren, må du huske på noen få forutsetninger:
- Kopiering av den nødvendige filen til TFTP-hjemmekatalogen eller en katalog under den hjemmekatalogen
- Gjøre filtillatelser synlige for allmennheten
For å finne ut hva TFTP-serverens hjemmekatalog er, kan du se på TFTP_DIRECTORY variabel i /etc/default/tftpd-hpa fil. Vanligvis vil du se kataloger som /var/lib/tftpboot eller /srv/tftp. Hvis du vil, kan du endre denne katalogen og starte tjenesten på nytt.
katt /etc/misligholde/tftpd-hpa
For enkelhets skyld, hvis du endrer eieren av den relevante TFTP-hjemmekatalogen til brukerkontoen din, trenger du ikke legge til sudo-prefikset til hver kommando du kjører. Bruk chown-kommandoen for å endre eierskapet fra root til gjeldende bruker:
sudo chown -R $USER /srv/tftp
TFTP-serverens pakkenavn og standard hjemmekataloger kan variere avhengig av Linux-distribusjonen som brukes.
Sende filer med TFTP-serveren
Noen ganger er det situasjoner der TFTP er det eneste alternativet for å flytte en fil fra din innebygd Linux-system til det ytre miljø. For eksempel kan det hende at systemet ikke støtter noen skrivbare medier som du kan bruke til å overføre filen.
I slike tilfeller, siden TFTP-klienten sannsynligvis vil bli kompilert inn busybox, kan du sende en fil som er lagret i systemet til en TFTP-server på et nettverk.
For å bruke TFTP-klientapplikasjonen, utsted busybox tftp kommando:
busybox tftp
For å sende en eksempelfil til TFTP-serveren, må du bruke en kommando som denne:
busyboxtftp-leksempel.bin-s 192.168.1.100
Selv om kommandoen ovenfor er riktig, vil du få en feilmelding når du overfører filen til TFTP-serveren. Siden feilmeldingen som returneres ikke er selvforklarende, er det vanskelig å forstå hva det egentlige problemet er.
Problemet her er på grunn av noen sikkerhetsprosedyrer på TFTP-serveren. TFTP krever at en fil med samme navn skal være i katalogen der filen skal skrives som en forutsetning for en filopplasting og at skrivetilgangen for denne filen skal være tilgjengelig for alle.
Det er med andre ord ikke mulig å laste opp en fil som ikke finnes på TFTP-serveren via TFTP-klienter. Hvis du oppretter en tom fil med samme navn og redigerer dens tilgangsrettigheter, vil opplastingsprosessen ovenfor være vellykket. For dette må du kjøre følgende kommandoer i den relevante TFTP-serverens hjemmekatalog:
cd /srv/tftp
ta påeksempel.bin
chmod 666 eksempel.bin
Nå kan du utføre opplastingen vellykket.
Det er også mulig å deaktivere sikkerhetstiltaket ovenfor og få TFTP-serveren til å opprette en fil som ikke eksisterer. For dette kan du bruke -c eller --skape parameter når du starter tftpd-hpa applikasjon. Det er tilstrekkelig å legge denne parameteren 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 --skape"
Hvorfor bruke en TFTP-server for filoverføring?
Den viktigste fordelen med TFTP er at den er rask, og hjelper deg å spare tid. Det er et ideelt alternativ for å overføre konfigurasjonsfiler for nettverksenheter til andre systemer. Dessuten har den veldig enkle brukskriterier. Den fungerer komfortabelt med programvare på både Windows- og Linux-baserte operativsystemer. Endelig er TFTP alltid der for å redde dagen i situasjoner der du teknisk sett ikke kan bruke FTP.
Den største ulempen er selvfølgelig at det ikke er trygt. Derfor må du være veldig forsiktig når du overfører filer ved hjelp av en TFTP-server.
Bortsett fra filoverføringer, kan du ikke utføre funksjoner som filsletting, redigering og modifikasjon ved hjelp av en TFTP-server. Denne funksjonen er en stor ulempe for de som bruker eller søker avanserte systemer. Til slutt krever det ikke autentisering, noe som er en stor ulempe hvis du er seriøs med sikkerheten din.
Sette opp TFTP på andre operativsystemer
Hvis du skal bruke TFTP på Windows, trenger du ikke installere tredjepartsprogramvare. Du kan aktivere TFTP med alternativet Slå Windows-funksjoner på eller av i kontrollpanelet.