Установка и настройка FTP сервера на виртуальном или выделенном сервере довольно простая задача, если подойти «с чувством, с толком, с расстановкой»©
Для начала нам потребуется USER:
$ adduser ftpuser --home=/var/www
Данная команда добавит пользователя в систему удобным способом (отвечая на вопросы) с указанной домашней директорией.
Важный момент: Домашняя директория должна быть недоступна для записи для этого пользователя. А так же вся цепочка папок должна быть доступна для выполнения. Иначе можем получить 500 OOPS: chroot writable root или 500 OOPS: cannot change directory
Далее установим vsfpd:
$ apt-get install vsftpd
Вот у нас есть юзер и сам сервер, приступим к настройке:
#/etc/vsftpd.conf # Запретим анонимно подключатся к серверу anonymous_enable=NO # Разрешаем например создавать директории (манипулировать файловой системой) write_enable=YES # Если хотим видеть файлы начинающиеся с точки, например .htaccess force_dot_files=YES # Определяем маску. Все папки будут создаваться с правами 0755, а файлы 0644 local_umask=022 # Не выдаем кто мы есть ftpd_banner=Welcome to My FTP service. # Заставляем пользователей сидеть в своей домашней директории chroot_local_user=YES
Это основные настройки, которых в большинстве случае достаточно.
Дополнительно не забываем:
1) Активировать fail2ban для защиты от брута 🙂
2) Запретить пользователю для ftp использовать ssh
Всем удачи в настройке ваших серверов!