Acasă
» LINUX
»
Cum se configurează un server TFTP pe un server Ubuntu cu tftpd-hpa
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:
--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.
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:
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.
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
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:
Dacă pornirea eșuează, verificați jurnalul de service cu sudo journalctl -u tftpd-hpa -b --no-pager.
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ță.
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:
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ță.
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:
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.
Î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.