dhcpd dauerhaft protokollieren lassen

Pfiffikus

Member
Guten Tag,

gibt es eine Option für dhcpd (opensuse11.0), die es mir gestattet, als Logdatei aufzeichnen zu lassen, wann welchem Rechner (welcher MAC-Adresse) welche IP zugewiesen wurde?
Da gibt es eine Datei /var/lib/dhcp/db/dhcpd.leases, die enthält zwar mehr Angaben, als ich haben möchte. Doch das scheinen nur die aktuellen Leases zu sein. Sobald die IP an einen anderen Rechner vermietet wird, benötigt dhcpd diesen Datensatz nicht mehr und scheint ihn wieder zu entfernen. Aber genau diese Information möchte ich auch nach einer Woche noch haben.

Was muss ich in die Konfigurationsdatei schreiben?
Habe ich in der Manpage eine solche Option übersehen?


Pfiffikus,
der von den Internetprovidern auch weiß, dass die diese Informationen nicht sofort löschen
 
Welches Ziel verfolgst du mit dem Logging?
Es geht um das Netz in einer Schule. Wenn mal Beschwerden kommen, dass von dieser oder jener IP aus Mist gemacht wurde, würd ich gerne definitiv nachvolziehen können, welcher Rechner das war. Werden die Dinger aber in der nächsten Pause ausgeschaltet, so werden am Beginn der nächsten Stunde neue Leases vergeben. Ob wieder dieselbe IP an dieselben Rechner geliefert wird, kann ich nicht genau wissen, obwohl es oft so zu sein scheint. Außerdem gehen aus einer solchen Logdatei die Einschaltzeiten der Rechner hervor.


Der ISC dhcpd ist normalerweise sehr geschwätzig und loggt über den syslogd.
Wonach müsste ich denn suchen? in der /var/log/messages stehen massenweise Meldungen. Der Suchbegriff "dhcp" liefert mir leider keine Fundstelle.
Es kommen Meldungen von ddclient, vom Kernel, sshd usw. Womit meldet sich dhcpd?


Pfiffikus,
der gerne wüsste, wie man das einschaltet

Pfiffikus
 
Wie wäre es, den Rechnern im DHCPd per MAC-Adresse feste IP-Adressen zuzuweisen. Dann bekommt jeder Rechner immer die selbe IP.

Und um zu überwachen, ob es von dieser Praxis abweichende vorkommnisse gibt (IP geändert) läuft auf dem Gateway am besten ein arpwatch, welcher unbekannte IP/MAC-Kombinationen loggt/meldet.
 
Hallo Elias,

hab Dank für deinen Vorschlag. Ich halte ihn allerdings nur für die zweitbeste Lösung. Zweitbeste deshalb, weil ich ständig die Liste der MAC-Adressen pflegen und denen IPs zuordnen muss. Eigentlich die stupide Arbeit, die mir dhcpd abnehmen sollte.
Stress ist vorprogrammiert, wenn es mit dem Notebook des Chefs gaaaanz schnell gehen soll.
Und außerdem entgehen mir bei dieser Konfiguration die Zeitpunkte des Einschaltens.

So warte ich auf die allerbeste Lösung, wie Linuxadmin den dhcp zum Schwätzen bringen kann.


Pfiffikus,
der einstweilen ein wenig in man arpwatch schmökert
 
In der manpage des dhcpd steht, wie man den richtigen loglevel für den syslogd spezifiziert. Ich habe gerade keinen dhcpd am Laufen, daher kann ich Dir die Details gerade nicht sagen.
Ansonsten kann ich Dir ein paar alte Log-Auszüge bieten, die der ISC-dhcpd, wie er von VMWare verwendet wird, liefert.
Code:
Dec 22 10:02:13 laptop vmnet-dhcpd: DHCPREQUEST for 192.168.4.128 from 00:0c:29:14:57:8f via vmnet8
Dec 22 10:02:13 laptop vmnet-dhcpd: DHCPACK on 192.168.4.128 to 00:0c:29:14:57:8f via vmnet8
In den Config-Dateien ist dort nichts besonderes angegeben!
 
In der manpage des dhcpd steht, wie man den richtigen loglevel für den syslogd spezifiziert.

Ich hab da rein geschaut:
man:/dhcpcd
(Opensuse 11.0)

Da find ich nix über einen Loglevel.


Pfiffikus,
der bedauert, dass er dich hier noch einmal bemühen muss
 
