Статья

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: Статья

Непрочитанное сообщение f0s » 2009-12-02 15:38:14

lissyara писал(а):
Самое первое установим heimdal-1.0.1 для того что бы можно
было проводить аутентификацию основанную на Kerberos 5.
вотп ро это - не могли бы объяснить - откуда это выколупали и зачем в статье?
Могу немного пояснить, хотя помоему постоянные посетители форума и так это знают.
=======
Раньше, США запрещало экспортировать всякие криптостойкие технологии. Поэтому в дистрибутиве FreeBSD и прочих был обрезанный керберос.
В частности, поэтому аутентификация доменная не работала - там криптостойкость повыше должна была быть (как M$ продавал дистры с такой криптостойкостью - другой вопрос =))
Быренько за пределами США организовалась команда товарисчей, котоыре и настругали неймдал - с целью иметь полноценное шифрование.
Потом, эти ограничения сняли. И тепеь в дистрибутиве есть нормальный керберос, и неймдал ставить НЕ НАДО.
Что я и делаю всю шестую ветку и далее.
Чего и вам рекомендую.
Хватит уже таскать за собой кусок какого-то древнего мануала, из времён когда это действительно надо было.

ок, Лис, тогда такой вопрос. У меня домен на самбе с хранением всех данных в OpenLDAP. Мне нужно скрестить керберос с OpenLDAP. ТО есть я хочу, чтобы авторизация шла через керберос. Что я пытался сделать.. установил из портов heimdal (он там сцуко древний), на сайте официальном уже давно лежит 1.3.1, собрал его с поддержкой LDAP.


настроил конфиг:

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

[f0s@mail] /var/log/openldap/> cat /etc/krb5.conf
[kdc]
database = {
realm = ARTPAINT
dbname = ldap:ou=users,dc=artpaint,dc=spb,dc=ru
hdb-ldap-structural-object = inetOrgPerson
mkey_file = /var/heimdal/m-key
log_file = /var/log/heimdal/heimdal.log
acl_file = /var/log/heimdal/kadmind.acl
}
addresses = 127.0.0.1 192.168.10.8

[libdefaults]
default_realm = ARTPAINT
clockskew = 300
dns_lookup_kdc = 1

[realms]
ARTPAINT = {
kdc = mail.artpaint
admin_server = mail.artpaint
kpasswd_server = mail.artpaint
default_domain = artpaint
}

[domain_realm]
.artpaint = ARTPAINT
artpaint = ARTPAINT

[logging]
default = SYSLOG:NOTICE:DAEMON
kdc = FILE:/var/log/kdc.log
kadmind = FILE:/var/log/kadmind.log

[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
}
добавл схему krb5-kdc.schema в опенлдап. а также внес:

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

access to *
       by sockurl="^ldapi:///$" write
       by self write
       by * read

но не понимаю, как мне прикрутитьего к уже существующим учеткам?
пробовал добавить вручную атрибуты:

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

dn: uid=guest,ou=users,dc=artpaint,dc=spb,dc=ru
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
objectClass: sambaSamAccount
objectClass: dbmailUser
objectClass: userSecurityInformation
objectClass: krb5Principal
objectClass: krb5KDCEntry
gidNumber: 36385
givenName: Domain
sn: Guest
displayName: Domain Guest
uid: guest
sambaKickoffTime: 2147483647
sambaPwdCanChange: 2147483647
sambaPwdMustChange: 2147483647
sambaAcctFlags: [XU]
uidNumber: 44012
sambaSID: S-1-5-21-1143629007-3883614378-2078852349-89024
sambaDomainName: ARTPAINT
sambaPrimaryGroupSID: S-1-5-21-1143629007-3883614378-2078852349-513
cn: guest
gecos: guest
accountStatus: active
mailHost: mail.artpaint
mail: test2@artpaint.spb.ru
loginShell: /usr/sbin/nologin
homeDirectory: /nonexistent
structuralObjectClass: inetOrgPerson
entryUUID: 6c809926-1502-102d-9ab5-3f1ceec48fcb
creatorsName: cn=root,dc=artpaint,dc=spb,dc=ru
createTimestamp: 20080912103638Z
sambaNTPassword: 3434F8259597FA666F3FDDE60E61671D
sambaLMPassword: 186E1F266628579FC81667E3D731C5D9
sambaPwdLastSet: 1245156043
userPassword:: e1NIQX0sSElkbXppSXRvTG1vRC82VHVXUHBhT3z5czg9
krb5PrincipalName: GUEST@ARTPAINT
krb5KeyVersionNumber: 1
krb5KDCFlags: 126
entryCSN: 20091125121820Z#000000#00#000000
modifiersName: cn=root,dc=artpaint,dc=spb,dc=ru
modifyTimestamp: 20091125121820Z

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

