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
]