proFTPd + PostgreSQL (не стандартный конфиг)

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

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

Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

proFTPd + PostgreSQL

Сообщение Indarien »

Приветствую всех, есть следующая задача.
В данный момент используется профтпд с системными юзерами, аутентификацией на уровне ОС и разграничение прав на уровне системных групп, созданных под каждый кталог отдельно, необходимо переделать (в моем случае сделать новый) сервер в следующей конфигурации.

ProFTPd+PostgreSQL причем от связки требуется следующее.
1. Аутентификация на уровне SQL (Стандартное решение)
2. Хранение логов, что, когда и кем(user+ip) было скачано. (Стандартное решение)
3. Хранение логов, что, когда и кем(user+ip) было закачно. (Стандартное решение)
Теперь суть задачи =)
4. НА фтп хранится более 100 каталогов, юзеров более 600, ну с кол-вом проблем тоже нет, а вот дальше....=)
Так вот, требуется чтобы у каждого юзера был не один рабочий каталог, откуда он мог бы качать файлы, а несколько, от 3 до 120 допустим. То есть, обычные статьи в инете позволяют разграничивать доступ в директории средставми управления SQL в один конкретный каталог, мне же нужно чтобы каждый из пользователей имел доступ в разные каталоги, часто пересекающиеся, то есть
Пользователи
user1
user2
user3
Каталоги
home1
home2
home3

User 1 мог качать из home1, home2, home3
User2 мог качать из home2, home3
User3 мог качать home1, home2

Причем, чтобы данные, о доступных каталогах для юзера и разграничение прав на них хранились бы только в SQL без примененния механизма доступа на уровне системных груп, ибо именно этот параметр постоянно меняется и мы бы написали просто свой интерфейс управления для работы с базой. В данный момент написана программа, работающая по SSH и добавляющая юзеров в систему и группы. Этот вариант нам уже не подходит. Столкнулись с ограничением на кол-во групп у пользователя.

Может кто-нибудь делал такое, может надо смотреть в сторону другой связки.....или просто бросьте ссылкой. Я пока не могу найти подобного решения.
Заранее спасибо.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

Организовать доступ по группам в sql насколько я знаю - невозможно. Остальное - копайте в сторону proFTPd Administrator. Отличная web-ка, да и доки в инете хватает по поводу настройки. Если нужно помощь - могу дать пару строк из конфига по поводу ведения логов.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

Дык...ограничение на кол-во групп у юзера в системе от этого не изменится......Или я не прав?
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

Ну а сколько вы планируете использовать групп? Вы ещё учтите, что есть ограничение на сам файл /etc/groups. Да и вот интересная заметка
the 2.6 kernel can handle up to 64k groups per user, but still truncates them at 16 when making use of the AUTH_SYS authentication mechanism
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

На данный момент необходимо немногим более 100 групп, соответственно, столько же каталогов на фтп, однако это число будет расти....ну на 5-15 в пол-года. Одновременно, юзер может быть в 88 группах, объединять содержимое папок нельзя, это обусловлено спецификой контента. Вот мне и нужно было бы без использования механики ОС......

ЗЫ
Еще раз оговорюсь, что связка proftpd+postgresql не является обязательной, если существует возможность осуществить желаемое на другой связке - не вопрос.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

Ну хорошо, а как вы будете разграничивать доступы к папкам без самой ОС? В ОС это всё дело привязано к UID/GID. А в sql'e как вы это свяжите с реальными папками?
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: proFTPd + PostgreSQL

Сообщение patrius »

Indarien, почитай внимательно вот это и это.
Кроме того посмотри инфу на опеннет'е и в гугле.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

skeletor писал(а):
08.10.2010 16:20
Ну хорошо, а как вы будете разграничивать доступы к папкам без самой ОС? В ОС это всё дело привязано к UID/GID. А в sql'e как вы это свяжите с реальными папками?

Это и есть суть моего вопроса =)
patrius, спс, сча почитаю.

Ознакомился, собственно, это тоже самое о чем я и читал, везде SQL используется как просто хранение юзеров в базе или рассматривается их хранение в файле, на мой вопрос эти статьи не отвечают. Я так понимаю что в данный момент такого решения не существует. Жаль.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

Indarien писал(а):
11.10.2010 10:17
Это и есть суть моего вопроса =)

Если кратко - то пишите свой софт или ОС, в которой будет нужная вам реализация. Штатными средствами этого сделать нельзя. Либо придумывайте варианты с извратом.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

Ну вообще-то такая ОС уже есть....в венде такое запросто делается =)
Но это не наш выбор.....Будем извращаться.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

А какое в винде ограничени по группам?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: proFTPd + PostgreSQL

Сообщение KiWi »

У proftpd в конфиге есть <Limit> с AllowGroup, например. И ничто не мешает хранить группы в postgres. Насколько я помню, AllowGroup использует группы из базы, а не реальную группу в системе.

