Меню Рубрики

Установка tftp сервера debian

Установка и настройка TFTP сервера в Debian и Ubuntu, управление через FTP сервер VSFTPD

Задача выполнялась на сервере с операционной системой Debian, но работать аналогично будет и на Ubuntu Linux.

Для некоторых телефонов и другого сетевого оборудования для обновления прошивок, обновления конфигов и так далее требуется tftp сервер с удобным администрированием файлов в каталоге.
Для TFTP сервера мы используем 3 разных способа:

  1. Програмное обспечение tftpd tftp с запуском через inetd.
  2. Сервер tftpd-hpa
  3. DNSMASQ сервер по инструкции: Установка и настройка сервера Dnsmasq: DNS, DHCP и TFTP серверов

Для администрирования содержимого в папке TFTP мы используем FTP сервер vsftpd.

Создаем пользователя tftpuser командой:

Вводим при запросе пароль и обязательно записываем пароль в блокнот с паролями.

Создаем папку где будут находится файлы tftp сервера командой:

Даем права на папку нашему пльзователю командой:

Теперь приступим к установе.

Способ № 1

Устанавливаем TFTP сервер и TFTP клиент командой:

В файле /etc/inetd.conf изменяем:

После этого применяем настройки перегрузив inetd командой:

TFTP сервер tftpd установлен и работает.

Способ № 2

Устанавливаем TFTP сервер и TFTP клиент командой:

Настраиваем, для этого изменяем файл:

Я в конфигурационном файле изменил папку содержащую файлы, пользователя, а также добавил параметр —ipv4. Вы можете также при потребности использовать еще такие параметры:

  • —create разрешает серверу создавать новые файлы,
  • —ipv4 предписывает ему ожидать подключений только на адресах IPv4,
  • —umask 027 предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
  • —permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.

TFTP сервер tftpd-hpa установлен и работает.

Для проверки работы можно создать файл в папке tftp сервера командой:

Скачиваем наш тестовый файл командой:

Tftp сервер работает по протоколу UDP на 69 порту, потому Вам нужно открыть на файрволе (если он используется) по протоколу UDP 69 порт.
Если файрвол не используется наш tftp сервер доступен как на 127.0.0.1 так и на внешнем IP сервера, например 192.168.1.1

Устанавливаем vsftpd для администрирования содержимого нашего tftp сервера командой:

Вносим изменения в конфигурационный файл /etc/vsftpd.conf ftp сервера vsftpd:

Сохраняем изменения в редакторе vim введя :wq

Перезагружаем ftp сервер vsftpd командой:

FTP сервер vsftpd для администрирования содержимого tftp сервера установлен, можно подключатся к ftp серверу используя ftp клиент, например TotalComander либо Filezilla.

Задача выполнена, tftp сервер установлен и для администрирования установлен и настроен ftp сервер vsftpd.

источник

tftp-сервер на Debian/Ubuntu

У многих системных администраторов рано или поздно возникает необходимость поднять tftp-сервер для каких-либо целей (например для заливки новой прошивки на коммутатор). Далее будет показано как можно развернуть tftp-сервер на Debian/Ubuntu Linux.

Способ #1. Использование стандартного tftpd

Самый простой и быстрый способ. Для начала нужно установить tftpd (и заодно клиент — tftp — он пригодится для проверки работоспособности сервера):

По умолчанию в качестве корня сервера tftpd будет использовать директорию /srv/tftp и работать с правами пользователя nobody, если вас это не устраивает — поменяйте соответствующим образом строку

После изменения этой строки нужно перезапустить супер-сервер inetd:

Далее нужно создать корневую директорию сервера и задать её владельца (далее будем предполагать что все настройки выполнены по умолчанию):

Теперь нам нужно протестировать наш сервер. Для этого создадим тестовый файл в корне сервера:

Если никаких ошибок выдано не было — проверяем содержимое скачанного файла. Если и тут всё хорошо — значит наш tftp-сервер нормально работает. Если же нет — проверьте права на корневую директорию сервера и её содержимое. Самой распространённой ошибкой является невозможность серверов прочитать свои собственные файлы.

Способ #2. Использование atftpd в режиме «inetd»

