Практика роботи з tftp ~ мережеві заморочки
Всім доброго дня, сьогодні ми з вами спробуємо попрактикуватися в використання протоколу TFTP. Для даної практики ми будемо використовувати 3 віртуальні машини, віртуально знаходяться в одній підмережі. У моєму випадку це будуть дві машини, що працюють під управлінням Windows XP. і одна віртуальна машина з встановленим на неї D ebian 6.0.7. На одну з віртуальних машин з Windows XP (віртуальна машина 1) ми встановимо популярний в певних колах Tftpd32, що включає до свого складу TFTP сервер і TFTP клієнт. На другий віртуальній машині з XP ми попрактікуемся в використання штатного клієнта TFTP вбудованого в Windows. Ну а на машині з D ebian (віртуальна машина 3) ми познайомимося з азами TFTP в Linux. І так якщо вам все це цікаво, то приступаємо.
Для початку сконфігуріруем наші віртуальні машини.

tftpd 32 налаштований на роздачу файлів з папки Public по протоколу TFTP
Тепер приступимо до найцікавішого - до конфігурації TFTP сервера в Debian. Відразу зазначу, що IP даної віртуальної машини 192.168.1.83. Для на чала нам буде потрібно встановити на нашу віртуальну машину кілька пакетів, для цього виконаємо в консолі команду:
sudo aptitude install openbsd-inetd tftpd tftp
Пакет openbsd-inetd є мережну службу, яка обробляє вхідні TCP і UDP з'єднання і запускає відповідну програму для обробки даних сполук. Пакет tftpd є TFTP сервер, а пакет tftp - TFTP клієнт.
Після того як всі перераховані вище пакети будуть встановлені приступимо до їх конфігурації. За замовчуванням TFTP сервер налаштований на використання директорії / srv / tftp. Можливо це і зручно, то так як ми вчимося працювати з TFTP ми спробуємо це змінити і зробимо так щоб TFTP сервер для своєї роботи використав директорію / TFTP _ server. Для початку створимо цю директорію виконавши команди:
sudo mkdir TFTP _ server
cd TFTP _ server
echo "1 file" | sudo tee 1.log
echo "2 file" | sudo tee 2.log
Першою командою ми переходимо в кореневу директорію. Другий створюємо в ній директорію TFTP _ server. Третьою командою ми переходимо в директорію TFTP _ server. За допомогою двох останніх команд ми створюємо в директорії TFTP _ server файли 1. log і 2. log містять текст «1 file» і «2 file» відповідно.
sudo nano /etc/inetd.conf
В даному файлі шукаємо рядки подібні:
#: BOOT: TFTP service is provided primarily for booting. Most sites
#run this only on machines acting as "boot servers."
tftp dgram udp wait nobody / usr / sbin / tcpd /usr/sbin/in.tftpd / srv / tftp
Замінюємо аргумент / srv / tftp на / TFTP _ server. В результаті у вас повинно вийти:
tftp dgram udp wait nobody / usr / sbin / tcpd /usr/sbin/in.tftpd / TFTP_server
Після чого зберігаємо файл inetd.conf. Щоб тільки що внесені настройки вступили в силу необхідно перезапустити службу openbsd - inetd. для цього виконуємо команду:
sudo /etc/init.d/openbsd-inetd restart
Тепер можна вважати що дана віртуальна машина налаштована для роботи. І далі ми перейдемо до практики.
Практика 1. Копіюємо файли сTFTP сервера за допомогою встроенногоTFTP кліентаWindows
Для початку запустимо консоль на віртуальній машині 2. І спробуємо завантажити файл 1. bmp з TFTP сервера віртуальної машини 1 (192.168.1.41). Для цього в консолі виконаємо команду:
tftp 192.168.1.41 GET 1. bmp
Після цього на час копіювання відбудеться пауза, по закінчення якої ви побачите результат виконання операції.

Файл успішно скопійований з TFTP сервера
tftp 192.168.1.41 GET 2.bmp

Статистика запитів надходять на TFTP сервер віртуальної машини 1
tftp 192.168.1. 83 GET 1 .log
tftp 192.168.1.83 GET 2. log
Практика 2. Записуємо файли наTFTP сервер за допомогою встроенногоTFTP кліентаWindows
Для того щоб скопіювати файли знаходяться в папці C: \ Client (віртуальна машина 2) на TFTP сервера віртуальної машини 1 необхідно в консолі виконати наступні команди:
tftp 192.168.1.41 PUT C: \ Client \ 1.txt
tftp 192.168.1.41 PUT C: \ Client \ 2.txt
Записані файли на віртуальній машині 1 з'являться в директорії C: \ Public.

Помилка Access Violation при спроби записи на tftpd
Справа в тому, що tftpd встановлений на віртуальну машину 3, дозволяє здійснювати запис тільки в уже існуючі файли. Тому на необхідно виконати на віртуальній машині 3 наступні команди:
cd / TFTP _ server
sudo chmod 777 -R / TFTP_server
Першою командою ми переходь в директорію / TFTP_server. Другий командою ми створюємо в ній порожній файл з ім'ям 1.txt. Третьою командою ми даємо повні права на доступ до директорії / TFTP і всіх наявних у ній файлів.
Після цього можна виконувати на віртуальній машині 2 команду:
tftp 192.168.1.83 PUT C: \ Client \ 1.txt