TFTP: Запуск tftpd через inetd

tftp — (trivial file transfer protocol)- простой протокол передачи файлов; используется при загрузке бездисковых систем, для загрузки обновлений и конфигураций в сетевые устройства; для своей работы использует udp. tftp-сервер слушает порт 69.
tftpd — реализация tftp-сервера на Unix-хостах.
inetd — интернет «super-server» — используется для вызова других демонов. inetd слушает запросы на соединения по определенным портам (которые в свою очередь соответствуют определенным сервисам). Сервисы, которые обслуживает inetd, задаются в файле конфигурации /etc/inetd.conf.

Настройка

В файле /etc/inetd.conf раскомментируем следующую строку:

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot

Опции tftpd:

  • -l — включаем логирование с использованием syslog. Прим., логирование LOG_FTP сообщений должно быть включено в настройках syslog — файл syslog.conf: «ftp.info /var/log/xferlog»;
  • -s /tftpboot — задаем директорию для хранения файлов, доступных извне по tftp;
  • -w — по умолчанию, запись в директорию tftp запрещена, но мне нужно скидывать файлы конфигурации по tftp на сервер, поэтому запись разрешаем этой опцией:
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -w -s /tftpboot

Возможная невнимательность: не дописывайте опции после -s и перед /tftpboot, потому как «-s /tftpboot» неделима.   
… tftpd -l -s -w /tftpboot … работать не будет.

Создаем директорию tftp-сервера:

root@provoip# mkdir /tftpboot
Запуск

Добавляем inetd в автозапуск:

root@provoip# ee /etc/rc.conf

# INETD FOR TFTPD
inetd_enable="YES"

Стартуем и проверяем:

root@provoip# /etc/rc.d/inetd start
Starting inetd.
root@provoip# sockstat | grep 69
root     inetd      20366 6  udp4   10.10.10.10:69      *:*