- Пошаговая инсталляция tftpd на Ubuntu 12.04 Desktop/Server
- От ekzorchik
- Установка TFTP сервера (tftpd) в Ubuntu Linux
- Установка сервера tftpd и службы openbsd-inetd
- Настройка tftpd
- Перезапуск службы inetd
- Проверка работы TFTP сервера, использование TFTP клиента
- How To Install, Configure, and Run Linux Tftp Client?
- Install Tftp
- Ubuntu, Debian, Mint, Kali:
- Fedora, CentOS, RedHat:
- tftp Command Syntax
- tftp Command Help
- Connect TFTP Server From Command Line
- TFTP Server Command Line Interactive Shell
- Upload or Put File To The TFTP Server
- Download or Get File From TFTP Server
- Show TFTP Connection Status
- Disconnect From TFTP Server by Exiting From TFTP Shell
- Verbose Mode
Пошаговая инсталляция tftpd на Ubuntu 12.04 Desktop/Server
Сразу хочю сказать, что данная заметка есть своего рода домашная шпаргалка по настройке сервиса (TFTP основан на транспортном протоколе UDP) задачей которого будет просто принимать/загружать файлы без возможностей аутентификации , если нужно аутентификация, то лучше использовать vsftpd. Как настроить и практически использовать можно посмотреть у меня на блоге. Мой блог — это кладезь практических знаний собранных в одном месте и постоянно пополняемый.
Задача: Поднять на локальной/сетевой станции упрощенный сервер передачи данных с целью принятия конфигурационных файлов с сетевых устройств, а так же возможность восстановить работу сетевого оборудования просто указав откуда взять готовый конфигурационный файл.
Для инсталляции сервиса в систему воспользуемся репозитариями «Ubuntu 12.04«:
ekzorchik@dv6:~$ sudo apt-get install tftpd-hpa
Далее перед тем, как перейти к редактированию конфигурационного файла нужно сперва создать каталог , либо на текущей файловой системе, либо выделив отдельный раздел, я буду рассматривать первый вариант:
ekzorchik@dv6:~$ sudo mkdir -p /media/tfpdconf
Редактируем права на каталог:
ekzorchik@dv6:~$ sudo chmod -R 777 /media/tfpdconf/
ekzorchik@dv6:~$ sudo chown -R nobody:nogroup /media/tfpdconf/
Отлично, теперь создаем резервную копию и переходим к внесению изменений настройки сервиса :
ekzorchik@dv6:~$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup
ekzorchik@dv6:~$ sudo nano /etc/default/tftpd-hpa
TFTP_OPTIONS=»—secure —create» ; allows client to create files
Сохраняем внесенные изменения в конфигурационный файл и перезапускаем службу для запуска сервиса с учетом изменений в конфигурационном файле :
ekzorchik@dv6:~$ sudo service tftpd-hpa restart
Ниже возможные команды по работе с сервисом tftpd-hpa:
service tftpd-hpa force-reload
проверяем прослушивается ли порт (UDP:69) в системе:
ekzorchik@dv6:~$ sudo netstat -tulpn | grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 2742/in.tftpd
Проверка работы TFTP сервера, использование TFTP клиента
Для начала установим TFTP клиент , чтобы можно было подключаться к TFTP северу. Для установки TFTP клиента выполните в терминале команду:
ekzorchik@dv6:~$ sudo apt-get install tftp
Теперь создадим на сервере в директории /tftpboot какой-нибудь файл , например, filik. Для создания файла filik и записи в него текста «This is my filik» выполните в терминале команду:
ekzorchik@dv6:~$ echo «This is my filik» > /media/tftpdconf/filik
Теперь мы можем запустить TFTP клиент командой tftp. Команда tftp принимает в качестве параметра IP адрес сервера. Если вы запускаете клиент на локальном компьютере, то укажите IP адрес 127.0.0.1, если же на удаленном компьютере, то укажите IP адрес сервера.
ekzorchik@dv6:~$ tftp 127.0.0.1
Когда клиент запустится, вы попадете в режим ввода команд для клиента TFTP. Выполните команду get filik, которая означает получить файл с именем filik с сервера . Стоит отметить, что копирование файла осуществляется в ту директорию, в которой при выполнении команды вы находились в консоле.
tftp> get filik
Received 18 bytes in 0.0 seconds
В случае, если вы все сделали правильно, файл filik загрузится с TFTP сервера. Для выхода из TFTP клиента введите команду quit.
А теперь практический пример, как с другой системы передать файлы (команда put) на TFTP сервер :
ekzorchik@srv-home:~$ tftp
tftp> put /etc/passwd 192.168.1.40:passwd.log
Sent 1755 bytes in 0.0 seconds
Здесь отметим, что команда put позволяет отправить запрос на запись к tftp серверу. Первый параметр указываем имя записываемого файла на локальной машине. Второй параметр имеет формат адрес tftp сервера:имя под которым файл будет записан на сервер.
192.168.1.33 (srv-home) — это другая машина c установленным tftp клиентом.
192.168.1.40 (dv6)— это машина на которой поднят TFTP сервис.
Теперь на машине dv6 можно посмотреть содержимого passwd.log его содержание представляет собой список пользовательских учётных записей (аккаунтов). И является первым и основным источником информации о правах пользователя операционной системы:
ekzorchik@dv6:~$ less /media/tftpdconf/passwd.log
Также не забываем настроить правила брандмауера:
ekzorchik@dv6:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -m tcp -p tcp —dport 69 -j ACCEPT
ekzorchik@dv6:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -m tcp -p udp —dport 69 -j ACCEPT
Вот собственно и весь процесс по поднятию службы TFTP у себя на системе. В последующих заметках данная заметка очень приходится, когда я буду подробно расписывать, как настроить бездисковую загрузку и установку системы, а также осуществлять бекап конфигурационных файлов на данный сервер с поднятой службой TFTP. На этом всё, с уважением ekzorchik.
От ekzorchik
Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.
Установка 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.
How To Install, Configure, and Run Linux Tftp Client?
Tftp (Trivial File Transfer Protocol) is a very simple client-server protocol used to transfer data and files over the network. Ftp is a very popular protocol but it has a lot of features that may not be needed always. Tftp is a lightweight alternative to Ftp protocol. We can say that Tftp is a featureless protocol because it only downloads and uploads files.
- Tftp has no authentication or authorization mechanism.
- Tftp protocol does not have a file listing feature.
- Tftp is clear text or not encrypted protocol
- Tftp is fast and simple to implement
- TFTP uses generally UDP
Install Tftp
The installation of Tftp tools is as simple as the protocol. As TFTP lightweight there is no dependency for other libraries.
Ubuntu, Debian, Mint, Kali:
We will install tftp for Debian, Mint, Ubuntu and Kali like below.
Fedora, CentOS, RedHat:
We can install tftp with the following command on Fedora, CentOS, RedHat.
tftp Command Syntax
We will use following syntax for tftp command in normal command-line usage.
tftp Command Help
Connect TFTP Server From Command Line
Connecting to the Tftp server is very easy. As stated at the beginning of the post Tftp does not have any authentication and authorization mechanisms. so Just providing the hostname of the server of IP address is enough to connect the Tftp server. In this example, we will connect 192.168.122.239 IP address.
TFTP Server Command Line Interactive Shell
After connection to the Tftp server, we will get an interactive shell. In this shell, we will issue commands to get information about status of the connection, download or get files, upload, or put files to the server. We can list available commands provided by Tftp shell with ? .
Upload or Put File To The TFTP Server
We can upload or put files to the TFTP server with the put command. In the example, we upload a file named body.txt
Download or Get File From TFTP Server
We can also download or get files from the Tftp server to get command. In the example, we get a file named body.txt from the Tftp server.
Show TFTP Connection Status
As TFTP works generally on the UDP protocol there is no session like TCP. But we can query current connection status with the status command. This status command will provide us information about the connected server IP address, current working mode, Rexmt-interval, Max-timeout, etc.
Disconnect From TFTP Server by Exiting From TFTP Shell
In order to quit from the Tftp shell we need to issue the q command.
Verbose Mode
While making transfer we may need more information about the transmission. We can get more information about the transfer with the verbose mode.