Настройка FTP сервера (vsFTPd) на Debian



FTP, при всем своем возрасте, пока не отходит на второй план. Он достаточно популярен и нужен. В статье Установка Веб сервера быстро на Debian 9 (LAMP) мы рассмотрели поднятие веб-сервера и было бы не полным, если не установили бы FTP на наш сервер.

Обычно мой выбор падает на ProFTPd с его богатыми настройками, однако, сейчас хочу поделиться установкой и настройкой vsFTPd.

Итак, устанавливаем vsFTPd в режиме root (su)

apt-get install vsftpd или aptitude install vsftpd

Переходим к настройкам:

nano /etc/vsftpd.conf

редактируем следующие строчки:

write_enable=YES # разрешаем запись
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to My FTP service #Создаем свой баннер на вход
chroot_local_user=YES # Запираем пользователей в домашних директориях, если не хотите, чтобы пользователи могли видеть структуру папок и файлов вне своих домашних папок.
allow_writeable_chroot=YES

local_enable=YES #Разрешаем вход локальным пользователям
anonymous_enable=NO #Запрещаем анонимный доступ

pasv_min_port=50000
pasv_max_port=60000 #Работа в пассивном режиме. Подробнее тут про режимы работы FTP

Далее добавляем пользователей для работы с FTP. Однако, запрещаем доступ к shell, т.е. возможность логиниться на сервер.

useradd username -b /home -m -U -s /bin/false

Где:
username - имя пользователя(логин)
home - Директория где будет находиться его домашний каталог
-m — домашней директории будет присвоено название которое было указано в username.
-U - создаст одноименную группу.
-s /bin/false - пользователю будет отключен shell, НО! Если пользователю отключить shell, то он не сможет залогиниться на FTP сервер.

Необходимо отредактировать файл /etc/pam.d/vsftpd

nano /etc/pam.d/vsftpd

Найти и закомментировать строку
auth   required        pam_shells.so

чтобы выглядела так:
#auth   required        pam_shells.so

Все! Перезапускаем vsFTPd

/etc/init.d/vsftpd restart

Готово!

Дополнение:

Возможно вам понадобиться пользователя привязать к директории где находится сайт на веб-сервере.
Создадим такого пользователя:

adduser --home /var/www --shell /bin/false --ingroup ftp USERNAME

--home /var/www — задать home директорию ( возможно /var/www/siteFolder - это и есть папка где находится сайт)
--shell /bin/false — если запретить выполнение shell
--ingroup ftp — поселить юзера в группу (если не хотите плодить много групп для таких пользователей)



Комментарии

Популярные сообщения из этого блога

Разные версии PHP на разных сайтах на одном сервере

Microsoft Office. Окно "Давайте начнем"

Импорт - Экспорт пользователей Active Directory