воскресенье, 11 мая 2014 г.

Настройка TFTP-сервера tftpd-hpa

Пока нет ничего крупного, продолжу выкладывать мелкие памятки, сделанные для себя.

Однажды мне понадобилось настроить TFTP-сервер в Linux. До этого приходилось пользоваться только TFTP-сервером во FreeBSD. Хотел найти что-то похожее, но это оказалось не так просто. Перепробованные мной два других TFTP-сервера не подошли. Точно помню, что один из них не имел опции для создания новых файлов, позволяя писать только в уже существующие файлы. Другой тоже чем-то не устроил. В итоге остановился на TFTP-сервере tftpd-hpa. У него можно отметить два достоинства:
  • Умеет работать автономно, без помощи inetd,
  • Есть опция, разрешающая создание новых файлов, что полезно для сохранения резервных копий конфигурации оборудования.
Установим пакет tftpd-hpa:
# apt-get install tftpd-hpa
После установки отредактируем файл /etc/default/tftpd-hpa, содержащий настройки сервера. Приведём его к следующему виду:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--ipv4 --secure --create --umask 027 --permissive"
В настройках указаны дополнительные опции:
  • create разрешает серверу создавать новые файлы,
  • ipv4 предписывает ему ожидать подключений только на адресах IPv4,
  • umask предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
  • permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.
Создадим каталог для tftp-сервера, дадим серверу доступ к каталогу:
# mkdir /var/tftp
# chown tftp:tftp /var/tftp
Можно также поменять домашний каталог пользователя tftp в файле /etc/passwd на /var/tftp.

Осталось перезапустить демона, чтобы он начал работу с новым каталогом:
# /etc/init.d/tftpd-hpa restart

5 комментариев:

Unknown комментирует...

Спасибо, помогло. А то замучили меня inetd и xinetd ( под ними циска чет не могла бэкап положить)

Unknown комментирует...

Эти две опции лучше убрать:
--umask 027 --permissive
С некоторых свичей бывает так , что файл создаётся , но по факту он пустой.
Явно что-то по правам доступа.... Если убираешь - всё нормально.

Анонимный комментирует...

--permissive разрешает tftp-серверу создавать файлы, без этой опции он будет писать только в те файлы, которые уже существуют.

Чушь несусветная. Создание файлов разрешает опция --create, это вроде бы как из самог названия опции должно быть понятно. Не надо фантазировать.

Unknown комментирует...

Я в ubuntu-16.04 сделал так:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/user/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--ipv4 --secure --create --umask 000 --permissive"

# mkdir /home/user/tftp
# usermod -a -G tftp user
# chmod –R 777 /home/user/tftp

Теперь все в домашнем коталоге

morbo комментирует...

Анонимный, именно так и написано в тексте заметки. С кем спорите?