Чтобы установить 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/
- Создайте пользователя, который будет использоваться для FTP:
sudo adduser ftpuser
- Установите пароль для этого пользователя:
sudo passwd ftpuser
- Измените домашний каталог пользователя на
/var/www/
:sudo usermod -d /var/www/ ftpuser
- Убедитесь, что у пользователя есть права на запись в каталог
/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. Вы можете добавить других пользователей или настроить дополнительные меры безопасности в зависимости от ваших потребностей.