Ich muss bestimmten Hosts (Multi-OS) in unserem LAN den Internetzugang verweigern. Ich habe versucht, bestimmte Hosts über iptables per Mac-Adresse zu blockieren, aber ich kann die Mac-Adresse der Workstation nicht verwenden, da sie einen L3-Switch durchläuft und der Frame mit der Mac-Schnittstelle des Switches neu erstellt wird. Ich habe dies mit dem tshark
Dienstprogramm Wireshark bestätigt.
Ich weiß, dass ich nach IP-Adresse sperren kann, aber ich habe keine Kontrolle darüber, ob ein Benutzer seine IP-Adresse ändert und die Sperre dadurch umgangen wird. Ich denke, eine Lösung könnte mit einem Skript erreicht werden, das Folgendes tut:
- Aktualisieren Sie die ARP-Tabelle mit fping:
fping -c 1 -g 10.10.10.0/24
- Durchsuchen Sie die ARP-Tabelle nach der IP-Adresse aus einer Liste von Mac-Adressen, beispielsweise in einer Datei:
arp -n | grep "00:11:22:aa:bb:cc" | awk '{print $1}'
- Erstellen Sie einen Hash oder ein Array und aktualisieren Sie iptables dynamisch mit den IP-Adressen, die blockiert werden müssen. Ich würde wahrscheinlich eine Datei verwenden und so etwas tun wie
iptables-restore < ips_to_deny
. - Führen Sie dieses Skript etwa alle 5 Minuten aus. (Beim Timing bin ich mir nicht sicher)
Also... die Frage. Sehen Sie irgendwelche Mängel in dieser Methode? Oder Möglichkeiten, sie zu verbessern?
- Man denkt dabei an Mac-Spoofing, aber Host-Benutzer haben keinen Administratorzugriff.
Ich würde für das Skript entweder Perl oder Ruby verwenden, wenn das viel ausmacht.
Antwort1
Ich hatte mit einer ähnlichen Situation zu tun, als ich große LAN-Partys (> 500 Benutzer) organisierte, bei denen man keine Kontrolle über die Arbeitsstationen hatte, ziemlich interessant.
Wenn Ihr L3-Switch (technisch gesehen ein Router) einigermaßen hochwertig ist, kann er wahrscheinlich über SNMP verwaltet werden und Sie können seine ARP-Tabelle für das entsprechende Subnetz (dasjenige, das direkt mit den Stationen verbunden ist) lesen, um die effektiven Mac/IP-Zuordnungen abzurufen.
Wenn Sie jedoch befürchten, dass der Rechner ohne Ihr Einverständnis seine IP-Adresse ändert, sollten Sie sich wahrscheinlich auch Sorgen darüber machen, dass der Rechner seine MAC-Adresse ändert. Wenn Sie darauf vertrauen, dass der Rechner seine MAC-Adresse nicht ändert, haben wir auch die Möglichkeit genutzt, die Protokolle des DHCP-Servers zu analysieren. Als Bonus können Sie auch die DHCP-Protokolle und ARP-Tabellen korrelieren, um Spoofer zu erkennen.
Wenn Ihre Switches dies unterstützen, können Sie auch die 802.1x-Authentifizierung verwenden. In diesem Modus muss sich ein Computer beim Switch über Radius authentifizieren, bevor er tatsächlich mit dem Versenden von Paketen beginnt. Für jede Authentifizierung erhält der Radius-Server die Identität, den physischen Standort und die MAC-Adresse der Station.
Antwort2
Das alles erscheint mir übermäßig kompliziert und könnte zu einer dieser „kundenspezifischen“ Lösungen werden, die in Zukunft zu Problemen führen (z. B. „der und der hat das vor langer Zeit eingerichtet, bevor er das Unternehmen verlassen hat, und keiner weiß, wie man es ändert“). Ich persönlich würde mir also etwas ansehen, das mehr auf Standards basiert.
Sofern Sie nicht unbedingt Geräte mit und ohne Internetzugang im selben L2-Netzwerksegment haben müssen, würde ich 802.1X Mac Authentication Bypass (MAB) implementieren. Sie können dies so tun, dass authentifizierten Geräten ein VLAN zugewiesen wird und Geräten, die sich nicht authentifizieren lassen, ein zweites VLAN zugewiesen wird.
Wenn Ihre Switches MAB nicht unterstützen (d. h. MAB wird nur wirksam, wenn die IEEE 802.1X-Authentifizierung fehlschlägt), können Sie die Wiederholungs- und Timeout-Werte für die IEEE-Authentifizierung auf ihre Mindestwerte reduzieren. Da Sie sich nicht um die IEEE-Authentifizierung kümmern und diese schnell fehlschlagen wird, müssen Sie keine Art von Supplicant konfigurieren, es sei denn, Sie möchten dies.
Um die Sicherheit zu erhöhen, konfigurieren Sie die MAC-Adressen aller Geräte, die Internetzugang haben sollen, so dass nur diese Geräte sich authentifizieren und in das VLAN aufgenommen werden können, das Internetzugang bietet. Wenn Sie jedoch nur bestimmte Geräte einschränken möchten (und neue Geräte automatisch mit dem Internet verbinden lassen möchten), können Sie es so konfigurieren, dass fehlgeschlagene Authentifizierungen in das VLAN mit Internetzugang aufgenommen werden, während erfolgreiche Authentifizierungen in das VLAN ohne Zugriff aufgenommen werden.
Sie geben keine Gründe dafür an, warum Sie dies tun möchten, aber dies würde auch die Möglichkeit bieten, den Zugriff zwischen den beiden Host-Gruppen problemlos einzuschränken, wenn ein Grund dafür besteht.