Игорь Вершинин писал(а):Сталкнулся вчера вот с такой дырой.
Есть системный аккаутн root, прописанный в password и shadow. Есть поднятый LDAP, в котором прописаны все другие пользователи (рельные люди, работающие в сети). Через LDAP идет авторизация в Samba, Postfix, Cyrus-imap, Squid. Так вот, если добавить в LDAP пользователя root c UID 0, то он полностью дублирует стандарного системного рута.
Это совсем не дыра, так всегда было и будет!
Игорь Вершинин писал(а):Как сделать так, чтобы невозможен был логин в систему пользователя из LDAP, UID которого меньше 1000 (т.е. системному нельзя, только из локальных файлов)?
По поводу если UID меньше 1000, то нельзя, стоит посмотреть в настройки подсистемы PAM и NSS, для FreeBSD
подсистема PAM
файл /usr/local/etc/ldap.conf
# Specify a minium or maximum UID number allowed
pam_min_uid 1000
pam_max_uid 5000
и подсистема NSS
файл /usr/local/etc/nss_ldap.conf
# Specify a minium or maximum UID number allowed
pam_min_uid 1000
pam_max_uid 5000
если такой вариант не пройдет то:
1. Запретить локальный вход + вход по SSH: аттрибут loginShell = /sbin/nologin, предварительно внеся в список оболочек /sbin/nologin (во FreeBSD это файлик /etc/shells)
2. Если у данного юзера есть аттрибуты от Samba, то меняем аттрибут sambaAcctFlags = [D____], D - означает Account is disabled
А вообще, что мешает поставить пользователб с UID = 0 какой нить длинющий пароль и забыть про него, уж тогда никто под ним не войдет, допустим у меня для root так и сделано, он есть в LDAP но с каким то длинным паролем, я его даже и не знаю, а нужен он там для сервисных целей той же Самбы.