Toon posts:

Bridge firewall voor servers achter bridge

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een bridge opgezet dmv de bridge howto.
Alles werkt naar behoren, alleen wil ik er nu voor zorgen dat er een firewall op komt.
Deze firewall moet ervoor zorgen dat alle servers die achter de bridge staan beschermd worden.
Nu wil ik alles dicht zetten, zodat er geen verkeer over de bridge kan en vervolgens gaten boren, wat wel naar die servers mag.

Dit wil niet lukken, al het verkeer mag gewoon de bridge over, wat wel lukt is de bridge potddicht zetten.
Op welke interface moet ik filteren?
Ik heb eth0 en eth 1 en br0 al geprobeerd, maar ik weet niet voor welke de firewall moet filteren.
eth0 staat intern eth1 extern.

Verwijderd

ik weet niet of het mogelijk is met een bridge. Volgens mij kon je alleen complete protocollen blokken. Als je een firewall wil moet je gaan routen en niet bridgen. En anders op iedere pc een firewall zetten.

Verwijderd

Op een bridge kun je alleen op layer2 filteren, dwz, alleen op basis van mac adressen. Dan moet je ebtables (zo ff uit m'n hoofd) installen voordat je kunt filteren.

edit:

imho zou je beter een layer3 packetfilter (aka een "normale" firewall") icm een bridge kunnen gebruiken, in een setup zoals dit:

|inet| <--> |bridge| <--> |router| <--> |intern netwerk|

Een bridge is nogal beperkt in z'n filtering capaciteiten, maar kan weer perfect dienen als transparante NIDS. Koppel dmv een 3e netwerkkaart je bridge aan je router, en je kunt mbv snort en wat scriptwerk een firewall bouwen die blokt op het moment dat je een connectie op probeert te zeten die door de NIDS als evil word gemarkeerd.

[ Voor 67% gewijzigd door Verwijderd op 12-03-2004 16:54 ]


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Verwijderd schreef op 12 maart 2004 @ 16:50:
Op een bridge kun je alleen op layer2 filteren, dwz, alleen op basis van mac adressen. Dan moet je ebtables (zo ff uit m'n hoofd) installen voordat je kunt filteren.
Dit is niet een overal geldende waarheid (tm). Onder iig FreeBSD kun je in principe prima op layer3 en hoger filteren (op een bridge, dus). Onder FreeBSD kan dat met zowel ipfw als ipfilter.

[ Voor 4% gewijzigd door serkoon op 12-03-2004 17:06 ]


  • Wilke
  • Registratie: December 2000
  • Nu online
serkoon schreef op 12 maart 2004 @ 17:07:
Dit is niet een overal geldende waarheid (tm). Onder iig FreeBSD kun je in principe prima op layer3 en hoger filteren (op een bridge, dus). Onder FreeBSD kan dat met zowel ipfw als ipfilter.
In Linux kan dit ook, al is dit nogal in de experimentele fase (lees: het is een hack), tenminste wel toen ik het probeerde.

Zie de Linux Advanced Routing HOWTO, daar staat o.a.:
As of Linux 2.4.20, bridging and iptables do not 'see' each other without help. If you bridge packets from eth0 to eth1, they do not 'pass' by iptables. This means that you cannot do filtering, or NAT or mangling or whatever. In Linux 2.5.45 and higher, this is fixed.
Dus tegenwoordig zou het wel moeten kunnen.

Trouwens, voor 2.4.x was er ook al een hack (experimentele kernel-optie die je aan moest zetten) waardoor het wel kon, maar dit werkte niet in alle gevallen even briljant geloof ik.

[ Voor 10% gewijzigd door Wilke op 12-03-2004 19:44 ]


  • benoni
  • Registratie: November 2003
  • Niet online
Verwijderd schreef op 12 maart 2004 @ 16:50:
imho zou je beter een layer3 packetfilter (aka een "normale" firewall") icm een bridge kunnen gebruiken, in een setup zoals dit:

|inet| <--> |bridge| <--> |router| <--> |intern netwerk|

[/edit]
Zo'n beetje op die manier heb ik op een oude PC 3 netwerkkaarten transparant gebridged voor het interne netwerk, met daaroverheen een internetverbinding naar een 4e netwerkkaart dmv. iptables firewall. Er start eerst een scriptje op die de bridge maakt (eth1+eth2+eth3->brc1), en daarna een script die iptables rules aanslingert voor de internetverbinding (brc1 <--> eth0). Bedoel je zoiets, of moet het verkeer van verschillende interne netwerken onderling ook gefilterd worden?

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 23:19

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Een bridge werkt per definitie op layer 2 (ala switch) zoals e3boot als zei. Om echt te filteren zul je layer 3 (zoals ip) moeten ondersteunen of zelfs layer 4 (tcp).

[ Voor 16% gewijzigd door Bor op 12-03-2004 23:04 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


  • sirdupre
  • Registratie: Maart 2002
  • Laatst online: 27-04-2025
Misschien een interessant linkje?

http://www.obfuscation.org/ipf/ipf-howto.html#TOC_51

Verwijderd

Kep wat gevonden: iptables voor een bridge te firewallen :P >> http://ebtables.sourceforge.net/

Verwijderd

Topicstarter
Ik ben nu idd bezig met ebtables, dan werkt zo'n btje hetzelfde als iptables.

Verwijderd

Topicstarter
benoni schreef op 12 maart 2004 @ 22:57:
[...]


Zo'n beetje op die manier heb ik op een oude PC 3 netwerkkaarten transparant gebridged voor het interne netwerk, met daaroverheen een internetverbinding naar een 4e netwerkkaart dmv. iptables firewall. Er start eerst een scriptje op die de bridge maakt (eth1+eth2+eth3->brc1), en daarna een script die iptables rules aanslingert voor de internetverbinding (brc1 <--> eth0). Bedoel je zoiets, of moet het verkeer van verschillende interne netwerken onderling ook gefilterd worden?
Heb je een voorbeeld scriptje voor mij?
Waarom gebruik je 3 nics in je bridge???
Onderling hoeft niet gefilterd te worden.

alleen zo:

internet--bridge--servers

  • benoni
  • Registratie: November 2003
  • Niet online
Verwijderd schreef op 15 maart 2004 @ 13:21:
[...]


Heb je een voorbeeld scriptje voor mij?
Waarom gebruik je 3 nics in je bridge???
Ik zal de scriptjes die nu draaien even opsnorren. Ik heb aan de 3 nics 3 kleine netwerkswitches hangen, elk voor een werkgroep met server, en hoop dat ik op die manier het interne netwerkverkeer wat efficienter laat lopen. Om dat daadwerkelijk goed voor elkaar te krijgen zou ik beter een 2.6 kernel kunnen draaien die over de bridged netwerkkaarten ook kan filteren (ebtables), zoals anderen al opmerkten. Maar ja het werkt eigenlijk al best zo als het nu gaat ;-)

  • benoni
  • Registratie: November 2003
  • Niet online
De bridge code (die moet je voor de firewall laten starten):
NB de bovenste #-regels waren min of meer van een Mandrake config afgekeken, dit kun je natuurlijk weglaten of aanpassen aan je eigen systeem.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[root@conference init.d]# cat rc.bridge
#!/bin/sh
# chkconfig: 235 99 10
# description: Start or stop the Conference bridge
# Bridges eth1, eth2 and eth3 into brc1; adds brc1 as a logical interface.
# Configured for the bla bla network bla bla by Benoni.
#
### BEGIN INIT INFO
# Provides: rc.bridge
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Start or stop the Conference bridge
### END INIT INFO

# Get the functions library
. /etc/rc.d/init.d/functions

if [ "$rc_done" == "" ]; then
    rc_done="DONE"
fi

if [ "$rc_failed" == "" ]; then
    rc_failed="FAILED"
fi

return=$rc_done
case "$1" in

    'start')
        echo "Starting service bridge brc1"
        brctl addbr brc1 || return=$rc_failed
        brctl setbridgeprio brc1 0 || return=$rc_failed
        brctl addif brc1 eth1 || return=$rc_failed
        brctl addif brc1 eth2 || return=$rc_failed
        brctl addif brc1 eth3 || return=$rc_failed
        ifconfig eth1 0.0.0.0 || return=$rc_failed
        ifconfig eth2 0.0.0.0 || return=$rc_failed
        ifconfig eth3 0.0.0.0 || return=$rc_failed
        brctl sethello brc1 1 || return=$rc_failed
        brctl setmaxage brc1 4 || return=$rc_failed
        brctl setfd brc1 4 || return=$rc_failed
        ifconfig brc1 192.168.11.1 netmask 255.255.255.0 up || return=$rc_failed

        echo -e "$return"
        ;;

    'stop')
        echo "Shutting down service bridge brc1"
        brctl delif brc1 eth3 || return=$rc_failed
        brctl delif brc1 eth2 || return=$rc_failed
        brctl delif brc1 eth1 || return=$rc_failed
        brctl delbr brc1 || return=$rc_failed
        rmmod bridge || return=$rc_failed

        echo -e "$return"
        ;;

    'status')
        ifconfig brc1
        brctl showstp brc1
        ;;

    'restart')
        $0 stop && $0 start || return=$rc_failed
        ;;

    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac

