Сразу хочю сказать, что данная заметка есть своего рода домашная шпаргалка по настройке сервиса (TFTP основан на транспортном протоколе UDP) задачей которого будет просто принимать/загружать файлы без возможностей аутентификации, если нужно аутентификация, то лучше использовать vsftpd. Как настроить и практически использовать можно посмотреть у меня на блоге. Мой блог — это кладезь практических знаний собранных в одном месте и постоянно пополняемый.

Задача: Поднять на локальной/сетевой станции упрощенный сервер передачи данных с целью принятия конфигурационных файлов с сетевых устройств, а так же возможность восстановить работу сетевого оборудования просто указав откуда взять готовый конфигурационный файл.

Для инсталляции сервиса в систему воспользуемся репозитариями “Ubuntu 12.04“:

ekzorchik@dv6:~$ sudo apt-get install tftpd-hpa

Далее перед тем, как перейти к редактированию конфигурационного файла нужно сперва создать каталог, либо на текущей файловой системе, либо выделив отдельный раздел, я буду рассматривать первый вариант:

ekzorchik@dv6:~$ sudo mkdir -p /media/tfpdconf

Редактируем права на каталог:

ekzorchik@dv6:~$ sudo chmod -R 777 /media/tfpdconf/

ekzorchik@dv6:~$ sudo chown -R nobody:nogroup /media/tfpdconf/

Отлично, теперь создаем резервную копию и переходим к внесению изменений настройки сервиса:

ekzorchik@dv6:~$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup

ekzorchik@dv6:~$ sudo nano /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/media/tfpdconf"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="--secure --create" ; allows client to create files

Сохраняем внесенные изменения в конфигурационный файл и перезапускаем службу для запуска сервиса с учетом изменений в конфигурационном файле:

ekzorchik@dv6:~$ sudo service tftpd-hpa restart

tftpd-hpa stop/waiting

tftpd-hpa start/running

Ниже возможные команды по работе с сервисом tftpd-hpa:

service tftpd-hpa status

service tftpd-hpa stop

service tftpd-hpa start

service tftpd-hpa restart

service tftpd-hpa force-reload

 

проверяем прослушивается ли порт (UDP:69) в системе:

ekzorchik@dv6:~$ sudo netstat -tulpn | grep :69

udp 0 0 0.0.0.0:69 0.0.0.0:* 2742/in.tftpd

Да он открыт.

Проверка работы TFTP сервера, использование TFTP клиента

Для начала установим TFTP клиент, чтобы можно было подключаться к TFTP северу. Для установки TFTP клиента выполните в терминале команду:

ekzorchik@dv6:~$ sudo apt-get install tftp

Теперь создадим на сервере в директории /tftpboot какой-нибудь файл, например, filik. Для создания файла filik и записи в него текста «This is my filik» выполните в терминале команду:

ekzorchik@dv6:~$ echo "This is my filik" > /media/tftpdconf/filik

Теперь мы можем запустить TFTP клиент командой tftp. Команда tftp принимает в качестве параметра IP адрес сервера. Если вы запускаете клиент на локальном компьютере, то укажите IP адрес 127.0.0.1, если же на удаленном компьютере, то укажите IP адрес сервера.

ekzorchik@dv6:~$ tftp 127.0.0.1

Когда клиент запустится, вы попадете в режим ввода команд для клиента TFTP. Выполните команду get filik, которая означает получить файл с именем filik с сервера. Стоит отметить, что копирование файла осуществляется в ту директорию, в которой при выполнении команды вы находились в консоле.

tftp> get filik

Received 18 bytes in 0.0 seconds

В случае, если вы все сделали правильно, файл filik загрузится с TFTP сервера. Для выхода из TFTP клиента введите команду quit.

tftp> quit

А теперь практический пример, как с другой системы передать файлы (команда put) на TFTP сервер:

ekzorchik@srv-home:~$ tftp

tftp> put /etc/passwd 192.168.1.40:passwd.log

Sent 1755 bytes in 0.0 seconds

tftp> quit

Здесь отметим, что команда put позволяет отправить запрос на запись к tftp серверу. Первый параметр указываем имя записываемого файла на локальной машине. Второй параметр имеет формат адрес tftp сервера:имя под которым файл будет записан на сервер.

, где

192.168.1.33 (srv-home) – это другая машина c установленным tftp клиентом.

192.168.1.40 (dv6)— это машина на которой поднят TFTP сервис.

Теперь на машине dv6 можно посмотреть содержимого passwd.log его содержание представляет собой список пользовательских учётных записей (аккаунтов). И является первым и основным источником информации о правах пользователя операционной системы:

ekzorchik@dv6:~$ less /media/tftpdconf/passwd.log

Также не забываем настроить правила брандмауера:

ekzorchik@dv6:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -m tcp -p tcp --dport 69 -j ACCEPT

ekzorchik@dv6:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -m tcp -p udp --dport 69 -j ACCEPT

Вот собственно и весь процесс по поднятию службы TFTP у себя на системе. В последующих заметках данная заметка очень приходится, когда я буду подробно расписывать, как настроить бездисковую загрузку и установку системы, а также осуществлять бекап конфигурационных файлов на данный сервер с поднятой службой TFTP. На этом всё, с уважением ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru

2 комментария для “Пошаговая инсталляция tftpd на Ubuntu 12.04 Desktop/Server”
  1. Действительно Ваш блог кладезь полезной и главное практичной информации по настройке, работе тех или иных сервисом. А самое интересное, что рассматриваете такие оси, как centos, windows, ubuntu. Мое Вам почтение. Спасибо и удачи!!!

  2. Вот за “–create» ; allows client to create files” – спасибо, неспешно голову ломал, как запись включить.

Обсуждение закрыто.