IP-Adresse an MAC binden

gear

Member
Hallöle,
folgende Situation:

Ethernet-Netzwerk ohne DHCP, Freebsd Router als Gateway und W2k Clients.
Netz: 192.168.100.0/24
Einige Clients dürfen keine Connection auf Port 80 ausgehend aufbauen. Hierfür wurde mit ipfw eine Regel erstellt, das z.B. Client 192.168.100.8 nicht auf Port 80 connecten darf. Wenn der Client jedoch seine IP ändert, dann kann er es doch wieder. Nun soll etwas gefunden werden, dass eine IP-Änderung nichts bringt.
Dachte das würde Mithilfe des arp-Befehles gehen, in dem man die IP-Adressen der Clients an ihre MAC-Adressen bindet und somit sagt, das die IP 192.168.100.8 nur gültig ist, wenn die dazu eingetragene MAC-Adresse stimmt.
Das geht jedoch nicht. Bei einer IP-Änderung kommt der Client nach wie vor über Port 80 raus.
Wie kann man so etwas verhindern?

Danke im voraus

Gruß Oliver
 
Wie wäre es dem User nicht zu gestatten die IP zu ändern? Die MAC Adresse kann er dann, wenn Du die filterst, auch ändern.
Evtl. wäre ein Proxy hier auch angebracht.
 
Du könntest, anstatt nur den einzelnen IPs den Zugriff zu verweigern, einfach allen den Zugriff verweigern und nur den bestimmten IPs die connection erlauben.

Edit:
Obwohl, mir fällt grad auf, das der Host trotzdem seine, im Filter "denied" IP, in eine zugelassene IP umändern könnte...

Mal wieder schneller gepostet als nachgedacht :gpaul:
 
Zuletzt bearbeitet:
mmh, mit openbsd wäre das mit brconfig und pf recht einfach. ich weiß nur nicht, ob's sowas auch für freebsd gibt.
 
asg schrieb:
Wie wäre es dem User nicht zu gestatten die IP zu ändern? Die MAC Adresse kann er dann, wenn Du die filterst, auch ändern.
Evtl. wäre ein Proxy hier auch angebracht.

Wie verbiete ich denn einem User seine IP zu ändern??
 
Zepol schrieb:
Bei Win2k "ganz einfach", nur ein Administrator kann die IP ändern! :D
Räusper..... :-)) Schon besser gelacht...heheehh..
Naja, wird wohl nicht gehen, da die User der Clients lokale Adminrechte haben, weil es nun mal ihre PCs sind!
 
wie wäre es mit pf (port von openbsd) als paketfilter und authpf zur authentifizierung, die dann aber über host-keys läuft?
 
Tja, dann kannst du das ändern der IP nicht verhindern.

Und wie ist das mit PlantMan's Vorschlag, nur bestimmten IP's den Zugriff zu erlauben und allen anderen zu verbieten.
 
die authentifizierung würde über ssh laufen, und da kann man auch mit host-keys arbeiten. man ssh. authpf macht die authentifizierung und schaltet bestimmte firewallregeln frei.
 
Frage: Kann man unter W2k die MAC-Adresse ändern? Wenn ja: Mit welchem Aufwand und wissen die Anwender das? Kommt halt auch darauf an, wie versiert die Anwender sind. Wenn du da ein paar kleine Hacker sitzen hast, wird's schwierig ;)

Wenn das mit der MAC-Manipulation unwahrscheinlich ist, kannst du mittels IPFW auf MAC-Adressen-Basis filtern.

Ansonsten ist halt die Frage, was du damit bezwecken willst. Das steht hier irgendwie im Raum. Willst du wirklich Rechner oder doch bestimmte Benutzer filtern? Das kommt auch darauf an, ob sich die Benutzer auf allen Rechnern anmelden können oder nur auf einem bestimmten.

Du könntest z.B. mit einem Proxy arbeiten, der nur bestimmten Benutzern Zugriff erlaubt, wenn diese sich mit Benutzernamen und Paßwort authentifiziert haben. Wenn sich nämlich alle Benutzer auf allen Rechnern anmelden können, bringt die Filterung über MAC-Adressen nichts. Außer, du willst wirklich, daß alle Benutzer auf bestimmten Rechnern nicht ins Internet kommen. Weiß ich ja aber nicht.

Aber wie gesagt, es kommt darauf an, was du tatsächlich machen willst. Es wäre also hilfreich, wenn du deine Absicht kurz erläutern könntest.

BTW, das mit dem arp hätte eigentlich funktionieren sollen. Du mußt aber darauf achten, daß in der Ausgabe von "arp -a" permanente Einträge angezeigt werden. Ansonsten kann die der Client updaten, wenn er eine neue IP hat. Vielleicht läßt sich dein Problem relativ einfach durch permanente ARP-Einträge lösen, aber wie gesagt, kommt darauf an, was du bezwecken willst.

Ach ja: Kommt in dem Netzwerk ein Hub oder ein Switch zum Einsatz?
 
Zepol schrieb:
Tja, dann kannst du das ändern der IP nicht verhindern.

Und wie ist das mit PlantMan's Vorschlag, nur bestimmten IP's den Zugriff zu erlauben und allen anderen zu verbieten.

Nun da ich mich mit ipfw noch nicht so gut auskenne........

Verbessert mich wenn es falsch ist:

Dann müsste meine ipfw.conf so aussehen, wenn alle auser client 192.168.100.8 und .21 alles dürfen:

allow ip from 192.168.100.1 to any
allow ip from 192.168.100.3 to any
allow ip from 192.168.100.4 to any
allow ip from 192.168.100.6 to any
allow ip from 192.168.100.11 to any
deny tcp from 192.168.100.4 to any 80
deny tcp from 192.168.10021 to any 21

So?
Tja, dann habe ich aber immer das Problem der Änderung. Wenn mal der Client .4 nicht online ist, dann könnte doch der Client .8 diese Ip ansich nehmen und trotzdem ins Internet gehen
 
0815Chaot schrieb:
Ansonsten ist halt die Frage, was du damit bezwecken willst. Das steht hier irgendwie im Raum. Willst du wirklich Rechner oder doch bestimmte Benutzer filtern? Das kommt auch darauf an, ob sich die Benutzer auf allen Rechnern anmelden können oder nur auf einem bestimmten.
Das kann ich dir sagen. Es gibt User die einfach nicht für den Internet-Zugang bezahlen wollen, mehrere Monate im Rückstand sind und trotzdem fleißig weiter surfen. Das interne Netz soll für sie weiterhin offen sein, nur nach draußen dürfen sie nicht mehr!
Hier soll nicht nach Usern sonder nur nach Clients gefiltert werden.
P.S. Im Netz benfinden sich mehrere Switche
 
Zuletzt bearbeitet:
wenn du aber auf der firewall die mac-adressen permanent einstellst, dann geht das nicht. habe dir vorhin schon mal den hinweis gegeben: man arp
 
uwerler schrieb:
wenn du aber auf der firewall die mac-adressen permanent einstellst, dann geht das nicht. habe dir vorhin schon mal den hinweis gegeben: man arp

Hi,
hab ich schon probiert und zwar mit meiner eigenen Ip. Die steht im arp auf permanent. Hab sie von .4 auf .33 geändert und konnte trotzdem ins Internet
Ohh sorry...ging wohl weil ich keine passende ipfw regel hatte :-))
 
Zuletzt bearbeitet:
mmh, dürfte eigentlich nicht gehen... ich kenne mich mit ipfw nicht aus, aber @0815Chaot schrieb wohl, daß man auch nach mac filtern kann. das wäre dann doch die lösung, oder?
 
uwerler schrieb:
mmh, dürfte eigentlich nicht gehen... ich kenne mich mit ipfw nicht aus, aber @0815Chaot schrieb wohl, daß man auch nach mac filtern kann. das wäre dann doch die lösung, oder?

ich denke es muss wohl so gehen:
mit arp die ips der clients auf permanent stellen, also an die MAC-Adresse binden.
(Keiner der User ist so schlau, dass er die MAC fälschen kann.)
dann mit ipfw erst mal alles verbieten und dann den gewünschten clients alles freigeben.

Bleibt nur die Frage, wie ich die regel 65535 allow ip from any to any aus der config raus bekomme. Die steht nämlich immer drin und lässt sich net löschen
 
also ich habe gerade mal in die manpage von ipfw geguckt - mac-filtern ist möglich.
zweite sache: man ipfw:



An ipfw ruleset always includes a default rule (numbered 65535) which
cannot be modified or deleted, and matches all packets. The action asso-
ciated with the default rule can be either deny or allow depending on how
the kernel is configured.
 
Holla, hier wird ja gepostet, daß ich mit antworten nicht nachkomme ;) Ich versuche mal, mehrere Posts auf einmal zu beantworten.

gear schrieb:
Dann müsste meine ipfw.conf so aussehen,
Nicht ganz, denn du mußt die Reihenfolge der Abarbeitung beachten. IPFW wendet die Regeln "von oben nach unten" an. Nehmen wir also mal an, es käme ein Paket von 192.168.100.4 rein. Als erste Regel trifft
Code:
allow ip from 192.168.100.4 to any
auf das Paket zu, welche alle Pakete von diesem Client erlaubt. Dann ist Ende. Die weiter unten stehende Regel
Code:
deny tcp from 192.168.100.4 to any 80
kommt erst gar nicht mehr zur Abarbeitung.

Die deny-Regel muß in dem Falle also zwingend vor der Regel stehen, die alle Pakete vom Client erlaubt:
Code:
deny tcp from 192.168.100.4 to any 80
allow ip from 192.168.100.4 to any

gear schrieb:
Tja, dann habe ich aber immer das Problem der Änderung. Wenn mal der Client .4 nicht online ist, dann könnte doch der Client .8 diese Ip ansich nehmen und trotzdem ins Internet gehen
Grundsätzlich kannst du nicht verhindern, daß sich irgendwer irgendeine IP-Adresse schnappt. Jedenfalls nicht bei diesem Netzwerkaufbau. Aber man kann sich anderweitig behelfen.

Leg dir eine /etc/ethers an, für jeden Rechner eine eigene Zeile. Zuerst den Hostnamen und dann, durch Leerzeichen getrennt, die erwartete MAC-Adresse des Rechners. Der Hostname muß dann natürlich auflösbar sein, am besten statisch mittels /etc/hosts. Mach dann ein
Code:
arp -f /etc/ethers
Pakete für eine bestimmte IP-Adresse werden dann immer an die von dir festgelegte MAC-Adresse gesendet. Wenn einer auf dem Client die IP-Adresse ändert, paßt die MAC-Adresse nicht mehr zu dem, was du in der /etc/ethers gespeichert hast. Vorausgesetzt, du benutzt einen Switch, kommen Pakete vom Server zum Client nicht mehr bei diesem an.

Beispiel: Du hast in deiner /etc/ethers u.a. folgenden Eintrag:
Code:
kiste1.somewhere.net  0:90:27:12:1e:0f
kiste2.somewhere.net  0:90:27:12:1e:00
In der /etc/hosts hast du folgende Zuordnung:
Code:
10.0.0.1 kiste1.somewhere.net kiste1
10.0.0.2 kiste2.somewhere.net kiste2
Wenn kiste1 sich jetzt die IP-Adresse 10.0.0.2 schnappt, werden alle Antwortpakete vom Server an die MAC-Adresse 0:90:27:12:1e:00 geschickt. Da diese aber zu kiste2 gehört, sollten bei kiste1 keine Pakete mehr ankommen. Wenn das bei dir anders ist, dann stimmt was grundlegend nicht.

gears schrieb:
Bleibt nur die Frage, wie ich die regel 65535 allow ip from any to any aus der config raus bekomme. Die steht nämlich immer drin und lässt sich net löschen
Das ist die Standard-Regel, die sich nicht ändern läßt. Standardmäßig sollte sie eigentlich "deny ip from any to any" lauten. Hast du vielleicht IPFIREWALL_DEFAULT_TO_ACCEPT ist deiner Kernel-Konfig gesetzt? Anders kann ich mir das nicht erklären. In deinem Fall mußt du dann jedenfalls von Hand eine Regel einfügen, die zum Schluß alle Pakete verbietet.

uwerler schrieb:
ich kenne mich mit ipfw nicht aus, aber @0815Chaot schrieb wohl, daß man auch nach mac filtern kann.
Ja, das geht seit IPFW2. Sie ist in 5.x enthalten und wurde irgendwann (IIRC seit 4.9-Release) auch in den 4er-Zweig eingeführt.
 
Zurück
Oben