test "$return" = "$rc_done" || exit 1
exit 0


De meest relevante info over bridging (en de basis voor bovenstaand script) had ik gevonden in de BRIDGE-STP-HOWTO.

Het rc.iptables script wat daarna start had ik van Arno. Ik heb er wel een paar kleine dingetjes in aangepast. In het bijbehorende configuratiebestand heb ik eth0 opgegeven als internet verbinding, en voor het interne netwerk de brc1 die door het bovenstaande script in het leven wordt geroepen.

Addit:
Inmiddels zijn deze scriptjes natuurlijk al een paar jaar oud. Misschien dat iemand anders nu ook zoiets heeft maar in combinatie met Shorewall, waardoor het beheer een stukje makkelijker kan worden.
Misschien is het ook leuk om een losse discussie te starten over de kwaliteit van iptables scripts, ik zie dat de manier van rules bouwen bij Shorewall en Arno's script nogal anders is.

[ Voor 22% gewijzigd door benoni op 15-03-2004 15:24 ]


Verwijderd

Topicstarter
Dit is alleen niet echt wat ik zoek.....
Iptables kan namelijk het bridge verkeer niet filteren.
Daarvoor moet ik ebtables gebruiken.
Je link naar het iptables script is trwns dood.....

[ Voor 85% gewijzigd door Verwijderd op 16-03-2004 10:33 ]


  • Sn00pN00b
  • Registratie: Mei 2003
  • Laatst online: 27-01 15:01
