пятница, 11 мая 2012 г.

Расширение Auditlog

При работе с сервером каталога в большом офисе рано или поздно возникает вопрос "Кто создал/изменил/удалил запись в каталоге?". Расследование становится еще более запутанным, если все администраторы работают с каталогом с правами одной учетной записи. Разобраться в проблеме поможет расширение Auditlog.

Подключение расширения

Для начала удостоверьтесь, что расширение собрано вместе с сервером. Для большинства дистрибутивов Linux достаточно будет выполнить команды rpm -ql openldap-servers ( или dpkg -l openldap-servers) | grep auditlog. Известным мне исключение является дистрибутивы Suse( SLES и OpenSuse), в которых все расширения собраны статически и узнать список собранных расширений можно только в src.rpm пакете. Пользователи sourceware дистрибутивов, я надеюсь, могут самостоятельно прояснить этот вопрос.
Для подключения расширения необходимо добавить в основную часть(выше первой директивы database) конфигурационного директиву:

moduleload auditlog

Активизация расширения

Для активизации расширения необходимо добавить следующие директивы после начала описания базы данных:

database hdb
suffix "dc=example,dc=com"
rootdn "cn=admin,dc=example,dc=com"
overlay auditlog
auditlog /var/lib/ldap/example.com/auditlog.ldif
rootpw secret
directory /var/lib/ldap/example.com

Важно помнить, что журнал пишется сервером slapd с теми правами, с которыми он запущен. Обычно это пользователь ldap из группы ldap. Выбирая место для записи журнала аудита нужно быть уверенным, что серверу хватит прав записать данные в журнал.

Проверка работы

Необходимо перезапустить сервер после изменения конфигурации, если вы еще этого не сделали и осуществить изменение каталога, например так:

$ ldapadd -D cn=admin,dc=example,dc=com -x -w secret
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization 
dc: example
o: Example Corporation

adding new entry "dc=example,dc=com"

dn: cn=admin,dc=example,dc=com
objectClass: person
cn: admin
sn: corporate
userPassword: secret

adding new entry "cn=admin,dc=example,dc=com"

И посмотреть, что попало в журнал:

# cat /var/lib/ldap/example.com/auditlog.ldif 
# add 1336732457 dc=example,dc=com cn=admin,dc=example,dc=com IP=127.0.0.1:49506 conn=1000
dn: dc=example,dc=com
changetype: add
objectClass: dcObject
objectClass: organization
dc: example
o: Example Corporation
structuralObjectClass: organization
entryUUID: 9b39cadc-2fa0-1031-95e7-c5b4fb0896fb
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20120511103417Z
entryCSN: 20120511103417.935072Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20120511103417Z
# end add 1336732457

# add 1336732500 dc=example,dc=com cn=admin,dc=example,dc=com IP=127.0.0.1:49506 conn=1000
dn: cn=admin,dc=example,dc=com
changetype: add
objectClass: person
cn: admin
sn: corporate
userPassword:: c2VjcmV0
structuralObjectClass: person
entryUUID: b46d5c9e-2fa0-1031-95e8-c5b4fb0896fb
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20120511103500Z
entryCSN: 20120511103500.216082Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20120511103500Z
# end add 1336732500


Комментариев нет:

Отправить комментарий