laster
Goto Top

Im ISC DHCP Server bestimmte MAC Adressen blockieren

Hallo,

habe einen ISC DHCP Server (auf raspberry) laufen.
Nun möchte ich verhindern, dass ein bestimmter Host (MAC-Adresse bekannt) keine IP-Adresse zugewiesen bekommt.
Die Anfrage soll ignoriert werden.

Gefunden habe ich
class "ignored" {  
  match if substring(hardware,1,4) = 00:02;
}

pool {
  deny members of "ignored";  
  range 192.168.172.100 192.168.172.149;
}
Allerdings finde ich in den Manual Pages nur allow members wo dann auch die Angabe range Sinn macht.
Ein ignore booting wäre doch besser?

Wie kann ich das lösen?

vG
LS

Content-ID: 562347

Url: https://administrator.de/contentid/562347

Ausgedruckt am: 23.11.2024 um 13:11 Uhr

aqui
aqui 01.04.2020 um 11:49:53 Uhr
Goto Top
Gefunden habe ich
Klingt ja auch plausibel !
Hast du es denn mal ausprobiert ? Wenn ja, wie ist das Ergebnis ?
NordicMike
NordicMike 01.04.2020 um 11:57:55 Uhr
Goto Top
deny member of class oder ignore member of class ist schon richtig. Statt der Range kannst Du auch die komplette MAC deklarieren.
laster
laster 01.04.2020 um 12:40:21 Uhr
Goto Top
Hallo Aqui,

folgende konfig in dhcpd.conf:
...
class "ignore-mac" {  
  match if substring (hardware,1,8) = "68:5d:43";   
  #match if hardware = "68:5d:43:8f:ab:bf"; 
}

subnet 192.168.54.0 netmask 255.255.255.0 {
  range 192.168.54.11 192.168.54.99;
  option routers 192.168.54.10;
  option subnet-mask 255.255.255.0;

  #pool {
  #  ignore members of "ignore-mac"; 
  #  range 192.168.54.221 192.168.54.229;
  #}
}

wenn ich den Bereich pool aktiviere bekomme ich beim Start des Services einen Error "Configuration file errors encountered -- exiting" ohne nähere Hinweise.
Wobei mir nicht klar ist, wozu der range innerhalb von pool gut sein soll (will ja keine IP zuteilen).
kaalax
kaalax 08.04.2020 um 12:31:45 Uhr
Goto Top
Hallo laster,

mit dem ISC habe ich auch schon viel Zeit mit "Suchen und Probieren" verbracht. Ich erinnere mich an Probleme beim Mitgeben diverser (Boot)Optionen.
Ich möchte den ISC nicht schlecht reden aber face-smile mit dnsmasq bin ich schneller ans Ziel gekommen. Falls Du eine andere Software einsetzen kannst, möchte ich Dir diese empfehlen.
Eine Lösung mit dnsmasq für Deine Frage findest Du hier: https://discourse.pi-hole.net/t/dhcp-server-mac-address-filtering/19310

Grüße, kaalax
laster
laster 08.04.2020 um 12:40:14 Uhr
Goto Top
Hallo kaalax,

danke für den Tip, schau ich mir an.

vG
LS
aqui
Lösung aqui 08.04.2020 aktualisiert um 15:06:05 Uhr
Goto Top
Wobei mir nicht klar ist, wozu der range innerhalb von pool gut sein soll (will ja keine IP zuteilen).
Leuchtet mir auch nicht ein da der ja schon definiert ist.

Probier es doch einmal mit einer ganz einfachen Lösung wenn es nur eine Mac Adresse ist:
host "Du nicht" {
hardware ethernet 00:12:ba:1d:c1:b7;
ignore booting;
 } 
Funktioniert hier fehlerlos auf einem RasPi als DHCP Server.
Ein anderes Beispiel ging noch so:
class "Keine-Mac" {
match substring (hardware, 1, 6);
# deny booting;
 ignore booting;
}
subclass "Keine-Mac" 00:12:ba:1d:c1:b7;
subclass "Keine-Mac" 00:12:df:b6:7b:e7; 
Wenn man "ignore booting" auskommentiert und "deny booting" aktiviert sendet der Server DHCPNAK (IIRC) an den Client statt ihn ganz zu ignorieren.
Das sollte auch in der Kurzform oben im Code Block funktionieren. (Wireshark ist dein Freund)
Auch diese Version klappte hier im Test fehlerfrei und ist etwas skalierbarer bei mehr Mac Adressen.
laster
laster 15.04.2020 um 13:46:46 Uhr
Goto Top
Hallo Aqui,

die ganz einfache Lösung (da nur eine MAC) funktioniert sehr gut.

Vielen Dank und Grüße
LS