Is smoothwall misschien niet een idee?? Is gratis te downen van smoothwall.org en draait bij mij thuis perfect op een p233.

Verwijderd

Topicstarter
Sn00pN00b schreef op 16 maart 2004 @ 10:35:
Is smoothwall misschien niet een idee?? Is gratis te downen van smoothwall.org en draait bij mij thuis perfect op een p233.
Die is naar mijn weten voor IPtables en niet voor EBtables.Wat dus niet werkt.....

Verwijderd

Topicstarter
Ik zit het nu allmeaal een btje te bekijken en EBtables heeft erg veel weg van IPtables.
Op zich is het ijna hetzelfde op wat kleine dingen na, omdat je met een brdige te maken hebt.

Hier wat handige links voor mensen die het willen gebruiken:

De manpage:
http://www.fedchik.org.ua...bles/ebtables.8.html#lbAB

De site:
http://ebtables.sourceforge.net

Ik las trwns ook dat in 2.6 EBtables standaard ondersteund gaat worden!

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 29-01 14:41
Ik las trwns ook dat in 2.6 EBtables standaard ondersteund gaat worden!
Gaat? Het is al ondersteund, net als iptables en de bridging code. Je moet er wel zelf even de user-space tools bij halen.

  • benoni
  • Registratie: November 2003
  • Niet online
Klopt.

Het is allemaal nog wel vrij nieuw dat ebtables verhaal. Dat ging eerst met IPF filtering (zie linkje van SirDupre). Bij Shorewall denkt men nog niet aan een ebtables-variant, da's eigenlijk wel jammer. Zelf wat (ver)bouwen is idd de enige optie (btw: Arno's website doet het wel, bij downloads vind je een script, maar die is denk ik vrij lastig om te verbouwen). Hier heb ik nog een linkje (wel in 't Frans helaas, maar wel aardig):
http://gaby.homeip.net/partage/formation_linux/bridge.html
Pagina: 1