Установим atftpd (в качестве клиента можно использовать как классический tftp, так и его родной atftp, разницы между ними практически нет, но последний немного удобнее использовать в различных скриптах по причине большего количества аргументов командной строки):

Сам atftpd может работать как в качестве самостоятельного сервера, так и в качестве одной из подсистем суперсервера inetd (или любого его аналога). По умолчанию он настроен на работу через inetd и для его функционирования в /etc/inetd.conf добавляется строка:

Читайте также:  Установка high приборки е34

Параметров тут перечислено много и информацию по ним лучше всего искать в man-странице atftpd. Основное что нас тут интересует: сервис работает с правами пользователя nobody и считает корнем директорию /var/lib/tftpboot.

Пробуем скачать тестовый файл и просмотреть его содержимое:

Если всё пройдёт нормально то на стандартный вывод будет выдана надпись: «Test File». Если же вместо этого будут какие-то ошибки — нужно начинать искать проблему. Скорее всего она кроется в правах доступа (как и в предыдущем случае).

Способ #3. Использование atftpd в режиме «standalone»

Здесь всё практически так же, как и в предыдущем случае, только нет необходимости запускать суперсервер inetd, поскольку atftpd в этом случае работает как самостоятельный сервер. Если интересен именно такой вариант то нужно сделать следующее: первым делом закоментировать строку запуска atftpd в /etc/inetd.conf:

и переазпустить суперсервер:

Далее нужно поменять значение переменной USE_INETD в файле /etc/default/atftpd с true на false:

Дополнительные опции для atftpd при такой настройке перечисляются в переменной OPTIONS всё того же файла. Настройки по умолчанию совпадают с настройками по умолчанию для режима «inetd», соответственно проверка работоспособности сервера проводится так же.

Заключение

Выше были показаны три разных способа организации tftp-сервера на Debian/Ubuntu Linux. Приведённые рекомендации можно с минимальными поправками использовать на большинстве современных дистрибутивов.

Следует отметить что для корректной работы в файрволле должен быть разрешён доступ к серверу по порту 69/udp

источник

Установка 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, для этого выполним команду:

По завершении установки вы увидите сообщения вида:

Настройка tftpd

По умолчанию TFTP сервер настроен на использование директории /srv/tftp. Мы настроим TFTP сервер так, чтобы он использовал для работы директорию /tftpboot. В этой директории будут храниться файлы, которые мы можем скачать с сервера или же закачать в нее. Отредактируем файл /etc/inetd.conf.

В файле найдите строки вида:

Аргумент /srv/tftp команды in.tftpd указывает на каталог в котором будут храниться файлы TFTP сервера. Заменим /srv/tftp на /tftpboot.

Создадим директорию /tftpboot:

Перезапуск службы inetd

Чтобы новые настройки вступили в силу, перезапустим службу inetd:

На этом установка TFTP сервера завершена, проверим его работу.

Проверка работы TFTP сервера, использование TFTP клиента

Для начала установим TFTP клиент, чтобы можно было подключаться к TFTP северу. Для установки TFTP клиента выполните в терминале команду:

Теперь создадим на сервере в директории /tftpboot какой-нибудь файл, например, myfile. Для создания файла myfile и записи в него текста «This is my file» выполните в терминале команду:

Теперь мы можем запустить TFTP клиент командой tftp. Команда tftp принимает в качестве параметра IP адрес сервера. Если вы запускаете клиент на локальном компьютере, то укажите IP адрес 127.0.0.1, если же на удаленном компьютере, то укажите IP адрес сервера.

Когда клиент запустится, вы попадете в режим ввода команд для клиента TFTP. Выполните команду get myfile, которая означает получить файл с именем myfile с сервера.

Читайте также:  Установка zver в биос

В случае, если вы все сделали правильно, файл myfile загрузится с TFTP сервера. Для выхода из TFTP клиента введите команду quit.

источник

Установка Debian 9 (Stretch) через PXE сервер сетевой загрузки

В этом руководстве я расскажу как установить последнюю версию сервера Debian 9 через PXE-сервер с удаленных зеркал.

