![]() |
|
|
|||||||
| Portal | Wiki | IRC-Chat | Registrieren | Benutzerliste | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Thema bewerten | Ansicht |
|
|
#1 |
|
Registered User
Registrierungsdatum: Mar 2005
Beiträge: 131
|
PF Bridge mit VLAN (dot1q) will nicht filtern
Folgendes Setup:
Cat4006 Gateway für VLAN 1,2,3 | |(802.1q) | OBSD3.8 Bridge mit pf | |(802.1q) | Cat2950 VLAN 1,2,3 - Host1, Host2, Host3 BSD Konfiguration: IP-Forwarding = 1 PF=YES bridgename.bridge0: add xl0 add xl1 up Soweit funktioniert das Bridging. Alle Hosts sind in ihren Vlans erreichbar und haben volle Konnektivität. Vlans sind bisher auf OBSD nicht konfiguriert. Jetzt das Problem: PF filtert die getaggten VLANS nicht (2 und 3). Traffic lässt sich nur für VLAN1 filtern. VLAN2 und 3 werden komplett ignoriert (tcpdump -nettti zeigt keinen Traffic an). Die Vermutung liegt wohl sehr nahe, dass ich OBSD irgendwie klar mache, dass da VLANs sind und dass Ganze in bridgename.bridge0 zusammenfügen muss. Kennt jemand ein funktionierendes Setup dafür? Bevor mich jetzt jemand fragt, warum ich OBSD nicht zum Router umkonfiguriere: Ich will mir das Transfernetz sparen und an der Netzkonfiguration keine Änderungen vornehmen. |
|
|
|
|
|
#2 |
|
Registered User
Registrierungsdatum: Mar 2005
Beiträge: 131
|
Howto:
Wie mache ich aus meiner OpenBSD-Box eine 801.1q-fähige Stealth-Firewall?
Als Basis zum Einrichten einer funktionierenden Bridge kann man das Howto auf www.openbsd.org zu Rate ziehen. Das dort beschriebene Setup ist leicht verständlich und funktioniert sowohl auf Links mit nativen Ethernet-Frames als auch mit 801.1q-Frames. Soll die so konfigurierte Bridge als Firewall dienen, gibt es jedoch ein paar Dinge zu beachten. Wie man eine Firewall einrichtet, soll hier nicht beschrieben werden, denn dazu gibt es genügend verwertbares Material im Web. Fall 1: Auf den Nics kommen reine Ethernet-Frames an, die gefiltert werden sollen. Kein Problem für PF. Die gebridgten Frames werden von bridge0 an PF gegeben und entsprechend den Regeln gefiltert. Fall 2: VLAN-Traffic (802.1q) soll auf einem Trunk gefiltert werden. Code:
1. bridgename.bridge0 existiert (add xl0 add xl1 up) 2. IP-forwarding ist aktiviert 3. PF ist aktiviert 4. pf.conf existiert 5. Clients aus allen Netzsegmenten haben volle Konnektivität In diesem Fall erstellt man für jedes VLAN zwei Pseudo-Interface auf der OBSD-Box. Eines der beiden Pseudointerface benutzt xl0 als physikalisches Interface, das andere wird auf xl1 gelegt. Damit die Frames von xl0 nach xl1 gelangen, werden die beiden Pseudo-Interface zu einem Bridge-Interface zusammengeschaltet. VLAN1 (untagged) gelangt über das bereits konfigurierte Bridge0-Interface zum Packetfilter und bedarf deshalb keiner weiteren Anpassungen. #ifconfig vlan0 create #ifconfig vlan0 vlan 1 vlandev xl0 #ifconfig vlan1 create #ifconfig vlan1 vlan 1 vlandev xl1 #ifconfig vlan0 up #ifconfig vlan1 up #ifconfig bridge1 create #brconfig bridge1 add vlan0 add vlan1 #brconfig bridge1 up #ifconfig vlan2 create #ifconfig vlan2 vlan 2 vlandev xl0 #ifconfig vlan3 create #ifconfig vlan3 vlan 2 vlandev xl1 #ifconfig vlan2 up #ifconfig vlan3 up #ifconfig bridge2 create #brconfig bridge2 add vlan2 add vlan3 #brconfig bridge2 up !!!Die Reihenfolge der Aktivierung spielt hierbei eine große Rolle!!! Desweiteren ist zu beachten, dass folgende Dateien NICHT existieren, da diese beim Bootvorgang/Ausführen von /etc/netstart die gewünschte Reihenfolge nicht einhalten: bridgename.bridge1 bridgename.bridge2 hostname.vlan0 hostname.vlan1 hostname.vlan2 hostname.vlan3 Man sollte deshalb das Starten der VLANs und Bridges mit einem separaten Startscript aus rc.conf.local aufrufen. Wenn das alles wie gewünscht geklappt hat, sollte ein ifconfig -a folgendes zeigen: Code:
VLAN1 wird auf den physikalischen Interfacen xl0 und xl1 erfasst. VLAN2 und VLAN3 erreichen den Paketfilter über die Pseudointerface. Angenommen xl0 ist das externe Interface und xl1 ist das interne Interface. Dann würde die pf.conf im Kopfteil in etwa so aussehen: $int_if = xl1 $ext_if = xl0 $vint_if = "{ vlan1, vlan3 }" $vext_if = "{ vlan0, vlan2 }" Anmerkung: Mit diesem Setup läuft es jetzt bei mir einwandfrei (VLANs sind natürlich bei mir anders und nur für das Howto übersichtlich auf 1-3 begrenzt). Falls ich irgendwo Fehler gemacht habe, bitte ich um Nachsicht/Korrektur, da ich nicht unbegrenzt Zeit hatte, die Kiste zum laufen zu bekommen (Termindruck). |
|
|
|
|
|
#3 |
|
Registered User
Registrierungsdatum: Mar 2005
Beiträge: 410
|
genau das gleiche setup hatte ich eine zeit lang in benutzung.
ich wuerde jedoch vorschlagen, tagged und untagged traffic auf einem physikalischen interface nicht zu mischen - ist nur so ein gefuehl. |
|
|
|
|
|
#4 |
|
Registered User
Registrierungsdatum: Mar 2005
Beiträge: 131
|
Das ist eine der Eigenarten von 802.1q. Aus Kompatibilitätsgründen zu älteren Versionen des Spanning-Trees wird im nativen VLAN der Traffic untagged übertragen. Deswegen gibt die Möglichkeit - falls man Sicherheitsbedenken hat - das VLAN1 (default untagged) abzuschalten und als native VLAN zb. VLANxyz zu wählen, was zwar so nicht im Howto steht, aber in meiner realen Konfiguration zum Einsatz kommt.
|
|
|
|
![]() |
| Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste) | |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| pf: Ausgehenden Traffic auf Gateway filtern | schwerdy | OpenBSD - Allgemein | 1 | 29.10.2005 08:30 |
| pf "hängt" sich auf | Fughal | OpenBSD - Allgemein | 3 | 15.03.2005 11:42 |
| pf mit ALTQ Support Howto | Stefan Bauer | Howtos | 7 | 02.10.2004 21:02 |
| FreeBSD DSL Router auf Basis von pf | buebo | Howtos | 5 | 27.07.2003 11:37 |
| Neues Release von PF für FreeBSD | asg | News | 0 | 25.04.2003 07:53 |