Пошаговый гайд
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 sudo firewall-cmd --list-all
6) Добавляем сервисы в автозагрузку
sudo systemctl enable xinetd sudo systemctl enable tftp
7) Проверяем с другого сервера с tftp клиентом
tftp - заходим в режим клиента <10.1.1.1> - вводим IP сервера, на котором подняли tftpd put <file_test> - кладем файл
Enjoy 🙂
