Установка и настройка FTP сервера (vsftpd) — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка FTP сервера (vsftpd) = == 1. Подготовка системы == * Войдите в систему под…»)
(нет различий)

Версия 19:44, 14 октября 2025

Содержание

Установка и настройка FTP сервера (vsftpd)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка vsftpd

Установка пакета

1. Обновите список пакетов: sudo apt update

2. Установите vsftpd: sudo apt install vsftpd

3. Запустите и включите автозапуск vsftpd: sudo systemctl start vsftpd sudo systemctl enable vsftpd

Проверка установки

1. Проверьте статус сервиса: sudo systemctl status vsftpd

2. Проверьте, что vsftpd слушает на порту 21: sudo netstat -tlnp | grep :21

3. Проверьте версию vsftpd: vsftpd -v

3. Базовая настройка vsftpd

Основная конфигурация

1. Создайте резервную копию конфигурации: sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

2. Отредактируйте файл конфигурации: sudo nano /etc/vsftpd.conf

3. Настройте основные параметры:

  1. Основные настройки

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 chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO

Настройка безопасности

1. Добавьте настройки безопасности:

  1. Настройки безопасности

userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO tcp_wrappers=YES hide_ids=YES

2. Создайте файл пользователей: sudo nano /etc/vsftpd.userlist

3. Добавьте разрешенных пользователей:

  1. Разрешенные пользователи FTP

ftpuser1 ftpuser2

4. Настройка пользователей FTP

Создание пользователей

1. Создайте пользователя для FTP: sudo useradd -m -s /bin/bash ftpuser1

2. Установите пароль: sudo passwd ftpuser1

3. Добавьте пользователя в файл разрешений: echo "ftpuser1" | sudo tee -a /etc/vsftpd.userlist

Настройка домашних директорий

1. Создайте директорию для FTP: sudo mkdir -p /home/ftpuser1/ftp

2. Установите права доступа: sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp sudo chmod 755 /home/ftpuser1/ftp

3. Создайте директории для загрузки и скачивания: sudo mkdir -p /home/ftpuser1/ftp/{upload,download} sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp/{upload,download} sudo chmod 755 /home/ftpuser1/ftp/{upload,download}

5. Настройка виртуальных пользователей =

Создание виртуальных пользователей

1. Создайте директорию для виртуальных пользователей: sudo mkdir -p /etc/vsftpd/virtual_users

2. Создайте файл с паролями: sudo nano /etc/vsftpd/virtual_users/passwd

3. Добавьте пользователей (пользователь:пароль): virtualuser1:password1 virtualuser2:password2

4. Создайте базу данных пользователей: sudo db_load -T -t hash -f /etc/vsftpd/virtual_users/passwd /etc/vsftpd/virtual_users/passwd.db

5. Установите права доступа: sudo chmod 600 /etc/vsftpd/virtual_users/passwd.db

Настройка PAM для виртуальных пользователей

1. Создайте файл PAM: sudo nano /etc/pam.d/vsftpd_virtual

2. Добавьте содержимое: auth required pam_userdb.so db=/etc/vsftpd/virtual_users/passwd account required pam_userdb.so db=/etc/vsftpd/virtual_users/passwd

Настройка конфигурации для виртуальных пользователей

1. Отредактируйте конфигурацию: sudo nano /etc/vsftpd.conf

2. Добавьте настройки виртуальных пользователей:

  1. Настройки виртуальных пользователей

guest_enable=YES guest_username=ftp virtual_use_local_privs=YES pam_service_name=vsftpd_virtual user_sub_token=$USER local_root=/home/vftp/$USER

3. Создайте директории для виртуальных пользователей: sudo mkdir -p /home/vftp/{virtualuser1,virtualuser2} sudo chown ftp:ftp /home/vftp/{virtualuser1,virtualuser2} sudo chmod 755 /home/vftp/{virtualuser1,virtualuser2}

6. Настройка SSL/TLS =

Генерация SSL сертификата

1. Создайте приватный ключ: sudo openssl genrsa -out /etc/ssl/private/vsftpd.key 2048

2. Создайте запрос на сертификат: sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

3. Создайте самоподписанный сертификат: sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt

Настройка SSL в vsftpd

1. Отредактируйте конфигурацию: sudo nano /etc/vsftpd.conf

2. Добавьте настройки SSL:

  1. SSL настройки

ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/ssl/certs/vsftpd.crt rsa_private_key_file=/etc/ssl/private/vsftpd.key

3. Перезапустите vsftpd: sudo systemctl restart vsftpd

7. Настройка файрвола =

Настройка UFW

1. Разрешите FTP трафик: sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 1024:65535/tcp

2. Проверьте статус: sudo ufw status

Настройка iptables

1. Разрешите FTP порты: sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT

