PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : htb traffic control script von CT



Hellek
06.12.02, 14:16
Zuerst mal der Script von CT:



#!/bin/sh
#
# Shell-Skript fuer Quality of Service mit HTB
#

EXTIF=ppp0
INTIF=eth0

############
# Outgoing
############
## Root
/sbin/tc qdisc add dev $EXTIF root handle 1:0 htb default 12
## Hauptklasse
/sbin/tc class add dev $EXTIF parent 1:0 classid 1:1 htb rate 125kbit ceil 125kbit
## Klasse fuer ACK
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:10 htb rate 10kbit ceil 125kbit prio 0
## Klasse fuer VPN/SSH
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:11 htb rate 30kbit ceil 125kbit prio 1
## Klasse fuer normalen Traffic
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:12 htb rate 75kbit ceil 125kbit prio 2
## Klasse fuer Bulk
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:13 htb rate 10kbit ceil 100kbit prio 3

# ACKs
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp -m length --length :64 -j MARK --set-mark 10
# VPN/IPsec
iptables -A POSTROUTING -t mangle -o $EXTIF -p 50 -j MARK --set-mark 11
# SSH
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 22 -j MARK --set-mark 11
# lokaler SSH Server auf Port 4444
# iptables -A OUTPUT -t mangle -o $EXTIF -p tcp --sport 4444 -j MARK --set-mark 11
# SMTP
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 25 -j MARK --set-mark 13
# eDonkey
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 4662 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --sport 4662 -j MARK --set-mark 13

tc filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
tc filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11
# default: 1:12
tc filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:13


###########
# Incoming
###########
#/sbin/tc qdisc add dev $INTIF root handle 2:0 htb default 20
#/sbin/tc class add dev $INTIF parent 2:0 classid 2:2 htb rate 750kbit ceil 750kbit
#/sbin/tc class add dev $INTIF parent 2:2 classid 2:20 htb rate 500kbit ceil 700kbit prio 1
#/sbin/tc class add dev $INTIF parent 2:2 classid 2:21 htb rate 150kbit ceil 750kbit prio 0
#/sbin/tc class add dev $INTIF parent 2:2 classid 2:22 htb rate 100kbit ceil 500kbit prio 3

# ACKs
#iptables -A POSTROUTING -t mangle -o $INTIF -m length --length :200 -j MARK --set-mark 21
# SSH
#iptables -A POSTROUTING -t mangle -o $INTIF -p tcp --sport 22 -j MARK --set-mark 21
# eDonkey
#iptables -A POSTROUTING -t mangle -o $INTIF -p tcp --dport 4662 -j MARK --set-mark 22
#iptables -A POSTROUTING -t mangle -o $INTIF -p tcp --sport 4662 -j MARK --set-mark 22
# zu drosselnder Rechner
#iptables -A POSTROUTING -t mangle -o $INTIF -d 192.168.111.1 -j MARK --set-mark 22

#tc filter add dev $INTIF parent 2:0 prio 0 protocol ip handle 21 fw flowid 2:21
#tc filter add dev $INTIF parent 2:0 prio 0 protocol ip handle 22 fw flowid 2:22


#########
# SFQ
#########
tc qdisc add dev $EXTIF parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $EXTIF parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev $EXTIF parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $EXTIF parent 1:13 handle 13: sfq perturb 10

#tc qdisc add dev $INTIF parent 2:20 handle 20: sfq perturb 10
#tc qdisc add dev $INTIF parent 2:21 handle 21: sfq perturb 10
#tc qdisc add dev $INTIF parent 2:22 handle 22: sfq perturb 10


Nun habe ich ein paar Fragen:
1.)
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 4662 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --sport 4662 -j MARK --set-mark 13
trifft ja auf downloads UND uploads zu, welche dann beide in die upstream-queue gerechnet werden, oder irre ich mich da?

2.) warum wird bei den eingehend daten eth0 und nicht ppp0 verwendet? Die Regeln machen ja auch lokale Datentransfers langsamer


Und dann auch noch ein allgemeine Frage:
Angenommen ich habe eine verbindung mit masquerading über einen routera
Also so:
PC (192.168.10.1) -- Router (192.168.10.2/62.46.10.20) -- Internet