Для настройки среды PXE мы будем использовать DHCP-сервер ISC-DHCP, а файлы Netboot Debian будут обслуживаться в локальной сети сервером TFTPD-HPA. Установка системы через PXE может увеличить скорость установки как в случае развертывания нескольких установок Debian в течение короткого периода времени так и в тех случаях, когда машины не оснащены устройством CD/DVD ROM.

Требования

  • Debian 9 установленный на выделенной или на виртуальной машине.
  • Сетевой интерфейс с настроенным статичным IP адресом в том сегменте сети, который будет использоваться для динамического выделения IP-адреса и других связанных с ним настроек DHCP и PXE.
  • Локальный или удаленный аккаунт на сервере Debian с привилегиями root или прямой доступ к root аккаунту через консоль или SSH.
  • Интернет подключение необходимое для установки Debian по сети.

Начальная конфигурация

На первом этапе вам необходимо убедиться, что система Debian, которую мы будем использовать для установки новых серверов, имеет сетевой интерфейс, который будет использоваться для привязки к нему DHCP-сервера, настроенному со статическим IP-адресом.

Чтобы вручную настроить карту сетевого интерфейса, откройте файл сетевых интерфейсов и отредактируйте его, используя ваш любимый текстовый редактор, например nano. Замените строки настроек IP, описанные ниже, в соответствии с вашими сетевыми настройками.

Примерное содержимое файла:

После правки файла сетевых настроек сохраните его, закройте и опустите сетевой интерфейс, затем снова его поднимите для применения настроек так как показано ниже. В результате, ваша сетевая карта названная (к примеру) ens33, получит настройки которые вы указали в файле.

Для проверки того что новый IP адрес был применен для сетевого интерфейса можно выполнить следующую команду:

Иногда настройки IP не применяются при простом перезапуске сети или отключении и включении сетевого интерфейса. В этом случае придётся перезапустить систему.

Так же перед продолжением советую выполнить полное обновление системы, если вы по каким-либо причинам его ещё не сделали:

Следующим шагом будет установка некоторых необходимых утилит, которые будут использоваться для дальнейшего управления вашей системой из командной строки.

Установка и настройка сервера ISC-DHCP

Следующий шаг — установка сервера DHCPи настройка PXE, для этого войдите в систему под root или под аккаунтом с привилегиями root и установите пакет isc-dhcp-server из репозитория Debian 9.

Теперь сохраните резервную копию основного файла настроек сервера ISC-DHCP и измените содержимое конфигурационного файла на следующие настройки:

Содержимое dhcpcd.conf:

В приведенном выше файле конфигурации замените следующие строки соответственно.

Для определения диапазона сети в котором DHCP будет выделять IP адресадля вашего сегмента сети

option routers = IP вашего шлюза

option broadcast-address = широковещательный адрес

option subnet-mask = маска подсети

option time-servers = IP адрес вашего сетевого сервера времени NTP

option domain-name = доменное имя вашей сети

option domain-name-servers = IP адреса ваших DNS серверов

if option arch = 00:07 or option arch = 00:09 = если конечное устройство это машина с UEFI, загрузка пойдет с помощью файла bootnetx64.efi все другие не UEFI машины будут грузиться используя файла pxelinux.0. Обычно это машины со старым BIOS.

next-server 192.168.1.102 = это IP адрес TFTP сервера где файлы pxelinux.0 или bootnetx64.efi в вашей сети. В нашем случае TFTP сервер расположен на той же самой машине.

default-lease-time = время по умолчанию для выделенного IP адреса, перед тем как истечет срок его аренды.

max-lease-time = максимальное время до срока истечения аренды IP адреса.

Тут показано как статичный IP адрес объявляется DHCP сервером. Устройство с MAC адресом указанным в hardware ethernet всегда будет получать один и тот же IP адрес. Имя хоста указанное как nas — не имеет ззначения. вы можете указать любую произвольную строку.

Читайте также:  Установка камер на фьюжен

Теперь откройте файл isc-dhcp-server в директории /etc/default/ для правки, переместитесь в конец файла и добавьте вашу сетевую карту настроенную на статичный IP адрес в строку INTERFACESv4 так как показано в примере ниже. Убедитесь что вы добавили соответствующее имя вашего сетевого интерфейса. Используйте команды ip или ifconfig для вывода списка существующих сетевых интерфейсов и поиска правильного имени.

