13.11.2017

TFTP сервер на базе Ubuntu

TFTP – простой протокол передачи файлов. В нем, в отличии от FTP, отсутствует авторизация. Используется в большей части для загрузки обновлений и конфигураций в сетевые устройства. В моей практике широко используется в работе с коммутаторами, также известно, что ряд АТС и телефонных аппаратов требуют наличия TFTP сервера для проверки обновлений и получения конфигурации при загрузке.

Предлагаю рассмотреть развертывание TFTP сервера на базе Ubuntu с учетом того, чтобы была возможность изменять его файлы посредством обычного FTP.

В Ubuntu доступно несколько TFTP-серверов, рассмотрим установку и настройку tftpd-hpa, atftpd и tftpd.  Работать одновременно на 69 порту они не могут, так что Вам необходимо выбрать, какой именно сервер будет использоваться или в конфигурации указывать номер порта для каждого сервиса.

1. Создание каталога для хранения данных tftp-сервера

Я предлагаю пойти довольно простым путем. Создать пользователя tftp и в его домашней директории создать каталог, с которым будет работать tftp-сервера. Это обеспечит доступ по FTP при условии, если у Вас установлен FTP-сервер

# sudo adduser tftp

Добавляется пользователь «tftp» ...

Добавляется новая группа «tftp» (1002) ...

Добавляется новый пользователь «tftp» (1001) в группу «tftp» ...

Создаётся домашний каталог «/home/tftp» ...

Копирование файлов из «/etc/skel» ...

Введите новый пароль UNIX:

Повторите ввод нового пароля UNIX:

passwd: password updated successfully

Changing the user information for tftp

Enter the new value, or press ENTER for the default

        Full Name []: TFTP User

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Данная информация корректна? [Y/n] y

# sudo mkdir /home/tftp/tftp

# sudo chown tftp:tftp /home/tftp/tftp/

Пароль, который Вы укажете при создании пользователя, в дальнейшем используется при доступе по FTP для пользователя tftp

2. Установка сервера

2.1 Установка tftpd-hpa

sudo apt-get install tftpd-hpa

В файле /etc/default/tftpd-hpa изменяем путь к tftp-каталогу и опции работы. Пример файла конфигурации

TFTP_USERNAME="tftp" #Имя нашего пользователя

TFTP_DIRECTORY="/home/tftp/tftp" #Путь к каталогу

TFTP_ADDRESS=":69" # IP-адрес и порт на котором работает сервер

TFTP_OPTIONS="--secure --create" #--create – дает возможность производить запись, если ее не указать возможно только чтение

Перезапускаем сервис, чтобы изменения вступили в силу

sudo service tftpd-hpa restart

2.2 Установка atftpd

sudo apt-get install atftpd

sudo touch /var/log/atftpd

Правим файл конфигурации /etc/default/atftpd на

USE_INETD=false

OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 --port 69 --user tftp –group tftp  --logfile /var/log/atftpd /home/tftp/tftp"

И перезапускаем сервис

service atftpd restart

В примере конфигурационного файла указано ведение логов в файл /var/log/atftpd, если это Вам не нужно, уберите --logfile /var/log/atftpd

2.3 Установка и настройка tftpd

Это наиболее простой tftp-сервер, работает, как сервис inetd

sudo apt-get install tftpd

Настройка

В файле конфигурации /etc/inetd.conf

Меняем строку

tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp

на

tftp            dgram   udp     wait    tftp  /usr/sbin/tcpd  /usr/sbin/in.tftpd -s /home/tftp/tftp

Данный TFTP-сервер «умеет» только отдавать файлы, но не принимает их.

3. Устранение возможных проблем

Посмотреть сервис, который занимает порт tftp

sudo netstat -apn | grep ":69 "

Если при работе сервера возникают ошибки, возможно, проблемы с правами доступа к каталогу. Для исправления прав доступа выполните:

sudo chown -R tftp:tftp /home/tftp/tftp/ && chmod -R 666 /home/tftp/tftp/

Заключение

Для работы я предлагаю выбирать tftpd-hpa или atftpd, они имеют возможность «тонкой настройки», позволяя легко и быстро добиться нужного результата. В примере настроек, описанных выше, Вы сможете, как получать файлы, так и записывать их на TFTP-сервер, что полезно в случае, если необходимо хранить резервные копии конфигурации сетевого оборудования.

Если у Вас возникли вопросы, задавайте их в комментариях.

Комментариев нет:

Отправить комментарий