Тут по этой теме уже тонна написана. Перечитал всё. Всё равно не могу победить.FreeBSD 6.1-RELEASE
Стоит OpenLDAP и всё что с этим связано.cyrus-sasl-ldapdb-2.1.21 SASL LDAPDB auxprop plugin
nss_ldap-1.244 RFC 2307 NSS module
openldap-client-2.2.30 Open source LDAP client implementation
openldap-server-2.2.30 Open source LDAP server implementation
p5-perl-ldap-0.33 A Client interface to LDAP servers
pam_ldap-1.8.0 A pam module for authenticating with LDAP
php4-ldap-4.4.2_1 The ldap shared extension for php
sendmail+sasl2+ldap-8.13.6 Reliable, highly configurable mail transfer agent with utilcat /etc/nsswitch.conf:
group: files ldap
group_compat: nis ldap
hosts: files dns ldap
networks: files ldap
passwd: files ldap
passwd_compat: nis ldap
shells: files ldap
shadow: files ldapcat /etc/pam.d/pop3
auth sufficient /usr/local/lib/pam_ldap.so
auth required pam_unix.so no_warn try_first_passcat /etc/ldap.conf
base dc=gtss,dc=ru
host 127.0.0.1
uri ldap://192.168.100.8:389/
uri ldapi:///var/run/openldap/ldapi/
binddn cn=root,dc=gtss,dc=ru
bindpw overkill12
rootbinddn cn=root,dc=gtss,dc=ru
port 389
scope one
#pam_filter objectclass=user
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_min_uid 10000
pam_max_uid 30000
nss_base_shadow ou=users,dc=gtss,dc=ru?one
nss_base_passwd ou=users,dc=gtss,dc=ru?one
nss_base_group ou=groups,dc=gtss,dc=ru?one
ssl no
pam_password SSHAПытаюсь сгрузить почту.
В лог LDAPа летит примерно следующее:Oct 2 19:25:18 geo-samba slapd[426]:
Oct 2 19:25:18 geo-samba slapd[426]: daemon: read activity on 30
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: search access to "uid=zh,ou=users,dc=gtss,dc=ru" "objectClass" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: search access to "uid=zh,ou=users,dc=gtss,dc=ru" "uid" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "entry" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: daemon: select: listen=6 active_threads=0 tvp=NULL
Oct 2 19:25:18 geo-samba slapd[426]: daemon: select: listen=7 active_threads=0 tvp=NULL
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "uid" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "cn" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "objectClass" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "uidNumber" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "homeDirectory" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "loginShell" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "shadowMax" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "userPassword" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "shadowLastChange" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: => access_allowed: read access to "uid=zh,ou=users,dc=gtss,dc=ru" "gidNumber" requested
Oct 2 19:25:18 geo-samba slapd[426]: <= root access granted
Oct 2 19:25:18 geo-samba slapd[426]: daemon: activity on 1 descriptors
Oct 2 19:25:18 geo-samba slapd[426]: daemon: activity on:
Oct 2 19:25:18 geo-samba slapd[426]: 34r
То есть как-то это работает.В логи почтовика сыплется:
Oct 2 19:19:49 geo-samba qpopper[23321]: [AUTH] Failed attempted login to pirate from host (192.168.100.230) 192.168.100.230
Oct 2 19:20:34 geo-samba qpopper[23326]: zh at 192.168.100.230 (192.168.100.230): -ERR [AUTH] PAM authentication failed for user "zh": authentication error (9)
Oct 2 19:20:34 geo-samba qpopper[23326]: [AUTH] Failed attempted login to zh from host (192.168.100.230) 192.168.100.230
Oct 2 19:25:04 geo-samba qpopper[23352]: zh at 192.168.100.230 (192.168.100.230): -ERR [AUTH] PAM authentication failed for user "zh": new authentication token required (10)
Oct 2 19:25:04 geo-samba qpopper[23352]: [AUTH] Failed attempted login to zh from host (192.168.100.230) 192.168.100.230
Oct 2 19:25:28 geo-samba qpopper[23357]: zh at 192.168.100.230 (192.168.100.230): -ERR [AUTH] PAM authentication failed for user "zh": new authentication token required (10)
Oct 2 19:25:28 geo-samba qpopper[23357]: [AUTH] Failed attempted login to zh from host (192.168.100.230) 192.168.100.230Почта не отдаётся.
При этом самба с тем же LDAP работает на ура...
Что делать и куда бежать? Уже весь мозг сломал...
Попробуй в LDAP-е поставить пароль crypt.
Я все не могу заставить работать с паролем в md5, работает только если стоит в crypt в лдапе.
Хотя в конфиге указан
pam_password md5
Имеется в виду /etc/ldap.conf?
>Имеется в виду /etc/ldap.conf?
в /etc/openldap/slapd.conf (или где там во фре slapd.conf)поставь строчкуpassword-hash {CRYPT}
cat /etc/ldap.conf
base dc=gtss,dc=ru
host 127.0.0.1
uri ldap://192.168.100.8:389/
#uri ldapi:///var/run/openldap/ldapi/
binddn cn=root,ou=users,dc=gtss,dc=ru
bindpw тут пароль
rootbinddn cn=root,ou=users,dc=gtss,dc=ru
port 389
ldap_version 3
#scope one
pam_login_attribute uid
pam_filter objectclass=posixAccount
pam_min_uid 1000
pam_max_uid 30000
nss_base_shadow ou=users,dc=gtss,dc=ru?one
nss_base_passwd ou=users,dc=gtss,dc=ru?one
nss_base_group ou=groups,dc=gtss,dc=ru?one
ssl no
password-hash {CRYPT}
pam_password cryptcat /etc/pam.d/sshd
auth required pam_nologin.so no_warn
auth sufficient pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
auth sufficient /usr/local/lib/pam_ldap.so no_warn
auth required pam_unix.so no_warn try_first_passaccount required pam_login_access.so
account required pam_unix.so
account sufficient /usr/local/lib/pam_ldap.sosession required pam_permit.so
session required /usr/local/lib/pam_ldap.so
password required pam_unix.so no_warn try_first_pass
password sufficient /usr/local/lib/pam_ldap.socat /etc/pam.d/pop3
auth sufficient /usr/local/lib/pam_ldap.so
auth required pam_unix.so no_warn try_first_passПри этом при попытке логина в систему:
ssh 127.0.0.1 -l test
Password:
Old Password:
Password:
Old Password:
Password:
Old Password:
Permission denied (publickey,keyboard-interactive).в логах при этом:
Jan 23 17:00:41 servincom sshd[11351]: error: PAM: authentication error for test from localhost
Jan 23 17:00:45 servincom sshd[11357]: error: PAM: permission denied for test from localhostЕсли попробовать забрать почту, то тоже по нулям.
В логах при этом:Jan 23 17:01:49 gtss qpopper[11399]: test at 192.168.100.230 (192.168.100.230): -ERR [AUTH] PAM authentication failed for user "test": new authentication token required (10) [pop_pass.c:560]
Jan 23 17:01:49 gtssqpopper[11399]: [AUTH] Failed attempted login to test from host (192.168.100.230) 192.168.100.230 [pop_pass.c:1277]
а getent shadow что говорит?
только поле паролей сюда не кидай :-Dпароли crypt нормально заведены в ldap?
>а getent shadow что говорит?
Говорит:
getent: Command not found.
%))))
Видимо во FreeBSD решили что это лишняя фича.
id User выдаёт всё корректно.
finger говорит что пользователь не найден.
>пароли crypt нормально заведены в ldap?
В смысле "нормально"?Насторожило вот что:
slappasswd -h {CRYPT}
New password:
Re-enter new password:
Password generation failed for scheme CRYPT: scheme not recognizedХотя LAM показывает что пароли crypt и всё дескать нормально...
ААА, а версия то лдапа какая?
--enable-crypt - делал при сборке?
а то он уже давно отключен по умолчанию, ибо взломонестойкий, сцуконах :)
>ААА, а версия то лдапа какая?
2.2.30>--enable-crypt - делал при сборке?
>а то он уже давно отключен по умолчанию, ибо взломонестойкий, сцуконах :)
Скорее нет, чем да...А с SSHA оно никак работать не будет?
Переправил везде где можно на SSHA.То есть в итоге:
base dc=servincom,dc=ru
host 127.0.0.1
uri ldap://192.168.100.15:389/
binddn cn=root,ou=users,dc=servincom,dc=ru
bindpw Тут пароль
rootbinddn cn=root,ou=users,dc=servincom,dc=ru
port 389
ldap_version 3
scope one
pam_login_attribute uid
pam_filter objectclass=posixAccount
pam_min_uid 1000
pam_max_uid 30000
nss_base_shadow ou=users,dc=servincom,dc=ru?one
nss_base_passwd ou=users,dc=servincom,dc=ru?one
nss_base_group ou=groups,dc=servincom,dc=ru?one
ssl no
pam_password SSHAcat /usr/local/etc/openldap/slapd.conf
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema
include /usr/local/etc/openldap/schema/samba.schema
include /usr/local/etc/openldap/schema/sendmail.schemapidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.argsallow bind_v2
database ldbm
suffix "dc=servincom,dc=ru"
rootdn "cn=root,ou=users,dc=servincom,dc=ru"rootpw {SSHA}пароль сгенерённый slappasswd
password-hash {SSHA}
#Уровень логирования
loglevel 200directory /var/db/openldap-data
index objectClass,uid,uidNumber,gidNumber eq
index cn,mail,surname,givenname eq,subinitial# FOR samba3
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq# Basic ACL
access to attr=userPassword by self write by anonymous read by * none
access to attrs=sambaLMPassword,sambaNTPassword by dn="cn=root,ou=users,dc=servincom,dc=ru" write by * none
access to * by * readТеперь это выглядит так:
ssh user@127.0.0.1
Password:
Old Password:
Password:
Old Password:
Password:
Old Password:
Permission denied (publickey,keyboard-interactive).tail -f /var/log/messages
Jan 24 12:14:24 servincom sshd[1279]: error: PAM: permission denied for user from localhost
(то, что сменилось имя домена - нормально. другая машина для опытов).
При этом:
tail -f /var/log/debug.logJan 24 12:45:18 servincom slapd[409]: daemon: activity on 1 descriptors
Jan 24 12:45:18 servincom slapd[409]: daemon: new connection on 8
Jan 24 12:45:18 servincom slapd[409]: daemon: added 8r
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on:
Jan 24 12:45:18 servincom slapd[409]:
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=6 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=7 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on 1 descriptors
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on:
Jan 24 12:45:18 servincom slapd[409]: 8r
Jan 24 12:45:18 servincom slapd[409]:
Jan 24 12:45:18 servincom slapd[409]: daemon: read activity on 8
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=6 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=7 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on 1 descriptors
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on:
Jan 24 12:45:18 servincom slapd[409]: 8r
Jan 24 12:45:18 servincom slapd[409]:
Jan 24 12:45:18 servincom slapd[409]: daemon: read activity on 8
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=6 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: search access to "uid=user,ou=users,dc=servincom,dc=ru" "objectClass" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: search access to "uid=user,ou=users,dc=servincom,dc=ru" "uid" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "entry" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "objectClass" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "shadowMax" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "homeDirectory" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "uid" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "cn" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "uidNumber" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "gidNumber" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "shadowLastChange" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "userPassword" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: => access_allowed: read access to "uid=user,ou=users,dc=servincom,dc=ru" "loginShell" requested
Jan 24 12:45:18 servincom slapd[409]: <= root access granted
Jan 24 12:45:18 servincom slapd[409]: daemon: select: listen=7 active_threads=0 tvp=NULL
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on 2 descriptors
Jan 24 12:45:18 servincom slapd[409]: daemon: new connection on 15
Jan 24 12:45:18 servincom slapd[409]: daemon: added 15r
Jan 24 12:45:18 servincom slapd[409]: daemon: activity on:
Jan 24 12:45:18 servincom slapd[409]: 8r
Jan 24 12:45:18 servincom slapd[409]:то есть доступ, вроде нормальный...
>Переправил везде где можно на SSHA.
>
>pam_password SSHA
>пока не виделв форумах, что бы кроме crypt что то работало
может дело в библиотеке pam_ldap.so, типа понимает только crypt?>cat /usr/local/etc/openldap/slapd.conf
здесь меняй хеш как твоей душе
>rootpw {SSHA}пароль сгенерённый
>slappasswd
здесь прописывается хеш, исползуемый системой
>password-hash {SSHA}>
>Теперь это выглядит так:
>ssh user@127.0.0.1
>Password:
>Old Password:
>Password:
>Old Password:
>Password:
>Old Password:
>Permission denied (publickey,keyboard-interactive).
>
честно говоря, такго ни разу не встречал
меня обычно посылало, как при неверном пароле (надеюсь, root остался в /etc/passwd?)
>При этом:
>tail -f /var/log/debug.log
...
>то есть доступ, вроде нормальный...
а куда ж он денется? ldap пользователь авторизуется, соответственно в рамках самого ldap всё работает корректно, проблема на уровне pamв общем, я себе оставил crypt и пока сдался, мож кто другой победит, а я подсмотрю...
но пока crypt работает, проблем нет
>пока не виделв форумах, что бы кроме crypt что то работало
>может дело в библиотеке pam_ldap.so, типа понимает только crypt?
Не знаю.>в общем, я себе оставил crypt и пока сдался, мож кто другой
>победит, а я подсмотрю... но пока crypt работает, проблем нетOpenLDAP собирал из портов.
В Makefile ключ --enable-crypt есть. При этом slappasswd ведёт себя как описано выше. Ещё можно как-то проверить?
Как перевести всё на CRYPT теперь не понимаю, но попробую...
>В Makefile ключ --enable-crypt есть. При этом slappasswd ведёт себя как описано
>выше. Ещё можно как-то проверить?
>
>Как перевести всё на CRYPT теперь не понимаю, но попробую...
cначала пересобери openldap с ключом --enable-crypt
затем в slapd.conf: password-hash {CRYPT}
затем переделай пароли в ldap на {CRYPT}
и всёправда у меня опция "pam_password md5" из файла /etc/ldap.conf в на pam_ldap влияния не оказывает(проверено перебором), но тут уже может быть различия между фрёй и линуксами
>cначала пересобери openldap с ключом --enable-crypt
Изначально так собран.>затем в slapd.conf: password-hash {CRYPT}
Просто строку? Вставил.>затем переделай пароли в ldap на {CRYPT}
Переделал.>и всё
Эффект тот же...Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user "uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
Jan 25 14:22:41 servincom sshd[1849]: error: PAM: authentication error for illegal user test from localhost
>>cначала пересобери openldap с ключом --enable-crypt
>Изначально так собран.
>
>>затем в slapd.conf: password-hash {CRYPT}
>Просто строку? Вставил.
>
>>затем переделай пароли в ldap на {CRYPT}
>Переделал.
>
>>и всё
>Эффект тот же...
>
>Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user
>"uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
>Jan 25 14:22:41 servincom sshd[1849]: error: PAM: authentication error for illegal user
>test from localhost
а ldapsearch -b "ou=users,dc=servincom,dc=ru" - x -W -D "uid=test,ou=users,dc=servincom,dc=ru" "(objectClass=*)"
что пишет?
>а ldapsearch -b "ou=users,dc=servincom,dc=ru" - x -W -D "uid=test,ou=users,dc=servincom,dc=ru" "(objectClass=*)"
>что пишет?В том-то и дело, что всё хорошо...
# extended LDIF
#
# LDAPv3
# base <ou=users,dc=servincom,dc=ru> with scope sub
# filter: (objectclass=*)
# requesting: - x -W -D uid=test,ou=users,dc=servincom,dc=ru (objectClass=*)
## users, servincom.ru
dn: ou=users,dc=servincom,dc=ru# root, users, servincom.ru
dn: uid=root,ou=users,dc=servincom,dc=ru# nobody, users, servincom.ru
dn: uid=nobody,ou=users,dc=servincom,dc=ru
>>а ldapsearch -b "ou=users,dc=servincom,dc=ru" - x -W -D "uid=test,ou=users,dc=servincom,dc=ru" "(objectClass=*)"
>>что пишет?
>
>В том-то и дело, что всё хорошо...
>
># extended LDIF
>#
># LDAPv3
># base <ou=users,dc=servincom,dc=ru> with scope sub
># filter: (objectclass=*)
># requesting: - x -W -D uid=test,ou=users,dc=servincom,dc=ru (objectClass=*)
>#
>
># users, servincom.ru
>dn: ou=users,dc=servincom,dc=ru
>
># root, users, servincom.ru
>dn: uid=root,ou=users,dc=servincom,dc=ru
>
># nobody, users, servincom.ru
>dn: uid=nobody,ou=users,dc=servincom,dc=ruа где в результатах поиска uid=test,ou=users,dc=servincom,dc=ru, на который ругался pam_ldap?
меня смущает вот это:
>Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user
>"uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)"я, pam_ldap, не могу подключится пользователем uid=test,... для того что бы авторизовать кого-то другого, потому как пароли не совпали"
>а где в результатах поиска uid=test,ou=users,dc=servincom,dc=ru, на который ругался pam_ldap?Сокращён мной ибо он там есть:
# extended LDIF
#
# LDAPv3
# base <ou=users,dc=servincom,dc=ru> with scope sub
# filter: (objectclass=*)
# requesting: - x -W -D uid=test,ou=users,dc=servincom,dc=ru (objectClass=*)
## users, servincom.ru
dn: ou=users,dc=servincom,dc=ru# root, users, servincom.ru
dn: uid=root,ou=users,dc=servincom,dc=ru# nobody, users, servincom.ru
dn: uid=nobody,ou=users,dc=servincom,dc=ru# test, users, servincom.ru
dn: uid=test,ou=users,dc=servincom,dc=ru:))))
>>>а ldapsearch -b "ou=users,dc=servincom,dc=ru" - x -W -D "uid=test,ou=users,dc=servincom,dc=ru" "(objectClass=*)"
>>>что пишет?
>>
>>В том-то и дело, что всё хорошо...
>>
>># extended LDIF
>>#
>># LDAPv3
>># base <ou=users,dc=servincom,dc=ru> with scope sub
>># filter: (objectclass=*)
>># requesting: - x -W -D uid=test,ou=users,dc=servincom,dc=ru (objectClass=*)
>>#
>>
>># users, servincom.ru
>>dn: ou=users,dc=servincom,dc=ru
>>
>># root, users, servincom.ru
>>dn: uid=root,ou=users,dc=servincom,dc=ru
>>
>># nobody, users, servincom.ru
>>dn: uid=nobody,ou=users,dc=servincom,dc=ru
>
>а где в результатах поиска uid=test,ou=users,dc=servincom,dc=ru, на который ругался pam_ldap?
>
>
>меня смущает вот это:
>>Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user
>>"uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
>
>"я, pam_ldap, не могу подключится пользователем uid=test,... для того что бы авторизовать
>кого-то другого, потому как пароли не совпали"Как только ты поймёшь, какого лешего pam_ldap использует uid=test,ou=users,dc=servincom,dc=ru вместо cn=root,ou=users,dc=gtss,dc=ru ты поймёшь,что у тебя не работает
как я понял pam_ldap использует binddn когда работает не из под рута, и rootbinddn когда работает из под рута и тупо делат запрос в лдап. При нахождении нужных записей pam_ldap сравнивает пароли и если они совпали пускает тебя.
посмотри, где у тебя прописан uid=test,ou=users,dc=servincom,dc=ru (grep -rP "uid\=test" /etc/* рулит!) и попробуй его заменить на cn=root,ou=users,dc=gtss,dc=ru
хотя работать через rootbinddn нехорошо :)
меня терзают смутные сомнения, может на фре как то по другому настраивается конфиг библиотеки pam_ldap? :-/на линуксах pam_ldap работает, конфигов тьма. А вот фрю я так поробно как линукс не знаю(к моему сожалению)
а ещё такая была закавыка, долго ибалсо с лдапом, он сцуко не работал - притом что всё настроено...
оказалась такая лажа - в файле /etc/ldap.secret после пароля не стоял перевод строки(а как оказалось должен был, хотя я про это нигде не читал).
и вот из-за такого 6лядства я потерял целую неделю.
>и вот из-за такого 6лядства я потерял целую неделю.
Перевод строки поставил. Не помогло.Вообще забавно:
если ssh test@localhost, то в логах:Jan 26 16:31:43 servincom sshd[62912]: pam_ldap: error trying to bind as user "uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
Jan 26 16:31:43 servincom sshd[62910]: error: PAM: authentication error for illegal user test from localhost
Jan 26 16:31:44 servincom sshd[62913]: pam_ldap: error trying to bind as user "uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
Jan 26 16:31:44 servincom sshd[62910]: error: PAM: authentication error for illegal user test from localhost
Jan 26 16:31:46 servincom sshd[62914]: pam_ldap: error trying to bind as user "uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
Jan 26 16:31:46 servincom sshd[62910]: error: PAM: authentication error for illegal user test from localhostЕсли ssh denja@localhost, то
Jan 26 16:31:51 servincom sshd[62916]: error: PAM: authentication error for denja from localhostУ test пароль {CRYPT}, а у denja он {SSHA}...
>>меня смущает вот это:
>>>Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user
>>>"uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
Меня смущает вот это: Invalid credentials>Как только ты поймёшь, какого лешего pam_ldap использует uid=test,ou=users,dc=servincom,dc=ru
>вместо cn=root,ou=users,dc=gtss,dc=ru ты поймёшь,что у тебя не работает
Это да. Но я не понимаю. man pam_ldap ничего на эту тему не говорит толкового.>как я понял pam_ldap использует binddn когда работает не из под рута,
>и rootbinddn когда работает из под рута и тупо делат запрос
>в лдап. При нахождении нужных записей pam_ldap сравнивает пароли и если
>они совпали пускает тебя.
pam_ldap использует анонимуса когда работает не из-под рута и когда не указан явно binddn.>посмотри, где у тебя прописан uid=test,ou=users,dc=servincom,dc=ru
Нигде.> (grep -rP "uid\=test" /etc/*) -P - это что? Линуха под рукой нет, а во FreeBSD эта опция не поддерживается (гугль тоже с ходу ничего не дал...)
man pam_ldap говорит что конфиг должен быть /etc/ldap.conf
cat /etc/ldap.conf
base dc=servincom,dc=ru
host 127.0.0.1
uri ldap://192.168.100.15:389/
binddn cn=root,ou=users,dc=servincom,dc=ru
bindpw пароль_в_открытом_виде (не хэш)
rootbinddn cn=root,ou=users,dc=servincom,dc=ru
port 389
ldap_version 3
scope one
pam_login_attribute cn
#pam_filter objectclass=posixAccount
pam_min_uid 1000
pam_max_uid 30000
nss_base_shadow ou=users,dc=servincom,dc=ru?one
nss_base_passwd ou=users,dc=servincom,dc=ru?one
nss_base_group ou=groups,dc=servincom,dc=ru?one
ssl no
pam_password CRYPT
http://www.opennet.me/base/net/pam_ldap.txt.htmlТакже неоходимо создать файл /etc/ldap.secret и сохранить в нем пароль
администратора каталога. Этот пароль будет использоваться для
выполнения административных функций, и не будет доступен обычным
пользователям:# echo "zarazamelkaya" >/etc/ldap.secret
# chmod 600 /etc/ldap.secret
# chmod root:root /etc/ldap.secretу тебя такое есть?
>у тебя такое есть?
конечно.
>>>меня смущает вот это:
>>>>Jan 25 14:22:41 servincom sshd[1851]: pam_ldap: error trying to bind as user
>>>>"uid=test,ou=users,dc=servincom,dc=ru" (Invalid credentials)
>Меня смущает вот это: Invalid credentials
>
>>Как только ты поймёшь, какого лешего pam_ldap использует uid=test,ou=users,dc=servincom,dc=ru
>>вместо cn=root,ou=users,dc=gtss,dc=ru ты поймёшь,что у тебя не работает
>Это да. Но я не понимаю. man pam_ldap ничего на эту тему
>не говорит толкового.
>
>>как я понял pam_ldap использует binddn когда работает не из под рута,
>>и rootbinddn когда работает из под рута и тупо делат запрос
>>в лдап. При нахождении нужных записей pam_ldap сравнивает пароли и если
>>они совпали пускает тебя.
>pam_ldap использует анонимуса когда работает не из-под рута и когда не указан
>явно binddn.
>
>>посмотри, где у тебя прописан uid=test,ou=users,dc=servincom,dc=ru
>Нигде.
>
>> (grep -rP "uid\=test" /etc/*) -P - это что? Линуха под рукой нет, а во FreeBSD эта опция не поддерживается (гугль тоже с ходу ничего не дал...)
>
>man pam_ldap говорит что конфиг должен быть /etc/ldap.conf
>cat /etc/ldap.conf
>base dc=servincom,dc=ru
>host 127.0.0.1>uri ldap://192.168.100.15:389/
а вот это про что???? у меня такого нету
>binddn cn=root,ou=users,dc=servincom,dc=ru
>bindpw пароль_в_открытом_виде (не хэш)
>rootbinddn cn=root,ou=users,dc=servincom,dc=ru
>port 389
>ldap_version 3
>scope one
>pam_login_attribute cn
>#pam_filter objectclass=posixAccount
>pam_min_uid 1000
>pam_max_uid 30000
>nss_base_shadow ou=users,dc=servincom,dc=ru?one
>nss_base_passwd ou=users,dc=servincom,dc=ru?one
>nss_base_group ou=groups,dc=servincom,dc=ru?one
>ssl no
>pam_password CRYPTвот мой конфиг, только что лазил юзером :)
[anyuser@anyhost]$ cat /etc/ldap.conf
host 127.0.0.1
base ou=samba,o=myorg,c=ru
binddn cn=samba,o=myorg,c=ru
bindpw NotEvenTry
rootbinddn cn=samba,o=myorg,c=ru
scope sub
ssl no
pam_password md5
pam_login_attribute uid
pam_member_attribute gid
nss_base_passwd ou=Users,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
nss_base_passwd ou=Computers,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
nss_base_shadow ou=Users,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
nss_base_group ou=Groups,ou=samba,o=myorg,c=ru?sub?objectClass=posixGroup
кстати, grep -P - это исползовать регулярные выражения perl (из libpcre) я их лучше знаю, чем обычные регексы, так что не всех хостах у себя пересобрал grep с этой опцией :)))
>>uri ldap://192.168.100.15:389/
>а вот это про что???? у меня такого нету
Выдержка из man:
uri <ldap[is]://[name[:port]] ...>
For LDAP client libraries that support it, specifies the URI(s)
of the LDAP server(s) to connect to. The URI scheme may be ldap,
ldapi, or ldaps, specifying LDAP over TCP, IPC and SSL respec-
tively. If applicable, a port number can be specified; the
default port number for the selected protocol is used if omit-
ted. This option takes precedence over the host option; it is
not possible to combine the two.В общем, ни на что не влияет.
Разница в конфигах:
>scope sub
>pam_password md5
>pam_member_attribute gid
>nss_base_passwd ou=Users,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
>nss_base_passwd ou=Computers,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
>nss_base_shadow ou=Users,ou=samba,o=myorg,c=ru?sub?objectClass=posixAccount
>nss_base_group ou=Groups,ou=samba,o=myorg,c=ru?sub?objectClass=posixGroupДобавил (с правкой под свой DN) - ошибка та же...
Почему он лезет тестом и что не так с паролем...
>
>В общем, ни на что не влияет.
тогда закомментируй его нах
>Почему он лезет тестом и что не так с паролем...тогда осталась последняя надежда
делай рутовую сессиюсначала запусти slapd -d 255, и смотри в логах, что режет глаз, что необыно, на что ругается
потом запусти
/usr/sbin/tcpdump -X -i lo udp and port 389 и смотри что пишет
делай попытки от разных юзеров и смотри, кем лезет pam_ldap
ищи uid=test
кстати, обычно ещё одна копия ldap.conf лежит у меня в /etc/openldap. можкт он перебивает конфиг?
>тогда закомментируй его нах
Эффекта - 0. :)))>сначала запусти slapd -d 255, и смотри в логах, что режет глаз,
>что необыно, на что ругается
Не ругается... Вообще все Ок...>/usr/sbin/tcpdump -X -i lo udp and port 389 и смотри что пишет
Информация для меня малополезная. :)))) Так тоже делал уже. Что-то вроде:18:10:14.284219 IP 127.0.0.1.62539 > 127.0.0.1.389: P 1:60(59) ack 1 win 35840 <nop,nop,timestamp 102185324 102185324>
0x0000: 4500 006f bc62 4000 4006 8024 7f00 0001 E..o.b@.@..$....
0x0010: 7f00 0001 f44b 0185 6092 a8de cb3e 4150 .....K..`....>AP
0x0020: 8018 8c00 1be2 0000 0101 080a 0617 396c ..............9l
0x0030: 0617 396c 3039 0201 0160 3402 0103 0423 ..9l09...`4....#
0x0040: 636e 3d72 6f6f 742c 6f75 3d75 7365 7273 cn=root,ou=users
0x0050: 2c64 633d 7365 7276 696e 636f ,dc=servinco
18:10:14.286247 IP 127.0.0.1.389 > 127.0.0.1.62539: P 15:396(381) ack 309 win 35840 <nop,nop,timestamp 102185326 102185325>
0x0000: 4500 01b1 bc66 4000 4006 7ede 7f00 0001 E....f@.@.~.....
0x0010: 7f00 0001 0185 f44b cb3e 415e 6092 aa12 .......K.>A^`...
0x0020: 8018 8c00 0eb6 0000 0101 080a 0617 396e ..............9n
0x0030: 0617 396d 3082 0179 0201 0264 8201 7204 ..9m0..y...d..r.
0x0040: 2575 6964 3d64 656e 6a61 2c6f 753d 7573 %uid=denja,ou=us
0x0050: 6572 732c 6463 3d73 6572 7669 ers,dc=servi
Неужели ты готов признать, что какой-то там slapd умнее тебя???slapd -d 255 с выволом в консоль
затем, рестартуй nscd c другой консоли
затем логин рутом и любым юзером кроме 'test'
затем в консоли где отладка slapd, смотрим, что пишет, есть ли ругательства.идея в том, что бы проследить всю цепочку запросов pam_ldap.
Я почему-то уверен, что закавыка элементарнаяКстати, ты pam_ldap пересобирал, после переустановки библиотек ldap?
>Неужели ты готов признать, что какой-то там slapd умнее тебя???
Когда я встречаю такое количество слов experimental в документации, то, в общем, готов. :)))
Но тут у меня нет выбора. Мне надо чтобы доменный логин и пароль были так же и почтовыми. :)))>slapd -d 255 с выволом в консоль
Тонны бесполезной информации. :)))>затем, рестартуй nscd c другой консоли
Этого нет. Это кто?>затем логин рутом и любым юзером кроме 'test'
>затем в консоли где отладка slapd, смотрим, что пишет, есть ли
>ругательства.
Слово error и deny нигде не встречается...>Кстати, ты pam_ldap пересобирал, после переустановки библиотек ldap?
Каких библиотек?
Я сначала ставил LDAP, а потом pam_ldap...
>>Неужели ты готов признать, что какой-то там slapd умнее тебя???
>Когда я встречаю такое количество слов experimental в документации, то, в общем,
>готов. :)))
>Но тут у меня нет выбора. Мне надо чтобы доменный логин и
>пароль были так же и почтовыми. :)))
>
читай как "юниксовыми"
>>slapd -d 255 с выволом в консоль
>Тонны бесполезной информации. :)))
>
>>затем, рестартуй nscd c другой консоли
>Этого нет. Это кто?name service cache daemon - кэширует запросы, в частности в лдап, крайне желателен для
pam_ldap
>
>>затем логин рутом и любым юзером кроме 'test'
>>затем в консоли где отладка slapd, смотрим, что пишет, есть ли
>>ругательства.
>Слово error и deny нигде не встречается...
это понятно, важнее узнать, находит ли pam_ldap атрибут пароля юзверя, что бы его сравнить с введённым>
>>Кстати, ты pam_ldap пересобирал, после переустановки библиотек ldap?
>Каких библиотек?
>Я сначала ставил LDAP, а потом pam_ldap...
блин, я опять забыл, что во фре система портов...а по какому именно руководству ты настраивал?
>читай как "юниксовыми"
Поэтому SSHой и тестирую. :)))>name service cache daemon - кэширует запросы, в частности в лдап, крайне
>желателен для pam_ldap
Хм... Стоит поставить?>это понятно, важнее узнать, находит ли pam_ldap атрибут пароля юзверя, что бы
>его сравнить с введённым
Выглядит это так:
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "entry" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "shadowLastChange" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "shadowMax" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "uid" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "cn" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "homeDirectory" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "uidNumber" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "objectClass" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "gidNumber" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "gecos" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "userPassword" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted
Jan 30 11:49:54 servincom slapd[409]: => access_allowed: read access to "uid=test,ou=users,dc=servincom,dc=ru" "loginShell" requested
Jan 30 11:49:54 servincom slapd[409]: <= root access granted>блин, я опять забыл, что во фре система портов...
%))))>а по какому именно руководству ты настраивал?
http://rrv.jino-net.ru/Samba3.htm
http://www.lissyara.su/?id=1280
http://www.lissyara.su/?id=1279
http://www.idealx.com/content/view/187/172/lang,fr/
мне проще. Я использовал руководство от IDEALX, но оно похоже только для линукса
зато после него всё работает>>а по какому именно руководству ты настраивал?
>http://rrv.jino-net.ru/Samba3.htmда, у меня было с настройками НАМНОГО проще (см smbldap-tools)
>http://www.lissyara.su/?id=1280
>http://www.lissyara.su/?id=1279
>http://www.idealx.com/content/view/187/172/lang,fr/
>мне проще. Я использовал руководство от IDEALX, но оно похоже только для
>линукса
>зато после него всё работаетСтруктуры базы LDAP я тоже с помошью smbldap-tools делал...
>>http://www.idealx.com/content/view/187/172/lang,fr/
>>мне проще. Я использовал руководство от IDEALX, но оно похоже только для
>>линукса
>>зато после него всё работает
>
>Структуры базы LDAP я тоже с помошью smbldap-tools делал...
ну тогда я не знаю... :(
для очистки моей совести можешь сбросить мне на мыльце пожатый лог с консоли slapd -d 255 во время логина юзера тест.
Вдруг у меня глаз не замылен?...
>>>http://www.idealx.com/content/view/187/172/lang,fr/
>>>мне проще. Я использовал руководство от IDEALX, но оно похоже только для
>>>линукса
>>>зато после него всё работает
>>
>>Структуры базы LDAP я тоже с помошью smbldap-tools делал...
>
>
>ну тогда я не знаю... :(
>для очистки моей совести можешь сбросить мне на мыльце пожатый лог с
>консоли slapd -d 255 во время логина юзера тест.
>Вдруг у меня глаз не замылен?...
Куда кидать-то? :))))dj_kill на маил в домене ру.
Подниму тему.В общем, борьба с конфигами довела меня до состояния что при логине это выглядит так:
login as: test
Using keyboard-interactive authentication.
Password:
Old Password:
Access deniedПри этом в auth.log попадает только:
Mar 6 14:51:27 geo-samba sshd[60647]: error: PAM: permission denied for test from kill.mon.gtss.ru
Может это уже сам PAM себя так ведёт? Куда копать уже не понимаю...
>Подниму тему.
>
>В общем, борьба с конфигами довела меня до состояния что при логине
>это выглядит так:
>
>login as: test
>Using keyboard-interactive authentication.
>Password:
>Old Password:
>Access denied
>
>При этом в auth.log попадает только:
>
>Mar 6 14:51:27 geo-samba sshd[60647]: error: PAM: permission denied for test
>from kill.mon.gtss.ru
>
>Может это уже сам PAM себя так ведёт? Куда копать уже не
>понимаю...pam вед
>Подниму тему.
>
>В общем, борьба с конфигами довела меня до состояния что при логине
>это выглядит так:
>
>login as: test
>Using keyboard-interactive authentication.
>Password:
>Old Password:
>Access denied
>
>При этом в auth.log попадает только:
>
>Mar 6 14:51:27 geo-samba sshd[60647]: error: PAM: permission denied for test
>from kill.mon.gtss.ru
>
>Может это уже сам PAM себя так ведёт? Куда копать уже не
>понимаю...pam ведёт себя одинаково для всех служб? Ftp, telnet, sshd?
>pam ведёт себя одинаково для всех служб? Ftp, telnet, sshd?
Если через LDAP - то проверял только почту и ssh. Эффект одинаковый.
>>pam ведёт себя одинаково для всех служб? Ftp, telnet, sshd?
>Если через LDAP - то проверял только почту и ssh. Эффект одинаковый.
>А ты проверял pam_ldap.so (или какое там во фре расширение для бибилиотек ) на наличие строчки uid=test... ?
И порт(котрый в портах) для pam_ldap бы проверить на наличие этого dn. Может он жёстко прописан?
>А ты проверял pam_ldap.so (или какое там во фре расширение для бибилиотек
>) на наличие строчки uid=test... ?
>И порт(котрый в портах) для pam_ldap бы проверить на наличие этого dn.
>Может он жёстко прописан?
А где он там может быть жёстко приписан и как это может влиять на точно такое же поведение если цепляться любым другим пользователем?
>>А ты проверял pam_ldap.so (или какое там во фре расширение для бибилиотек
>>) на наличие строчки uid=test... ?
>>И порт(котрый в портах) для pam_ldap бы проверить на наличие этого dn.
>>Может он жёстко прописан?
>А где он там может быть жёстко приписан и как это может
>влиять на точно такое же поведение если цепляться любым другим пользователем?
>
поведние именно в том, что в конфигах uid=test.. не прописан, а pam_ldap всегда лезет эти юзером в лдап, когда ты коннектишься не из под рута
ведь откуда-то он его берёт... :-\
всё таки пошли сжатый лог от slapd -d 255 на foomail<где-то>yandex.ru
пароли не забудь скрыть ;-)
Нарвался на ту же траблу, почитал маны.password-hash <hash> [<hash>...]
This option configures one or more hashes to be used in generation of user passwords stored in the userPassword attribute during processing of LDAP Password Modify Extended Operations (RFC 3062). The <hash> must be one of {SSHA}, {SHA}, {SMD5}, {MD5}, {CRYPT}, and {CLEARTEXT}. The default is {SSHA}.
...
Note that this option does not alter the normal user applications handling of userPassword during LDAP Add, Modify, or other LDAP operations.другими словами, схема криптования работает только внутри лдапа, определяет как хранить пароли. а сам закриптованый пароль передается как стринг в пам (или другие юзер апликешнс) и если он был закриптован в CRYPT (то же самое что никсовые юзерские пароли), пам его понимает. если в любом другом виде - не понимает.
сейчас копаюсь на тему как заставить пам понимать что-то кроме крипта, так что если найдете раньше.. =)
> сейчас копаюсь на тему как заставить пам понимать что-то кроме крипта, так
> что если найдете раньше.. =)/etc/auth.conf
#
# $FreeBSD: src/etc/auth.conf,v 1.6.32.1.2.1 2009/10/25 01:10:29 kensmith Exp $
#
# Configure some authentication-related defaults. This file is being
# gradually subsumed by user class and PAM configuration.
#crypt_default = md5 des