FTP сервер vsFTPd на Debian/Ubuntu

Автор: Гость | от 2016 » Август » 28 | посмотрело: 357

0

vsFTPd (англ. Very Secure FTP Daemon) — FTP-сервер с поддержкой IPv6 и SSL.
Является FTP-сервером по умолчанию многих операционных систем, и обслуживает официальные репозитории.

Настройка FTP сервера vsFTPd на Debian/Ubuntu

Переходим в режим супер пользователя root:

Для Debian:

Цитата
su

Для Ubuntu:

Цитата
sudo su

Устанавливаем vsFTPd:

Код
apt-get install vsftpd


Нашей основной задачей является блокирование пользователя внутри своей домашней директории, для того, чтобы не допустить его переход в папки «соседей» по серверу. Для этого мы немного подредактируем конфигурационный файл vsftpd.conf:

Код
nano /etc/vsftpd.conf

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

Разрешаем запись:

Код
write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES

Напишем свой баннер для входа, хотя он и не обязателен (на работу он не влияет):

Цитата
ftpd_banner=Welcome to our FTP service

Запираем пользователей в домашних директориях:

Код
chroot_local_user=YES

Разрешаем вход локальным пользователям:

Код
local_enable=YES

Запрещаем анонимный доступ, необходимо найти строку:

Код
#anonymous_enable=YES

И привести ее к виду:

Код
anonymous_enable=NO

Ну и добавим работу в пассивном режиме:

Код
pasv_min_port=50000  
pasv_max_port=60000

Поддержка IPv6 в vsFTPd

Для того чтобы добавить возможность работы с ip версии 6, то в конфигурационном файле находим строку:

Код
listen=YES

Ее необходимо закомментировать, чтобы она выглядела:

Код
#listen=YES

Также, нам необходимо найти строку:

Код
#listen_ipv6=YES

И снять с нее комментарий.

После этого, наш FTP сервер будет доступен по IPv4 и IPv6

Права доступа на файлы и директории

В любом случае, тот кто закачал файлы является их владельцем и может расширить права доступа к ним.

В общем, находим строку:

Код
local_umask=022

И меняем 022 на 023 или на ту которая необходима в вашей ситуации:

Код
local_umask=023


Авторизация vsftpd и /bin/false

Для обеспечения безопасности сервера, пользователям виртуальных хостов будет отключен шелл, как пишут на просторах интернетов, рекомендуется это делать следующим способом:

Код
useradd username -b /home -m -U -s /bin/false

Создадим для него пароль:

Код
passwd username

Выставим права:

Код
chown -R username /home/username
chmod 755 /home/username

Отредактируем файл с шеллами:

Код
nano /etc/shells

Добавим туда строку:

Код
/bin/false

Для того чтобы пользователи с /bin/false могли авторизоваться на нашем 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

И еще немного для общего развития — пользователь с отключенным шеллом, не сможет подключиться по SSH! Это можно считать дополнительным плюсом к безопастности.

Как отключить шелл уже существующему в системе пользователю:

Код
nano /etc/passwd

Там находим нужного пользователя и /bin/bash меняем на /bin/false, после перезагрузки, изменения переменятся.

VSftpd не видит .htaccess

В конфиг /etc/vsftpd.conf добавить строку:

Код
force_dot_files=YES

И перезапустить vsftpd:

Код
/etc/init.d/vsftpd restart

При входе пользователем на FTP-Server версии 2.3.5 выдается сообщение

Код
"500 OOPS: vsftpd: refusing to run with writable root inside chroot()".

Все верно, в 2.3.5 ужесточены правила безопасности. Теперь сервер не делает chroot() в домашний каталог пользователя, если на него стоят права на запись.

Данное ограничение можно обойти путем установки расширенной версии 2.3.5 с заданием в файле настроек опции allow_writable_root, либо установить 3.0.0 и изменить значение опции allow_writeable_chroot конфигурационного файла.

Мини FAQ

Категория: FTP

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться или войти на сайт под своим именем.
Всего комментариев: 0
avatar