Wenn nun der PC ein Packet and einen Webserver im Internet schickt, was ist dann Source IP und was Destination IP?
Ich tippe mal auf 192.168.10.1/<ip des servers> beim prerouting und 62.46.10.20/<ip des servers> beim postrouting, stimmt das?
Wie sieht es mit den Paketen der Antwort aus? <ip des servers>/62.46.10.20 beim prerouting und <ip des servers>/192.168.10.1 beim postrouting?
Oder trägt das Paket auch mal die IP des routers?

Ich habe nämlich vor z.b. bei den Edonkey-Uploads hinzuzufügen, dass die source-ip 192.168.10.0/255.255.255.0 sein muss wodurch wohl keine downloads mehr als uploads gequed würden. Allerdings muss ich dazu natürlich wissen ob ich die regel im prerouting oder im postrouting reintun muss bzw. wo das paket welche IP hat.

Kann mir da jemand weiterhelfen?

geronet
06.12.02, 15:06
1. Du irrst dich, da "-o $EXTIF" nur Pakete abgehend vom externen Interface betreffen und somit (zum grössten Teil) Uploads betreffen.

2. siehe lartc.org:

With queueing we determine the way in which data is SENT.
It is important to realise that we can only shape data that we transmit.
With the way the Internet works, we have no direct control of what people
send us. It's a bit like your (physical!) mailbox at home. There is no way
you can influence the world to modify the amount of mail they send you,
short of contacting everybody.
However, the Internet is mostly based on TCP/IP which has a few features
that help us. TCP/IP has no way of knowing the capacity of the network
between two hosts, so it just starts sending data faster and faster ('slow
start') and when packets start getting lost, because there is no room to
send them, it will slow down. In fact it is a bit smarter than this, but
more about that later.
This is the equivalent of not reading half of your mail, and hoping that
people will stop sending it to you. With the difference that it works for
the Internet :-)
If you have a router and wish to prevent certain hosts within your network
from downloading too fast, you need to do your shaping on the *inner* interface
of your router, the one that sends data to your own computers.


Allgemeine Frage:
>Ich tippe mal auf 192.168.10.1/<ip des servers> beim prerouting und 62.46.10.20/<ip des servers> beim postrouting, stimmt das?

Beim Postrouting nach der MASQ-Regel hat es die externe IP, aber da kannst du eh nicht mehr auf das Paket zugreiffen da es schon Maskiert wurde.

>Wie sieht es mit den Paketen der Antwort aus? <ip des servers>/62.46.10.20 beim prerouting und <ip des servers>/192.168.10.1 beim postrouting?

Das kommt darauf an wo Demasqueraded wird, ich weiss es im Moment nicht genau aber ich denke das kann man leicht prüfen mit einer --log Regel.

>Oder trägt das Paket auch mal die IP des routers?
Tut es doch, auf jeden Fall ausserhalb deines Rechners :D

Grüsse, Stefan

Hellek
06.12.02, 15:11
So, ich habe nun mit etwas Hilfe im IRC meine Theorie bezüglich dem Routing überprüfen können und das script so ergänzt:

NET=192.168.10.0
MASK=255.255.255.0

# dadurch werden verbindungen die intern im LAN sind nicht limitiert
# ACKs
iptables -A POSTROUTING -t mangle -o $INTIF -s ! $NET/$MASK -m length --length :200 -j MARK --set-mark 21
# SSH
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --sport 22 -j MARK --set-mark 21
# ICMP / Ping
iptables -A POSTROUTING -t mangle -o $INTIF -p icmp -s ! $NET/$MASK -j MARK --set-mark 21
# eDonkey
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --dport 4662 -j MARK --set-mark 22
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --sport 4662 -j MARK --set-mark 22
# zu drosselnder Rechner
iptables -A POSTROUTING -t mangle -o $INTIF -d 192.168.10.14 -s ! $NET/$MASK -j MARK --set-mark 22


Wegen 2.) dürfte ich mich geirrt haben, da ja -o ppp0 angegeben ist, werden dort onehin nur Pakete gematcht die übers modem rausgehen, kann downloads also doch nicht matchen, falls doch könnte man ebenfalls solche Regeln machen:
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp -s $NET/$MASK -d ! $NET/$MASK --dport 4662 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp -s $NET/$MASK -d ! $NET/$MASK --sport 4662 -j MARK --set-mark 13

PS: Als ich das Post hier schreiben angefangen habe war das von geronet nicht da, allerdings komme ich onehin im großen und ganzen zum selben Ergebnis. Habe mit vielen log-regeln das alles durchprobiert und so wie das Script oben ist, sollte es funktionieren.
Danke für die Hilfe

