Настройка TFTP-сервера на Linux Ubuntu

Обновлено и опубликовано Опубликовано:

Это небольшая инструкция по простой настройке сервера TFTP. Также мы рассмотрим пример отправки файла на клиента и немного опишем конфигурацию сервера.

Установка и настройка сервера

Для установки обновим кэш репозитория и выполним инсталляцию:

apt update

apt install tftpd-hpa

Готово, сервер установлен и запущен. Посмотрим его конфигурационный файл:

vi /etc/default/tftpd-hpa

По умолчанию, настройки такие:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

* где:

  • TFTP_USERNAME — имя учетной записи, от которой будет работать сервис tftp.
  • TFTP_DIRECTORY — рабочий каталог, где будут находиться файлы или в который будут файлы загружаться.
  • TFTP_ADDRESS — адрес и порт, на которых будет слушать сервер. При желании, мы можем ограничить прослушивание для конкретного адреса, например, 192.168.100.13:69.
  • TFTP_OPTIONS — дополнительные опции, которые влияют на поведение работы сервиса (перечисляются через пробел):
    • --create — разрешает создавать новые файлы.
    • --ipv4 — разрешаем только IPv4.
    • --umask XXX — выставляет маску для создаваемых файлов, например --umask 027, приведет к тому, что файлы будут создаваться с правами 750.
    • --permissive — не проводить дополнительных проверок прав доступа к файлу, кроме тех, что делаются операционной системой.
    • --secure — разрешает загружать на TFTP--сервер только файлы, которые уже есть в рабочем каталоге и которые доступны для публичной записи (то есть, можно только перезаписывать файлы). Опция create позволяет создавать новые файлы.

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

systemctl restart tftpd-hpa

Проверяем работоспособность сервиса:

systemctl status tftpd-hpa

Убедимся, что сервер слушает на настроенном порту:

ss -tunlp | grep :69

Также мы должны быть уверены в наличие рабочего каталога, который прописан в конфигурации:

mkdir -p /srv/tftp

В качестве его владельца выставляем пользователя tftp:

chown tftp:tftp /srv/tftp

Если в нашей системе брандмауэр настроен для запрета пакетов, откроем порт 69 (udp):

iptables -I INPUT -p udp --dport 69 -j ACCEPT

Для сохранения настройки можно использовать iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

Сервер настроен.

Запуск клиента

Рассмотрим пример подключения к TFTP-серверу с рабочей станции Windows на примере клиента Tftpd64.

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

vi /srv/tftp/test.txt

test

Теперь уже в клиенте переходим на сайт приложения и скачиваем его. Запускаем скачанный файл и проходим по шагам мастера для установки программы. После запускаем ее.

На вкладке Tftp Client заполняем поля для подключения к серверу и наживаем Get:

Пример настройки tftp-клиента для подключения к серверу

* где:

  • Current Directory — директория на клиенте куда будут скачиваться файлы или откуда они будут отправляться на TFTP.
  • Server interfaces — на клиенте может быть несколько сетевых интерфейсов. Нам нужно выбрать тот, с которого доступен сервер.
  • Host — адрес TFTP-сервера.
  • Port — порт, на котором слушает сервер.
  • Local File — имя файла, который будет либо создан при скачивании, либо отправлен на сервер.
  • Remote File — имя файла, который будет либо создан при отправке на сервер, либо скачан с сервера.

После загрузки файла (test.txt) мы должны его увидеть в каталоге, указанном в опции Current Directory.

# Ubuntu # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет