Bonjour,
Je souhaite logguer précisément et de façon complète les messages DHCP entrant sur le serveur et plus particulièrement les messages DHCPDISCOVER. Je voudrais voir de qui vient le message et quels sont ses options et plus particulièrement le contenu de l'option 61 : client-identifier.
J'ai donc pensé à un tcdump tournant tout le temps en filtrant sur les messages DHCP puis passer le tout à la moulinette pour extraire les informations. Mais cela ne va t-il pas surcharger la machine et n'y a t-il pas plus simple ? Car compter les octets ça ne risque pas d'être bien marrant.
N'y a t-il pas une option pour le serveur DHCP afin d'avoir des logs plus détaillés ?
# @MAC
Posté par nono14 (site web personnel) . Évalué à 1.
La localiser est un autre problème.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: @MAC
Posté par Spack . Évalué à 1.
[^] # Re: @MAC
Posté par nono14 (site web personnel) . Évalué à 1.
Le protocole dhcp ne va pas écrouler ton serveur en faisant un tcpdump, c'est pas trop volubile.( depends du nb de clients, du bail, ... )
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# Mode 'debug'
Posté par Ellendhel (site web personnel) . Évalué à 2.
Pas à ma connaissance, mais il est possible de faire fonctionner dhcpd en mode 'debugging' qui devrait donner plus de détails (je n'ai pas testé) avec l'option -d. Au besoin, voir la page de manuel plus plus de précision.
# tcpdump coté client
Posté par PLuG . Évalué à 1.
Sinon avec un
tcpdump -n -i interface port 67 or port 68 -s0 -w /tmp/matrace.dump
tu vas enregistrer les paquets qui t'intéressent, et tu pourra ouvrir ce fichier avec wireshark (sous linux ou windows).# Exemple de log detaillé
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 3.
if exists agent.circuit-id
{
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",
binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " VLAN ",
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), " on switch ",
binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),
" raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ",
binary-to-ascii(16, 8, ".", option agent.remote-id)));
}
Exemple de sortie
dhcpd: Lease for aaxx.yy.200 is connected to interface 1/6 VLAN 40 on switch 0:23:5d:68:ec:0
dhcpd: Lease for aa.xx.yy.200 raw option-82 info is CID: 0.4.0.40.1.6 AID: 0.6.0.23.5d.68.ec.0
[^] # Re: Exemple de log detaillé
Posté par Spack . Évalué à 1.
log-facility local7;
if exists dhcp-client-identifier and option dhcp-message-type = 1 {
log (debug, concat("OPTION-61 from ",
substring(binary-to-ascii(16, 8, ":", hardware), 2, 24),
" with dhcp-client-identifier = \"",
binary-to-ascii(16, 8, ":", option dhcp-client-identifier), "\"."));
} else {
log (info, concat("Request from ",
substring(binary-to-ascii(16, 8, ":", hardware), 2, 24),
"with no dhcp-client-identifer."));
}
J'ai mis ça au début du fichier.
Et dans mon dossier /etc/rsyslog.d, j'ai un fichier dhcpd.conf :
local7.info -/var/log/dhcpd.log
local7.debug -/var/log/dhcpd.log
local7.error -/var/log/dhcpd.log
local7.fatal -/var/log/dhcpd.log
Mais aucune trace de ce que je veux tracer dans le fichier /var/log/dhcpd.log ni même dans /var/log/message.
J'ajoute donc :
log (debug, "DEBUG");
log (info, "INFO");
log (error, "ERROR");
Mais toujours rien. En laçant la commande dhcpd3 -d, les lignes :
DEBUG
INFO
ERROR
s'affichent mais pas le message concernant le client identifier. :-s
[^] # Re: Exemple de log detaillé
Posté par Spack . Évalué à 1.
Merci de ton aide ça correspond exactement à ce que je voulais, vive man dhcp-eval !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.