LDAP Log in UCS 4.1-4, wie?

openldap
german

#1

Hi

Wie ist es denn möglich auf meinem UCS LDAP-Server (4.1-4) ein LDAP Query Log zu erzeugen damit ich sehen kann, was angefragt wird?
Dann bräuchte ich noch ein Logrotate, ich weiß zwar wie ich das selbst implementieren kann aber nun frage ich mich wenn ich in /etc/logrotate.d/ eine Datei schreibe, ob diese bei einem Update ggf. gelöscht wird?
Oder gibt es UCR-Variablen dafür? :slight_smile:

Gruß Thomy


#2

Das geht per UCR:

 ucr set ldap/debug/level='stats' 
 service slapd restart

Danach landen die Anfragen im syslog.


#3

Ok danke schon einmal :slight_smile:

Ist es auch möglich die Dateien in eine eigene Datei schreiben zu lassen die dann wieder mit Logrotate rotiert wird?


#4

Ist es auch möglich die Dateien in eine eigene Datei schreiben zu lassen die dann wieder mit Logrotate rotiert wird?

Ja. Zum Filtern in eine separate Datei passt man den rsyslog an, für das Rotieren halt logrotate. Beides geht so, dass es upgradesicher ist.

Als Erstes legen Sie eine Konfigurationsdatei für den rsyslog-Filter an, z.B. /etc/rsyslog.d/slapd-queries.conf. Inhalt:

:msg, regex, "conn=.*SRCH.*base="
*.* /var/log/slapd-queries.log

Anschließend starten Sie den rsyslog mit sudo service rsyslog restart neu. Da praktisch ständig LDAP-Queries laufen, sollte die Datei /var/log/slapd-queries.log innerhalb weniger Sekunden erstellt und mit Inhalt befüllt werden.

Weiterhin legen Sie nun eine logrotate-Konfiguration dafür an, z.B. /etc/logrotate.d/slapd-queries, und verwenden Inhalt ähnlich wie in /etc/logrotate.d/rsyslog:

/var/log/slapd-queries.log
{
	weekly
	rotate 12
	create 640 root adm
	compress
	missingok
	notifempty
	delaycompress
	sharedscripts
	postrotate
		invoke-rc.d rsyslog rotate > /dev/null
	endscript
}

Das war’s schon.


#5

Hallo

In meinem slapd-query.log kommt aber leider überhaup nichts an :(.
Ich habe die Einstellungen so wie beschrieben implementiert.

Gruß Thomas


#6

Ich hab leider kein UCS 4.1 mehr zum Testen und hatte das oben mit 4.2 implementiert. Da lief es wunderbar. Prüfen Sie mal in der rsyslog-Konfiguration, ob das Verzeichnis /etc/rsyslog.d bzw. die Dateien darin überhaupt eingebunden werden. So etwas müsste zu finden sein: $IncludeConfig /etc/rsyslog.d/*.conf

Dann stellen Sie sicher, dass Sie rsyslog auch wirklich neu gestartet haben. Sie sollten in /var/log/syslog Meldungen wie folgt finden:

Aug  1 16:30:29 master rsyslogd: [origin software="rsyslogd" swVersion="8.4.2" x-pid="21795" x-info="http://www.rsyslog.com"] start

Mit anderen Versions- und PID-Nummern, versteht sich.


#7

Ach, noch etwas. Es kann gut sein, dass sich das Format geändert hat, in dem der slapd seine Meldungen ins Syslog schreibt, und dass deshalb mein regulärer Ausdruck für rsyslog in 4.1 nicht greift.

Können Sie bitte mal ein paar Zeilen aus der /var/log/syslog posten, die von slapd erzeugt werden? Danke.


#8

In der syslog steht folgendes:

Aug 2 10:33:48 ldap3 root: /etc/init.d/slapd start (pid: 14671, ppid:14628 slapd)
Aug 2 10:33:48 ldap3 slapd[14685]: @(#) $OpenLDAP: slapd (Dec 2 2016 15:19:08) $#012#011pbuser@ladda:/var/build/temp/tmp.MpsMgjP4Bt/pbuilder/openldap-2.4.42+dfsg/debian/build/servers/slapd
Aug 2 10:33:48 ldap3 slapd[14686]: slapd starting
Aug 2 10:34:13 ldap3 slapd[14686]: conn=1000 fd=17 ACCEPT from IP=149.217.48.188:65249 (IP=0.0.0.0:389)
Aug 2 10:34:13 ldap3 slapd[14686]: conn=1000 op=0 BIND dn=“uid=…” method=128
Aug 2 10:34:13 ldap3 slapd[14686]: conn=1000 op=0 BIND dn=“uid=…” mech=SIMPLE ssf=0


#9

Das sind noch keine Suchanfragen. Machen Sie doch mal ein univention-ldapsearch uid=administrator dn, und posten Sie, was dann in dem Moment im Syslog auftaucht. Da müsste irgend etwas mit dieser Suche erscheinen…


#10

Hallo

Ja aber ich möchte ja (evtl. war der Titel auf falsch) dass alles von slapd (also auch BIND…) in dem Log landet.


#11

Ach so, das hatte ich anders verstanden. Sorry.

Das ist sogar noch einfacher. In der rsyslog-Konfigurationsdatei muss dann nämlich nur das hier stehen:

if $programname == 'slapd' then /var/log/slapd.log

Das loggt alle Meldungen, bei denen der meldende Programmname slapd ist, in die angegebene Datei. Da der anders als mein vorheriger Vorschlag ist, sollten Sie noch den Namen der Datei in der Logrotate-Konfiguration anpassen.

Das hab ich eben auch kurz auf einem UCS 4.1-4 erfolgreich testen können und sollte daher auch bei Ihnen funktionieren.


#12

Hallo

Super, nun funktioniert es.
Danke :slight_smile:

Gruß Thomas