Blockieren Sie ARP-Anforderungen (oder Broadcast-Nachrichten, falls möglich) von A SPECIFIC HOST in einem Subnetz

1008
Sourav Ghosh

Mein ISP gibt Benutzername und Kennwort zur Authentifizierung an und registriert auch die MAC-Adresse des Clients zur Authentifizierung.

Ich bin besorgt darüber, dass jemand meine Verbindung missbraucht, während ich sie nicht benutze. Benutzernamen sind leicht zu erraten (Clients können Benutzernamen nicht ändern, nur Passwörter können geändert werden). Wenn jemand die MAC-Adresse und das Passwort findet, kann er meine Verbindung verwenden.

Da der ISP kein privates VLAN verwendet, sind MAC-Adressen leicht zu erhalten. Eine einfache ARP-Broadcast-Anforderung von einem Host in meinem Subnetz zeigt meinen MAC an und ich verlasse mich nicht auf das Passwort, da die Authentifizierungsseite kein HTTPS verwendet. Meine Passwörter werden also in Klartext gesendet.

In diesem Szenario möchte ich die ARP-Anforderung (oder alle Broadcast-Anforderungen) von einem beliebigen Host in meinem Subnetz außer dem Gateway blockieren / löschen / ablehnen.

Ich habe mir diese Frage und diese Frage angesehen, aber das OP hat versucht, alle ARP-Anfragen zu blockieren. Das ist natürlich eine schlechte Idee, da ich dann keinen Internetverkehr vom Gateway bekomme. Ich möchte nur die ARP-Anforderung (wenn möglich eine Broadcast-Anforderung) von einem beliebigen Host in meinem Subnetz blockieren, aber nur Broadcast / ARP von meinem Gateway aus zulassen.

Ich verwende OpenWrt in meinem WLAN-Router. Ich denke also, dass Linux-Lösungen funktionieren und wenn möglich, bitte auch Windows-Lösungen bereitstellen.

1
arptable ist wahrscheinlich die Lösung, die Sie brauchen. Machen Sie Ihre Route statisch und blockieren Sie alles. Wiffzack vor 7 Jahren 0
Normalerweise können Sie einen statischen ARP-Eintrag festlegen (abhängig vom Betriebssystem natürlich). Wenn Sie dies für Ihr Gateway tun, verlieren Sie ihn niemals und können alle anderen ARPs blockieren. MaQleod vor 7 Jahren 0
@MaQleod Aber wie sieht es aus, wenn das Gateway mir ein Paket schicken will? Es muss für meinen MAC übertragen werden. Ich muss auf dieses ARP antworten. Sourav Ghosh vor 7 Jahren 0
Wahrscheinlich ist es kein Problem. Die meisten ISP-Router bewahren ARP-Tabellen für etwa 20 Minuten auf (die meisten Enterprise-Router sind dafür hoch eingestellt), und die meisten von ihnen können in der Regel ARP-Tabellen aus eingehenden Paketen aktualisieren - es würden also nur Pakete von Ihnen zum Router gebracht zu wissen, wo Sie sind und wie Sie zu erreichen sind, ohne dass Sie überhaupt ARPs senden müssen. Wenn Ihr Rechner also das Gateway alle 2 bis 5 Minuten ARPs oder was auch immer Ihre Aktualisierung betrifft, besteht eine gute Chance, dass Sie auch jedes Mal den ARP aktualisieren. MaQleod vor 7 Jahren 0

1 Antwort auf die Frage

1
Sourav Ghosh

Diese Anforderung habe ich auf Linux-Geräten auf zwei Arten erreicht. Ich suche immer noch nach Wegen, um dies auf Windows-Geräten zu erreichen.

  1. Geben Sie einen statischen ARP-Eintrag für mein Gateway ein und deaktivieren Sie anschließend ARP.
  2. Verwenden arptable

Erste Methode

ip neighbor add 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0 

Der obige Befehl benötigt ein ip-fullPaket auf OpenWrt-Systemen. eth0ist meine WAN-Schnittstelle. Wenn bereits ein Eintrag für das Gateway vorhanden ist, verwenden Sie:

ip neighbor replace 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0 

Deaktivieren Sie jetzt ARP. Verwenden Sie einen der Befehle .

ip link set dev eth0 arp off ifconfig eth0 -arp 

Um später wieder zu aktivieren, verwenden Sie:

ip link set dev eth0 arp on ifconfig eth0 arp 

Zweite Methode

Dieses Paket verwendet das Paket arptables . Zuerst habe ich mein Gateway zugelassen. Dann habe ich auch ARP in meinem LAN ( br-lanInterface) zugelassen und schließlich alle anderen ARPs gesperrt

arptables -A INPUT -s 172.xx.xxx.1 -j ACCEPT arptables -A INPUT -i br-lan -j ACCEPT arptables -P INPUT DROP