теперь пытаюсь сделать:
[f0s@mail] /var/db/pkg/heimdal-1.0.1_1/> kinit guest
guest@ARTPAINT's Password:
kinit: krb5_get_init_creds: Client (guest@ARTPAINT) unknown
в логах при этом:

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

2009-11-26T11:16:07 AS-REQ guest@ARTPAINT from IPv4:192.168.10.8 for
krbtgt/ARTPAINT@ARTPAINT
2009-11-26T11:16:07 Failed to open database: Wrong database version
2009-11-26T11:16:07 UNKNOWN -- guest@ARTPAINT: No such entry in the
database
2009-11-26T11:16:07 sending 120 bytes to IPv4:192.168.10.8
и если даже через kadmin пытаться завести пользовтеля, то он в лдап не
попадает:

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

[f0s@mail] /var/log/openldap/> kadmin -l
kadmin> add sysadmin/admin
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Principal expiration time [never]:
Password expiration time [never]:
Attributes []:
sysadmin/admin@ARTPAINT's Password:
Verifying - sysadmin/admin@ARTPAINT's Password:
kadmin: kadm5_create_principal: dbopen
(ldap:ou=users,dc=artpaint,dc=spb,dc=ru): No such file or directory
kadmin: adding sysadmin/admin: No such file or directory
kadmin> exit

сокет с данной библиотекой находистя тута:

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

[f0s@mail] /usr/local/etc/openldap/> strings /usr/local/lib/libldap-2.3.so.2 | grep ldapi
ldap_is_ldapi_url
ldapi://
/var/run/openldap/ldapi

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

[f0s@mail] /usr/local/etc/openldap/> ll /var/run/ | grep openl
drwxrwxrwx  2 ldap      ldap       512 25 ноя 14:53 openldap

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

[f0s@mail] /usr/local/etc/openldap/> ll /var/run/openldap/ | grep ldapi
srw-rw-rw-  1 ldap  ldap    0 25 ноя 14:53 ldapi
лдап соект слушает:

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

[f0s@mail] //> sockstat | grep ldapi
ldap     slapd      96161 6  stream /var/run/openldap/ldapi
корчое глюк какой-то, почему-то керберос не хочет видеть лдап.. а как быть в случае если я поставлю не хеймдал, а что-то другое? в портах например есть:

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



[f0s@mail] /home/f0s/> cd /usr/ports/security/krb5-17/
[f0s@mail] /usr/ports/security/krb5-17/> make config
 [ ] KRB5_RENAME_FTP     Rename ftp to kftp
 [ ] KRB5_RENAME_TELNET  Rename telnet to ktelnet
 [ ] KRB5_RENAME_RLOGIN  Rename rlogin to krlogin
 [ ] KRB5_RENAME_RSH     Rename rsh to krsh
 [ ] KRB5_RENAME_RCP     Rename rcp to krcp
 [ ] KRB5_KRB4_COMPAT    Build and install krb4 compatibility
 [X] KRB5_DOC            Build and install krb5 documentation
 [ ] WANT_HTML           Want HTML documentation too

но тут мы как видим нет в списке поддержки лдапа! вообщем не знаю как быть с тем, чтобы связать керберос с лдапом

установил этот krb5-17:

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

[f0s@mail] /etc/> pkg_info | grep krb
krb5-1.7            An authentication system developed at MIT, successor to Ker
проверка статуса:

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

[f0s@mail] /etc/> /etc/rc.d/kerberos status
kerberos5 is not running.

запускаем:

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

[f0s@mail] /etc/> /etc/rc.d/kerberos start
Starting kerberos5.

не запустился:

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

[f0s@mail] /var/log/> /etc/rc.d/kerberos status
kerberos5 is not running.
идем в консоль и добавляем пользователя, он у нас должен добавится в лдап, но этого не происходит:

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

[f0s@mail] /etc/> kadmin -l
kadmin> add guest
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Principal expiration time [never]:
Password expiration time [never]:
Attributes []:
guest@ARTPAINT's Password:
Verifying - guest@ARTPAINT's Password:
kadmin: kadm5_create_principal: dbopen (ldap:ou=users,dc=artpaint,dc=spb,dc=ru): No such file or directory
kadmin: adding guest: No such file or directory
kadmin> exit

при этом в логах:

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

2009-12-02T15:40:27 bind IPv4:127.0.0.1/88: /var/heimdal/kdc.conf:0: cannot open file
2009-12-02T15:40:27 bind IPv4:192.168.10.8/88: Address already in use
2009-12-02T15:40:27 bind IPv4:127.0.0.1/88: Address already in use
2009-12-02T15:40:27 bind IPv4:192.168.10.8/88: Address already in use
2009-12-02T15:40:27 No sockets!
в /var/heimdal/ и правда нет kdc.conf... а должно? и вообще почему он смотрит в heimdal, у меня же больше нет heimdal:

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

[f0s@mail] /var/log/> pkg_info | grep heimdal
[f0s@mail] /var/log/>


ЗЫ, сейчас удалил krb5-17, и в kadmin Все равно пускает.. значит в 6-версию фряхи керберос встроен... получается так.. как бы мне его пересобрать в с поддержкой лдапа?
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zeone
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-01-29 11:51:02

Re: Статья

Непрочитанное сообщение zeone » 2011-03-14 10:28:01

Как же я замучился с самбой.
в конфиг прописал следующее

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

        dos charset = cp1251
        unix charset = cp1251
        display charset = cp1251
после этого перестало видеть пользователей 8( .... билет получает, в домен входит, командой net ads user показует всех юзверей, но вот wbinfo -u ничего не выводит... Как только я комментирую эти строки все пользователи вновь возвращаются...

BlackJaguar
рядовой
Сообщения: 27
Зарегистрирован: 2009-08-07 9:20:56

Re: Статья

Непрочитанное сообщение BlackJaguar » 2011-04-01 15:51:10

Как я ставил security/krb5 (версия 1.9)
Во-первых krb5 (это который от MIT, MIT Kerberos) честно предупреждает, что с Heimdal он несовместим, так что я его по чесноку снес pkg_delete с ключом -f (force)

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

cd /usr/ports/security/krb5
make config
ага, LDAP-ом и не пахнет.
ждем, пока он скачает и распакует архив и даже че-то соберет.

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

cd /usr/ports/security/krb5/work/krb5-1.9/src
./configure --help | grep ldap
тут он обязательно Вам на ушко скажет, что LDAP он как-бэ поддерживает, но вот опция в Makefile не указана, поэтому т-ссс!
исправим это

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

cd /usr/ports/security/krb5
я нашел в Makefile строку

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

.if defined(WITH_DNS_FOR_REALM)
после этого добавил ниже

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

CONFIGURE_ARGS+=--with_ldap
на самом деле там (в файлике /usr/ports/security/krb5/work/krb5-1.9/src/configure) еще куча опций, а-ля without-krb4 enable-shared enable-dns enable-dns-for-kdc enable-dns-for-realm и прочие.

не суть.
ругается на отсутствие ldap.h
находим этот файл в /usr/local/include делаем симлинк в /usr/include

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

ln -s /usr/include/ldap.h /usr/local/include/ldap.h
ругается на отсутствие lber.h - та же процедура (имя файла меняем, ага)
ругается на отсутствие библиотеки libldap.so? симлинк в /usr/lib

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

ln -s /usr/lib/libldap.so /usr/local/lib/libldap-2.4.so.8)
make install
не делайте clean раньше времени, схему-то взять надо!

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

cp /usr/ports/security/krb5/work/krb5-1.9/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /usr/local/etc/openldap/schema/kerberos.schema
после этого он у меня собрался. MIT Kerberos5 версии 1.9

документация доступна тут

Пилите, Шура! - они золотые!
Есть вещи на Земле, о друг Горацио, которых наши пацаны не догоняют. (с)