Назад | Перейти на главную страницу

Проблема с включением наложения журнала доступа в Openldap 2.4.21

я бегу 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.