2. Сохраните правила: sudo iptables-save > /etc/iptables/rules.v4

8. Настройка пассивного режима =

Настройка пассивного FTP

1. Отредактируйте конфигурацию: sudo nano /etc/vsftpd.conf

2. Добавьте настройки пассивного режима:

  1. Пассивный режим

pasv_enable=YES pasv_min_port=21100 pasv_max_port=21110 pasv_address=YOUR_SERVER_IP

3. Замените YOUR_SERVER_IP на IP адрес вашего сервера.

Настройка активного режима

1. Добавьте настройки активного режима:

  1. Активный режим

port_enable=YES connect_from_port_20=YES ftp_data_port=20

9. Управление vsftpd

Основные команды управления

  • Запуск vsftpd:

sudo systemctl start vsftpd

  • Остановка vsftpd:

sudo systemctl stop vsftpd

  • Перезапуск vsftpd:

sudo systemctl restart vsftpd

  • Проверка статуса:

sudo systemctl status vsftpd

  • Проверка конфигурации:

sudo vsftpd -olisten=NO /etc/vsftpd.conf

Управление пользователями

1. Добавьте пользователя в разрешенные: echo "newuser" | sudo tee -a /etc/vsftpd.userlist

2. Удалите пользователя из разрешенных: sudo sed -i '/^newuser$/d' /etc/vsftpd.userlist

3. Заблокируйте пользователя: echo "blockeduser" | sudo tee -a /etc/vsftpd.denied

10. Мониторинг и логирование =

Настройка логирования

1. Отредактируйте конфигурацию: sudo nano /etc/vsftpd.conf

2. Добавьте настройки логирования:

  1. Логирование

xferlog_enable=YES xferlog_file=/var/log/vsftpd.log log_ftp_protocol=YES

3. Создайте файл логов: sudo touch /var/log/vsftpd.log sudo chown ftp:ftp /var/log/vsftpd.log

Просмотр логов

1. Просмотрите логи vsftpd: sudo tail -f /var/log/vsftpd.log

2. Просмотрите системные логи: sudo journalctl -u vsftpd -f

3. Просмотрите логи аутентификации: sudo tail -f /var/log/auth.log | grep vsftpd

Создание скрипта мониторинга

1. Создайте скрипт мониторинга: sudo nano /usr/local/bin/ftp-monitor.sh

2. Добавьте содержимое:

  1. !/bin/bash
  1. Проверка статуса vsftpd

if systemctl is-active --quiet vsftpd; then

   echo "vsftpd is running"
   
   # Проверка подключений
   CONNECTIONS=$(netstat -an | grep :21 | wc -l)
   echo "Active FTP connections: $CONNECTIONS"
   
   # Проверка использования памяти
   MEMORY=$(ps aux | grep vsftpd | grep -v grep | awk '{print $6}')
   echo "Memory usage: $MEMORY KB"
   

else

   echo "vsftpd is not running"
   # Отправка уведомления
   echo "vsftpd is down" | mail -s "FTP Alert" admin@example.com

fi

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/ftp-monitor.sh

11. Устранение неполадок =

Частые проблемы

1. FTP сервер не запускается:

  • Проверьте конфигурацию: sudo vsftpd -olisten=NO /etc/vsftpd.conf
  • Проверьте логи: sudo journalctl -u vsftpd
  • Проверьте права на файлы: ls -la /etc/vsftpd.conf

2. Пользователи не могут подключиться:

  • Проверьте файрвол: sudo ufw status
  • Проверьте порты: sudo netstat -tlnp | grep :21
  • Проверьте пользователей: cat /etc/vsftpd.userlist

3. Ошибка "500 Illegal PORT command":

  • Проверьте настройки пассивного режима
  • Проверьте файрвол для пассивных портов

Диагностика

1. Проверьте статус сервиса: sudo systemctl status vsftpd

2. Проверьте подключения: sudo netstat -an | grep :21

3. Проверьте логи: sudo tail -f /var/log/vsftpd.log

12. Дополнительные настройки =

Настройка ограничений

1. Добавьте ограничения в конфигурацию:

  1. Ограничения

max_clients=50 max_per_ip=5 local_max_rate=1000000 anon_max_rate=500000

Настройка баннеров

1. Создайте файл баннера: sudo nano /etc/vsftpd/banner

2. Добавьте содержимое: Welcome to FTP Server Authorized users only

3. Добавьте в конфигурацию: ftpd_banner=/etc/vsftpd/banner

Настройка автоматического отключения

1. Добавьте настройки таймаутов:

  1. Таймауты

idle_session_timeout=600 data_connection_timeout=120

Заключение

FTP сервер vsftpd успешно установлен и настроен! Теперь вы можете предоставлять файловые услуги.

Для размещения ваших FTP серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой FTP и обеспечением безопасности вашего сервера!