Задача выполнялась на сервере с операционной системой Debian, но работать аналогично будет и на Ubuntu Linux.
Для некоторых телефонов и другого сетевого оборудования для обновления прошивок, обновления конфигов и так далее требуется tftp сервер с удобным администрированием файлов в каталоге.
Для TFTP сервера мы используем 3 разных способа:
- Програмное обспечение tftpd tftp с запуском через inetd.
- Сервер tftpd-hpa
- DNSMASQ сервер по инструкции: Установка и настройка сервера Dnsmasq: DNS, DHCP и TFTP серверов
Для администрирования содержимого в папке TFTP мы используем FTP сервер vsftpd.
Создаем пользователя tftpuser командой:
adduser tftpuser
Вводим при запросе пароль и обязательно записываем пароль в блокнот с паролями.
Создаем папку где будут находится файлы tftp сервера командой:
mkdir -p /home/tftpuser/tftp
Даем права на папку нашему пльзователю командой:
chown -R tftpuser:tftpuser /home/tftpuser/tftp
Теперь приступим к установе.
Способ № 1
Устанавливаем TFTP сервер и TFTP клиент командой:
aptitude install tftpd tftp
В файле /etc/inetd.conf изменяем:
было:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
стало:
tftp dgram udp wait tftpuser /usr/sbin/tcpd /usr/sbin/in.tftpd /home/tftpuser/tftp
После этого применяем настройки перегрузив inetd командой:
invoke-rc.d openbsd-inetd restart
TFTP сервер tftpd установлен и работает.
Способ № 2
Устанавливаем TFTP сервер и TFTP клиент командой:
aptitude install tftpd-hpa tftp
Настраиваем, для этого изменяем файл:
vi /etc/default/tftpd-hpa
было:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--ipv4 --secure"
стало:
TFTP_USERNAME="tftpuser" TFTP_DIRECTORY="/home/tftpuser/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--ipv4 --secure"
Я в конфигурационном файле изменил папку содержащую файлы, пользователя, а также добавил параметр --ipv4. Вы можете также при потребности использовать еще такие параметры:
- --create разрешает серверу создавать новые файлы,
- --ipv4 предписывает ему ожидать подключений только на адресах IPv4,
- --umask 027 предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
- --permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.
TFTP сервер tftpd-hpa установлен и работает.
Для проверки работы можно создать файл в папке tftp сервера командой:
echo Tested file > /home/tftpuser/tftp/testfile.txt && chown tftpuser /home/tftpuser/tftp/testfile.txt
Скачиваем наш тестовый файл командой:
echo get testfile.txt | tftp 127.0.0.1
Tftp сервер работает по протоколу UDP на 69 порту, потому Вам нужно открыть на файрволе (если он используется) по протоколу UDP 69 порт.
Если файрвол не используется наш tftp сервер доступен как на 127.0.0.1 так и на внешнем IP сервера, например 192.168.1.1
Устанавливаем vsftpd для администрирования содержимого нашего tftp сервера командой:
aptitude install vsftpd
Вносим изменения в конфигурационный файл /etc/vsftpd.conf ftp сервера vsftpd:
vi /etc/vsftpd.conf было: anonymous_enable=YES стало: #anonymous_enable=YES было: #local_enable=YES стало: local_enable=YES было: #write_enable=YES стало: write_enable=YES было: #chroot_local_user=YES стало: chroot_local_user=YES
Сохраняем изменения в редакторе vim введя :wq
Перезагружаем ftp сервер vsftpd командой:
/etc/init.d/vsftpd restart
FTP сервер vsftpd для администрирования содержимого tftp сервера установлен, можно подключатся к ftp серверу используя ftp клиент, например TotalComander либо Filezilla.
Задача выполнена, tftp сервер установлен и для администрирования установлен и настроен ftp сервер vsftpd.
Add new comment