Kann ich eine pf-Regel mit MAC-Adresse anstelle von IP erstellen?

7

Der Titel ist selbsterklärend.

Ich möchte in pf Regeln erstellen, die unter OpenBSD 4.9 für eine bestimmte MAC-Adresse ausgeführt werden

pass in on eth0 from mac 00:04:34:5f:34:33 to mac 34:32:34:06:5e:22

Ich habe gelesen das , aber es funktioniert nicht Hilfe !!

Vineet Menon
quelle

Antworten:

2

Wenn ich mich gut erinnere, kannst du nicht. Sie können die Mac-Adresse nur filtern, wenn Sie dies auf einer Bridge tun, wenn

mandrake73
quelle
2

Wie Mandrake betonte, können Sie nicht direkt in PF nach MAC-Adresse filtern (es handelt sich um einen IP-Paketfilter, der von diesem "Ethernet" -Ding nichts weiß).

Was Sie tun können, wenn Ihr System als Bridge fungiert, sind Tag- Pakete basierend auf der MAC-Adresse und Filter basierend auf dem Tag.

Aus den pf FAQ :

Kennzeichnen von Ethernet-Frames

Das Tagging kann auf Ethernet-Ebene durchgeführt werden, wenn die Maschine, die das Tagging / Filtern durchführt, auch als Brücke fungiert (4). Durch Erstellen von Bridge (4) -Filterregeln, die das Tag-Schlüsselwort verwenden, kann PF dazu gebracht werden, basierend auf der Quell- oder Ziel-MAC-Adresse zu filtern. Bridge (4) -Regeln werden mit dem Befehl ifconfig (8) erstellt.
Beispiel:

# ifconfig bridge0 rule pass in on fxp0 src 0:de:ad:be:ef:0 tag USER1

Und dann in pf.conf:

pass in on fxp0 tagged USER1

voretaq7
quelle
Wie ich in der Frage erwähnt habe, habe ich diese Seite gelesen ... aber warum sollte meine Maschine als Brücke fungieren? Kann ich ifconfig nicht verwenden, um Frames von einem bestimmten Computer (MAC) zu markieren und dann das markierte Paket für pf zu verwenden? Warum ist es so wichtig, eine Brücke zu sein?
Vineet Menon
@VineetMenon "Weil es so funktioniert" - Tagging ist eine Funktion, die von Bridge (4) -Schnittstellen bereitgestellt wird . Soweit mir bekannt ist, gibt es keine Möglichkeit, (nach MAC-Adresse) zu markieren, ohne eine Bridge zu verwenden. Die Annahme ist, dass Sie eine Firewall erstellen , die eine ausgefallene Paketfilterbrücke zwischen insideund outsideSchnittstellen darstellt.
voretaq7
Eigentlich benutze ich openbsd als fw, habe aber keine Bridge erstellt, sondern die Paketweiterleitung auf 1 in gesetzt /etc/sysctl. Erzeugt die Ausgabe dieses Befehls intern eine Brücke? Können Sie mir einige nette Referenzen empfehlen, in denen ich darüber lesen kann?
Vineet Menon
@VineetMenon openbsd.org/faq/pf ist die kanonische Referenz für ALLE Dinge, die damit zusammenhängen pf. Ich habe es nicht geschrieben, aber alles, was ich weiß, ist da drin.
voretaq7