Я использую OpenLDAP в Debian Stretch. Я хотел использовать auditlog
оверлейный модуль, однако он не загружается.
Я добавил модуль auditlog
в мою конфигурацию
# module{0}, config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_mdb
olcModuleLoad: {1}memberof
olcModuleLoad: {2}ppolicy
olcModuleLoad: {3}pw-sha2
olcModuleLoad: {4}refint
olcModuleLoad: {5}auditlog
Когда я пытаюсь настроить оверлей, возникает синтаксическая ошибка:
adding new entry "olcOverlay=auditlog,olcDatabase={1}mdb,cn=config"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #3 invalid per syntax
Это означает, что OpenLDAP не распознает objectClass
olcAuditLogConfig
который должен был быть добавлен auditlog
модуль. Я пробовал использовать auditlog.la
вместо этого, но это не имеет никакого значения.
Какие-либо предложения?
Я думаю так должно быть olcAuditlogConfig
. По крайней мере, это то, что определено в схеме после добавления наложения журнала аудита:
# cat << EOF | ldapmodify -Y EXTERNAL -H ldapi://
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: auditlog.la
EOF
и поиск с помощью следующей команды
# ldapsearch -QY EXTERNAL -H ldapi:// -b cn=subschema -s base + | grep -i olcauditlogconfig
который показывает запись схемы для olcAuditlogConfig
:
objectClasses: ( 1.3.6.1.4.1.4203.1.12.2.4.3.15.1
NAME 'olcAuditlogConfig'
DESC 'Auditlog configuration'
SUP olcOverlayConfig STRUCTURAL
MAY olcAuditlogFile )
Затем создайте файл журнала, используя правильные разрешения:
touch /var/log/auditlog.ldif
chown openldap:openldap /var/log/auditlog.ldif
И добавляем конфиг auditlog:
# cat << EOF | ldapmodify -Y EXTERNAL -H ldapi://
dn: olcOverlay={0}auditlog,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcAuditlogConfig
olcOverlay: {0}auditlog
olcAuditlogFile: /var/log/auditlog.ldif
EOF
Это приводит к следующему cn=config
при новой установке slapd
(Debian 9.4 Stretch, slapd 2.4.44 + dfsg-5 + deb9u1):
# slapcat -n 0 -o ldif-wrap=no
...
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_mdb
olcModuleLoad: {1}auditlog.la
structuralObjectClass: olcModuleList
...
dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
...
dn: olcOverlay={0}auditlog,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAuditlogConfig
olcOverlay: {0}auditlog
olcAuditlogFile: /var/log/auditlog.ldif
structuralObjectClass: olcAuditlogConfig