Anzeige:
Ergebnis 1 bis 9 von 9

Thema: htb traffic control script von CT

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Ort
    West-Österreich
    Beiträge
    55

    htb traffic control script von CT

    Zuerst mal der Script von CT:

    Code:
    #!/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?

  2. #2
    Moderat0r Avatar von geronet
    Registriert seit
    May 2001
    Ort
    Grainau
    Beiträge
    6.099
    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

    Grüsse, Stefan
    Nur Puffin verleiht dir die Kraft und Ausdauer die du brauchst!

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Ort
    West-Österreich
    Beiträge
    55
    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
    Geändert von Hellek (06.12.02 um 16:16 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Ort
    West-Österreich
    Beiträge
    55
    So, ich habe nun ein bisschen getestet und gebastelt und das Ergebnis ist dies:

    Code:
    #!/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).

  5. #5
    Registrierter Benutzer
    Registriert seit
    Dec 2002
    Ort
    Berliner @Oldenburg
    Beiträge
    60
    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.
    there are only 10 kind of people - those who understand binary language und those who don't.

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2002
    Ort
    Berliner @Oldenburg
    Beiträge
    60
    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:A95
    set server_2_mac = 00:80:C8:CA:A96

    set felix_1_mac = 08:00:46:6E:03:B7
    set jonas_1_mac = 00:400: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"
    there are only 10 kind of people - those who understand binary language und those who don't.

  7. #7
    mika25
    Gast

    script pingzeiten kontrolle

    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

  8. #8
    mikail25
    Gast

    Perl script

    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.

  9. #9
    Moderat0r Avatar von geronet
    Registriert seit
    May 2001
    Ort
    Grainau
    Beiträge
    6.099
    Zweimal anmelden und dann zweimal jammern für das gleiche, was man eh selber schreiben muss. Nein Danke.
    Nur Puffin verleiht dir die Kraft und Ausdauer die du brauchst!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •