Установка vsftpd на CentOS 7

Проведемо установку і настройку сервісу vsftpd на CentOS 7. Щоб встановити його, потрібно виконати наступну команду:

yum install vsftpd

Запустимо і дозволимо сервісу запускатися під час завантаження:

systemctl start vsftpd
systemctl enable vsftpd

Ви можете перевірити, що служба vsftpd запущена, виконавши команду:

systemctl status vsftpd

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

● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-01-29 12:51:24 UTC; 10s ago
 Main PID: 28841 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─28841 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Налаштування vsftpd

Налаштування служби vsftpd виконується через файл/etc/vsftpd/vsftpd.conf.

Відкрийте файл конфігурації vsftpd для настройки:

nano /etc/vsftpd/vsftpd.conf

Включення доступу по FTP

Зробимо так, що дозволити підключаться до сервера тільки локальним користувачам. Для цього треба в пунктах anonymous_enable і local_enable змінити значення:

anonymous_enable=NO
local_enable=YES

Налаштування завантаження файлів

Розкоментуйте write_enable параметр, щоб дозволити завантаження і видалення файлів.

write_enable=YES

Так само вкажемо параметр local_umask – щоб на завантажений файли встановлювалися права 655, а на директорії 755:

local_umask=055

Налаштування домашнього FTP каталогу для користувача

Щоб користувачі не змогли отримати доступ до інших каталоги крім своєї, змініть параметр chroot_local_user:

chroot_local_user=YES

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

Так само, вкажемо значення наступної директиві, щоб надати користувачеві доступ з правом запису до його домашнього каталогу

allow_writeable_chroot=YES

Директорія користувача для FTP встановлюється в конфігураційний файл з параметром local_root, Ви можете змінити директорію на свій розсуд, наприклад:

local_root=/home/$USER/SUPER_FTP

Ми так само можемо створити файл .message в каталозі користувача і написати туди якесь вітання, яке буде показуватися при вході в каталог. Щоб включити цю функцію – додайте в конфігураційний файл рядок:

dirmessage_enable=YES

 

Налаштування FTP-з’єднання

Зазначимо мінімальний і максимальний діапазон портів для з’єднання:

pasv_min_port=30000
pasv_max_port=31000

 

Налаштування обмеження входу користувача

Щоб дозволити вхід на сервер тільки конкретним користувачам – додайте наступні рядки після рядка:

userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

Коли цей параметр включений, вам необхідно вказати які користувачі можуть входити в систему, додавши імена користувачів в файл / etc / vsftpd / user_list, при цьому кожен користувач повинен бути прописаний з нового рядка.

Налаштування захищеного з’єднання SSL/TLS

Щоб включити захищені FTP-передачі за допомогою SSL/TLS – потрібен сертифікат SSL. Ви можете використовувати існуючий сертифікат SSL, підписаний центром сертифікації, або створити самоподпісний сертифікат. Якщо у вас є домен або піддомен, який вказує на IP-адресу FTP-сервера, ви можете легко створити безкоштовний SSL-сертифікат Let’s Encrypt. В іншому випадку, ми можемо створити 2048-бітний закритий ключ і самоподпісний сертифікат, дійсний протягом 10 років. Виконайте цю команду і сертифікат з ключем буде збережено в одному файлі:

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

Після створення SSL-сертифіката відкрийте файл конфігурації vsftpd. Знайдіть рядки і пропишіть шлях до створеного файлу з сертифікатом і ключем:

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

Після змін перезапустіть службу vsftpd:

systemctl start vsftpd

Остаточний конфігураційний файл повинен виглядати так:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
chroot_local_user=YES
listen=NO
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

Якщо Вам принципово відстеження всіх дій FTP користувачів, тоді пропишіть в конфігураційний файл:

xferlog_std_format=YES
xferlog_enable=YES

Тим самим ми включили логи всіх дій, які будуть відбуватися на FTP-сервері.

Налаштування iptables

Якщо ви використовуєте брандмауер, вам необхідно дозволити FTP-трафік.Чтоби відкрити порти 21, 20 і діапазон портів 30000-31000, виконайте наступні команди:

iptables -A INPUT -p tcp --match multiport --dports 20:21-j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 30000:31000-j ACCEPT

 

створення користувача FTP

Щоб створити нового користувача myftpuser, виконаємо команду:

adduser myftpuser

Далі необхідно встановити пароль користувача:

passwd myftpuser

Додайте користувача до списку дозволених користувачів FTP:

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

Після чого потрібно створити каталоги та встановити необхідні права:

mkdir -p /home/myftpuser/ftp/upload
chmod 550 /home/myftpuser/ftp
chmod 750 /home/myftpuser/ftp/upload
chown -R myftpuser: /home/myftpuser/ftp

Після чого, користувач зможе завантажувати свої файли в директорію ftp/upload.

На цьому настройка vsftpd закінчена. Ви можете підключатися до свого облікового запису за допомогою будь-якого FTP-клієнта, наприклад FileZilla.

Goodhoster.NET
Додати коментар