Установка и настройка FTP сервера на RedHat подобных системах

В этой статье мы расскажем, как установить и настроить FTP сервер, мы будем использовать Linux дистрибутив AlmaLinux.

Обновление и установка vsftpd

Для начала нам необходимо обновить систему нашего сервера делается это коммандой:

Обратите внимание, что я работаю от обычного пользователя «$:», если вы работаете от root-а «#:», вам не нужно использовать команду sudo.

1
sudo yum update

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

Обновление системы ftp сервер

Соглашаемся на обновление пакетов нашего сервера, жмём «y», а потом Enter:

Обновление пакетов сервера ftp

Соглашаемся на приём данного ключа, жмём «y», а потом Enter:

Соглашаемся на приём данного ключа на нашем ftp сервере

После того как Вы обновили пакеты, можем приступать к установке 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 оболочки

Добавляем оболочку 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

Ну и наконец-то мы можем перезагрузить наш ftp сервер и радоваться:

1
sudo systemctl restart vsftpd

Пример использования с помощью filezilla:

Подлючение к ftp серверу с помощью FileZilla

Читайте также: Установка и настройка Samba-сервера на RedHat-подобные системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll to top