я бегу openldap 2.4.21
на ubuntu server 10.04
и пытается включить наложение журнала доступа с помощью cn=config
стиль конфигурации (так что не slapd.conf
). Моя основная база данных olcDatabase={1}hdb
поэтому я определил следующий модуль:
/etc/ldap/slapd.d/cn=config/cn=module{2}.ldif
# accesslog overlay definitions for primary db
dn: olcOverlay=accesslog,olcDatabase={1}hdb
objectClass: olcOverlayConfig
objectClass: olcAccessLogConfig
olcOverlay: accesslog
olcAccessLogDB: cn=accesslog
olcAccessLogOps: writes
olcAccessLogSuccess: TRUE
# scan the accesslog DB every day, and purge entries older than 7 days
olcAccessLogPurge: 07+00:00 01+00:00
Я получил эти директивы конфигурации с этой страницы так что я предполагаю, что они хороши. Когда я начинаю slapd
Я получаю следующие ошибки:
Nov 30 07:10:17 server slapd[11604]: UNKNOWN attributeDescription "OLCACCESSLOGDB" inserted.
Nov 30 07:10:17 server slapd[11604]: UNKNOWN attributeDescription "OLCACCESSLOGOPS" inserted.
Nov 30 07:10:17 server slapd[11604]: UNKNOWN attributeDescription "OLCACCESSLOGSUCCESS" inserted.
Nov 30 07:10:17 server slapd[11604]: UNKNOWN attributeDescription "OLCACCESSLOGPURGE" inserted.
Nov 30 07:10:17 server slapd[11604]: config error processing olcOverlay=accesslog,olcDatabase={1}hdb,cn=config:
Мне кажется, что мне не хватает схемы, однако, когда я ищу схему, содержащую вышеупомянутые атрибуты, я ничего не нахожу
$ grep -iR "LOGDB" /etc/ldap/schema/
-
Может кто-нибудь сказать мне, что мне не хватает, пожалуйста?
Похоже, вы неправильно поняли, что делает оверлей Accesslog. Он записывает информацию о доступе одного БД к другому БД. Поэтому, если вы пытаетесь отслеживать доступ к {1} hdb, вам придется настроить вторую базу данных, в которую журнал доступа будет записывать информацию.
Создайте каталог с именем accesslog в / var / lib / ldap /
mkdir /var/lib/ldap/accesslog
chown -R openldap:openldap /var/lib/ldap/accesslog
Затем используйте следующий ldif для настройки второй базы данных
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap/accesslog
olcSuffix: cn=accesslog
olcRootDN: cn=root,dc=yourdomain,dc=com
olcDbIndex: default eq
olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart
Готов поспорить, вы написали эти атрибуты ЗАГЛАВНЫМИ БУКВАМИ. OpenLDAP не большой поклонник YELLING, но ценит атрибуты, чувствительные к регистру.
Так, например, вместо OLCACCESSLOGDB
использовать olcAccessLogDB
.