Вывод файла isc-dhcp-server

Наконец, перезапустите демона DHCP для применения изменений. Проверьте статус сервиса DHCP используя приведенную ниже команду, для проверки того, что сервис был корректно запущен.

так же, выполните команду ss или netstat для вывода списка открытых сокетов и проверки что DHCP сервер работает.

Если утилита netstat не установлена в системе вы можете установить её этой командой:

Установка TFTP сервера

Чтобы обслуживать файлы netboot, нужные клиентам для загрузки Debian удаленно через PXE и TFTP, вам также необходимо установить TFTP-сервер в вашей системе. Одним из наиболее распространенных и защищенных TFTP-серверов, доступных для локальных сетей, является сервер tftpd-hpa. Пакеты TFTP-HPA можно установить из официальных репозиториев, предлагаемых Debian 9. Выполните следующую команду, чтобы установить сервер tftpd-hpa в Debian 9.

После того как пакет будет установлен, откройте файл конфигурации TFTPD-HPA и убедитесь что он имеет следующее содержимое.

Вывод файла tftpd-hpa:

Если строка TFTP_OPTIONS имеет содержимое как показано ниже, убедитесь, что вы удалили флаг —create, для защиты TFTP-сервера.

Флаг create позволяет удалённым клиентам загружать файлы на tftp сервер. Этот параметр опасен, поскольку произвольные пользователи могут загружать или удалять файлы из корневого пути сервера TFTP.

Наконец, включите службу в вашей системе и запустите TFTP-сервер. проверьте статус демона tftp, выполнив следующую серию команд:

Вы так же можете использовать команду netstat или ss для получения списка всех открытых сетевых сокетов которые слушает ваша система. 67 и 69 порты UDP должны быть открытыми в вашей сети для корректной работы DHCP и TFTP сервера. Вы можете открыть эти порты в вашем фаерволле следующей командой:

Если вы используете правила iptables для управления политикой брандмауэра на своем сервере Debian, добавьте следующие правила, чтобы разрешить входящий трафик на портах 67 и 69 UDP, чтобы клиенты могли обращаться к серверам DHCP и TFTP.

На следующем шаге мы установим утилиты загрузчика Syslinux, выполнив следующую команду.

Развертывание файлов сетевой загрузки Debian 9

Далее, идем на страницу Debian с файлами сетевой установки по адресу https://www.debian.org/distrib/netinst и качаем последнюю версию архива Debian netboot используя утилиту wget.

После загрузки архива Debian netinstall распакуйте его содержимое напрямую в корень TFTP следующей командой.

Так же скопируйте файл memdisk поставляемый пакетом Syslinux в корень TFTP и осмотрите содержимое директории TFTP. Директория /srv/tftp должна иметь содержимое как показано на скриншоте.

Теперь, создайте символьную ссылку для загрузочного файла UEFI предоставляемого пакетом Debian netinstall в корень TFTP. И выполните длинный вывод списка файлов директории TFTP чтобы проверить что символьная ссылка правильно указывает на файл сетевой загрузки UEFI.

Сервер PXE читает и запускает конфигурационные файлы расположенные в директории pxelinux.cfg из корня TFTPв таком порядке: GUID файлы, MAC файлы и файл по умолчанию. Директория pxelinux.cfg уже была нами создана и размещена с конфигурационным по умолчанию файлом PXE потому как ранее мы извлекли требуемые файлы из архива Debian netinstall в директорию/srv/tftp. Нет необходимости дополнительно изменять конфигурационный файл PXE по умолчанию из каталога pxelinux.cfg. Однако, который контролирует актуальное загрузочное меню для Debian называется txt.cfg и расположен в директории /srv/tftp/debian-installer/amd64/boot-screens/ . Дефолтный конфигурационный файл pxe из директории pxelinux.cfg это по сути символьная ссылка на файл txt.cfg. Чтобы изменить или добавить другие параметры, которые нужно передать ядру в процессе сетевой загрузки или добавить другие записи или загрузить другие дистрибутивы Linux через PXE-сервер, вы должны открыть файл конфигурации txt.cfg PXE по умолчанию с помощью следующей команды и сделать соответствующие изменения.

источник

Добавить комментарий