Hellek
06.12.02, 17:38
So, ich habe nun ein bisschen getestet und gebastelt und das Ergebnis ist dies:



#!/bin/sh
#
# Shell-Skript fuer Quality of Service mit HTB
#

EXTIF=ppp0
INTIF=eth0
TC=/root/tc
NET=192.168.10.0
MASK=255.255.255.0

modprobe sch_htb sch_prio sch_tbf sch_cbq

############
# Outgoing
############
## Root
$TC qdisc add dev $EXTIF root handle 1:0 htb default 12
## Hauptklasse
$TC class add dev $EXTIF parent 1:0 classid 1:1 htb rate 62kbit ceil 62kbit
## Klasse fuer ACK
$TC class add dev $EXTIF parent 1:1 classid 1:10 htb rate 10kbit ceil 62kbit prio 0
## Klasse fuer VPN/SSH
$TC class add dev $EXTIF parent 1:1 classid 1:11 htb rate 14kbit ceil 62kbit prio 1
## Klasse fuer normalen Traffic
$TC class add dev $EXTIF parent 1:1 classid 1:12 htb rate 36kbit ceil 62kbit prio 2
## Klasse fuer Bulk
$TC class add dev $EXTIF parent 1:1 classid 1:13 htb rate 2kbit ceil 48kbit prio 3

# ACKs
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp -m length --length 0:64 -j MARK --set-mark 10
# VPN/IPsec
iptables -A POSTROUTING -t mangle -o $EXTIF -p 50 -j MARK --set-mark 11
# SSH
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 22 -j MARK --set-mark 11
# ICMP / Ping
iptables -A POSTROUTING -t mangle -o $EXTIF -p icmp -j MARK --set-mark 11
# lokaler SSH Server auf Port 4444
# iptables -A OUTPUT -t mangle -o $EXTIF -p tcp --sport 4444 -j MARK --set-mark 11
# SMTP
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 25 -j MARK --set-mark 12
# eDonkey
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 4662 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --sport 4662 -j MARK --set-mark 13
# Kazaa
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --dport 1214 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o $EXTIF -p tcp --sport 1214 -j MARK --set-mark 13

$TC filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
$TC filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11
# default: 1:12
$TC filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:13


###########
# Incoming
###########
$TC qdisc add dev $INTIF root handle 2:0 htb default 20
$TC class add dev $INTIF parent 2:0 classid 2:2 htb rate 60kbit ceil 60kbit
$TC class add dev $INTIF parent 2:2 classid 2:20 htb rate 44kbit ceil 60kbit prio 1
$TC class add dev $INTIF parent 2:2 classid 2:21 htb rate 14kbit ceil 60kbit prio 0
$TC class add dev $INTIF parent 2:2 classid 2:22 htb rate 2kbit ceil 56kbit prio 3

# ACKs
iptables -A POSTROUTING -t mangle -o $INTIF -s ! $NET/$MASK -m length --length 0:200 -j MARK --set-mark 21
# SSH
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --sport 22 -j MARK --set-mark 21
# ICMP / Ping
iptables -A POSTROUTING -t mangle -o $INTIF -p icmp -s ! $NET/$MASK -j MARK --set-mark 21
# eDonkey
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --dport 4662 -j MARK --set-mark 22
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --sport 4662 -j MARK --set-mark 22
# Kazaa
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --dport 1214 -j MARK --set-mark 22
iptables -A POSTROUTING -t mangle -o $INTIF -p tcp -s ! $NET/$MASK --sport 1214 -j MARK --set-mark 22
# zu drosselnder Rechner
iptables -A POSTROUTING -t mangle -o $INTIF -d 192.168.10.14 -s ! $NET/$MASK -j MARK --set-mark 22

$TC filter add dev $INTIF parent 2:0 prio 0 protocol ip handle 21 fw flowid 2:21
$TC filter add dev $INTIF parent 2:0 prio 0 protocol ip handle 22 fw flowid 2:22


#########
# SFQ
#########
$TC qdisc add dev $EXTIF parent 1:10 handle 10: sfq perturb 10
$TC qdisc add dev $EXTIF parent 1:11 handle 11: sfq perturb 10
$TC qdisc add dev $EXTIF parent 1:12 handle 12: sfq perturb 10
$TC qdisc add dev $EXTIF parent 1:13 handle 13: sfq perturb 10

