TFTP (Trvial File Transfer Protocol) byl poprvé popsán v roce 1980. Je to poměrně starý protokol publikovaný v červnu 1981 jako TFTP Protocol revize 2 v RFC 783 (Request For Comments) od Karen R. Sollins.
V prvních dnech bylo hlavním cílem TFTP odesílat a přijímat soubory přes síť. Konkrétně se používal k přenosu souborů potřebných během spouštění, aby bylo možné zavést systémy přes síť.
Zde je návod, jak můžete nastavit server TFTP na počítači se systémem Linux.
Co je TFTP?
TFTP se stále používá pro účely přenosu souborů a nedochází k žádné zásadní změně ve funkcích, které podporuje. TFTP se používá ke stahování a odesílání souborů přes UDP/IP. Nemá žádné další funkce, jako je kontrola identity a oprávnění, výpis souborů, mazání nebo přejmenování, které se obvykle nacházejí v jiných protokolech pro přenos souborů.
Na rozdíl od pokročilých protokolů pro přenos souborů, které používají TCP v přenosové vrstvě, pracuje na protokolu UDP a nemá funkce, jako je kontrola, zda pakety patřící do souboru směřují do druhého postranní. Kvůli tomuto omezení je vhodnější pro použití v lokálních sítích než v internetu nebo v rozlehlých sítích.
Přes všechny tyto zdánlivě negativní vlastnosti uvedené výše je jedním z velmi silných aspektů protokolu TFTP jeho jednoduchost. Implementace protokolu je ve srovnání s jeho alternativami poměrně snadná, a to i pro prostředí, která na sobě nemají operační systém. Díky této vlastnosti má širokou oblast použití ve vestavěných systémech.
Instalace serveru TFTP v systému Linux
Při práci s vestavěnými zařízeními je důležité mít nainstalovanou službu serveru TFTP. Na systémech Linux lze spustit několik implementací serveru TFTP. Pokud používáte a Distribuce založená na Debianu, můžete nainstalovat tftpd-hpa, tftpdnebo atftpd balíčky. Pokud si nejste jisti, který z nich vybrat, zvažte instalaci balíčku tftpd-hpa.
sudo apt-dostat nainstalovat tftpd-hpa
Po instalaci začne služba TFTP naslouchat port UDP 69. Chcete-li soubory poskytovat jiným systémům prostřednictvím serveru TFTP, musíte mít na paměti několik předpokladů:
- Zkopírujte požadovaný soubor do domovského adresáře TFTP nebo adresáře pod tímto domovským adresářem
- Zpřístupnění oprávnění souboru veřejnosti
Chcete-li zjistit, jaký je domovský adresář serveru TFTP, můžete se podívat na TFTP_DIRECTORY proměnná v /etc/default/tftpd-hpa soubor. Obvykle uvidíte adresáře jako /var/lib/tftpboot nebo /srv/tftp. Pokud chcete, můžete změnit tento adresář a restartovat službu.
kočka /atd/výchozí/tftpd-hpa
Pro usnadnění použití, pokud změníte vlastníka příslušného domovského adresáře TFTP na svůj uživatelský účet, nebudete muset přidávat předponu sudo ke každému příkazu, který spustíte. Pomocí příkazu chown změňte vlastnictví z root na aktuálního uživatele:
sudo chown -R $USER /srv/tftp
Názvy balíčků serveru TFTP a výchozí domovské adresáře se mohou lišit v závislosti na použité distribuci Linuxu.
Odesílání souborů pomocí serveru TFTP
Někdy nastanou situace, kdy je TFTP jedinou možností, jak přesunout soubor z vašeho počítače vestavěný systém Linux do vnějšího prostředí. Někdy systém například nemusí podporovat žádná zapisovatelná média, pomocí kterých můžete soubor přenést.
V takových případech, protože klient TFTP bude pravděpodobně zkompilován busybox, můžete odeslat soubor uložený v systému na server TFTP v síti.
Chcete-li použít klientskou aplikaci TFTP, zadejte soubor busybox tftp příkaz:
busybox tftp
Chcete-li odeslat ukázkový soubor na server TFTP, musíte použít příkaz, jako je tento:
busyboxtftp-lpříklad.zásobník-p 192.168.1.100
Přestože je výše uvedený příkaz správný, při přenosu souboru na váš TFTP server se zobrazí chyba. Protože vrácená chybová zpráva není samozřejmá, je obtížné pochopit skutečný problém.
Problém je způsoben některými bezpečnostními procedurami na serveru TFTP. TFTP vyžaduje, aby soubor se stejným názvem byl v adresáři, kam bude soubor zapsán jako předpoklad pro nahrání souboru a že by měl být k dispozici přístup pro zápis tohoto souboru každý.
Jinými slovy, není možné nahrát soubor, který neexistuje na serveru TFTP prostřednictvím klientů TFTP. Pokud vytvoříte prázdný soubor se stejným názvem a upravíte jeho přístupová práva, výše uvedený proces nahrání bude úspěšný. K tomu musíte v příslušném domovském adresáři serveru TFTP spustit následující příkazy:
CD /srv/tftp
dotekpříklad.zásobník
chmod 666 příklad.zásobník
Nyní můžete úspěšně provést nahrání.
Je také možné zakázat výše uvedené bezpečnostní opatření a nechat TFTP server vytvořit soubor, který neexistuje. K tomu můžete použít -C nebo --vytvořit parametr při spuštění tftpd-hpa aplikace. Tento parametr stačí přidat k existujícímu TFTPD_OPTIONS proměnná v /etc/default/tftpd-hpa soubor:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"
Proč používat TFTP server pro přenos souborů?
Nejdůležitější výhodou TFTP je, že je rychlý a pomáhá vám šetřit čas. Je to ideální možnost pro přenos konfiguračních souborů síťových zařízení do jiných systémů. Navíc má velmi jednoduchá kritéria použití. Funguje pohodlně se softwarem na operačních systémech Windows i Linux. A konečně, TFTP je vždy k dispozici, aby zachránil den v situacích, kdy nelze technicky použít FTP.
Největší nevýhodou je samozřejmě to, že to není bezpečné. Proto musíte být při přenosu souborů pomocí serveru TFTP velmi opatrní.
Kromě přenosu souborů nemůžete provádět funkce, jako je mazání, úpravy a úpravy souborů pomocí serveru TFTP. Tato funkce je hlavní nevýhodou pro ty, kteří používají nebo hledají pokročilé systémy. Konečně nevyžaduje autentizaci, což je velká nevýhoda, pokud to se svou bezpečností myslíte vážně.
Nastavení TFTP na jiných operačních systémech
Pokud se chystáte používat TFTP v systému Windows, nemusíte instalovat žádný software třetích stran. TFTP můžete povolit pomocí možnosti Zapnout nebo vypnout funkce systému Windows v ovládacím panelu.