TFTP (Trivial File Transfer Protocol) je prvi put opisan 1980. To je prilično stari protokol objavljen u lipnju 1981. kao TFTP protokol revizija 2 u RFC 783 (Zahtjev za komentare) Karen R. Sollins.

U ranim danima, glavni cilj TFTP-a bio je slanje i primanje datoteka preko mreže. Konkretno, korišten je za prijenos datoteka potrebnih tijekom pokretanja sustava kako bi se omogućilo pokretanje sustava preko mreže.

Evo kako možete postaviti TFTP poslužitelj na Linux stroju.

Što je TFTP?

TFTP se i dalje koristi za prijenos datoteka i nema značajnih promjena u značajkama koje podržava. TFTP se koristi za preuzimanje i slanje datoteka preko UDP/IP. Nema dodatnih funkcija kao što su kontrola identiteta i autorizacije, popis datoteka, brisanje ili preimenovanje, koje se obično nalaze u drugim protokolima za prijenos datoteka.

Za razliku od naprednih protokola za prijenos datoteka koji koriste TCP u prijenosnom sloju, radi na UDP protokolu i nema značajke kao što je provjera idu li paketi koji pripadaju datoteci drugoj strana. Zbog ovog ograničenja prikladniji je za korištenje u lokalnim mrežama nego na internetu ili mrežama šireg područja.

Unatoč svim ovim gore navedenim naizgled negativnim značajkama, jedan aspekt TFTP protokola koji je vrlo jak je njegova jednostavnost. Implementacija protokola prilično je jednostavna u usporedbi s njegovim alternativama, čak i za okruženja koja na sebi nemaju operativni sustav. Zbog ove značajke ima široko područje uporabe u ugrađenim sustavima.

Instaliranje TFTP poslužitelja na Linux

Kada radite s ugrađenim uređajima, važno je imati instaliranu uslugu TFTP poslužitelja. Na Linux sustavima može raditi nekoliko implementacija TFTP poslužitelja. Ako koristite a Distribucija temeljena na Debianu, možete instalirati tftpd-hpa, tftpd, ili atftpd paketi. Ako niste sigurni koji odabrati, razmislite o instaliranju paketa tftpd-hpa.

sudo apt-dobiti instalirajte tftpd-hpa

Nakon instalacije, TFTP usluga će početi slušati UDP port 69. Za posluživanje datoteka drugim sustavima putem TFTP poslužitelja morate imati na umu nekoliko preduvjeta:

  • Kopiranje potrebne datoteke u TFTP matični direktorij ili direktorij ispod tog matičnog direktorija
  • Učiniti dozvole za datoteke vidljivima javnosti

Kako biste saznali što je početni direktorij TFTP poslužitelja, možete pogledati TFTP_DIRECTORY varijabla u /etc/default/tftpd-hpa datoteka. Obično ćete vidjeti imenike poput /var/lib/tftpboot ili /srv/tftp. Ako želite, možete promijeniti ovaj direktorij i ponovno pokrenuti uslugu.

mačka /itd/zadano/tftpd-hpa

Radi lakšeg korištenja, ako promijenite vlasnika relevantnog TFTP matičnog imenika u svoj korisnički račun, nećete morati dodati sudo prefiks svakoj naredbi koju pokrenete. Upotrijebite naredbu chown za promjenu vlasništva s root na trenutnog korisnika:

sudo chown -R $KORISNIK /srv/tftp

Nazivi paketa TFTP poslužitelja i zadani početni direktoriji mogu se razlikovati ovisno o distribuciji Linuxa koja se koristi.

Slanje datoteka pomoću TFTP poslužitelja

Ponekad postoje situacije u kojima je TFTP jedina opcija za premještanje datoteke s vašeg ugrađeni Linux sustav na vanjsko okruženje. Na primjer, ponekad sustav možda ne podržava nijedan medij za pisanje pomoću kojeg možete prenijeti datoteku.

U takvim slučajevima, budući da će TFTP klijent vjerojatno biti kompajliran busybox, možete poslati datoteku spremljenu u sustavu na TFTP poslužitelj na mreži.

Za korištenje TFTP klijentske aplikacije izdajte busybox tftp naredba:

busybox tftp 

Da biste poslali uzorak datoteke na TFTP poslužitelj, morate upotrijebiti naredbu poput ove:

busyboxtftp-lprimjer.bin-str 192.168.1.100

Iako je gornja naredba točna, dobit ćete pogrešku tijekom prijenosa datoteke na vaš TFTP poslužitelj. Budući da vraćena poruka o pogrešci nije sama po sebi razumljiva, teško je razumjeti u čemu je pravi problem.

Problem je ovdje zbog nekih sigurnosnih procedura na TFTP poslužitelju. TFTP zahtijeva da se datoteka s istim nazivom nalazi u direktoriju u koji će datoteka biti zapisana kao preduvjet za učitavanje datoteke i da pristup za pisanje za ovu datoteku treba biti dostupan svatko.

Drugim riječima, nije moguće učitati datoteku koja ne postoji na TFTP poslužitelju putem TFTP klijenata. Ako stvorite praznu datoteku s istim nazivom i uredite njezina prava pristupa, gore navedeni postupak prijenosa bit će uspješan. Za ovo morate pokrenuti sljedeće naredbe u matičnom direktoriju odgovarajućeg TFTP poslužitelja:

CD /srv/tftp 
dodirprimjer.bin
chmod 666 primjer.bin

Sada možete uspješno izvršiti prijenos.

Također je moguće onemogućiti gornju sigurnosnu mjeru i zamoliti TFTP poslužitelj da stvori datoteku koja ne postoji. Za ovo možete koristiti -c ili --stvoriti parametar prilikom pokretanja tftpd-hpa primjena. Dovoljno je dodati ovaj parametar postojećem TFTPD_OPCIJE varijabla u /etc/default/tftpd-hpa datoteka:

# /etc/default/tftpd-hpa 
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADRESA="0.0.0.0:69"
TFTP_OPTIONS="--sigurno --stvarati"

Zašto koristiti TFTP poslužitelj za prijenos datoteka?

Najvažnija prednost TFTP-a je to što je brz i pomaže vam uštedjeti vrijeme. To je idealna opcija za prijenos konfiguracijskih datoteka mrežnih uređaja na druge sustave. Štoviše, ima vrlo jednostavne kriterije korištenja. Udobno funkcionira sa softverom na Windows i Linux operativnim sustavima. Konačno, TFTP je uvijek tu da spasi dan u situacijama kada tehnički ne možete koristiti FTP.

Najveći nedostatak je, naravno, to što nije siguran. Stoga morate biti vrlo oprezni prilikom prijenosa datoteka pomoću TFTP poslužitelja.

Osim prijenosa datoteka, ne možete izvršavati funkcije kao što su brisanje, uređivanje i izmjena datoteka pomoću TFTP poslužitelja. Ova značajka je veliki nedostatak za one koji koriste ili traže napredne sustave. Naposljetku, ne zahtijeva autentifikaciju, što je veliki nedostatak ako ozbiljno razmišljate o svojoj sigurnosti.

Postavljanje TFTP-a na drugim operativnim sustavima

Ako namjeravate koristiti TFTP u sustavu Windows, ne morate instalirati softver treće strane. TFTP možete omogućiti pomoću opcije Uključivanje ili isključivanje Windows značajki na upravljačkoj ploči.