Indarien писал(а):
11.10.2010 10:17
Ознакомился, собственно, это тоже самое о чем я и читал, везде SQL используется как просто хранение юзеров в базе или рассматривается их хранение в файле, на мой вопрос эти статьи не отвечают. Я так понимаю что в данный момент такого решения не существует. Жаль.

И группы, и пользователей можно хранить в базе(там же -- хранится маппинг на реальные системные uid/gid). Был даже модуль, позволяющий хранить конфиг в базе.
И, собственно, никто не мешает у каждой папки создать свою группу и просто добавлять туда пользователей по мере надобности. Конфиг, правда, будет большим.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

KiWi
Уважаемый, именно это мне и нужно....добился того что авторизация идет, все ОК, делается селект группы из базы, у каждый папки должна быть группа только в базе и никак не в /etc/group.
Пока что пытаюсь заставить брать и юзать группы из постгреса но профтпд упорно делать этого не хочет.
Размеры конфига меня не пугают.
Может быть мы с Вами могли бы пообщаться в джаббере или аське более детально?
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

skeletor писал(а):
12.10.2010 14:08
А какое в винде ограничени по группам?

В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: proFTPd + PostgreSQL

Сообщение Ленивая Бестолочь »

Indarien писал(а):
13.10.2010 15:08
В венде можно на папку задавать много групп...

ну в линуксе тоже можно. для этого существуют ACL.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: proFTPd + PostgreSQL

Сообщение skeletor »

Indarien писал(а):
13.10.2010 15:08
skeletor писал(а):
12.10.2010 14:08
А какое в винде ограничени по группам?

В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.

Я спрашивал про количество групп, в которых может одновременно находится 1 юзер. Ведь речь идёт именно об этом, а не о том, как задать права на несколько групп и юзеров на папку.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: proFTPd + PostgreSQL

Сообщение sash-kan »

Ленивая Бестолочь писал(а):
13.10.2010 17:54
Indarien писал(а):
13.10.2010 15:08
В венде можно на папку задавать много групп...

ну в линуксе тоже можно. для этого существуют ACL.
как бы в ms/windows это тоже называется как бы acl.
правда, реализация совершенно иная, но это уже детали.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: proFTPd + PostgreSQL

Сообщение sash-kan »

skeletor писал(а):
13.10.2010 20:18
Я спрашивал про количество групп, в которых может одновременно находится 1 юзер.
в произвольном (вероятно, какой-то цифрой оно ограничивается, но, думаю, несколько тысяч точно должно прокатить).
другой вопрос, что основной группой в любой момент времени может являться только одна. man newgrp, man sg.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: proFTPd + PostgreSQL

Сообщение KiWi »

Indarien писал(а):
13.10.2010 14:55
KiWi
Уважаемый, именно это мне и нужно....добился того что авторизация идет, все ОК, делается селект группы из базы, у каждый папки должна быть группа только в базе и никак не в /etc/group.
Пока что пытаюсь заставить брать и юзать группы из постгреса но профтпд упорно делать этого не хочет.
Размеры конфига меня не пугают.
Может быть мы с Вами могли бы пообщаться в джаббере или аське более детально?

http://proftpd.org/docs/directives/linked/..._AuthOrder.html не забыли? Вот, например, инструкция по настройке: http://wiki.enchtex.info/_export/xhtml/how...roftpd/auth_sql и http://www.bubuntu.spb.ru/proftpd-mysql/

Вообще, у proftpd можно включить debug лог, в который он выведет всё и даже больше.

И, да, последний раз я видел proftpd пару лет назад.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

KiWi Да ладно, не буду выносить вам мозг =) Наверняка своих задач немало. Про authorder не забыл, работает авторизация и логирование в базу, не могу пока только заставить работать с резултатами селекта имени группы. То есть селект в логах видно что проходит, а вот дальше, когда уже нужно решать пускать участника этой группы в каталог или нет, не работает.

sash-kan писал(а):
13.10.2010 20:59
skeletor писал(а):
13.10.2010 20:18
Я спрашивал про количество групп, в которых может одновременно находится 1 юзер.
в произвольном (вероятно, какой-то цифрой оно ограничивается, но, думаю, несколько тысяч точно должно прокатить).
другой вопрос, что основной группой в любой момент времени может являться только одна. man newgrp, man sg.

В данный момент мы столкнулись со следующей проблемой, при занесении юзера в 80 групп у него отваливаются остальные.
На старом фтп было сделано 100+ каталогов и 100+ одноименных группу, каждая имеет право на чтение только своего каталога. Есть пользователи, которым необходимо иметь доступ в более чем 80 каталогов. Но при добавлении его в восьмидесятую группу у него пропадает доступ ко всем остальным.

Насчет несколько тысяч....не уверен, но если вы правы, это безусловно решает мой вопрос. Я просто не буду ковырять профтпд дальше, оставлю авторизацию через постгрес, а правами буду рулить через ОС.
Дело в том что старый серв - фриБСД 6.0, честно говоря почти не знаком с этой ОС, возможно в ней такое ограничение есть, а в линуксе нет. Сейчас попробую поищу инфу по Debian 5.
Спасибо за инфо.

