- Рука помощи
- 1. Создание каталога для хранения данных tftp-сервера
- 2. Установка сервера
- 2.1 Установка tftpd-hpa
- 2.2 Установка atftpd
- 2.3 Установка и настройка tftpd
- 3. Устранение возможных проблем
- Заключение
- Background
- Introduction
- Installation
- Configuration
- Edit tftpd-hpa Configuration File
- Modify Permissions on TFTP Root Directory
- Restart the tftpd-hpa Service
- Additional Information
- External Links
- How to Install TFTP Server on Ubuntu 20.04 Server
- How to Install Ubuntu TFTP Server?
- Установка TFTP сервера (tftpd) в Ubuntu Linux
- Установка сервера tftpd и службы openbsd-inetd
- Настройка tftpd
- Перезапуск службы inetd
- Проверка работы TFTP сервера, использование TFTP клиента
Рука помощи
TFTP – простой протокол передачи файлов. В нем, в отличии от FTP, отсутствует авторизация. Используется в большей части для загрузки обновлений и конфигураций в сетевые устройства. В моей практике широко используется в работе с коммутаторами, также известно, что ряд АТС и телефонных аппаратов требуют наличия TFTP сервера для проверки обновлений и получения конфигурации при загрузке.
Предлагаю рассмотреть развертывание TFTP сервера на базе Ubuntu с учетом того, чтобы была возможность изменять его файлы посредством обычного FTP.
В Ubuntu доступно несколько TFTP-серверов, рассмотрим установку и настройку tftpd-hpa, atftpd и tftpd. Работать одновременно на 69 порту они не могут, так что Вам необходимо выбрать, какой именно сервер будет использоваться или в конфигурации указывать номер порта для каждого сервиса.
1. Создание каталога для хранения данных tftp-сервера
Я предлагаю пойти довольно простым путем. Создать пользователя tftp и в его домашней директории создать каталог, с которым будет работать tftp-сервера. Это обеспечит доступ по FTP при условии, если у Вас установлен FTP-сервер
# sudo adduser tftp
Добавляется пользователь «tftp» .
Добавляется новая группа «tftp» (1002) .
Добавляется новый пользователь «tftp» (1001) в группу «tftp» .
Создаётся домашний каталог «/home/tftp» .
Копирование файлов из «/etc/skel» .
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: password updated successfully
Changing the user information for tftp
Enter the new value, or press ENTER for the default
Full Name []: TFTP User
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Данная информация корректна? [Y/n] y
# sudo mkdir /home/tftp/tftp
# sudo chown tftp:tftp /home/tftp/tftp/
Пароль, который Вы укажете при создании пользователя, в дальнейшем используется при доступе по FTP для пользователя tftp
2. Установка сервера
2.1 Установка tftpd-hpa
В файле /etc/default/tftpd-hpa изменяем путь к tftp-каталогу и опции работы. Пример файла конфигурации
TFTP_USERNAME=»tftp» #Имя нашего пользователя
TFTP_DIRECTORY=»/home/tftp/tftp» #Путь к каталогу
TFTP_ADDRESS=»:69″ # IP-адрес и порт на котором работает сервер
TFTP_OPTIONS=»—secure —create» #—create – дает возможность производить запись, если ее не указать возможно только чтение
Перезапускаем сервис, чтобы изменения вступили в силу
2.2 Установка atftpd
sudo apt-get install atftpd
sudo touch /var/log/atftpd
Правим файл конфигурации /etc/default/atftpd на
USE_INETD=false
OPTIONS=»—tftpd-timeout 300 —retry-timeout 5 —mcast-port 1758 —mcast-addr 239.239.239.0-255 —mcast-ttl 1 —maxthread 100 —verbose=5 —port 69 —user tftp –group tftp —logfile /var/log/atftpd /home/tftp/tftp»
В примере конфигурационного файла указано ведение логов в файл /var/log/atftpd, если это Вам не нужно, уберите —logfile /var/log/atftpd
2.3 Установка и настройка tftpd
Это наиболее простой tftp-сервер, работает, как сервис inetd
В файле конфигурации /etc/inetd.conf
Данный TFTP-сервер «умеет» только отдавать файлы, но не принимает их.
3. Устранение возможных проблем
Посмотреть сервис, который занимает порт tftp
Если при работе сервера возникают ошибки, возможно, проблемы с правами доступа к каталогу. Для исправления прав доступа выполните:
Заключение
Для работы я предлагаю выбирать tftpd-hpa или atftpd, они имеют возможность «тонкой настройки», позволяя легко и быстро добиться нужного результата. В примере настроек, описанных выше, Вы сможете, как получать файлы, так и записывать их на TFTP-сервер, что полезно в случае, если необходимо хранить резервные копии конфигурации сетевого оборудования.
Если у Вас возникли вопросы, задавайте их в комментариях.
Background
A network administrator may find the need to deploy a TFTP server quickly and cost effectively. The reader may find that there is more than one TFTP server package available for Ubuntu systems.
including tftpd, atftpd, and tftpd-hpa. tftpd-hpa was chosen in this scenario because of its relative «up-to-date-ness» and availability of documentation.
Introduction
This document will guide the reader on how to setup a TFTP server that will allow clients to both download and upload files.
(This process has been completely tested and verified on 11/18/2015 using Ubuntu 14.04.3 Server and the latest version of tftpd-hpa available from the apt repositories (tftpd-hpa_5.2-7ubuntu3_amd64.deb))
Installation
sudo apt-get install tftpd-hpa.
Once the installation is complete, you will have a running TFTP server on your system that will be listening on all active network interfaces, on both IPv4 and IPv6. All you will be able to do is download files from the TFTP server. Uploading will not work. We will fix that in the Configuration section below.
You can confirm this by running.
sudo service tftpd-hpa status
The default configuration file for tftpd-hpa is /etc/default/tftpd-hpa.
The default root directory where files will be stored is /var/lib/tftpboot.
Configuration
Edit tftpd-hpa Configuration File
As mentioned before, all you will be able to do at this point is download files from the TFTP server. If you want to upload to the TFTP server, read on. To begin with, make a copy of the default tftpd-hpa configuration file.
sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.ORIGINAL
Then, edit the tftpd-hpa configuration file.
sudo vi /etc/default/tftpd-hpa
and change the line that reads.
TFTP_OPTIONS="--secure --create"
and save the file and exit the vi editor.
Modify Permissions on TFTP Root Directory
The root directory where files must be stored in order to access them via TFTP is /var/lib/tftpboot. If you want to be able to upload to that directory, then perform the following command.
sudo chown -R tftp /var/lib/tftpboot
Restart the tftpd-hpa Service
To make the changes take effect, the tftpd-hpa service must be restarted. This can be accomplished by performing the following command.
sudo service tftpd-hpa restart
At this point you should now have a TFTP server that allows you to both download and upload files.
Additional Information
tftpd-hpa seems to be somewhat tied to traditional tftpd. For more information try.
External Links
- http://chschneider.eu/linux/server/tftpd-hpa.shtml — The first «how to» that I used to go through this process.
- http://askubuntu.com/questions/443117/how-to-configure-tftpd-hpa-to-allow-upload-of-new-files — The final link that lead me to discover the process of allowing uploads.
TFTP (последним исправлял пользователь 67 2015-11-19 21:50:29)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
How to Install TFTP Server on Ubuntu 20.04 Server
For some old network devices, TFTP Server are really important to backup the device configuration or upgrade the device firmware. Even on many modern devices, TFTP server still supported as configuration backup source and firmware upgrade source. For that reason, it is a good idea to have one TFTP Server.
Install and configure Ubuntu TFTP Server on Ubuntu 20.04 server is very easy, there is no specific requirement needed. As long as your machine have Ubuntu Operating System installed, that’s enough to make sure TFTP server will run on it too.
How to Install Ubuntu TFTP Server?
You can also use sudo in every command and just need to enter the user password once, but I prefer become root and do everything after it without sudo command. So, the rest of this tutorial, assuming you are doing the same to become root first.
Note: make sure you are connected to the internet. If there is an error, try apt update -y to update your application repository database.
You only need to add —create to the TFTP_OPTIONS line to be able to upload to TFTP server. And also take a note for TFTP_USERNAME and TFTP_DIRECTORY
After the TFTP server installation, it will create /srv/tftp directory which will be the root directory to store and transfer files to TFTP client.
This directory is belong to root with nogroup, but TFTP server are working under tftp user and have no permission on that directory. You can either change the folder permission with chmod or change the folder owner and group to tftp (See TFTP_USERNAME line from the configuration file) . Make sure the folder owner and group has changed by ls -l /srv command.
systemctl restart tftpd-hpa
systemctl status tftpd-hpa
The service must be active and running, systemctl status tftpd-hpa will also shows you the error if something is wrong. Next post, I will post about How to configure tftpd-hpa to change TFTP Server root directory
Установка TFTP сервера (tftpd) в Ubuntu Linux
TFTP — простой протокол для передачи файлов по сети, использует протокол UDP (по порту 69), не поддерживает аутентификацию и шифрование. TFTP часто используется для загрузки файлов (прошивок, конфигураций) на устройства (маршрутизаторы, мини-АТС и другие), но его можно использовать и для простой пересылки файлов по сети между компьютерами. Для Linux доступно несколько TFTP демонов (серверов): tftpd, atftpd, tftpd-hpa. Вы можете использовать любой из них. Я расскажу, как устанавливать tftpd.
Помимо tftpd нужно будет установить службу inetd. inetd — представляет собой сетевую службу, которая обрабатывает входящие соединения (TCP, UDP) и запускает соответствующую программу для обработки запроса. Я буду использовать службу openbsd-inetd. Есть еще служба xinetd, вы можете ее использовать, но настраивается она несколько иначе.
Установка сервера tftpd и службы openbsd-inetd
Установим сервер tftpd и openbsd-inetd, для этого выполним команду:
sudo apt-get install openbsd-inetd tftpd tftp
По завершении установки вы увидите сообщения вида:
. Настраивается пакет openbsd-inetd (0.20080125-4ubuntu2) . * Stopping internet superserver inetd [ OK ] * Not starting internet superserver: no services enabled Настраивается пакет tftpd (0.17-17ubuntu1) .
Настройка tftpd
По умолчанию TFTP сервер настроен на использование директории /srv/tftp. Мы настроим TFTP сервер так, чтобы он использовал для работы директорию /tftpboot. В этой директории будут храниться файлы, которые мы можем скачать с сервера или же закачать в нее. Отредактируем файл /etc/inetd.conf.
В файле найдите строки вида:
#:BOOT: TFTP service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
Аргумент /srv/tftp команды in.tftpd указывает на каталог в котором будут храниться файлы TFTP сервера. Заменим /srv/tftp на /tftpboot.
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
Создадим директорию /tftpboot:
sudo chown -R nobody /tftpboot
Перезапуск службы inetd
Чтобы новые настройки вступили в силу, перезапустим службу inetd:
sudo /etc/init.d/openbsd-inetd restart
На этом установка TFTP сервера завершена, проверим его работу.
Проверка работы TFTP сервера, использование TFTP клиента
Для начала установим TFTP клиент, чтобы можно было подключаться к TFTP северу. Для установки TFTP клиента выполните в терминале команду:
Теперь создадим на сервере в директории /tftpboot какой-нибудь файл, например, myfile. Для создания файла myfile и записи в него текста «This is my file» выполните в терминале команду:
echo This is my file > /tftpboot/myfile
Теперь мы можем запустить TFTP клиент командой tftp. Команда tftp принимает в качестве параметра IP адрес сервера. Если вы запускаете клиент на локальном компьютере, то укажите IP адрес 127.0.0.1, если же на удаленном компьютере, то укажите IP адрес сервера.
Когда клиент запустится, вы попадете в режим ввода команд для клиента TFTP. Выполните команду get myfile, которая означает получить файл с именем myfile с сервера.
В случае, если вы все сделали правильно, файл myfile загрузится с TFTP сервера. Для выхода из TFTP клиента введите команду quit.