Установка FTP-сервера vsftpd на Ubuntu 20.04
Если установка проходит под root правами, то sudo
применять ни к чему.
Для начала обновляем пакеты:
sudo apt update
Инсталлируем FTP-сервер vsftpd:
sudo apt install vsftpd
Проверьте корректность установки
sudo systemctl status vsftpd
Если всё хорошо будет примерно так:
* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-09-25 16:24:33 MSK; 3h 24min ago Process: 2066 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS) Main PID: 2073 (vsftpd) Tasks: 1 (limit: 2317) Memory: 1.1M CGroup: /system.slice/vsftpd.service `-2073 /usr/sbin/vsftpd /etc/vsftpd.conf
Добавляем службу в список автозагрузки:
sudo systemctl enable vsftpd
С установкой всё. Осталось настроить работу vsftpd. Для этого будем редактировать файл /etc/vsftpd.conf
На всякий случай копируем оригинальный файл с настройками.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Открываем и редактируем файл конфигурации:
sudo nano /etc/vsftpd.conf
Поочерёдно ищем и заменяем или добавляем:
listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES allow_writeable_chroot=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Настраиваем защищённое SSL/TLS соединение
Генерируем SSL-сертификат:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Редактируем конфигурационный файл:
sudo nano /etc/vsftpd.conf
Ищем нужные директивы и заменяем их своими путями:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Устанавливаем в YES:
ssl_enable=YES
Сохраняем, закрываем.
Перезапускаем vsftpd сервер:
sudo systemctl restart vsftpd
Добавляем FTP пользователя
sudo useradd -s /bin/bash user
По-умолчанию новый пользователь пользуется оболочкой /bin/sh
, мы задаём «правильную» -s /bin/bash
Делаем ему пароль:
sudo passwd user
Разрешаем ему доступ и добавляем его имя в список разрешённых:
echo "user" | sudo tee -a /etc/vsftpd.userlist
Настраиваем брандмауэр ufw
Открываем порты, команды вводить поочерёдно:
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow OpenSSH sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Перезагружаем ufw
sudo ufw disable sudo ufw enable
Проверяем работоспособность:
sudo ufw status
Должно быть так
Всё.
Комментариев: 0