Re: LDAP авторизация
В Птн, 01/02/2008 в 12:50 +0200, Покотиленко Костик пишет:
> В Птн, 01/02/2008 в 13:31 +0300, Pavel Ammosov пишет:
> > On Fri, Feb 01, 2008 at 10:33:24AM +0300, Alexander GQ Gerasiov wrote:
> > > На Thu, 31 Jan 2008 12:40:47 +0200
> > > Покотиленко Костик <casper@meteor.dp.ua> записано:
> > > > На пальцах: пользователей с паролями в LDAP засовывать научился,
> > > > программы проверять это дело по LDAP тоже научил. Теперь представим
> > > > себе такую картину, что один пользователь в базе должен иметь доступ
> > > > к SMTP, POP, SMB, SSH, а другой только к SMTP, POP. Как такое сделать?
> > > Например так: для каждого сервиса почта, ssh, samba заводится
> > > отдельный objectClass (схему создаешь сам). И еще и разные поля для
> > > паролей используешь.
> > >
> > > Ну и естественно сервисы должны работать не через pam или bind
> > > авторизацию, а логиниться в лдап по сервисному аккаунту и проверять
> > > пароль сами.
> >
> > Это вообще ерунда. Пароль в LDAP надо проверять только через bind. Всё
> > остальное несёт риск компрометации.
> >
> > А разграничение доступа надо проводить при помощи фильтра (все
> > ldap-софтины умеют его задавать) по какому-нибудь атрибуту.
> > Подозреваю, уже есть такие готовые в одной из популярных схем.
>
> У меня, кстати, возникали такие мысли, но я не был уверен, что правильно
> мыслю. То есть, получается, что пользователь в LDAP в стандартной
> ситуации это объект которому присвоены стандартные классы (posixAccount,
> shadowAccount, inetOrgPerson). И, в принципе, ничего не мешает присвоить
> пользователям, которым необходим доступ к SSH, например, класс
> sshAccount, к SMTP - smtpAccount, к POP - popAccount. А pam-файлах
> соответствующих сервисов прописать фильтры по наличию соответствующего
> класса.
>
> У меня правильный ход мысли?
>
> Хотя, я уже и так вижу, что этому помешает. В pam-файлах я не нашёл как
> ставить фильтры, их можно прописать в /etc/pam_ldap.conf, но он один на
> всех. Есть идеи?
Man'ы читать надо, блин. Есть такая конструкция, которую можно
использовать в /etc/pam.d/*:
account required pam_ldap.so config=/etc/pam_ldap_<имя сервиса>.conf
Так даже красиво.
--
Покотиленко Костик <casper@meteor.dp.ua>
Reply to: