LINUX.ORG.RU
ФорумAdmin

Правильно развернуть ftp-сервер

 , , ,


1

2

Всем привет! Возникла необходимость поднять ftp-сервер. Руководств и советов море, но возникает вопрос, как сделать правильно? Сейчас у меня сделано так, что есть локальный пользователь, отключены анонимы. Но единожды, была ситуация, когда при логине все вывалилось в /. По логам ничего не было странного. В общем, посоветуйте, как надо делать и ,если есть мысли, почему была такая ситуация? Мой конфиг vsftpd:

listen=YES
anonymous_enable=NO
local_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Срез /etc/passwd:
ftp:x:108:111:ftp daemon,,,:/var/ftp:/bin/false
nameOfTheUser:x:1007:111::/home/ftp:/bin/dummy

Заранее спасибо за советы!


Что значит «правильно»? Всё зависит от задачи. Поднять фтп откуда все могут скачивать файлы (главное скорость) и фтп с разграничением прав доступа, ldap и т.д. это разные задачи

at ★★
()
Ответ на: комментарий от at

фтп должен быть таким: Зайти могут только те, кому дан доступ. Загрузить файл могут не все, кому дан доступ. Желательно, чтобы не надо было создавать локальных пользователей в системе, как я сделал(см. /etc/passwd). Чтобы пользователь зашедший по фтп был ограничен только специальной директорией.

aarexer
() автор топика
Ответ на: комментарий от aarexer

Желательно, чтобы не надо было создавать локальных пользователей в системе

Достаточно изменить /etc/pam.d/vsftpd, например на

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
Это пример из руководства. Тогда зайти смогут те, кто прописан в vsftpd_login

Для дебиан (возможно и для убунту) pam_userdb.so входит в пакет libpam-modules

at ★★
()
Последнее исправление: at (всего исправлений: 1)
Ответ на: комментарий от aarexer

С ним не будет работать, ведь у меня /bin/dummy у пользователя. С ним валится 500-я ошибка.

Чтоб не валилась 500-я при chroot_local_user=yes нужно:

  • /bin/dummy добавить в /etc/shells
  • папку дом. каталога юзера сделать в r/o и дать права на запись в подпапки. Либо прописать в vsftpd.conf: allow_writeable_chroot=YES
iron ★★★★★
()
Ответ на: комментарий от iron

«/bin/dummy добавить в /etc/shells» - это я сделал. А вот папку дом юзера r/o для юзера дать, а запись в подпапки..Вариант.. «Либо прописать в vsftpd.conf: allow_writeable_chroot=YES» - у меня такой строчки нет. Версия vsftpd 2.3.5

aarexer
() автор топика
Ответ на: комментарий от at

Тоже вариант! Спасибо, почитаю что и как.

aarexer
() автор топика
Ответ на: комментарий от aarexer

vsftpd faq:

?: При входе пользователем на 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 конфигурационного файла.
iron ★★★★★
()
Ответ на: комментарий от iron

Ну я решил сделать так, чтобы отобрать права на запись у директории, но дать права на запись поддиректориям, поэтому все норм заходит. Нормальный выход или лучше переделать?

aarexer
() автор топика
Ответ на: комментарий от aarexer

Нормальный выход или лучше переделать?

Да, нормальный. Именно так и рекомендуют разработчики vsftpd.

iron ★★★★★
()
Ответ на: комментарий от iron

В итоге еще вынес в /var/ftp домашний каталог для пользователя ftp, права на запись у него отобрал, а в подкаталогах запись разрешил. Еще где-то прочитал, что можно саму папку /var/ftp отдать root-у, это bad practice или норм? В самом конфиге сделал chroot_local_user = YES

aarexer
() автор топика
Ответ на: комментарий от aarexer

можно саму папку /var/ftp отдать root-у, это bad practice или норм?

Да в принципе все равно какие права. Главное чтоб юзер фтп имел доступ только в r/o. По большому счету, можно любого другого владельца присвоить.

iron ★★★★★
()

Правильно - это развернуть sftp сервер, а ftp должен умереть. Не мучай труп.

tazhate ★★★★★
()

Решение проблемы с FTP на Centos 7

Встала задача поднять web сервер на HP ML310 под Centos 7, все было бы хорошо, да уперлось дело в глупость... установлен vsftpd подключаюсь с другого компа через FileZilla, директория /var видна, а содержимого нет... в сети куча информации о возврате с firewalld на iptables, крутил все что только можно, толку нет, проблема была в параметрах SeLinux, изменением параметров (показать все параметры: getsebool -a ), включение ftpd_full_access решило проблему, изменил параметр командой getsebool -P ftpd_full_access on

Надеюсь кому нибудь тоже поможет

MartovCat
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.