On Thu, 1 Oct 2009 11:13:58 +0800 Денис <feklushkin.denis@gmail.com> wrote: > Не знаю, может я неправильно понимаю идею, но: Люди, скажите хоть, это не выглядит как проблема, я что-то не понимаю, есть другие пути? Не молчите только плиз :) > > Если держать пользователей в SQL DB то нежелательно их > аутентифицировать через NSS, так как это предполагает открытие доступа > в таблицу с пользователями, включая их пароли для хоста. То есть, > в настройках будет это: > > # grep getpwuid /etc/nss-pgsql.conf > getpwuid = SELECT username, passwd, gecos, homedir, shell, uid, > gid FROM passwd_table WHERE uid = $1 > > В случае если на одном хосте, который берёт пользователей из базы, > случится взлом с получением рутовых прав ничто не сможет помешать украсть > список пользователей и их парольных хэшей для всех обслуживаемых > базой хостов. Значит, аутенфикация пользователей по NSS отменяется. > > Но и PAM (по крайней мере, модуль pam_pgsql 0.6) требует настройки, > содержащей команду, возвращающую пароль (или его хэш): > > # auth_query - authentication query > # (should return one column - password) > auth_query = select user_password from account where user_name = %u > > То бишь, на взломанном хосте берём пароль к базе из настроек NSS, > берём из базы все имена пользователей, потом пробегаемся по этим > именам используя логин из настроек pam_pgsql и получаем хэши паролей. > Заряжаем в перебералку парлей и вуаля - получаем (некоторые, конечно) > пароли пользователей всей(!) системы, обслуживаемой данной SQL DB. пароли пользователей ото всех систем из данной таблицы > > Как бы перенести проверку пароля с клиентского хоста в саму базу > данных или куда-нибудь ещё с потенциально уязывимых машин? Kerberos тут не поможет?
Attachment:
signature.asc
Description: PGP signature