Tftp сервер centos 8 настройка

Обновлено: 04.07.2024

Установка 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 с помощью следующей команды:

$ sudo cp - v / usr / lib / systemd / system / tftp . service / etc / systemd / system / tftp - server . service

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

$ sudo cp - v / 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 доступен в официальном репозитории пакетов CentOS 8. Таким образом, вы можете легко установить его на CentOS 8.

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

$ судо dnf makecache


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

$ судо днф установить tftp-сервер


Для подтверждения установки нажмите Y а затем нажмите .


Должен быть установлен пакет сервера TFTP.


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

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

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

$ судо cp -v / usr / lib / systemd / система / tftp.service / так далее / systemd / система / tftp-server.service


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

$ судо cp -v / usr / lib / systemd / система / tftp.socket / так далее / systemd / система / tftp-server.socket


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

$ судо vi / так далее / systemd / система / tftp-server.service


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


Изменять Требуется = tftp.socket к Требуется = tftp-server.socket, изменять ExecStart = / usr / sbin / in.tftpd -s / var / lib / tftpboot к ExecStart = / usr / sbin / in.tftpd -c -p -s / var / lib / tftpboot и изменить Также = tftp.socket к Также = tftp-server.socket.

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

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

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


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


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

$ судо vi / так далее / systemd / система / tftp-server.socket


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

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


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


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

$ судо systemctl status tftp-server.service

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


Теперь начнем tftp-сервер service с помощью следующей команды:

$ судо systemctl start tftp-server.service


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

$ судо systemctl включить tftp-server.service


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

$ судо systemctl status tftp-server.service


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

$ судо Setsebool -П tftp_anon_write 1


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

$ судо ням установить -у policycoreutils-python

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

$ судо chmod 777 / вар / lib / tftpboot


Настройка межсетевого экрана:

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

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

$ судо firewall-cmd --добавить сервис = tftp --постоянный


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

$ судо firewall-cmd --reload


Используя TFTP-сервер:

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

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

В моем случае IP-адрес 192.168.20.129. Для вас все будет иначе. Так что не забудьте заменить его теперь своим.


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

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

$ судо днф установить -у tftp


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

$ судо подходящий установить -у tftp


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

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

$ компакт диск / так далее


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


Вы должны быть связаны.


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


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


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

tftp > поставить fstab


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

$ судо tftp 192.168.20.129


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

tftp > получить хозяев


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

FTP (File Transfer Protocol) - это клиент-серверный сетевой протокол, позволяющий пользователям передавать файлы в удаленную сеть и скачивать их из нее. Для систем на базе Linux разработано несколько FTP-серверов с открытым исходным кодом. Наиболее популярные из них - PureFTPd, ProFTPD и vsftpd.

В этой статье мы разберемся как установить FTP CentOS 8 на примере vsftpd. Это стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, настройку vsftpd, чтобы ограничить пользователей их домашним каталогом и шифровать все передачи с использованием SSL/TLS.

Установка FTP сервера CentOS

Для более безопасной и быстрой передачи данных используйте SCP или SFTP. Внимание! Все команды необходимо выполнять от имени пользователя sudo.


Пакет vsftpd доступен по умолчанию в репозиториях CentOS. Для его установки, выполните следующую команду:

yum install vsftpd


Установка FTP CentOS завершена, далее надо запустить службу vsftpd и поместить ее в автозагрузку:

systemctl start vsftpd


systemctl enable vsftpd


Теперь проверим успешность запуска службы vsftpd набрав команду:

systemctl status vsftpd


Вывод команды представлен на рисунке ниже:


Настройка vsftpd на CentOS

Настройка vsftp CentOS 8 производится редактированием конфигурационного файла /etc/vsftpd/vsftpd.conf. Основные параметры хорошо задокументированы в файле конфигурации. Все доступные варианты конфигураций можно найти на официальном сайте vsftpd.

В статье мы рассмотрим некоторые важные аспекты, необходимые для настройки и безопасной установки vsftpd. Для начала откройте конфигурационный файл vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf


1. Доступ по FTP

Мы разрешим только локальным пользователям доступ к FTP-серверу. Для этого найдем следующие параметры убедимся, что их значения соответствуют строкам ниже:

Раскомментируйте параметр write_enable для того, чтобы разрешить вносить изменения в файловую систему, такие как загрузка и удаление файлов:


2. Включение chroot

Запретим пользователям, работающим по FTP, доступ к файлам вне их домашнего каталога, раскомментировав параметр chroot:


По умолчанию, когда chroot включен, vsftpd откажется загружать файлы, даже если каталог, в которым ограничен пользователь, доступен для записи. Это сделано для предотвращения нарушений безопасности.

Используйте один из следующих способов для включения загрузки chroot.

Способ 1. Рекомендуемый способ разрешить загрузку - оставить chroot включенным и настроить каталоги FTP. По этому способу мы создадим каталог ftp на домашнем каталоге пользователя, который будет служить chroot и записываемым каталогом для загрузки файлов.


Способ 2. Другой вариант - добавить следующий параметр в файл конфигурации vsftpd. Используйте этот параметр, если вы хотите предоставить пользователям права на запись в их домашнюю директорию.


3. Пассивные FTP соединения

Сервер vsftpd может использовать любой порт для пассивных FTP-соединений. Мы определим диапазон портов используемый для соединений, а затем откроем их в нашем брандмауэре. Добавьте следующие строки в файл конфигурации:


4. Ограничение входа пользователей

Чтобы разрешить доступ к FTP-серверу только определенным пользователям, добавьте после строки userlist_enable = YES следующие строки:


Если этот параметр активен, то вам нужно явно перечислить, какие пользователи могут входить в систему, указав имена пользователей в файле находящемся по пути /etc/vsftpd/user_list (по одному пользователю на каждую новую строку).

5. Настройка SSL / TLS

Для обеспечения безопасности передачи файлов применяют шифрование FTP-передачи с использованием SSL / TLS. Осуществляя настройку шифрования вам необходимо иметь SSL-сертификат и настроить FTP-сервер для его использования.

Закрытый ключ и сертификат будут сохранены в одном файле:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem


После создания SSL сертификата откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf


Добавьте строки rsa_cert_file и rsa_private_key_file и укажите в их значениях pam на путь к созданному файлу сертификата. Затем добавьте строку ssl_enable установив для нее значение YES:


После произведенной настройки, если не указано иное, FTP-сервер всегда будет использовать TLS для установления защищенных соединений с клиентом. Перезапустите службу vsftpd.

После внесения всех изменений, за исключением комментариев, вы должны получить файл конфигурации vsftpd примерно следующего содержания:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

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

sudo systemctl restart vsftpd

6. Открытие портов брандмауэра

Если вы используете брандмауэр, вам нужно разрешить FTP-трафик открыв порт 21 (порт команд FTP), порт 20 (порт данных FTP) и 30000-31000 (диапазон пассивных портов), набрав следующие команды:

sudo firewall-cmd --permanent --add-port=20-21/tcp

sudo firewall-cmd --permanent --add-port=30000-31000/tcp


Для применения изменений потребуется перезапуск брандмауэра:


Настройка ftp CentOS практически завершена.

7. Создание пользователя FTP

Пришло время протестировать наш FTP-сервер создав нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить доступ по FTP, пропустите первую команду.
  • Если вы установили allow_writeable_chroot = YES в своем файле конфигурации, пропустите третью команду.

Чтобы создать ftp пользователя centos 8 с именем newftpuser выполните:

sudo adduser newftpuser


Добавим пользователя в список разрешенных пользователей FTP:

echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list


Создадим каталоги FTP и установим для них правильные разрешения:

sudo mkdir -p /home/newftpuser/ftp/upload

sudo chmod 550 /home/newftpuser/ftp

sudo chmod 750 /home/newftpuser/ftp/upload

sudo chown -R newftpuser: /home/newftpuser/ftp


Как писалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload. На этом этапе мы полностью настроили FTP-сервер, и вы, используя любой FTP-клиент настроенный на использование шифрования TLS, сможете подключиться к вашему серверу.

8. Отключение доступа к SSH

Наберите следующие команды, для создания /bin/ftponly оболочки и назначения ее исполняемой по умолчанию:

sudo chmod a+x /bin/ftponly


Затем добавьте новую оболочку в список допустимых оболочек в файле /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells


Теперь измените оболочку пользователя по умолчанию на /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly


Используйте ту же команду, чтобы изменить оболочку для всех пользователей, которым вы хотите предоставить только FTP доступ.

Заключение

Из нашей статьи вы смогли узнать, как легко и быстро выполняется установка и настройка ftp centos 8. Это популярный, быстрый и безопасный FTP-сервер для вашей системы под управлением CentOS 8. Спасибо за прочтение.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

FTP (протокол передачи файлов) - это сетевой протокол клиент-сервер, который позволяет пользователям обмениваться файлами с удаленными компьютерами.

FTP использует простой текст для передачи данных и доступа к данным. Для платформы операционной системы Linux доступно несколько различных FTP-серверов с открытым исходным кодом. Наиболее часто используемые FTP-серверы - это VSFTPD, ProFTPD и PureFTPD. Протокол FTP использует порт номер 21 для подключения и порт 20 для передачи данных. В пассивном режиме используются дополнительные порты.

В этом руководстве мы узнаем, как установить и настроить VSFTPD. Он очень безопасен и стабилен и доступен в репозитории пакетов CentOS 8.

Установить VSFTP FTP-сервер

Чтобы установить пакет VSFTPD в CentOS 8, откройте терминал или подключитесь к серверу по SSH как пользователь root и введите следующую команду:

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


Сделайте копию исходного файла конфигурации /etc/vsftpd/vsftpd.conf , набрав следующую команду:


Теперь отредактируйте файл конфигурации, с помощью следующей команды:


Найдите и установите в нем следующие директивы:

Настроить список пользователей на FTP-сервере

По умолчанию все пользователи, которые находятся в файле user_list , расположенном по адресу / etc / vsftpd / user_list - разрешено использовать FTP-сервисы.

Чтобы ограничить пользователей в chrooted окружении , используйте следующие директивы:

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

Если вы хотите предоставить общий доступ к наша система добавляет эту директиву в ваш файл конфигурации:

Сохраните и закройте файл конфигурации.

Теперь создайте chroot_list в каталоге / etc / vsftpd / , используя следующую команду:


Добавьте в этот список только тех пользователей, которым вы хотите предоставить общий доступ к система.

Создайте пользователя для доступа к службам FTP

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

Добавьте этого пользователя в файл user_list , чтобы ограничить пользователя их домашним каталогом, используйте следующая команда:

Введите « i » для вставки и введите это имя пользователя, как показано на рисунке:


Нажмите ESC и введите : wq! для сохранения файла.

Если вы хотите предоставить конкретному пользователю общий доступ к системе, добавьте этого пользователя в / etc / vsftpd / chroot_list.

Перезапустите службу VSFTPD :


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


Настроить брандмауэр для FTP

Чтобы разрешить службу FTP через брандмауэр, используйте следующую команду:



Тестирование FTP-сервера с Windows Machine

Для подключения к FTP-серверу необходимо клиентское программное обеспечение. Наиболее часто используемым программным обеспечением для FTP является FileZilla , WINSCP, и т. Д. Я использую FileZilla для подключения.

Откройте программное обеспечение FTP-клиента, введите следующие данные для подключения:

Host -> IP-адрес или имя хоста.

Имя пользователя : Имя пользователя FTP (в моем случае это user1)

Пароль

Порт: 21


После успешного подключения вы можете загружать / скачивать файлы в соответствии с вашими потребностями.


Заключение

В этом руководстве мы узнали, как настроить FTP-сервер на Centos 8, как ограничить пользователей их домашним каталогом и как предоставить им доступ для чтения / записи. Мы также увидели, как предоставить конкретному пользователю общий доступ к системе.

Читайте также: