Поднимаем TFTP сервер на CentOS 7

Пошаговый гайд

0) Отключаем SELinux если раньше это не сделали и перезагружаем сервер (если уверены что он нам не нужен или не умеем с ним работать). Если без отключения для заливки файлов должна помочь строка setsebool -P tftp_anon_write 1

sudo vi /etc/selinux/config
SELINUX=disabled

1) Загружаем сервер, клиент и xinetd (без него никак, через него работает tftpd)

sudo yum install tftp tftp-server xinetd

2) Редактируем файл с конфигурацией /etc/xinetd.d/tftp.

sudo vi /etc/xinetd.d/tftp

Нас интересуют строки:
server_args – тут указываем пользователя (-u), права для создаваемых фалов в виде umask (-U) и папку
disable – тут отключаем отключение сервиса (по умолчанию сервис в конфиге отключен), ставим “no”

$ cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
 socket_type = dgram
 protocol = udp
 wait = yes
 user = root
 server = /usr/sbin/in.tftpd
 server_args = -c -p -u tftpd -U 111 -s /var/lib/tftpboot
 disable = no
 per_source = 11
 cps = 100 2
 flags = IPv4
}

3) Создаем пользователя с правами на папку

sudo useradd --no-create-home -s /sbin/nologin tftpd
sudo chown tftpd:tftpd /var/lib/tftpboot
sudo chmod 777 /var/lib/tftpboot

4) Перезагружаем сервис через xinetd

sudo systemctl restart xinetd

5) Разрешаем работу сервиса через firewall

sudo firewall-cmd --zone=public --add-service=tftp --permanent
sudo firewall-cmd --reload

6) Добавляем сервисы в автозагрузку

sudo systemctl enable xinetd
sudo systemctl enable tftp

7) Проверяем с другого сервера с tftp клиентом

tftp - заходим в режим клиента
<10.1.1.1> - вводим IP сервера, на котором подняли tftpd
put <file_test> - кладем файл

Enjoy 🙂

Leave a Reply