Чтобы установить FTP-клиент на сервер и предоставить доступ к каталогу /var/www/ для загрузки сайтов, вам нужно выполнить несколько шагов: установить FTP-сервер, создать пользователя и настроить права доступа.

Шаг 1. Установка FTP-сервера

Наиболее часто используемыми FTP-серверами являются vsftpd и ProFTPD. В этом примере мы установим vsftpd.

Установка vsftpd на Ubuntu/Debian:


sudo apt update 
sudo apt install vsftpd   

Установка vsftpd на CentOS/RHEL:


sudo yum install vsftpd   

После установки сервис нужно запустить:


sudo systemctl start vsftpd 
sudo systemctl enable vsftpd   

Шаг 2. Настройка vsftpd

Теперь необходимо настроить FTP-сервер, чтобы предоставить пользователям доступ только к каталогу /var/www/.

Открытие конфигурационного файла vsftpd:


sudo nano /etc/vsftpd.conf   

Измените или добавьте следующие параметры в конфигурационный файл:

  • Разрешить локальным пользователям доступ:

    Найдите строку local_enable=YES и убедитесь, что она не закомментирована (без #).

    
    local_enable=YES   
  • Разрешить пользователям загружать файлы:

    Найдите строку write_enable=YES и убедитесь, что она не закомментирована.

    
    write_enable=YES   
  • Ограничить пользователя его домашним каталогом:

    Для безопасности ограничим пользователей доступом только к их домашнему каталогу. Найдите строку chroot_local_user=YES и убедитесь, что она активна:

    
    chroot_local_user=YES   
  • Указать исключения для определенных пользователей:

    Если вы хотите разрешить доступ к другим каталогам (например, /var/www/), добавьте пользователя в файл исключений.

    Для этого создайте или добавьте следующую строку:

    
    allow_writeable_chroot=YES   

    Теперь добавьте путь к пользователям, которым нужно разрешить доступ к различным каталогам (в нашем случае к /var/www/):

    
    sudo nano /etc/vsftpd.chroot_list   

    Вставьте имя пользователя в этот файл.

Сохраните и закройте файл, затем перезапустите vsftpd:


sudo systemctl restart vsftpd   

Шаг 3. Создание FTP-пользователя с доступом к /var/www/

  1. Создайте пользователя, который будет использоваться для FTP:
    
    sudo adduser ftpuser   
  2. Установите пароль для этого пользователя:
    
    sudo passwd ftpuser   
  3. Измените домашний каталог пользователя на /var/www/:
    
    sudo usermod -d /var/www/ ftpuser   
  4. Убедитесь, что у пользователя есть права на запись в каталог /var/www/:
    
    sudo chown ftpuser:ftpuser /var/www/ -R   

    Если вы хотите, чтобы несколько пользователей имели доступ к каталогу /var/www/, вы можете создать группу:

    
    sudo groupadd ftpgroup 
    sudo usermod -aG ftpgroup ftpuser 
    sudo chown -R :ftpgroup /var/www/ 
    sudo chmod -R 775 /var/www/   

    Это даст доступ к каталогу всем пользователям, входящим в группу ftpgroup.

Шаг 4. Открытие порта в файрволле (если требуется)

Если у вас активирован файрволл, вам нужно разрешить доступ через порт 21 (по умолчанию для FTP) и, возможно, через порты для пассивного режима.

Открытие порта 21:


sudo ufw allow 21   

Для пассивного режима добавьте следующие строки в конфигурационный файл /etc/vsftpd.conf:


pasv_enable=YES 
pasv_min_port=10000 
pasv_max_port=10100   

Затем откройте диапазон портов для пассивного режима:


sudo ufw allow 10000:10100/tcp   

После этого перезапустите vsftpd:


sudo systemctl restart vsftpd   

Шаг 5. Проверка доступа

Теперь вы можете использовать любой FTP-клиент (например, FileZilla) для подключения к вашему серверу:

  • FTP-хост: IP-адрес или домен вашего сервера.
  • Имя пользователя: ftpuser.
  • Пароль: пароль, который вы задали для пользователя.
  • Порт: 21.

Дополнительные меры безопасности

  • Использование FTPS (FTP с SSL): Чтобы защитить ваши соединения, вы можете настроить FTPS, чтобы шифровать FTP-трафик с помощью SSL-сертификатов.
  • SFTP (Secure FTP): Альтернативой FTP является использование SFTP через SSH, который уже по умолчанию более безопасен и использует стандартный порт SSH (22).

Заключение

Теперь ваш пользователь ftpuser имеет доступ к каталогу /var/www/ для загрузки и управления файлами через FTP. Вы можете добавить других пользователей или настроить дополнительные меры безопасности в зависимости от ваших потребностей.