sash-kan писал(а):
13.10.2010 20:53
Ленивая Бестолочь писал(а):
13.10.2010 17:54
Indarien писал(а):
13.10.2010 15:08
В венде можно на папку задавать много групп...

ну в линуксе тоже можно. для этого существуют ACL.
как бы в ms/windows это тоже называется как бы acl.
правда, реализация совершенно иная, но это уже детали.

Да нет, это как раз не детали, на одну папку можно назначить, штук 10 разных групп с разным уровнем доступа, в лиунксе - не так.
Ну да не суть, я не буду ставить винду в любом случае, так что не будем оффтопить :rolleyes:

skeletor писал(а):
13.10.2010 20:18
Indarien писал(а):
13.10.2010 15:08
skeletor писал(а):
12.10.2010 14:08
А какое в винде ограничени по группам?

В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.

Я спрашивал про количество групп, в которых может одновременно находится 1 юзер. Ведь речь идёт именно об этом, а не о том, как задать права на несколько групп и юзеров на папку.

При условии что на каталог можно назначить 10 групп мне уже не нужно будет заносить юзера во все 80, ему достаточно будет иметь 5-7 групп, поэтому вопрос о максимальном кол-ве групп в линукс стал актуальным ввиду того что нельзя назначить 5-7 групп на один каталог.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: proFTPd + PostgreSQL

Сообщение sash-kan »

Indarien писал(а):
14.10.2010 10:59
можно назначить, штук 10 разных групп с разным уровнем доступа
это и называется acl.

Indarien писал(а):
14.10.2010 10:59
в лиунксе - не так
не поделитесь секретом, как это «не так»?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: proFTPd + PostgreSQL

Сообщение Ленивая Бестолочь »

sash-kan писал(а):
13.10.2010 20:53
как бы в ms/windows это тоже называется как бы acl.

да я и не отрицал :)
Indarien писал(а):
14.10.2010 10:59
Да нет, это как раз не детали, на одну папку можно назначить, штук 10 разных групп с разным уровнем доступа, в лиунксе - не так.

watch this.
смотрим права:

Код: Выделить всё

rena:/mnt/data/data/tech_distr# getfacl Miranda
# file: Miranda
# owner: root
# group: root
user::rwx
group::r-x
group:admins:rwx
group:people:r-x
group:rena_data_distr:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:admins:rwx
default:group:people:r-x
default:group:rena_data_distr:r-x
default:mask::rwx
default:other::---

редактируем:

Код: Выделить всё

rena:/mnt/data/data/tech_distr# setfacl -m g:consultant_users:r-x Miranda

смотрим опять:

Код: Выделить всё

rena:/mnt/data/data/tech_distr# getfacl Miranda
# file: Miranda
# owner: root
# group: root
user::rwx
group::r-x
group:admins:rwx
group:people:r-x
group:consultant_users:r-x
group:rena_data_distr:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:admins:rwx
default:group:people:r-x
default:group:rena_data_distr:r-x
default:mask::rwx
default:other::---

это линукс.

Код: Выделить всё

rena:/mnt/data/data/tech_distr# uname -a
Linux rena 2.6.32-5-xen-686 #1 SMP Thu Aug 12 18:09:47 UTC 2010 i686 GNU/Linux
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

owner group other
Вот в group может находится только одна группа.
Ленивая Бестолоч... да, я вам безусловно верю =)
Дело в том что при таком разграничении прав юезрам можно запретить лазить в тот или иной каталог, но они при этом будут видны ему, когда он заходит на фтп.....в моем случае необходимо чтобы юзеру были видны только те каталоги, в которые у него доступ.
sash-kan вот примерно так =)
Возможно я сумбурно выразил мысли, не так....в смысле так как это работает в данном случае не устраивает лично меня, ввиду специфики.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: proFTPd + PostgreSQL

Сообщение sash-kan »

Indarien писал(а):
15.10.2010 12:22
Вот в group может находится только одна группа
совершенно верно. это базовые permission-ы. если же на файловой системе используются acl, эти базовые permission-ы можно перекрыть/дополнить, исходя из надобностей.

Indarien писал(а):
15.10.2010 12:22
когда он заходит на фтп
нужно, чтобы обслуживающий данное соединение процесс ftp-демона запускался от имени нужного вам пользователя. вот этот-то процесс и можно будет гибко ограничить в правах, розданных с помощью setfacl.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Indarien
Сообщения: 436
ОС: Debian, Fedora, Ubuntu

Re: proFTPd + PostgreSQL

Сообщение Indarien »

sash-kan писал(а):
15.10.2010 21:02
нужно, чтобы обслуживающий данное соединение процесс ftp-демона запускался от имени нужного вам пользователя. вот этот-то процесс и можно будет гибко ограничить в правах, розданных с помощью setfacl.

О....вот об этом я не думал даже. Спасибо, сча попробуем.
-=Правильно заданный вопрос содержит 50% ответа=-
Спасибо сказали: