Выбор FTP сервера

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

konki
Сообщения: 216

Выбор FTP сервера

Сообщение konki »

Задача состоит в следующем: необходимо развернуть FTP c авторизацией, анонимный доступ не предусматривается.

Модель хранения данных, заливаемых на сервер, выглядит следующим образом:
пользователи FTP будут делиться на две группы: одна имеет доступ только в раздел documents_for_all, а другая, более привилегированная группа, должна иметь доступ к secure_documents и в первую - documents_for_all.
При этом пользователей будет около 100, причем о существовании друг друга они не должны знать, а тем более лазить по папкам друг друга.

В моем понимании я представил себе это так:
допустим все FTP данные хранятся в /var/ftp. там создаем следующие директории: documents_for_all, secure_documents, users.
После чего заливаем данные в зависимости от степени важности в соответствующую папку. Папка users служит местом хранения домашних папок юзеров ($USER), авторизованных на серваке, где они могут творить что хотят, заливать свои данные и тд.

Далее, когда все данные залиты в две ключевые папки, заходим в папку юзера и, в зависимости от его привилегированности, создаем ему ссылки на документы хранящиеся в наших ключевых папках. В таком случае все хорошо, но как быть тогда с chroot? ведь если юзеры ограничены песочницей, то и "мягкие" ссылки не будут работать. А если наоборот, то совершенно пропадает приватность.

Всю эту схему я поднимал на vsftpd c авторизацией через berkeley db и pam_userdb, который до этого вполне успешно работал в качестве анонимного сервака.


Примеры конфигов:
/etc/vsftpd.conf

Код:

anonymous_enable=NO local_enable=YES write_enable=YES user_config_dir=/home/ftp/conf/ local_root=/home/ftp/data/ anon_upload_enable=YES anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=ftp virtual_use_local_privs=YES chmod_enable=YES chown_uploads=YES chown_username=ftp local_umask=0022 anon_umask=0007 file_open_mode=0777 listen=YES listen_port=21 pasv_min_port=30000 pasv_max_port=30999 xferlog_std_format=YES xferlog_file=/var/log/vsftpd.log tcp_wrappers=YES dirmessage_enable=YES ftpd_banner=Welcome to our FTP! pam_service_name=ftp


/etc/pam.d/ftp - для авторизации
/etc/vsftpd_login.db - та самая db, созданная из файлика с юзерами, паролями.

Код:

auth required /lib/security/pam_userdb.so crypt=none db=/etc/vsftpd_login account required /lib/security/pam_userdb.so crypt=none db=/etc/vsftpd_login


/home/ftp/conf/test_user - файлик личной конфигурации для каждого пользователя

Код:

chroot_local_user=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/ftp/users/test_user/


Прошу прошения за столь сумбурный текст, но проще описать ситуацию не могу.

Основная задача такая: можно ли через настройки FTP сервера управлять виртуальными пользователями: создавать группы, настраивать определенный доступ для этих групп и тд?..

Спасибо.
Спасибо сказали: