У цій статті ми розповімо, як встановити та налаштувати 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, необхідно запустити службу та додати до автозавантаження:
1 | sudo systemctl enable --now vsftpd |
Перевіряємо, чи запустилася служба, вводимо:
1 | sudo systemctl status 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 |
Створення користувача та відключення доступу до SSH
Тепер можна створити ftp користувача та додати його до списку дозволених користувачів, створюється користувач цією командою:
1 | sudo useradd -m ftp_user |
Тепер зробимо так щоб у користувача неможливо було увійти за допомогою ssh, для початку нам необхідно створити оболонку, яка виводитиме текст: “This account, only FTP access.”, робиться це командами:
1 | echo -e '#!/bin/sh\necho "This account, only FTP access."' | sudo tee -a /bin/ftpuseronly |
Даємо права виконання цього файлу:
1 | sudo chmod a+x /bin/ftpuseronly |
Додаємо оболонку до списку оболонок:
1 | echo "/bin/ftpuseronly" | sudo tee -a /etc/shells |
Змінюємо оболонку для нашого ftp користувача:
1 | sudo usermod ftp_user -s /bin/ftpuseronly |
Для додавання користувача до списку дозволених пишемо у файл userlist_allow ім’я користувача, файл необхідно створити, робиться це командою:
1 | sudo touch /etc/vsftpd/userlist_allow |
Тепер можна додати користувача до цього списку або вручну або за допомогою цієї команди:
1 | echo "ftp_user" | sudo tee -a /etc/vsftpd/userlist_allow |
Створимо пароль для користувача:
1 | sudo passwd ftp_user |
Створення правила в 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:
Читайте також: Встановлення та налаштування Samba-сервера на RedHat-подібні системи.