$TC qdisc add dev $INTIF parent 2:20 handle 20: sfq perturb 10
$TC qdisc add dev $INTIF parent 2:21 handle 21: sfq perturb 10
$TC qdisc add dev $INTIF parent 2:22 handle 22: sfq perturb 10


Hat das irgendwelche logischen Fehler o.ä.?
Was mir nämlich aufgefallen ist: Ich habe edonkey laufen lassen, hatte 6kbyte/s upload (ist in edonkey als max festgelegt) und 2kbyte/s down (wobei das eher an edonkey lag als am script). Als ich dann ein http-download began (mit 5,5k lief es) sackten upload und download im edonkey auf jeweils ca. 0.5k. daher denke ich, dass das script vielleicht doch einen fehler hat, 5.5+0.5 = 6.0, die verfügbare bandbreite ist aber 7.5kbyte/s, es müsste also noch platz für die ACK vom upload übrig gewesen sein, daher verstehe ich nicht warum dieses so eingebrochen ist und denke, dass doch noch Fehler im Script sein müssen, leider finde ich diese nicht. (habe natürlich fleißig mit dem LOG-target herumprobiert um den fehler zu finden, ohne erfolg. jedenfalls sieht es doch irgendwie so aus als ob evtl. upstream und downstream zusammengerechnet würden, was aber laut logs nicht der fall ist).

tweb
14.01.03, 11:26
wie funktioniert das mit der prioritätenverteilung in deinem script ?
ist 0 oder 3 die höchste ?
was bedeutet das hier:
$TC qdisc add dev $EXTIF parent 1:10 handle 10: sfq perturb 10
danke schonmal.

tweb
14.01.03, 14:31
ich poste mal mein script.
mein hauptsinn ist es, dass alle ein bissel bandbreite zum zocken haben.
doch der test ergibt, dass wenn einer zockt und ein anderer einen upload startet, geht der ping in den keller.
es wird also leider gar nichts geregelt.

bitte checkt mal, ob ich fehler drin habe.
danke.



!/bin/tcsh

################################################## ###################################

#----------------------#
# VARIABLEN DEFINIEREN #
#----------------------#

# AUSGANGSINTERFACES

set dsl = ppp0
set dsl_lan = eth0
set router_1 = eth1


# ADRESSBEREICHE FESTLEGEN

set intern_zone = 192.168.0.0/255.255.255.0
set internet_zone = 192.168.10.0/255.255.255.0


# SPEZIELLE IPS FESTLEGEN

set dsl_ip = 192.168.10.5
set router_ip = 192.168.0.5

set server_1 = 192.168.0.1
set server_2 = 192.168.0.2

set thomas_1 = 192.168.0.11
set thomas_2 = 192.168.0.12
set robert_1 = 192.168.0.21
set felix_1 = 192.168.0.31
set jonas_1 = 192.168.0.42


# MAC-ADRESSEN FESTLEGEN

set thomas_2_mac = 00:A0:CC:3C:A4:01
set server_1_mac = 00:80:C8:CA:A9:D5
set server_2_mac = 00:80:C8:CA:A9:D6

set felix_1_mac = 08:00:46:6E:03:B7
set jonas_1_mac = 00:40:D0:2D:C9:E4

################################################## ###################################

#--------------------------#
# STANDARDREGELN FESTLEGEN #
#--------------------------#

# MODULE FUER FTP LADEN

modprobe /lib/modules/2.4.19-4GB/kernel/net/ipv4/netfilter ip_conntrack
modprobe /lib/modules/2.4.19-4GB/kernel/net/ipv4/netfilter ip_conntrack_ftp
modprobe /lib/modules/2.4.19-4GB/kernel/net/ipv4/netfilter ip_nat_ftp


# ALLE VORHANDENEN REGELN LÖSCHEN

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F log_drop
iptables -X
iptables -t nat -F
iptables -F -t mangle

/root/tc/tc qdisc del dev $dsl root
# /root/tc/tc qdisc del dev $router_1 root


# ALLE ZÄHLER LÖSCHEN

iptables -Z INPUT
iptables -Z OUTPUT
iptables -Z FORWARD


# REGELKETTE ZUM LOGGEN UND DROPPEN ANLEGEN

iptables -N log_drop
iptables -A log_drop -p ICMP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-ip-options --log-prefix "FIREWALL DROP ICMP "
iptables -A log_drop -p UDP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-ip-options --log-prefix "FIREWALL DROP UDP "
iptables -A log_drop -p TCP -m limit --limit 6/minute --limit-burst 5 -j LOG --log-tcp-options --log-ip-options --log-prefix "FIREWALL DROP TCP "
iptables -A log_drop -j DROP


# STANDARDMÄSSIG ALLE PAKETE VERWERFEN, AUF DIE KEINE REGEL ZUTRIFFT

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


# LOOPBACK ERLAUBEN

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


# GENERELL UNGÜLTIGE PAKETE VERWERFEN

iptables -A INPUT -m state --state INVALID -j log_drop
iptables -A OUTPUT -m state --state INVALID -j log_drop
iptables -A FORWARD -m state --state INVALID -j log_drop

################################################## ###################################

#------------------------#
# MASQUERADING FESTLEGEN #
#------------------------#

# FEHLER IM ROUTING VERBESSERN
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# EXTERNE NETZWERKKARTE ALS AUSGANG VERWENDEN (MASQUERADING)
iptables -t nat -A POSTROUTING -o $dsl -s $intern_zone -j MASQUERADE

################################################## ###################################

#----------------------------------#
# BANDBREITENMANAGEMENT AKTIVIEREN #
#----------------------------------#

/root/tc/tc qdisc add dev $dsl root handle 1: htb default 10
# /root/tc/tc qdisc add dev $router_1 root handle 2: htb default 20

# DOWNLOAD
# /root/tc/tc class add dev $router_1 parent 2:0 classid 2:2 htb rate 768kbit ceil 768kbit
# /root/tc/tc class add dev $router_1 parent 2:2 classid 2:20 htb rate 640kbit ceil 768kbit # Alle
# /root/tc/tc class add dev $router_1 parent 2:2 classid 2:21 htb rate 128kbit ceil 768kbit # Robert

# UPLOAD
/root/tc/tc class add dev $dsl parent 1:0 classid 1:1 htb rate 128kbit ceil 128kbit
/root/tc/tc class add dev $dsl parent 1:1 classid 1:10 htb rate 30kbit ceil 120kbit # Thomas
/root/tc/tc class add dev $dsl parent 1:1 classid 1:11 htb rate 30kbit ceil 120kbit # Robert
/root/tc/tc class add dev $dsl parent 1:1 classid 1:12 htb rate 30kbit ceil 120kbit # Felix
/root/tc/tc class add dev $dsl parent 1:1 classid 1:13 htb rate 30kbit ceil 120kbit # Server
/root/tc/tc class add dev $dsl parent 1:1 classid 1:14 htb rate 8kbit ceil 128kbit # TCP

# KLEINE TCP PAKETE IMMER DURCHLASSEN
iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -m length --length :64 -j MARK --set-mark 14

################################################## ###################################

#----------------------------------------------------#
# FORWARDING ÜBER ISDN UND DSL FUER DAS INTERNE NETZ #
#----------------------------------------------------#

#----------#
# THOMAS 1 #
#----------#

iptables -A POSTROUTING -t mangle -s $thomas_1 -o $dsl -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_1 -o $dsl -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_1 -o $dsl -p tcp --sport 1024: --dport 1024: -j MARK --set-mark 10

# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -o $dsl -s $thomas_1 -i $router_1 -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $thomas_1 -i $router_1 -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $thomas_1 -i $router_1 -p tcp --sport 1024: --dport 1024: -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $thomas_1 -o $router_1 -p tcp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_1 -o $router_1 -p udp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_1 -o $router_1 -p tcp --dport 1024: --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#----------#
# THOMAS 2 #
#----------#

iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp --sport 1024: --dport 1024: -j MARK --set-mark 10

# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667,6669,5222 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667,6669,5222 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp --sport 1024: --dport 1024: -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p tcp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667,6669,5222 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p udp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667,6669,5222 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p tcp --dport 1024: --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

#----------------#
# KAZAA THOMAS 2 #
#----------------#

iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp -m multiport --dport 1214,1080 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp -m multiport --dport 1214,1080 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp --dport 3879 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp --dport 3879 -j MARK --set-mark 10

iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp -m multiport --dport 1214,1080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp -m multiport --dport 1214,1080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp --dport 3879 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp --dport 3879 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p tcp -m multiport --sport 1214,1080 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p udp -m multiport --sport 1214,1080 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p tcp --sport 3879 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p udp --sport 3879 -m state --state ESTABLISHED,RELATED -j ACCEPT


#---------------------#
# QUAKE FUER THOMAS 2 #
#---------------------#

iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp --dport 27950:27980 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp --dport 27950:27980 -j MARK --set-mark 10

iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp --dport 27950:27980 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp --dport 27950:27980 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp --sport 27950:27980 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp --sport 27950:27980 -m state --state ESTABLISHED,RELATED -j ACCEPT


#---------------------#
# EMULE FUER THOMAS 2 #
#---------------------#

iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p tcp -m multiport --dport 4662,4661 -j MARK --set-mark 10
iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp -m multiport --dport 4672,4665 -j MARK --set-mark 10

iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p tcp -m multiport --dport 4662,4661 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp -m multiport --dport 4672,4665 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp -m multiport --sport 4662,4661 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp -m multiport --sport 4672,4665 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


#-----------------#
# BROODWAR THOMAS #
#-----------------#

iptables -A POSTROUTING -t mangle -s $thomas_2 -o $dsl -p udp --dport 6112 -j MARK --set-mark 10

iptables -A FORWARD -m mac --mac-source $thomas_2_mac -o $dsl -s $thomas_2 -i $router_1 -p udp --dport 6112 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $thomas_2 -o $router_1 -p udp --sport 6112 -m state --state ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#--------#
# ROBERT #
#--------#

iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp --sport 1024: --dport 1024: -j MARK --set-mark 11


# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp --sport 1024: --dport 1024: -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp --dport 1024: --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

#----------------------#
# JEDI KNIGHT 2 ROBERT #
#----------------------#

iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp --dport 28070:28081 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp -m multiport --dport 28060,28061,28062 -j MARK --set-mark 11

iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp --dport 28070:28081 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp -m multiport --dport 28060,28061,28062 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp --sport 28070:28081 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp -m multiport --sport 28060,28061,28062 -m state --state ESTABLISHED,RELATED -j ACCEPT

#-----------#
# CS ROBERT #
#-----------#

iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp --dport 27000:27030 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp --dport 27000:27030 -j MARK --set-mark 11

# iptables -A POSTROUTING -t mangle -d $robert_1 -o $router_1 -p tcp --dport 27000:27030 -j MARK --set-mark 21
# iptables -A POSTROUTING -t mangle -d $robert_1 -o $router_1 -p udp --dport 27000:27030 -j MARK --set-mark 21

iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp --dport 27000:27030 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp --dport 27000:27030 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp --sport 27000:27030 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp --sport 27000:27030 -m state --state ESTABLISHED,RELATED -j ACCEPT

#-----------#
# GV ROBERT #
#-----------#

iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp -m multiport --dport 9110,59117 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp -m multiport --dport 9110,59117 -j MARK --set-mark 11

# iptables -A POSTROUTING -t mangle -d $robert_1 -o $router_1 -p tcp -m multiport --dport 9110,59117 -j MARK --set-mark 21
# iptables -A POSTROUTING -t mangle -d $robert_1 -o $router_1 -p udp -m multiport --dport 9110,59117 -j MARK --set-mark 21

iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp -m multiport --dport 9110,59117 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp -m multiport --dport 9110,59117 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp -m multiport --sport 9110,59117 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp -m multiport --sport 9110,59117 -m state --state ESTABLISHED,RELATED -j ACCEPT

#--------------#
# KAZAA ROBERT #
#--------------#

iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp -m multiport --dport 1214,1080 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp -m multiport --dport 1214,1080 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p tcp --dport 3879 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -s $robert_1 -o $dsl -p udp --dport 3879 -j MARK --set-mark 11

iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp -m multiport --dport 1214,1080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp -m multiport --dport 1214,1080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p tcp --dport 3879 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -s $robert_1 -i $router_1 -p udp --dport 3879 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp -m multiport --sport 1214,1080 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp -m multiport --sport 1214,1080 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p tcp --sport 3879 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $robert_1 -o $router_1 -p udp --sport 3879 -m state --state ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#-------#
# FELIX #
#-------#

iptables -A POSTROUTING -t mangle -s $felix_1 -o $dsl -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110 -j MARK --set-mark 12
iptables -A POSTROUTING -t mangle -s $felix_1 -o $dsl -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110 -j MARK --set-mark 12
iptables -A POSTROUTING -t mangle -s $felix_1 -o $dsl -p tcp --sport 1024: --dport 1024: -j MARK --set-mark 12


# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -m mac --mac-source $felix_1_mac -o $dsl -s $felix_1 -i $router_1 -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $felix_1_mac -o $dsl -s $felix_1 -i $router_1 -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $felix_1_mac -o $dsl -s $felix_1 -i $router_1 -p tcp --sport 1024: --dport 1024: -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $felix_1 -o $router_1 -p tcp -m multiport --sport 80,443,53,20,21,22,23,25,110 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $felix_1 -o $router_1 -p udp -m multiport --sport 80,443,53,20,21,22,23,25,110 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $felix_1 -o $router_1 -p tcp --dport 1024: --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#-------#
# JONAS #
#-------#

# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -m mac --mac-source $jonas_1_mac -o $dsl -s $jonas_1 -i $router_1 -p tcp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $jonas_1_mac -o $dsl -s $jonas_1 -i $router_1 -p udp -m multiport --dport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m mac --mac-source $jonas_1_mac -o $dsl -s $jonas_1 -i $router_1 -p tcp --sport 1024: --dport 1024: -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $jonas_1 -o $router_1 -p tcp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $jonas_1 -o $router_1 -p udp -m multiport --sport 80,443,53,20,21,22,23,25,110,5190,6667 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $jonas_1 -o $router_1 -p tcp --dport 1024: --sport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#--------#
# SERVER #
#--------#

iptables -A POSTROUTING -t mangle -s $server_1 -o $dsl -p tcp -m multiport --sport 80 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -s $server_2 -o $dsl -p tcp -m multiport --sport 80 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -s $server_1 -o $dsl -p tcp -m multiport --dport 80,53,433 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -s $server_2 -o $dsl -p tcp -m multiport --dport 80,53,433 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -s $server_1 -o $dsl -p udp -m multiport --dport 80,53,433 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -s $server_2 -o $dsl -p udp -m multiport --dport 80,53,433 -j MARK --set-mark 13

# AUSGEHENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -o $dsl -m mac --mac-source $server_2_mac -s $server_2 -i $router_1 -p tcp -m multiport --dport 80,53,433 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -m mac --mac-source $server_1_mac -s $server_1 -i $router_1 -p tcp -m multiport --dport 80,53,433 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -m mac --mac-source $server_2_mac -s $server_2 -i $router_1 -p udp -m multiport --dport 80,53,433 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -m mac --mac-source $server_1_mac -s $server_1 -i $router_1 -p udp -m multiport --dport 80,53,433 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#----------

# REINKOMMENDES FORWARDING AUF STANDARDPORTS ERLAUBEN

iptables -A FORWARD -i $dsl -d $server_1 -o $router_1 -m multiport -p tcp --sport 80,53,433 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $server_2 -o $router_1 -m multiport -p tcp --sport 80,53,433 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $server_1 -o $router_1 -m multiport -p udp --sport 80,53,433 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -d $server_2 -o $router_1 -m multiport -p udp --sport 80,53,433 -m state --state ESTABLISHED,RELATED -j ACCEPT


# PORT 80 FORWARDEN

iptables -t nat -A PREROUTING -p tcp --dport 80 -i $dsl -j DNAT --to-destination 192.168.0.1:80

iptables -A FORWARD -o $dsl -i $router_1 -s $server_1 -p tcp --sport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $dsl -i $router_1 -s $server_2 -p tcp --sport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -o $router_1 -d $server_1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $dsl -o $router_1 -d $server_2 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

#--------#
# ROUTER #
#--------#

# PINGS FORWARDEN

iptables -A FORWARD -s $intern_zone -i $router_1 -o $dsl -p icmp -j ACCEPT
iptables -A FORWARD -d $intern_zone -o $router_1 -i $dsl -p icmp -j ACCEPT


# PORT 80 ERLAUBEN (SURFEN)

iptables -A INPUT -i $dsl -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $dsl -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# DNS AN DEN SERVER VOM INTERNEN NETZ ERLAUBEN

iptables -A INPUT -i $router_1 -s $intern_zone -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $router_1 -s $intern_zone -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -o $router_1 -d $intern_zone -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $router_1 -d $intern_zone -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT


# DNS RAUSGEHEND UEBER DSL ERLAUBEN

iptables -A POSTROUTING -t mangle -o $dsl -p tcp --dport 53 -j MARK --set-mark 14

iptables -A OUTPUT -o $dsl -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $dsl -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i $dsl -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $dsl -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT


# PINGS ERLAUBEN

iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# SSH LOKAL

# THOMAS 2
iptables -A INPUT -m mac --mac-source $thomas_2_mac -s $thomas_2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $thomas_2_mac -s $thomas_2 -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $thomas_2_mac -s $thomas_2 -p tcp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $thomas_2_mac -s $thomas_2 -p udp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# SERVER 1
iptables -A INPUT -m mac --mac-source $server_1_mac -s $server_1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_1_mac -s $server_1 -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_1_mac -s $server_1 -p tcp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_1_mac -s $server_1 -p udp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# SERVER 2
iptables -A INPUT -m mac --mac-source $server_2_mac -s $server_2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_2_mac -s $server_2 -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_2_mac -s $server_2 -p tcp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m mac --mac-source $server_2_mac -s $server_2 -p udp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# SSH INTERNET

iptables -A POSTROUTING -t mangle -o $dsl -p tcp --sport 22 -j MARK --set-mark 14
iptables -A POSTROUTING -t mangle -o $dsl -p udp --sport 22 -j MARK --set-mark 14

# JONAS JACOBI
iptables -A INPUT -i $dsl -m mac --mac-source $jonas_1_mac -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $dsl -m mac --mac-source $jonas_1_mac -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# JEDER
iptables -A INPUT -i $dsl -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $dsl -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


# AUSGANG UEBERALL
iptables -A OUTPUT -p tcp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

################################################## ###################################

# BANDBREITENBEGRENZUNG AUSFUEHREN

/root/tc/tc filter add dev $dsl parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
/root/tc/tc filter add dev $dsl parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:11
/root/tc/tc filter add dev $dsl parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:12
/root/tc/tc filter add dev $dsl parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:13
/root/tc/tc filter add dev $dsl parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:14

# /root/tc/tc filter add dev $router_1 parent 2:0 prio 0 protocol ip handle 20 fw flowid 2:20
# /root/tc/tc filter add dev $router_1 parent 2:0 prio 0 protocol ip handle 20 fw flowid 2:21

/root/tc/tc qdisc add dev $dsl parent 1:10 handle 10 sfq perturb 10
/root/tc/tc qdisc add dev $dsl parent 1:11 handle 11 sfq perturb 10
/root/tc/tc qdisc add dev $dsl parent 1:12 handle 12 sfq perturb 10
/root/tc/tc qdisc add dev $dsl parent 1:13 handle 13 sfq perturb 10
/root/tc/tc qdisc add dev $dsl parent 1:14 handle 14 sfq perturb 10

# /root/tc/tc qdisc add dev $router_1 parent 1:20 handle 20 sfq perturb 10
# /root/tc/tc qdisc add dev $router_1 parent 1:21 handle 21 sfq perturb 10
# /root/tc/tc qdisc add dev $router_1 parent 1:22 handle 22 sfq perturb 10

################################################## ###################################

# ALLES LOOGEN UND DROPPEN, WAS VORHER NICHT ERLAUBT WURD
iptables -A INPUT -j log_drop
iptables -A OUTPUT -j log_drop
iptables -A FORWARD -j log_drop

################################################## ###################################

#----------------------#
# BESTÄTIGUNG AUSGEBEN #
#----------------------#

echo "blah"

mika25
27.10.04, 10:58
Hallo
Kann mir jemad helfen die pingzeiten zu kontrollieren weil mein rechner andauernd langsammer wird und ich durch diese massnahme vorher ein mail bekommen sollte so das mich warnt das die ping zeiten in die keller gegangen sind und der daten austausch schlecht geworden ist
gruss

mikail25
29.10.04, 10:56
Hallo
kannst du mir helfen, jemanden zu finden der mir so ein kleinen script schreiben.

Es soll ein Perl Script geschrieben werden der die Verbindungs Geschwindigkeiten
Überprüft und Dokumentiert.

Der Eigentliche Perl Script wird in die Firewall implemtiert von dort es dann den Admin per mail benachrichtet sobald die Durchschnitts Werte der Pimgzeiten in die höhe gehen sollten.

Beim Erstellen des scriptes werden die Pingzeiten berücksichtigt die bei einer normalen verbindungs- zeit von 2ms liegt (Intern) und 60ms (Extern) liegt.
Man setzt dann Netzwerkabhängig die höhe der Pingzeit werte fest die einen bestimmten Höchst werte nicht überschreiten sollten.
Als Beispiel nehmen wir, bei 50 pings sollte der duchschnittswert nicht über 500ms liegen, sobald aber der durchschnittswert darüber liegt mus der administrator benachrichtigt werden. :confused:

geronet
29.10.04, 14:55
Zweimal anmelden und dann zweimal jammern für das gleiche, was man eh selber schreiben muss. Nein Danke.