es steht ja auch in der man-page des dhcpd, nicht dhcpcd ;)
man dhcpd said:
To have dhcpd log to the standard error descriptor,
specify the -d flag. This can be useful for debugging,
and also at sites where a complete log of all dhcp activ*
ity must be kept but syslogd is not reliable or otherwise
cannot be used. Normally, dhcpd will log all output
using the syslog(3) function with the log facility set to
LOG_DAEMON.
man dhcpd.conf said:
The log-facility statement

log-facility facility;

This statement causes the DHCP server to do all of
its logging on the specified log facility once the
dhcpd.conf file has been read. By default the DHCP
server logs to the daemon facility. Possible log
facilities include auth, authpriv, cron, daemon, ftp,
kern, lpr, mail, mark, news, ntp, security, syslog,
user, uucp, and local0 through local7. Not all of
these facilities are available on all systems, and
there may be other facilities available on other sys*
tems.

In addition to setting this value, you may need to
modify your syslog.conf file to configure logging of
the DHCP server. For example, you might add a line
like this:

local7.debug /var/log/dhcpd.log

The syntax of the syslog.conf file may be different
on some operating systems - consult the syslog.conf
manual page to be sure. To get syslog to start log*
ging to the new file, you must first create the file
with correct ownership and permissions (usually, the
same owner and permissions of your /var/log/messages
or /usr/adm/messages file should be fine) and send a
SIGHUP to syslogd. Some systems support log rollover
using a shell script or program called newsyslog or
logrotate, and you may be able to configure this as
well so that your log file doesn't grow uncontrol*
lably.
 
So Leute, habt Dank für eure Hilfestellung.

Habe mir heite den VMware-Server angeworfen und zwei Maschinen mit einem nackigen Opensuse 11.0 versehen. Beide Maschinen wurden mit dem internen VMware-Netz versehen. Auf der einen Maschine wurde ein DHCP-Server installiert.

Konfigurationsdatei: /etc/dhcpd.conf
Code:
default-lease-time 60;
max-lease-time 120;
Da gibt es wenigstens etwas zu loggen, für Produktivumgebungen sind diese Werte eher nicht zu empfehlen.

In der Datei steht die Zeile:
Code:
log-facility local7;
Ob die drin steht oder auskommentiert wird, ich habe keine Auswirkungen bemerkt. In meiner Lösung habe ich die Facility nicht benutzt. Insbesondere wird auch bei Fehlen dieser Zeile geloggt.

Fazit: Am DHCPD muss nichts konfiguriert werden, um wie gewünscht loggen zu lassen.


Um hübsch loggen zu lassen, sollte die Datei /etc/syslog-ng/syslog-ng.conf noch ein wenig bearbeitet werden:
Code:
filter f_dhcpd      { program('^dhcpd'); };

destination dhcpd   { file (    "/var/log/dhcpd.log" 
                                owner("root") group("users") perm (0644)
                                template( "[$YEAR/$MONTH/$DAY $HOUR:$MIN:$SEC] $MESSAGE\n")
                           )
                    };
log                 { source(src); filter (f_dhcpd); destination (dhcpd); };

Theoretisch könnte man noch ein wenig frisieren, damit die Meldungen vom dhcpd nicht mehr in /var/log/messages erscheinen. Doch das zählt wohl eher zum Feintuning.



Der Neustart der Server erfolgt auf der Konsole mit folgenden Befehlen:
Code:
Neustart der Server: 
/etc/init.d/dhcpd restart
/etc/init.d/syslog restart


Pfiffikus,
der hofft, dass jemand, der künftig dasselbe Ziel hat, wie ich, mit dieser Anleitung etwas anfangen kann
 
Schon habe ich das nächste Problem. Heute wollte ich meine Studien mit diesen beiden Maschinen (Virtuelle Maschinen auf einem VMware Server) fortsetzen.

Doch heute meldet sich der in VMware integrierte DHCP-Server zu Wort und ist schneller, als der dhcpd meiner virtuellen Maschine. Meine Client-Maschine geruht sich nur mit dem falschen DHCP-Server zu unterhalten. So gibt es auf meinem Server nix zu protokollieren. Doch das will ich ja gerade testen.


Pfiffikus,
der nicht weiß, wie man diesen falschen DCHP-Server mal für ein paar Stunden zum Schweigen bringen könnte
 
Back
Top