Перейти к содержимому

Настройка TFTP-сервера в CentOS 8

Полная форма TFTP — Тривиальный протокол передачи файлов. Он работает так же, как FTP (протокол передачи файлов). Но TFTP не имеет встроенной функции безопасности. TFTP предназначен для работы в качестве общедоступного (в частной сети) сервера конфигурации или встроенного программного обеспечения. TFTP также является важной частью настройки сетевого загрузочного сервера. Протоколы сетевой загрузки PXE и ​​BOOTP используют TFTP для загрузки необходимых загрузочных файлов. В этой статье я собираюсь показать вам, как настроить CentOS 8 в качестве TFTP-сервера. Итак, начнем.

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

Пакет TFTP-сервера доступен в официальном репозитории CentOS 8. Таким образом, вы можете легко установить его на CentOS 8.

Сначала обновите кэш хранилища пакетов CentOS 8 с помощью следующей команды:

Теперь установите пакет TFTP-сервера с помощью следующей команды:

Настройка службы TFTP-сервера:

Конфигурация службы systemd по умолчанию для TFTP не работает корректно в CentOS 8. Поэтому вы должны создать собственную версию службы systemd для сервера TFTP.

Сначала скопируйте файл /usr/lib/systemd/system/tftp.service по умолчанию в /etc/systemd/system/tftp-server.service с помощью следующей команды:

Затем скопируйте файл /usr/lib/systemd/system/tftp.socket по умолчанию в /etc/systemd/system/tftp-server.socket с помощью следующей команды:

Теперь отредактируйте файл /etc/systemd/system/tftp-server.service с помощью следующей команды:

$ sudo nano /etc/systemd/system/tftp-server.service

По умолчанию содержимое файла tftp-server.service выглядит следующим образом. Вы должны изменить строки, как отмечено на скриншоте ниже.

Изменить

Requires=tftp.socket на Requires=tftp-server.socket , ExecStart = /usr/sbin/in.tftpd -s /var/lib/tftpboot на ExecStart = /usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot и измените Also=tftp.socket на Also=tftp-server.socket

Здесь ExecStart = /usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot используется для запуска демона TFTP-сервера. Здесь опция -c используется для разрешения создания новых файлов на TFTP-сервере. Параметр -p используется для решения многих проблем с правами доступа к файлам и каталогам. Опция -s используется для установки корневого каталога TFTP-сервера. В этой статье корневым каталогом TFTP является /var/lib/tftpboot .

После того, как вы измените эти строки, файл tftp-server.service должен выглядеть так, как показано на скриншоте ниже.

Вы также должны добавить новую строку WantedBy = multi-user.target после строки [Install] .

Окончательный файл tftp-server.service должен выглядеть так, как показано на скриншоте ниже.

Теперь отредактируйте файл /etc/systemd/system/tftp-server.socket с помощью следующей команды:

$ sudo nano /etc/systemd/system/tftp-server.socket

Файл tftp-server.socket по умолчанию должен выглядеть так, как показано на скриншоте ниже.

Вы должны добавить новую строку BindIPv6Only=both после строки ListenDatagram = 69 .

Окончательный файл tftp-server.socket должен выглядеть так, как показано на скриншоте ниже.

Теперь проверьте состояние только что созданной службы tftp-server с помощью следующей команды:

Как видите, служба tftp-server неактивна (не запущена) и отключена (не запускается автоматически при загрузке системы).

Теперь запустите службу tftp-server с помощью следующей команды:

Кроме того, добавьте службу tftp-server к загрузке системы вашего компьютера CentOS 8 с помощью следующей команды:

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

Если у вас включен SELinux, разрешите анонимный доступ на запись к TFTP-серверу с помощью следующей команды:

ПРИМЕЧАНИЕ. Команда setsebool может быть недоступна на вашем компьютере с CentOS 8. Если это так, установите пакет policycoreutils-python с помощью следующей команды:

Теперь разрешите чтение, запись и выполнение в корневой каталог TFTP /var/lib/tftpboot от любого пользователя с помощью следующей команды:

Настройка брандмауэра:

TFTP-сервер работает на UDP-порту 69.

Если на вашем компьютере CentOS 8 настроен брандмауэр (что весьма вероятно), вам нужно разрешить доступ к UDP-порту 69 с помощью следующей команды:

Чтобы изменения вступили в силу, выполните следующую команду:

Использование TFTP-сервера:

Чтобы получить доступ к TFTP-серверу, вы должны знать IP-адрес вашего компьютера с CentOS 8.

Вы можете найти IP-адрес вашего компьютера CentOS 8 с помощью следующей команды:

В моем случае IP-адрес 192.168.100.10. Это будет отличаться для вашего адреса. Не забудьте заменить его на ваш.

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

В CentOS 8 / RHEL 8 вы можете установить клиентскую программу TFTP с помощью следующей команды:

В Ubuntu / Debian и других дистрибутивах Linux на основе Ubuntu / Debian вы можете установить клиентскую программу TFTP с помощью следующей команды:

Чтобы загрузить файлы на ваш TFTP-сервер или загрузить файлы с вашего TFTP-сервера, вам нужно перейти в каталог, где есть файл / файлы, которые вы хотите выгрузить на TFTP-сервер, или где вы хотите сохранить загруженный файл / файлы с сервера TFTP.

Допустим, вы хотите загрузить некоторые файлы / файлы из каталога /etc, а также загрузить и сохранить некоторые файлы / файлы в каталог /etc. Итак, перейдите в каталог /etc с помощью следующей команды:

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

Вы можете проверить состояние вашего соединения с помощью следующей команды:

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

Чтобы загрузить файл fstab (скажем так), выполните следующую команду:

Если вы хотите скачать и сохранить файл / файлы в каталог /etc , вам нужно будет запустить клиентскую программу tftp с привилегиями sudo.

Чтобы загрузить файл hosts и сохранить его в каталоге / etc , выполните следующую команду:

Вот как вы настраиваете TFTP-сервер в CentOS 8 и используете его. Спасибо за чтение этой статьи.

Опубликовано вLinux

Ваш комментарий будет первым

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *