Networking Forums

Networking Forums > Computer Networking > Linux Networking > problems with bridge and ebtables...

Reply
Thread Tools Display Modes

problems with bridge and ebtables...

 
 
Damir Galič
Guest
Posts: n/a

 
      07-25-2005, 09:13 PM
Hello. I have this problem. I am trying to distribute multicast packets
through my linux box over the internal network. So the only way I managed to
do that, it's by using ebtables, blocking all but multicast packets on my
bridged NICs. The problem is, that the connection between computers
connected to this linux box are breaking from time to time. Here is the
example of my rc.firewall, that I am using. Tell me what I am doing wrong
and what should I change in order to meet my wishes...
Eth1 is the interface used for internal network, while eth0 is connected to
adsl modem and it's where I receive multicast from. eth0=0/0,
eth1=192.168.0.1/32, br0=0/0

************************************************** *******************************
#! /bin/sh
EXTINT=ppp0 # internet interface
INTERN=eth1 # lan interface
INTERNout=eth0 # lan interface
BRIDGE=br0
LO_IFACE=lo
LO_IP=127.0.0.1
INTERN_IP=192.168.0.1
EXTIP=193.77.101.100
IPPC1=192.168.0.11
IPPC2=192.168.0.12
IPPC3=192.168.0.13
LAN_IP_RANGE="192.168.0.0/16"
MULTICAST="224.0.0.0/4"
IPTABLES="/usr/sbin/iptables"
EBTABLES="/sbin/ebtables"
BRCTL="/usr/local/sbin/brctl"
IFCONFIG="/sbin/ifconfig"

fw_up() {
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m
state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j
LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -m limit --limit
3/second --limit-burst 3 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -m limit --limit
2/second --limit-burst 2 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -m limit --limit
20/second --limit-burst 20 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -m limit --limit
20/second --limit-burst 20 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -m limit --limit
10/second --limit-burst 10 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 3000 -m limit --limit
10/second --limit-burst 10 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 49000:49300 -m limit --limit
100/second --limit-burst 100 -j allowed
$IPTABLES -A udp_packets -p UDP -s 0/0 --dport 53 -m limit --limit
20/second --limit-burst 20 -j ACCEPT
# MSN
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6901 -m limit --limit
20/second --limit-burst 20 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6891:6900 -m limit --limit
20/second --limit-burst 20 -j allowed
$IPTABLES -A udp_packets -p UDP -s 0/0 --dport 2001:2120 -m limit --limit
20/second --limit-burst 20 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --dport 6801 -m limit --limit
20/second --limit-burst 20 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --dport 6901 -m limit --limit
20/second --limit-burst 20 -j ACCEPT
#
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -m limit --limit
1/second --limit-burst 1 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -m limit --limit
1/second --limit-burst 1 -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $INTERN -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $EXTIP -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $INTERN --dport 67 --sport 68 -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $EXTIP -m state --state ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A INPUT -p TCP -i $EXTINT -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $EXTINT -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $EXTINT -j icmp_packets
$IPTABLES -A INPUT -p ALL -i $BRIDGE -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j
LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $INTERN -o $EXTINT -j ACCEPT
$IPTABLES -A FORWARD -o $INTERN -i $EXTINT -j ACCEPT
$IPTABLES -A FORWARD -i $BRIDGE -o $BRIDGE -j ACCEPT
$IPTABLES -A FORWARD -p IGMP -i $BRIDGE -o br0 -j ACCEPT
$IPTABLES -A FORWARD -p UDP -d $MULTICAST -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j
LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $EXTIP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j
LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "

$IPTABLES -t nat -A POSTROUTING -s $LAN_IP_RANGE -j MASQUERADE
# directplay ports for pc1
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
2300:2400 -j DNAT --to ${IPPC1}:2300-2400
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
2300:2400 -j DNAT --to ${IPPC1}:2300-2400
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
47624 -j DNAT --to ${IPPC1}:47624
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
6073 -j DNAT --to ${IPPC1}:6073
# edonkey port for pc1
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
4669 -j DNAT --to ${IPPC1}:4669
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
4679 -j DNAT --to ${IPPC1}:4679
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
3389 -j DNAT --to ${IPPC1}:3389
# bittorrent port for pc1
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
6881:6999 -j DNAT --to ${IPPC1}:6881-6999
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
43100:43500 -j DNAT --to ${IPPC1}:43100-43500
# edonkey port for pc2
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
4662 -j DNAT --to ${IPPC2}:4662
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
4672 -j DNAT --to ${IPPC2}:4672
# shareaza port
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
6346 -j DNAT --to ${IPPC1}:4346
# streaming port (unused?)
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
5000 -j DNAT --to ${IPPC1}:5000
# n4s underground
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
3074 -j DNAT --to ${IPPC1}:3074
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
3074 -j DNAT --to ${IPPC1}:3074
# MSN
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
6891:6900 -j DNAT --to ${IPPC1}:6891-6900
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
6901 -j DNAT --to ${IPPC1}:6901
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
2001:2120 -j DNAT --to ${IPPC1}:2001-2120
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
6801 -j DNAT --to ${IPPC1}:6801
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
6901 -j DNAT --to ${IPPC1}:6901
# cyberoro
$IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
7447 -j DNAT --to ${IPPC1}:7447

# mark 2 = 160 kbit/s ppp0 (bitje - pc2)
# mark 3 = 600 kbit/s ppp0 (athlon - pc1)
# mark 5 = 160 kbit/s ppp0 (ostali)
# mark 4 = unlimited eth1 (athlon - pc1)
# mark 1 = 3000 kbit/s eth1 (bitje - pc2)
# mark 6 = 3000 kbit/s eth1 (ostali)
$IPTABLES -t mangle -A FORWARD -d ${IPPC2} -j MARK --set-mark 1 #pc2
download
$IPTABLES -t mangle -A POSTROUTING -s ${IPPC2} -j MARK --set-mark 2 #pc2
upload
$IPTABLES -t mangle -A FORWARD -d ${IPPC1} -j MARK --set-mark 4 # pc1
download
$IPTABLES -t mangle -A POSTROUTING -s ${IPPC1} -j MARK --set-mark 3 #pc1
upload
perl -e '$a=20;for(0..180){ system("iptables -t mangle -A FORWARD -d
192.168.0.$a -j MARK --set-mark 6"); system("iptables -t mangle -A
POSTROUTING -s 192.168.0.$a -j MARK --set-mark 5"); $a++;}'

# mark 7 = oznaka za diagrame
$IPTABLES -t mangle -A OUTPUT -s $EXTIP -d ! $LAN_IP_RANGE # -j
MARK --set-mark 7
$IPTABLES -t mangle -A INPUT -s ! $LAN_IP_RANGE -d $EXTIP # -j
MARK --set-mark 7
# bridganje povezav za multicast
$BRCTL addbr $BRIDGE
$BRCTL stp $BRIDGE off
$BRCTL addif $BRIDGE $INTERN
$BRCTL addif $BRIDGE $INTERNout
$IFCONFIG $INTERNout 0.0.0.0
$IFCONFIG $BRIDGE 0.0.0.0 up
$EBTABLES -t broute -P BROUTING DROP
$EBTABLES -t broute -A BROUTING -d 01:00:00:00:00:00/01:00:00:00:00:00 -j
ACCEPT
echo "Firewall up"
}
fw_down() {
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
/sbin/ifconfig $BRIDGE down
/usr/local/sbin/brctl delbr $BRIDGE
/sbin/ebtables -t broute -F BROUTING
/sbin/ebtables -t broute -P BROUTING ACCEPT
echo "Firewall down"
}
case "$1" in
'start')
fw_up
;;
'stop')
fw_down
;;
'restart')
fw_down
sleep 1
fw_up
;;
*)
fw_up
esac
************************************************** *******************************


 
Reply With Quote
 
 
 
 
Damir Galič
Guest
Posts: n/a

 
      07-26-2005, 10:49 AM
Could it be, that bridge bridges all interfaces connected to the switch,
which is connected to eth1?
So that might cause data to travel through different route, which isn't
working?


"Damir Galič" <(E-Mail Removed)> wrote in message
news:4BcFe.556$(E-Mail Removed)...
> Hello. I have this problem. I am trying to distribute multicast packets
> through my linux box over the internal network. So the only way I managed
> to do that, it's by using ebtables, blocking all but multicast packets on
> my bridged NICs. The problem is, that the connection between computers
> connected to this linux box are breaking from time to time. Here is the
> example of my rc.firewall, that I am using. Tell me what I am doing wrong
> and what should I change in order to meet my wishes...
> Eth1 is the interface used for internal network, while eth0 is connected
> to adsl modem and it's where I receive multicast from. eth0=0/0,
> eth1=192.168.0.1/32, br0=0/0
>
> ************************************************** *******************************
> #! /bin/sh
> EXTINT=ppp0 # internet interface
> INTERN=eth1 # lan interface
> INTERNout=eth0 # lan interface
> BRIDGE=br0
> LO_IFACE=lo
> LO_IP=127.0.0.1
> INTERN_IP=192.168.0.1
> EXTIP=193.77.101.100
> IPPC1=192.168.0.11
> IPPC2=192.168.0.12
> IPPC3=192.168.0.13
> LAN_IP_RANGE="192.168.0.0/16"
> MULTICAST="224.0.0.0/4"
> IPTABLES="/usr/sbin/iptables"
> EBTABLES="/sbin/ebtables"
> BRCTL="/usr/local/sbin/brctl"
> IFCONFIG="/sbin/ifconfig"
>
> fw_up() {
> $IPTABLES -P INPUT DROP
> $IPTABLES -P OUTPUT DROP
> $IPTABLES -P FORWARD DROP
> $IPTABLES -N bad_tcp_packets
> $IPTABLES -N allowed
> $IPTABLES -N tcp_packets
> $IPTABLES -N udp_packets
> $IPTABLES -N icmp_packets
> $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m
> state --state NEW -j REJECT --reject-with tcp-reset
> $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j
> LOG --log-prefix "New not syn:"
> $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
> $IPTABLES -A allowed -p TCP --syn -j ACCEPT
> $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
> $IPTABLES -A allowed -p TCP -j DROP
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -m limit --limit
> 3/second --limit-burst 3 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -m limit --limit
> 2/second --limit-burst 2 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -m limit --limit
> 20/second --limit-burst 20 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -m limit --limit
> 20/second --limit-burst 20 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -m limit --limit
> 10/second --limit-burst 10 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 3000 -m limit --limit
> 10/second --limit-burst 10 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 49000:49300 -m
> limit --limit 100/second --limit-burst 100 -j allowed
> $IPTABLES -A udp_packets -p UDP -s 0/0 --dport 53 -m limit --limit
> 20/second --limit-burst 20 -j ACCEPT
> # MSN
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6901 -m limit --limit
> 20/second --limit-burst 20 -j allowed
> $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6891:6900 -m limit --limit
> 20/second --limit-burst 20 -j allowed
> $IPTABLES -A udp_packets -p UDP -s 0/0 --dport 2001:2120 -m limit --limit
> 20/second --limit-burst 20 -j ACCEPT
> $IPTABLES -A udp_packets -p UDP -s 0/0 --dport 6801 -m limit --limit
> 20/second --limit-burst 20 -j ACCEPT
> $IPTABLES -A udp_packets -p UDP -s 0/0 --dport 6901 -m limit --limit
> 20/second --limit-burst 20 -j ACCEPT
> #
> $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -m limit --limit
> 1/second --limit-burst 1 -j ACCEPT
> $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -m limit --limit
> 1/second --limit-burst 1 -j ACCEPT
> $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
> $IPTABLES -A INPUT -p ALL -i $INTERN -s $LAN_IP_RANGE -j ACCEPT
> $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP_RANGE -j ACCEPT
> $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
> $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $EXTIP -j ACCEPT
> $IPTABLES -A INPUT -p UDP -i $INTERN --dport 67 --sport 68 -j ACCEPT
> $IPTABLES -A INPUT -p ALL -d $EXTIP -m state --state
> ESTABLISHED,RELATED -j ACCEPT
> $IPTABLES -A INPUT -p TCP -i $EXTINT -j tcp_packets
> $IPTABLES -A INPUT -p UDP -i $EXTINT -j udp_packets
> $IPTABLES -A INPUT -p ICMP -i $EXTINT -j icmp_packets
> $IPTABLES -A INPUT -p ALL -i $BRIDGE -j ACCEPT
> $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j
> LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
> $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
> $IPTABLES -A FORWARD -i $INTERN -o $EXTINT -j ACCEPT
> $IPTABLES -A FORWARD -o $INTERN -i $EXTINT -j ACCEPT
> $IPTABLES -A FORWARD -i $BRIDGE -o $BRIDGE -j ACCEPT
> $IPTABLES -A FORWARD -p IGMP -i $BRIDGE -o br0 -j ACCEPT
> $IPTABLES -A FORWARD -p UDP -d $MULTICAST -j ACCEPT
> $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
> $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j
> LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
> $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
> $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
> $IPTABLES -A OUTPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT
> $IPTABLES -A OUTPUT -p ALL -s $EXTIP -j ACCEPT
> $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j
> LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
>
> $IPTABLES -t nat -A POSTROUTING -s $LAN_IP_RANGE -j MASQUERADE
> # directplay ports for pc1
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 2300:2400 -j DNAT --to ${IPPC1}:2300-2400
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 2300:2400 -j DNAT --to ${IPPC1}:2300-2400
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 47624 -j DNAT --to ${IPPC1}:47624
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 6073 -j DNAT --to ${IPPC1}:6073
> # edonkey port for pc1
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 4669 -j DNAT --to ${IPPC1}:4669
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 4679 -j DNAT --to ${IPPC1}:4679
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 3389 -j DNAT --to ${IPPC1}:3389
> # bittorrent port for pc1
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 6881:6999 -j DNAT --to ${IPPC1}:6881-6999
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 43100:43500 -j DNAT --to ${IPPC1}:43100-43500
> # edonkey port for pc2
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 4662 -j DNAT --to ${IPPC2}:4662
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 4672 -j DNAT --to ${IPPC2}:4672
> # shareaza port
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 6346 -j DNAT --to ${IPPC1}:4346
> # streaming port (unused?)
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 5000 -j DNAT --to ${IPPC1}:5000
> # n4s underground
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 3074 -j DNAT --to ${IPPC1}:3074
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 3074 -j DNAT --to ${IPPC1}:3074
> # MSN
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 6891:6900 -j DNAT --to ${IPPC1}:6891-6900
> $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -i $EXTINT -d $EXTIP --dport
> 6901 -j DNAT --to ${IPPC1}:6901
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 2001:2120 -j DNAT --to ${IPPC1}:2001-2120
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 6801 -j DNAT --to ${IPPC1}:6801
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 6901 -j DNAT --to ${IPPC1}:6901
> # cyberoro
> $IPTABLES -t nat -A PREROUTING -p udp -m udp -i $EXTINT -d $EXTIP --dport
> 7447 -j DNAT --to ${IPPC1}:7447
>
> # mark 2 = 160 kbit/s ppp0 (bitje - pc2)
> # mark 3 = 600 kbit/s ppp0 (athlon - pc1)
> # mark 5 = 160 kbit/s ppp0 (ostali)
> # mark 4 = unlimited eth1 (athlon - pc1)
> # mark 1 = 3000 kbit/s eth1 (bitje - pc2)
> # mark 6 = 3000 kbit/s eth1 (ostali)
> $IPTABLES -t mangle -A FORWARD -d ${IPPC2} -j MARK --set-mark 1 #pc2
> download
> $IPTABLES -t mangle -A POSTROUTING -s ${IPPC2} -j MARK --set-mark 2 #pc2
> upload
> $IPTABLES -t mangle -A FORWARD -d ${IPPC1} -j MARK --set-mark 4 # pc1
> download
> $IPTABLES -t mangle -A POSTROUTING -s ${IPPC1} -j MARK --set-mark 3 #pc1
> upload
> perl -e '$a=20;for(0..180){ system("iptables -t mangle -A FORWARD -d
> 192.168.0.$a -j MARK --set-mark 6"); system("iptables -t mangle -A
> POSTROUTING -s 192.168.0.$a -j MARK --set-mark 5"); $a++;}'
>
> # mark 7 = oznaka za diagrame
> $IPTABLES -t mangle -A OUTPUT -s $EXTIP -d ! $LAN_IP_RANGE # -j
> MARK --set-mark 7
> $IPTABLES -t mangle -A INPUT -s ! $LAN_IP_RANGE -d $EXTIP # -j
> MARK --set-mark 7
> # bridganje povezav za multicast
> $BRCTL addbr $BRIDGE
> $BRCTL stp $BRIDGE off
> $BRCTL addif $BRIDGE $INTERN
> $BRCTL addif $BRIDGE $INTERNout
> $IFCONFIG $INTERNout 0.0.0.0
> $IFCONFIG $BRIDGE 0.0.0.0 up
> $EBTABLES -t broute -P BROUTING DROP
> $EBTABLES -t broute -A BROUTING -d 01:00:00:00:00:00/01:00:00:00:00:00 -j
> ACCEPT
> echo "Firewall up"
> }
> fw_down() {
> $IPTABLES -P INPUT ACCEPT
> $IPTABLES -P FORWARD ACCEPT
> $IPTABLES -P OUTPUT ACCEPT
> $IPTABLES -t nat -P PREROUTING ACCEPT
> $IPTABLES -t nat -P POSTROUTING ACCEPT
> $IPTABLES -t nat -P OUTPUT ACCEPT
> $IPTABLES -t mangle -P PREROUTING ACCEPT
> $IPTABLES -t mangle -P OUTPUT ACCEPT
> $IPTABLES -F
> $IPTABLES -t nat -F
> $IPTABLES -t mangle -F
> $IPTABLES -X
> $IPTABLES -t nat -X
> $IPTABLES -t mangle -X
> /sbin/ifconfig $BRIDGE down
> /usr/local/sbin/brctl delbr $BRIDGE
> /sbin/ebtables -t broute -F BROUTING
> /sbin/ebtables -t broute -P BROUTING ACCEPT
> echo "Firewall down"
> }
> case "$1" in
> 'start')
> fw_up
> ;;
> 'stop')
> fw_down
> ;;
> 'restart')
> fw_down
> sleep 1
> fw_up
> ;;
> *)
> fw_up
> esac
> ************************************************** *******************************
>
>



 
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to use ebtables on 80211s mesh network k3pp0 Linux Networking 0 02-26-2009 05:52 PM
ebtables processing... shokwave Linux Networking 5 09-17-2008 12:16 PM
Ebtables to stop DHCP and ARP support@isotech-inc.com Linux Networking 5 07-31-2007 04:14 PM
brctl & ebtables problems Damir Galič Linux Networking 2 08-24-2005 03:48 AM
Bridge problems Eric Adamson Linux Networking 3 04-14-2005 01:44 PM



1 2 3 4 5 6 7 8 9 10 11