Cum se configurează un server TFTP pe un server Ubuntu cu tftpd-hpa

Instalați serverul tftpd-hpa și clientul tftp-hpa din Ubuntu . Această configurare servește fișiere dintr- /srv/tftpun director separat și păstrează încărcările într-un astfel de director. Verificați lista de pachete a serverului și a pachetelor clientului Ubuntu .

Securitate: TFTP nu are login sau criptare. Restricționează accesul la o rețea locală de încredere; clienții accesibili pot citi fișierele disponibile și pot încărca acolo unde permisiunile permit. Nu transferă secrete. Specificația TFTP descrie limitele sale de securitate.

Configurați serverul TFTP

1. Instalați serverul și clientul

Reîmprospătați metadatele APT, apoi instalați ambele pachete:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Terminalul serverului Ubuntu afișează comanda pentru instalarea tftpd-hpa și tftp-hpa
Instalați pachetele server și client.

2. Configurați rădăcina TFTP

Editați fișierul de configurare a pachetului:

sudo nano /etc/default/tftpd-hpa

Setați aceste valori:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--securelimitează daemonul la rădăcina configurată, --createpermite încărcările și --umask 027limitează fișierele noi încărcate la modul 0640. Manualul Ubuntu tftpd documentează aceste opțiuni. Salvați cu Ctrl+O, apăsați Enter, apoi Ctrl+X.

Deoarece --secureface ca /srv/tftprădăcina să fie vizibilă clientului, numele fișierelor sunt relative la aceasta: utilizați hello.txt, nu /srv/tftp/hello.txt. Clienții TFTP nu răsfoiesc directoarele, așadar păstrați o listă cu numele fișierelor publicate și căile acestora.

Editorul de terminal afișează configurarea tftpd-hpa cu root-ul /srv/tftp, modul securizat, încărcările și umask 027
Limitează fișierele și setează masca de încărcare.

3. Creați directorul rădăcină și directorul de încărcare

Păstrați directorul principal root deținut de root și acordați acces de scriere doar la folderul de încărcare:

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

Daemonul poate citi rădăcina, dar numai tftpcontul poate scrie în ea /srv/tftp/upload. Evitați să faceți întregul arbore permis de scriere de către întreaga lume cu permisiuni precum 777.

Fișierele din rădăcina publică ar trebui tratate ca fiind lizibile de către fiecare client permis. Păstrați arborele respectiv limitat la imagini de boot, firmware sau alte materiale destinate rețelei respective. Pentru transferuri private, alegeți un protocol cu ​​autentificare și criptare.

Terminal Ubuntu creează /srv/tftp/upload cu utilizatorul, grupul și modul tftp 0750
Doar subdirectorul de încărcare este permis să se scrie.

4. Adăugați un fișier pentru a fi servit

Creați un fișier cunoscut în rădăcină. Verificările implicite de citire ale TFTP necesită ca fișierele servite să fie lizibile public, așadar setați modul 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Terminalul serverului Ubuntu scrie fișierul hello.txt în /srv/tftp și setează permisiunile fișierului la 0644
Creați un fișier cunoscut pentru testul de descărcare.

5. Activați și reporniți serviciul

Activați unitatea la pornire, reporniți-o pentru a aplica setările și verificați starea acesteia:

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

Dacă pornirea eșuează, verificați jurnalul de service cu sudo journalctl -u tftpd-hpa -b --no-pager.

Comenzi de terminal Ubuntu Server pentru activarea, repornirea și inspectarea serviciului tftpd-hpa
Reporniți serviciul după modificarea setărilor acestuia.

6. Limitați accesul la firewall

Dacă UFW este activat, permiteți solicitarea inițială doar din subrețeaua clientului. Înlocuiți rețeaua exemplu cu intervalul LAN de încredere:

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

Consultați ghidul UFW al Ubuntu pentru regulile rețelei sursă. TFTP pornește pe portul UDP 69, apoi utilizează un port UDP selectat de server pentru datele fișierelor, așa cum este descris în specificația protocolului . Un firewall, un router sau un dispozitiv NAT strict poate permite solicitarea, dar poate bloca transferul. Dacă timpul de așteptare pentru clienți expiră, utilizați urmărirea conexiunilor compatibile cu TFTP sau o politică de firewall adecvată; nu deschideți fiecare port UDP și nu expuneți TFTP la internet. Această comandă adaugă o regulă; nu activează UFW. Dacă administrați serverul prin SSH și intenționați să activați un firewall inactiv, permiteți mai întâi SSH pentru a păstra accesul la distanță.

Comanda UFW care permite doar portul UDP 69 din exemplul de subrețea 192.168.1.0/24
Permiteți solicitări inițiale de la o subrețea de încredere.

Testează descărcările și încărcările

7. Descărcați de pe un client Ubuntu

Pe server, rulați ip -brief addressși notați adresa LAN accesibilă. Pe un client Ubuntu, instalați clientul dacă este necesar. Înlocuiți 192.0.2.10mai jos cu adresa reală a serverului:

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

Fișierul este salvat în directorul curent al clientului. Documentele manuale ale clientului tftpbinary Ubuntu și get. Modul binar este recomandat pentru firmware, imagini de boot și fișiere ai căror octeți trebuie să rămână neschimbați. Numele de fișiere Linux sunt sensibile la majuscule/minuscule, așa că introduceți exact fiecare nume de la distanță.

