- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
TFTPD(8) | Manualul administratorului de sistem | TFTPD(8) |
NUME¶
tftpd - server de protocol trivial de transfer de fișiere
SINOPSIS¶
in.tftpd [opțiuni...] director...
DESCRIERE¶
tftpd este un server pentru Trivial File Transfer Protocol. Protocolul TFTP este utilizat pe scară largă pentru a asigura pornirea de la distanță a dispozitivelor fără disc. În mod normal, serverul este pornit de inetd, dar poate funcționa și independent.
OPȚIUNI¶
- --ipv4, -4
- Se conectează numai cu IPv4, chiar dacă a fost compilat suportul IPv6.
- --ipv6, -6
- Se conectează numai cu IPv6, dacă a fost compilat suportul IPv6.
- -l, --listen
- Rulează serverul în modul autonom (ascultare), în loc să fie rulat din inetd. În modul de ascultare, opțiunea --timeout este ignorată, iar opțiunea --address poate fi utilizată pentru a specifica o adresă sau un port local specific pe care să se asculte.
- --foreground, -L
- Similar cu --listen, dar nu se detașează de procesul din prim-plan. Implică --listen.
- --address [adresă][:port], -a [adresă][:port]
- Specifică o anumită adresă și
port pe care să le asculte atunci când este apelat cu
opțiunea --listen sau --foreground. Valoarea
implicită este de a asculta portul tftp specificat în
/etc/services pe toate adresele locale.
Atenție: Adresele numerice IPv6 trebuie să fie incluse între paranteze drepte pentru a evita ambiguitățile cu informațiile opționale despre port.
- --create, -c
- Permite crearea de noi fișiere. În mod implicit, tftpd va permite doar încărcarea de fișiere care există deja. Fișierele sunt create cu permisiuni implicite care permit oricui să le citească sau să le scrie, cu excepția cazului în care sunt specificate opțiunile --permissive sau --umask.
- --secure, -s
- Schimbă directorul rădăcină la pornire. Acest lucru înseamnă că gazda la distanță nu trebuie să transmită directorul ca parte a transferului și poate spori securitatea. Atunci când este specificat --secure, trebuie specificat exact un director în linia de comandă. Utilizarea acestei opțiuni este recomandată pentru securitate, precum și pentru compatibilitate cu unele ROM-uri de pornire care nu pot fi ușor de făcut să includă un nume de director în cererea sa.
- --user nume-utilizator, -u nume-utilizator
- Specifică numele de utilizator cu care va rula tftpd; valoarea implicită este „nobody”. ID-ul de utilizator, ID-ul de grup și (dacă este posibil pe platformă) ID-urile de grup suplimentare vor fi stabilite la cele specificate în baza de date cu permisiuni de sistem pentru acest nume de utilizator.
- --umask umask, -U umask
- Stabilește umask pentru fișierele nou create la valoarea specificată. Valoarea implicită este zero (oricine poate citi sau scrie) dacă opțiunea --permisiv nu este specificată sau moștenită de la procesul de invocare dacă opțiunea --permisiv este specificată.
- --permissive, -p
- Nu efectuează nicio verificare suplimentară a permisiunilor în plus față de controalele de acces normale furnizate de sistem pentru utilizatorul specificat prin intermediul opțiunii --user.
- --pidfile fișier-pid, -P fișier-pid
- Atunci când este rulat în modul autonom, scrie ID-ul de proces al serverului care ascultă în fișier-pid. La terminarea normală (SIGTERM sau SIGINT), fișierul pid este eliminat automat.
- --timeout timp-așteptare, -t timp-așteptare
- Atunci când este rulat din inetd, acest lucru specifică cât timp, în secunde, trebuie să se aștepte o a doua conexiune înainte de a termina serverul. inetd va reporni apoi serverul atunci când apare o altă cerere. Valoarea implicită este 900 (15 minute).
- --retransmit timp-așteptare, -T timp-așteptare
- Determină timpul de așteptare implicit, în microsecunde, înainte ca primul pachet să fie retransmis. Acest lucru poate fi modificat de către client dacă se negociază opțiunea timeout sau utimeout. Valoarea implicită este 1000000 (1 secundă).
- --map-file fișier-recartografiere, -m fișier-recartografiere
- Specifică utilizarea recartografierii numelor de fișiere. fișier-recartografiere este un fișier care conține regulile de recartografiere. A se vedea secțiunea de mai jos referitoare la recarografierea numelor de fișiere. Este posibil ca această opțiune să nu fie compilată; consultați ieșirea din in.tftpd -V pentru a verifica dacă este sau nu disponibilă.
- Specifică numărul de reguli de reînregistrare care pot fi executate înainte
- ca înregistrarea numelui de fișier să eșueze. Valoarea implicită este 4096.
- --verbose, -v
- Crește gradul de detaliere a jurnalizării lui tftpd. Această opțiune poate fi specificată de mai multe ori pentru o cantitate și mai mare de detalii.
- --verbosity valoare
- Stabilește gradul de detaliere la valoare.
- --refuse opțiune-tftp, -r opțiune-tftp
- Indică că o anumită opțiune RFC 2347 TFTP nu trebuie să fie acceptată niciodată.
- --blocksize dimensiune-maximă-bloc, -B dimensiune-maximă-bloc
- Specifică dimensiunea maximă permisă a blocului. Intervalul permis pentru acest parametru este de la 512 la 65464. Unii clienți încorporați solicită dimensiuni mari ale blocurilor și totuși nu gestionează corect pachetele fragmentate; pentru acești clienți, se recomandă să stabiliți această valoare la cel mai mic MTU din rețeaua dumneavoastră minus 32 de octeți (20 de octeți pentru IP, 8 pentru UDP și 4 pentru TFTP; mai puțin dacă utilizați opțiuni IP în rețeaua dumneavoastră). De exemplu, pe un Ethernet standard (MTU 1500), o valoare de 1468 este rezonabilă.
- --port-range port:port, -R port:port
- Forțează numărul de port al serverului (ID-ul tranzacției) să se afle în intervalul specificat de numere de port.
- --version, -V
- Afișează numărul versiunii și configurația la ieșirea standard, apoi iese.
NEGOCIEREA OPȚIUNILOR RFC 2347¶
Această versiune de tftpd acceptă negocierea opțiunilor RFC 2347. Opțiunile implementate în prezent sunt:
- blksize (RFC 2348)
- Stabilește dimensiunea blocului de transfer la o valoare mai mică sau egală cu cea a opțiunii specificate. Această versiune de tftpd poate accepta orice dimensiune a blocului până la maximul teoretic de 65464 octeți.
- blksize2 (non-standard)
- Stabilește dimensiunea blocului de transfer la orice valoare mai mică sau egală cu opțiunea specificată, dar limitează răspunsurile posibile la puteri de 2. Maximul este de 32768 octeți (cea mai mare putere de 2 mai mică sau egală cu 65464).
- tsize (RFC 2349)
- Raportează dimensiunea fișierului care urmează să fie transferat. Această versiune de tftpd acceptă doar opțiunea tsize pentru transferurile în modul binar (octet).
- timeout (RFC 2349)
- Stabilește timpul înainte ca serverul să retransmită un pachet, în secunde.
- utimeout (non-standard)
- Stabilește timpul înainte ca serverul să retransmită un pachet, în microsecunde.
- rollover (non-standard)
- Stabilește numărul de bloc la care trebuie să se reia după o schimbare a numărului de bloc. Valoarea implicită și recomandată este zero.
Opțiunea --refuse poate fi utilizată pentru a dezactiva anumite opțiuni specifice; acest lucru poate fi necesar pentru a rezolva erori în anumite implementări ale clienților TFTP. De exemplu, s-a constatat că unii clienți TFTP solicită opțiunea blksize, dar se blochează cu o eroare în cazul în care primesc efectiv opțiunea acceptată de server.
RECARTOGRAFIEREA NUMELOR DE FIȘIERE¶
Opțiunea --map-file specifică un fișier care conține reguli de recartografiere a numelor de fișiere. Fiecare linie fără comentarii (comentariile încep cu simboluri hash, #) conține o operație, specificată mai jos; o exp-reg, o expresie regulată în stilul egrep; și, opțional, un model de înlocuire. Operația indicată de operație se efectuează dacă exp-reg se potrivește cu tot sau cu o parte din numele fișierului. Regulile sunt procesate de sus în jos și, în mod implicit, toate regulile sunt procesate chiar dacă există o potrivire.
operația poate fi orice combinație a următoarelor litere:
- r
- Înlocuiește subșirul de caractere care se potrivește expresiei regulate exp-reg cu modelul de înlocuire. Modelul de înlocuire poate conține secvențe de eludare; a se vedea mai jos.
- g
- Repetă această regulă până când nu se mai potrivește. Aceasta se utilizează întotdeauna cu r.
- gg
- Repetă această regulă până când nu se mai potrivește, dar numai pe porțiunea de șir care nu a fost încă comparată, similar cu modul în care funcționează comanda s cu opțiunea g în sed(1). Aceasta este întotdeauna utilizată cu r.
- i
- Potrivește exp-reg fără a ține cont de diferența dintre majuscule și minuscule. În mod implicit, este sensibil la majuscule și minuscule.
- e
- Dacă această regulă se potrivește, încheie procesarea regulilor după executarea regulii.
- E
- Dacă această regulă corespunde, și rezultatul corespunde unui nume de fișier care poate fi transferat, se încheie procesarea regulii după executarea regulii. Dacă aceasta este combinată cu r, atunci dacă substituția nu are ca rezultat un nume de fișier valid, substituția este anulată. Aceasta nu poate fi combinată cu g, dar poate fi combinată cu gg.
- s
- În cazul în care această regulă se potrivește, începe procesarea regulilor de la prima regulă după executarea acestei reguli.
- a
- Dacă această regulă se potrivește, se refuză cererea și se trimite clientului o eroare de acces refuzat.
- G
- Această regulă se aplică numai solicitărilor GET (RRQ).
- P
- Această regulă se aplică numai solicitărilor PUT (WRQ).
- 4
- Această regulă se aplică numai sesiunilor IPv4.
- 6
- Această regulă se aplică numai sesiunilor IPv6.
- ~
- Inversează sensul acestei reguli, adică execută operația numai dacă exp-reg nu se potrivește. Nu poate fi utilizată împreună cu r.
Următoarele secvențe de eludare/control sunt recunoscute ca făcând parte dintr-un model de înlocuire:
- \0
- Întregul șir de caractere care se potrivește cu exp-reg.
- \1 la \9
- Șirurile de caractere care corespund fiecăreia dintre primele nouă subexpresii între paranteze, \( ... \), ale modelului exp-reg.
- \i
- Adresa IP a gazdei solicitante, în notație „patru-între-puncte” pentru IPv4 (de exemplu, 192.0.2.169) sau în forma convențională cu două puncte „:” pentru IPv6 (de exemplu, 2001:db8::1).
- \x
- Adresa IP a gazdei solicitante, în notație hexazecimală extinsă (de exemplu, C00002A9 pentru IPv4 sau 20010DB8000000000000000000000000000000000001 pentru IPv6).
- \\
- Bară oblică inversă literală.
- \spațiu-în-alb
- Spațiu în alb literal.
- \#
- Semnul hash literar.
- \U
- Transformă toate literele următoare în majuscule.
- \L
- Transformă toate literele următoare în minuscule.
- \E
- Anulează efectul lui \U sau \L.
Dacă fișierul de cartografiere este modificat, trebuie să trimiteți SIGHUP la orice proces tftpd rămas în așteptare.
SECURITATE¶
Utilizarea serviciilor TFTP nu necesită un cont sau o parolă pe sistemul server. Din cauza lipsei informațiilor de autentificare, tftpd va permite doar accesarea fișierelor care pot fi citite public (o+r), cu excepția cazului în care se specifică opțiunea --permisive. Fișierele pot fi scrise numai dacă există deja și pot fi scrise în mod public, cu excepția cazului în care se specifică opțiunea --create. Rețineți că acest lucru extinde conceptul de „public” pentru a include toți utilizatorii de pe toate gazdele care pot fi accesate prin rețea; este posibil ca acest lucru să nu fie adecvat pe toate sistemele, iar implicațiile sale trebuie luate în considerare înainte de a activa serviciul TFTP. În mod normal, ar trebui să se utilizeze vreun tip de paravan de protecție sau o soluție de filtrare a pachetelor. Dacă este compilat în mod corespunzător (a se vedea ieșirea lui in.tftpd --version), tftpd va interoga baza de date hosts_access(5) pentru informații privind controlul accesului. Acest lucru poate fi lent; siturile care necesită o performanță maximă ar putea dori să compileze fără această opțiune și să se bazeze în schimb pe paravanul de protecție sau pe filtrele de pachete bazate pe nucleu.
Serverul ar trebui să fie configurat să ruleze ca utilizator cu cel mai mic privilegiu posibil; consultați opțiunea --user. Este probabil o idee bună să creați un cont de utilizator specific pentru tftpd, mai degrabă decât să îl lăsați să ruleze ca „nobody”, pentru a vă proteja împotriva scurgerilor de privilegii între aplicații.
Accesul la fișiere poate și ar trebui să fie restricționat prin invocarea tftpd cu o listă de directoare prin includerea numelor de rute ca argumente ale programului server în linia de comandă. În acest caz, accesul este restricționat la fișierele ale căror nume sunt prefixate de unul dintre directoare. Dacă este posibil, se recomandă să se utilizeze opțiunea --secure pentru a configura un mediu chroot() în care serverul să ruleze după ce a fost stabilită o conexiune.
În cele din urmă, suportul pentru recartografierea numelui de fișier (opțiunea --map-file flag) poate fi utilizat pentru a oferi un control suplimentar limitat al accesului.
ÎN CONFORMITATE CU¶
RFC 1123, Requirements for Internet Hosts - Application and
Support - (Cerințe pentru gazdele din Internet - Aplicație
și asistență).
RFC 1350, The TFTP Protocol (revision 2) - (Protocolul TFTP (revizia
2)).
RFC 2347, TFTP Option Extension - (Extensie opțiune TFTP).
RFC 2348, TFTP Blocksize Option - (Opțiunea TFTP pentru dimensiunea
blocurilor).
RFC 2349, TFTP Timeout Interval and Transfer Size Options _ (Opțiuni
privind intervalul de temporizare TFTP și dimensiunea
transferului).
AUTOR¶
Această versiune de tftpd este întreținută de H. Peter Anvin <hpa@zytor.com>. Ea a fost derivată din, dar a deviat substanțial de la o bază sursă OpenBSD, la care au fost adăugate corecturi de către Markus Gutschke și Gero Kulhman.
CONSULTAȚI ȘI¶
tftp(1), egrep(1), umask(2), hosts_access(5), regex(7), inetd(8). Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org> Această traducere este documentație gratuită; citiți sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la
7 iunie 2014 | tftp-hpa 5.3 |