Встановлення та налаштування FTP сервера на RedHat подібних системах

У цій статті ми розповімо, як встановити та налаштувати FTP сервер, ми будемо використовувати Linux дистрибутив AlmaLinux.

Оновлення та встановлення vsftpd

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

Зверніть увагу, що я працюю від звичайного користувача “$:”, якщо ви працюєте від root-а “#:”, вам не потрібно використовувати команду sudo.

1
sudo yum update

Далі Вам відобразиться [sudo] password for ім’я_користувача: , введіть пароль (Він не буде відображатися) і натисніть Enter для продовження.

Оновлення системи

Погоджуємось на оновлення пакетів, тиснемо “y”, а потім Enter:

Оновлення пакетів

Погоджуємось на прийом даного ключа, тиснемо “y”, а потім Enter:

Погоджуємось на прийом даного ключа

Після того як Ви оновили пакети, можемо приступати до встановлення vsftpd – саме це ПЗ і підніматиме наш FTP сервер:

1
sudo yum install vsftpd

Погоджуємося на встановлення vsftpd та інших компонентів, тиснемо “y”, а потім Enter:

Встановлення vsftpd

Після того, як Ви встановили vsftpd, необхідно запустити службу та додати до автозавантаження:

1
sudo systemctl enable --now vsftpd

Увімкнення служби та додавання до автозавантаження vsftpd

Перевіряємо, чи запустилася служба, вводимо:

1
sudo systemctl status vsftpd

Статус служби vsftpd

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

Відредагуємо файл конфігурації, vsftpd.conf (я буду використовувати Vim):

1
sudo vim /etc/vsftpd/vsftpd.conf

Вносимо конфігурацію:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Забороняємо анонімний вхід
anonymous_enable=NO
# Дозволяємо вхід для локальних користувачів (які є в /etc/passwd)
local_enable=YES
# Дозволяємо користувачам вносити зміни до файлової системи, тобто, завантаження, створення та видалення файлів
write_enable=YES
# Включаємо ведення логів
xferlog_enable=YES
# Включаємо ведення логів у стандартному wu-ftpd стилі
xferlog_std_format=YES
# Включаємо опцію, яка дозволяє запускати сервер, незалежно від того, чи запущений inetd/xinetd
listen=YES
# Делает тоже самое что и listen, но для IPv6, мы его использовать не будем
#listen_ipv6=YES
# Задамо ім'я PAM сервісу
pam_service_name=vsftpd
# !!! Створюємо правила для входу дозволених користувачів !!!
# Дозволяємо завантажувати список імен з файлу userlist (За замовчуванням знаходитись у: /etc/vsftpd/user_list та забороняє вхід користувачам, що знаходяться у цьому списку)
userlist_enable=YES
# Змінюємо шлях до файлу, який має завантажувати vsftpd
userlist_file=/etc/vsftpd/userlist_allow
# Забороняємо користувачам, які не входять до списку дозволених, вхід
userlist_deny=NO

Файл конфігурації vsftpd

Створення користувача та відключення доступу до SSH

Тепер можна створити ftp користувача та додати його до списку дозволених користувачів, створюється користувач цією командою:

1
sudo useradd -m ftp_user

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

Тепер зробимо так щоб у користувача неможливо було увійти за допомогою ssh, для початку нам необхідно створити оболонку, яка виводитиме текст: “This account, only FTP access.”, робиться це командами:

1
echo -e '#!/bin/sh\necho "This account, only FTP access."' | sudo tee -a /bin/ftpuseronly

Створення оболонки для входу користувача лише за ftp

Даємо права виконання цього файлу:

1
sudo chmod a+x /bin/ftpuseronly

Даємо права на виконання ftp оболонки

Додаємо оболонку до списку оболонок:

1
echo "/bin/ftpuseronly" | sudo tee -a /etc/shells

Додаємо оболонку ftp до списку оболонок

Змінюємо оболонку для нашого ftp користувача:

1
sudo usermod ftp_user -s /bin/ftpuseronly

Додаємо нашого ftp користувача в оболонку ftp

Для додавання користувача до списку дозволених пишемо у файл userlist_allow ім’я користувача, файл необхідно створити, робиться це командою:

1
sudo touch /etc/vsftpd/userlist_allow

Тепер можна додати користувача до цього списку або вручну або за допомогою цієї команди:

1
echo "ftp_user" | sudo tee -a /etc/vsftpd/userlist_allow

Додавання ftp користувача до списку дозволених користувачів

Створимо пароль для користувача:

1
sudo passwd ftp_user

Створення паролю для ftp користувача

Створення правила в firewall, і перезапуск служби

Тепер нам необхідно створити правило в firewall, яке відкриє порт для ftp:

1
sudo firewall-cmd --zone=public --add-service=ftp --permanent

Перезавантажуємо firewall, щоб зміни набули чинності:

1
sudo firewall-cmd --reload

Ну і нарешті ми можемо перезавантажити наш сервер і радіти:

1
sudo systemctl restart vsftpd

Приклад використання за допомогою filezilla:

Підключення до ftp сервера за допомогою FileZilla

Читайте також: Встановлення та налаштування Samba-сервера на RedHat-подібні системи.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Scroll to top