Terminalul client TFTP se conectează la serverul exemplu și descarcă hello.txt în mod binar
Solicitați fișierul cunoscut în mod binar.

8. Încărcați în folderul restricționat

Pe client, creați un fișier de test, apoi trimiteți-l către o cale din directorul de încărcare al serverului:

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

Folosește adresa reală a serverului. Calea la distanță este relativă la /srv/tftp; verifică încărcarea pe server cu sudo ls -l /srv/tftp/upload/. Clienții TFTP folosesc nume de fișiere cunoscute în loc să răsfoiască o listă de directoare.

Terminalul client TFTP trimite fișierul upload-check.txt către upload/upload-check.txt în mod binar
Încărcările rămân în subdirectorul în care se poate scrie.

Depanarea erorilor frecvente

  • Fișier negăsit: Verificați numele fișierului relativ la /srv/tftpși confirmați că există.
  • Încălcare de acces: Faceți fișierele servite accesibile publicului; pentru încărcări, verificați tftpproprietatea destinației și confirmați --createcă este setată.
  • Expirare: Confirmați că clientul folosește adresa accesibilă a serverului, serviciul este activ și firewall-ul permite fluxul de date UDP negociat.

Pentru a izola o problemă de rețea, testați mai întâi de la un client din aceeași rețea locală. Dacă funcționează, dar un client rutat expiră, verificați dacă routerul sau firewall-ul gestionează portul de date negociat cu funcție TFTP.

Pentru un serviciu doar pentru citire, eliminați --createdin TFTP_OPTIONSși reporniți tftpd-hpa.

Lasă un comentariu

Cum se configurează Proton Mail Bridge pe Linux cu Thunderbird

Cum se configurează Proton Mail Bridge pe Linux cu Thunderbird

Instalați Proton Mail Bridge pe Linux, conectați-vă contul plătit de Proton Mail și configurați Thunderbird cu setările corecte pentru IMAP, SMTP și certificat.

Cum să-ți faci profilul de e-mail Thunderbird portabil pe Linux

Cum să-ți faci profilul de e-mail Thunderbird portabil pe Linux

Faceți un profil de e-mail Thunderbird portabil pe Linux prin copierea profilului complet pe USB, lansarea acestuia prin cale și evitarea greșelilor comune de pierdere a datelor.

Cum să joci GTA 5 pe Linux cu Steam și Proton

Cum să joci GTA 5 pe Linux cu Steam și Proton

Instalează GTA 5 pe Linux prin Steam, activează Proton, alege o versiune compatibilă și află de ce diferă Modul Poveste și GTA Online.

4 Cele mai bune emulatoare Android pentru Linux: Care se potrivește configurației tale?

4 Cele mai bune emulatoare Android pentru Linux: Care se potrivește configurației tale?

Compară Waydroid, Android Studio Emulator, Genymotion și redroid pentru a găsi opțiunea Linux potrivită pentru aplicații desktop, dezvoltare Android, QA sau testarea containerelor.

5 browsere ușoare pentru Raspberry Pi, de la minimalist la modern

5 browsere ușoare pentru Raspberry Pi, de la minimalist la modern

Comparați cinci browsere ușoare pentru Raspberry Pi, inclusiv NetSurf, Dillo, Links2, Lynx și GNOME Web, cu comenzile actuale de instalare APT și compromisurile.

Cum se rulează sistemul de operare Chromium pe un Raspberry Pi 4, Pi 400 sau Pi 5

Cum se rulează sistemul de operare Chromium pe un Raspberry Pi 4, Pi 400 sau Pi 5

Instalați versiunea Chromium OS a echipei FydeOS pe un Raspberry Pi 4B, Pi 400 sau Pi 5. Alegeți imaginea potrivită, instalați-o și înțelegeți-i limitele.

Cum să organizezi emisiuni TV și filme pe Linux cu tinyMediaManager

Cum să organizezi emisiuni TV și filme pe Linux cu tinyMediaManager

Scanați folderele media Linux, potriviți filmele și episoadele TV cu metadatele și previzualizați redenumirile fișierelor cu tinyMediaManager v5 înainte de a modifica biblioteca.

Cum se configurează managerul de ferestre Fluxbox pe Linux

Cum se configurează managerul de ferestre Fluxbox pe Linux

Instalează Fluxbox din distribuția ta Linux, alege sesiunea X11, lansează aplicații, personalizează stilurile și setează o imagine de fundal cu fbsetbg.

Cum se utilizează e-mailul Outlook pe Linux într-un browser

Cum se utilizează e-mailul Outlook pe Linux într-un browser

Folosește e-mailul Outlook pe Linux cu Firefox sau Chrome. Conectează-te la contul Microsoft corect, gestionează mesajele online și, opțional, adaugă Outlook ca aplicație Chrome.

Cum să joci The Witcher 3: Wild Hunt pe Linux cu Proton

Cum să joci The Witcher 3: Wild Hunt pe Linux cu Proton

Configurează The Witcher 3 pe Linux cu Steam Proton sau o copie GOG în Heroic, cu îndrumări actuale pentru problemele de compatibilitate cu Remastered.