TFTP

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

TFTP (англ. Trivial File Transfer Protocol - простий протокол передачі файлів) використовується головним чином для первинного завантаження бездискових робочих станцій. TFTP, на відміну від FTP, не містить можливостей аутентифікації (хоча можлива фільтрація за IP-адресою) і заснований на транспортному протоколі UDP.

Застосування[ред.ред. код]

Основне призначення TFTP - забезпечення простоти реалізації клієнта. У зв'язку з цим він використовується для завантаження бездискових робочих станцій, завантаження оновлень і конфігурацій в «розумні» мережеві пристрої, записи статистики з міні-АТС (CDR) та апаратних маршрутизаторів / файрволов.


Безпека[ред.ред. код]

Оскільки протокол не підтримує аутентифікації, єдиний метод ідентифікації клієнта - це його мережева адреса (яка може бути підробленою). Зазвичай в Unix-системах TFTPD доступний тільки каталог / TFTPboot. Проте в старих TFTP-серверах було можливим отримати файл паролів командою RRQ .. / і т.д. / пароль. Демон TFTPD (одна з реалізацій TFTP-сервера) відмовляється обробляти файли, що містять в своєму імені комбінацію «/../» або починається з «../». Запис дозволяється тільки у файли, які вже існують (будь-якого розміру, наприклад нульового), і доступні для публічного запису (права доступу:-RW-RW-RW-). [1] Додатковий захист від доступу до довільних файлів здійснюється за допомогою зміни кореневого каталогу на каталог TFTPD (зазвичай / USR / TFTPRoot). Зверніть увагу на те, що TFTP пакети не містять жодних даних про ім'я користувача або пароль. Це недолік в секретності характерний для TFTP. Так як TFTP був розроблений для використання в процесі завантаження, він не надає можливості передати ім'я користувача та пароль. Ця характеристика TFTP була використана багатьма хакерами, щоб отримати копії файлу паролів з Unix і потім розшифрувати паролі. Щоб запобігти подібний доступ, більшість TFTP серверів в даний час регламентують, які файли можуть бути отримані з використанням TFTP (як правило, файли з директорії / tftpboot в Unix системах). Ця директорія містить тільки завантажувальні файли, необхідні бездисковий системам. Для додаткової безпеки TFTP сервер, на Unix системі, зазвичай встановлює свій користувальницький ідентифікатор (UID) і ідентифікатор групи (GID) у значення, які не можуть бути призначені реальному користувачеві. Це дозволяє доступ тільки до файлів, які доступні для читання і запису всім


Типи пакету[ред.ред. код]

Спочатку в TFTP-пакеті йде поле розміром в 2 байти, що визначає тип пакету:

- Read Request (RRQ, #1) - запит на читання файлу.
- Write Request (WRQ, #2)  - запит на запис файлу.
- Data (DATA, #3) - дані, передані через TFTP.
- Acknowledgment (ACK, #4) - підтвердження пакета.
- Error (ERR, #5)  - помилка.

Запити на читання і запис[ред.ред. код]

Для початку передачі даних клієнт повинен послати серверу WRQ або RRQ-пакет. В обох пакетів формат однаковий:

0x01/0x02 (тип пакета) Ім'я файла 0x00 (кінець рядка) Режим передачі 0x00 (кінець рядка) Опції… (якщо є)
2 байта рядок в ASCII 1 байт рядок в ASCII 1 байт Див. «Опції»

У TFTP існує 2 режиму передачі (режим Mail, визначений у IEN 133, визнаний застарілим): netascii - файл перед передачею перекодовується в ASCII. октет - файл передається без змін. Після отримання RRQ-пакета сервером, він відразу починає передачу даних. У випадку з WRQ-запитом - сервер має надіслати ACK-пакет із номером пакета 0.

Процес передачі даних[ред.ред. код]

У TFTP існує 2 режиму передачі (режим Mail, визначений у IEN 133, визнаний застарілим): netascii - файл перед передачею перекодовується в ASCII. octet - файл передається без змін. Після отримання RRQ-пакета сервером, він відразу починає передачу даних. У випадку з WRQ-запитом - сервер має надіслати ACK-пакет із номером пакета 0.

Опції TFTP[ред.ред. код]

У RFC 2347 був передбачений формат опцій, які можна приєднувати до закінчення RRQ-пакета і WRQ-пакету:

Код опції 0x00 (кінець рядка) Значенння опції 0x00 (кінець рядка)
строка в ASCII 1 байт строка в ASCII 1 байт

Опцій може бути декілька. Тоді вони будуть слідувати один за одним. Порядок опцій не важливий. У відповідь на RRQ (або WRQ) з опціями, сервер повинен надіслати OACK з переліком можливостей, які сервер прийняв. Найбільш поширені опції:

Назва Визначення в Код опції
Розмір блока RFC 2348 blksize Як значення опції йде число, що приймає значення від 8 до 65464, що означає розмір блоку.
Інтервал повторної передачі RFC 2348 timeout Як значення опції йде число, що приймає значення від 1 до 255, що означає час очікування перед повторною блоку в секундах.
Розмір файла RFC 2348 tsize В качестве значения опции идёт число, обозначающее размер передаваемого файла в байтах.