Motorul de căutare search.msn.com în decurs de 5 ani a trimis utilizatori la această pagină (care nu există timp de 5 ani!). Din moment ce vor atât de mult, va trebui să scrie;)
Se utilizează pentru a descărca o configurație sau un firmware pentru diferite dispozitive (de exemplu, imprimante de rețea sau routere) în combinație cu protocolul bootp (DHCP) și ARP. RARP.
Se utilizează protocolul UDP, portul standard pentru inițializarea conexiunilor este 69, porturile cu număr aleator pe ambele părți sunt selectate pentru a transfera fișierul. Spectacolul începe cu trimiterea unei cereri de citire sau scriere un fișier, apoi trimis în blocuri de 512 bytes a fișierului (la care se adaugă antet TFTP, UDP, IP și stratul de legătură de date), este transmisă o confirmare la primirea blocului următor. Trimiterea unui bloc cu lungime mai mică de 512 octeți semnalează sfârșitul fișierului. Dacă blocul este pierdut pe drum, partea care primește recepția repetă transmisia blocului sau confirmarea după ce timpul de așteptare a trecut. În cazul unei erori (nu există nici un astfel de fișier, nici un drept de acces, de pachete incorecte, pierderea accesului la resursa), oricare dintre părți trimite un mesaj de eroare și ieșirile fără a aștepta o confirmare. Verificarea transmiterii datelor este încredințată calculului sumelor de control UDP.
Fiecare pachet conține un antet TFTP format dintr-un cod de pachet de doi octeți:- cererea de citire (pachetul conține numele fișierului terminând cu zero și modul de transfer este netascii sau octet)
- o cerere de scriere (pachetul conține numele fișierului terminând cu zero, iar modul de transfer este netascii sau octet)
- date (conține un număr de bloc de două octeți, deci dimensiunea fișierului nu poate depăși 32 MB, lungimea datelor reale este de la 0 la 512 octeți)
- confirmare (conține un număr bloc de două octeți)
- eroare (conține un cod de eroare de două octeți și un șir de mesaje care se termină cu zero)
- 0 - Nu este definită, vedeți mesajul de eroare (dacă există).
- 1 - Fișierul nu a fost găsit.
- 2 - Încălcarea accesului.
- 3 - Discul total sau alocarea au fost depășite.
- 4 - Operațiune ilegală TFTP.
- 5 - ID de transfer necunoscut.
- 6 - Fișierul există deja.
- 7 - Nu există un astfel de utilizator.
Mai multe adăugiri recente ale protocolului (RFC 2347, RFC 2348, RFC 2349) permite unele coordonate opțiunea de partajare (dimensiunea blocului - blksize 8 la 65,464 bytes interval de temporizare - timeout de la 1 la 255 secunde, dimensiunea fișierului - tsize). Numele de opțiuni și valorile acestora sunt transmise în pachetul de cerere de citire sau scriere. Serverul răspunde cu un pachet de confirmare a opțiunii în locul pachetului obișnuit de confirmare, în care indică opțiunile cu care este de acord.
În cazul în care rețeaua MTU nu este suficientă pentru a transmite blocurile de date (împreună cu antetul TFTP, UDP, IP) „într-o singură bucată“, punerea în aplicare stiva TCP / IP ar trebui să fie capabil să fragmenteze pachete IP / Defragment.
Daemonul in.tftpd pe Solaris 2.5 este rulat folosind superdemonul inetd cu drepturile nimănui / nimănui. Ca parametru, este specificat un director în raport cu care vor fi setate numele fișierelor (implicit - / tftpboot). Comutatorul -s determină serverul să facă chroot () în directorul specificat, care în acest caz trebuie să existe. Numai fișierele publice pot fi citite. Puteți înregistra numai acele fișiere care există deja și sunt scrise de toată lumea. Portul și alți parametri sunt specificați în fișierul /etc/inetd.conf:
Portul și alți parametri sunt setate în fișierul /etc/xinetd.d/tftp (nu uitați să reîncărcați /etc/rc.d/init.d/xinetd):
Deoarece porturile pentru transferul de date sunt alese la întâmplare, este necesar să se asigure că pachetele UDP sunt recepționate și transmise tuturor porturilor din intervalul ip_local_port_range prin ecranul intern.
suficient de iptables pentru client (și routerele intermediare) ip_conntrack_tftp încărcați modulul kernel (nf_conntrack_tftp) și permite
În special este necesar să eliminați permisiunile de fișier din directorul / tftpboot:- permisiunile pentru directorul / tftpboot trebuie să fie: root: root --- x - x - x
- Numele fișierelor din director nu ar trebui să fie ușor de ghicit
- dreptul de a scrie fișiere ar trebui să fie dat doar în momentul în care este necesar, și apoi să ia imediat (nu neapărat le dau dreptul de a citi)
- Nu acordați dreptul de a citi fișiere care conțin informații confidențiale