Назад | Перейти на главную страницу

Какой FTP-демон мне следует использовать, если я хочу использовать MySQL для аутентификации?

Мы хотим установить FTP-демон на нашем сервере Ubuntu 10.04, который может использовать простой (возможно, пользовательский) веб-интерфейс для FTP-сервера, использующего MySQL для аутентификации.

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

Я знаю vsftpd, ProFTPd и Pure-FTPd, но не уверен, что лучше для этого приложения.

Основные характеристики, которые нам бы хотелось:

  1. Очень хорошая интеграция аутентификации MySQL
  2. Возможность указать список папок / файлов (уровень папки достаточен) каждый пользователь имеет доступ через MySQL

Для 2 мы ищем что-то настолько простое, как, по сути, пользователь A получает доступ к папке A, а пользователь B получает доступ к папке B. Если бы userC мог иметь доступ к folderA, folderB и folderC, это было бы здорово.

Все остальное будет просто посыпать сверху.

Я бы посоветовал вам использовать vsftpd по двум причинам:

  • это рекомендуемый FTP-сервер в Ubuntu (и Red Hat)
  • у него лучший послужной список безопасности, чем у двух других

Для аутентификации vsftpd использует PAM. Выдержка из FAQ:

Q) Help! Will vsftpd authenticate against an LDAP server? What about a
MySQL server?
A) Yes. vsftpd uses PAM for authentication, so you need to configure PAM
to use pam_ldap or pam_mysql modules. This may involve installing the PAM
modules and then editing the PAM config file (perhaps /etc/pam.d/vsftpd).

Как настроить аутентификацию pam_mysql, вероятно, лучше всего спросить и объяснить в отдельном вопросе.

О разрешениях: vsftpd может chroot пользователей в их "дом" (который также настраивается с помощью PAM). Вы должны иметь возможность использовать жесткие ссылки (или, может быть, также символические ссылки?), Чтобы связать все каталоги, к которым у них должен быть доступ, внутри своего домашнего каталога.

я счастливый пользователь pureftpd, к сожалению, решает только проблема # 1 с использованием mysql. для второго вы можете попробовать проявить творческий подход с разрешениями группы или жесткими / символическими ссылками.

Я не уверен, что это сработает, но, учитывая, что вы будете предоставлять своим пользователям виртуальные дома, вы можете попытаться, например, создать каталог groupC внутри groupC, вы создадите дом для A и B, а папка groupC будет пользователем C дома, который позволит ему получить доступ ...

Глядя на этот учебник для ubuntu, кажется, что с помощью proftpd можно добиться желаемого: http://www.howtoforge.com/virtual-hosting-with-proftpd-and-mysql-ubuntu-8.04

Поскольку вы можете назначить пользователей одной и той же группой, это может позволить вам также использовать файлы, я не уверен, поскольку никогда не делал этого, но стоит попробовать.

GL;)