FTP (File Transfer Protocol) - это сетевой протокол клиент-сервер, который позволяет пользователям обмениваться файлами с удаленными компьютерами и обратно.
FTP использует обычный текст для передачи данных и доступа к ним. Существует несколько различных FTP-серверов с открытым исходным кодом, доступных для платформы операционной системы Linux. Наиболее часто используемыми FTP-серверами являются VSFTPD, ProFTPD и PureFTPD. Протокол FTP использует порт номер 21 для соединения и порт 20 для передачи данных. В пассивном режиме используются дополнительные порты.
В этом руководстве мы узнаем, как установить и настроить VSFTPD. Он очень безопасен и стабилен и доступен в репозитории пакетов CentOS.
Установка FTP-сервер VSFTP
Чтобы установить пакет VSFTPD на CentOS 8, откройте терминал или подключитесь к вашему серверу по SSH от имени пользователя root и введите следующую команду:
1 | dnf install -y vsftpd |
После установки пакета запустите и включите службу VSFTPD с помощью следующей команды:
1 2 | systemctl enable vsftpd systemctl start vsftpd |
Сделайте копию оригинального конфигурационного файла /etc/vsftpd/vsftpd.conf, введя следующую команду:
1 | cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk |
Теперь отредактируйте файл конфигурации, используя следующую команду:
1 | nano /etc/vsftpd/vsftpd.conf |
Отредактируйте конфигурационный файл с помощью nano
Найдите и установите в нем следующие директивы:
1 2 3 4 5 6 7 8 9 10 11 | anonymous_enable=NO # запретить анонимных пользователей (Unknown users) local_enable=YES # разрешить локальных пользователей write_enable=YES # разрешить ftp команды записи local_umask=022 # установить umask по умолчанию dirmessage_enable=YES # разрешить сообщения при смене каталога xferlog_enable=YES # разрешить протоколирование загрузки и скачивания файлов connect_from_port_20=YES # обеспечить соединения PORT transfer с порта 20 xferlog_std_format=YES # сохранить стандартный формат журнала listen=NO # предотвратить запуск vsftpd в автономном режиме listen_ipv6=YES # разрешить vsftpd слушать на IPv6 сокете pam_service_name=vsftpd # установить имя службы PAM на vsftpd |
Настройка списка пользователей в FTP-сервере
По умолчанию всем пользователям, находящимся в файле user_list, расположенном по адресу /etc/vsftpd/user_list, разрешено использовать FTP-сервисы.
Чтобы ограничить пользователей в среде chrooted, используйте следующие директивы:
1 2 | chroot_local_user=YES # Создать chrooted-окружение для пользователей allow_writeable_chroot=YES # Разрешить запись пользователю в каталог chroot jail. |
Чтобы ограничить пользователей их домашним каталогом, используйте следующие директивы:
1 2 | userlist_enable=YES # разрешить vsftpd загружать имена пользователей userlist_deny=NO # разрешить доступ пользователям из списка пользователей |
Если вы хотите предоставить общий доступ к нашей системе, добавьте эту директиву в ваш конфигурационный файл:
1 2 | chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list # пользователи в этом списке файлов имеют общий доступ. |
Сохраните и закройте конфигурационный файл.
Теперь создайте chroot_list в каталоге /etc/vsftpd/, используя следующую команду:
1 | touch /etc/vsftpd/chroot_list |
Добавьте в этот список только тех пользователей, которым вы хотите предоставить общий доступ к системе.
Создание пользователя для доступа к службе FTP
Чтобы создать пользователя для использования службы FTP, выполните следующую команду:
1 2 | useradd user1 passwd user1 |
Добавьте этого пользователя в файл user_list. Чтобы ограничить пользователя домашним каталогом, выполните следующую команду:
1 | nano /etc/vsftpd/user_list |
Если вы хотите предоставить определенному пользователю общий доступ к системе, добавьте его в /etc/vsftpd/chroot_list.
Перезапустите службу VSFTPD:
1 | systemctl restart vsftpd |
Проверьте состояние службы FTP Service с помощью следующей команды:
1 | systemctl status vsftpd |
Настройка брандмауэра для FTP
Чтобы разрешить службу FTP через брандмауэр, используйте следующую команду:
1 2 | firewall-cmd --add-service=ftp --permanent firewall-cmd --reload |
Примените изменения в конфигурации брандмауэра
Тестирование FTP-сервера с машины Windows
Для подключения к FTP-серверу необходимо клиентское программное обеспечение. Наиболее часто используемыми программами для FTP являются FileZilla, WINSCP и т.д. Я использую FileZilla для подключения.
Откройте программу FTP-клиент, введите следующие данные для подключения:
Host - > IP-адрес или имя хоста.
Имя пользователя: имя пользователя FTP (в моем случае это user1).
Пароль:
Порт: 21
После успешного подключения вы можете загружать/выгружать файлы в соответствии с вашими потребностями.

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