Skip to content

Получаем доступ к папке по протоколу FTP

В данной заметке показан пример по получению доступа к папке /home/<USER_NAME>/ftp по протоколу FTP

Установка компоненов системы

Установим пакет для работы с FTP

bash
sudo apt install -y vsftpd
bash
sudo dnf install -y vsftpd

Включаем службу

bash
sudo systemctl enable --now vsftpd

Узнать статус работы службы можно выполнив команду

bash
systemctl status vsftpd

Конфигурация пакета vsftpd

Создадим резервную копию файла конфигурании FTP

bash
sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

Создадим новый файл конфигурации

bash
sudo nano /etc/vsftpd/vsftpd.conf

Заполним следущим образом (выбираем один из уровней доступа)

ini
anonymous_enable=YES
anon_root=/home/<USER_NAME>/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
no_anon_password=YES
hide_ids=YES
pasv_min_port=40000
pasv_min_port=40001
ini
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
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES

Настройка firewall для работы FTP

Добавим сервис в исключения фаерволла

bash
sudo firewall-cmd --permanent --add-service=ftp

Если настраивали анонимный доступ, также добавим в исключения порты

bash
sudo firewall-cmd --permanent --add-port=40000-40001/tcp

Перезапускаем фаерволл

bash
sudo firewall-cmd --reload

Настройка SELinux для работы FTP

Настраеваем SELinux для разрешения пассивного режима FTP

bash
sudo setsebool -P ftpd_use_passive_mode on

Перезапускаем службу FTP

bash
sudo systemctl restart vsftpd

Готово. После выполненных операций у нас должен появится доступ к папке по протоколу FTP.

Создано с VitePress