Anzeige:
Ergebnis 1 bis 3 von 3

Thema: IPTables Script ok?

  1. #1
    go Gentoo! Avatar von Matflasch
    Registriert seit
    Apr 2002
    Ort
    Hamburg
    Beiträge
    175

    IPTables Script ok?

    Hallo,

    Ich hab mich nun ein wenig mit IPTables beschäftigt.
    Also ich habe einen Router hier stehen. Der Router routet einerseits 2 Rechner ins Internet.
    Er hat eine NIC, die sich via DSL ins Internet einwählt. Mit der 2. NIC ist er am LAN.
    Der Router ist mit Debian 3.x ausgestattet und soll Intern auch noch Dienste wie Samba etc. erlauben.
    Intern und Extern soll er zugriff auf FTP,HTTP etc erlauben.
    Weiterhin wird nun von einem Rechner im LAN eDonkey,SoulSeek und ICQ genutzt. Nun habe ich ein paar Einträge in der NAT Table gemacht. ICQ kann nun auch an Chats wieder teilnehmen und auch File-transfers empfangen und senden.
    Nur läuft eDonkey sehr langsam...hab ich da evtl was vergessen oder ist das normal? ( so ca. 7kb/s)
    Ports, wie die für Sub7, Netbus etc werden geloggt und gedroppt.

    Nun meine Frage an euch. Ist das so wohl ok? Wäre nett, wenn ihr euch das mal anseht und mir sagt, ob es so wohl ok wäre, bzw was ich vergessen hab.

    tnx!


    -------------------------------------------
    IPTABLES SCRIPT
    --------------------------------------------
    #!/bin/bash

    ##### Devices zuweisen #####
    # Loopback-Interface
    LO="lo"
    # Loopback-IP-Adresse
    LO_IP="127.0.0.1"
    # LAN-IP-Adresse, Die IP-Adresse des Routers
    LAN_IP="192.168.100.1"
    # Die Netzwerkadresse des LANs
    LAN_IP_RANGE="192.168.100.0/24"
    # Die Broadcast-Adresse des LANs
    LAN_BCAST_ADDR="192.168.100.255"
    # Die Interne Schnittstelle/Netzwerkkarte
    INT="eth0"
    # Die Internetverbindung
    EXT="ppp0"
    # IPTables, das Firewallprogramm
    IPT="iptables"
    # Alle. Jeglich denkbare Adresse im Internet
    ANY="0.0.0.0/0"
    # PC, auf dem ICQ/ED2K etc laeuft
    CLIENT="192.168.100.23"
    # Samba Ports
    SMB_PORTS="137:139"
    # Die ICQ-Message-Ports
    ICQ_MSG_PORT="5190"
    # Die ICQ-Filetransfer-Ports
    ICQ_FT_PORTS="24500:24505"
    # Die eDonkey TCP Ports
    ED2K_TCP="4661:4662"
    # Die eDonkey UDP Ports
    ED2K_UDP="4672"
    # SLSK TCP Ports
    SLSK_TCP="2234:2239"
    # SLSK UDP Ports
    SLSK_UDP="2234:2239"
    # Deepthroat Port
    DEEPTHROAT_PORT="6670"
    # Sub Seven Ports
    SUB7_PORTS="6711:6713"
    # Netbus Ports
    NETBUS_PORTS="12345:12346"
    # Netbus Ports 2
    NETBUS_PORTS2="20034"
    # BackOrifice Ports
    BACK_ORIFICE_PORTS="31337"
    # X-Windows-Port
    X_WINDOWS_PORT="6000"
    # Alle Ports
    PORT_ALL="1:65535"
    # Die ersten 1024 Ports
    PORT_LOW="1:1023"
    # Alle restlichen Ports
    PORT_HIGH="1024:65535"

    ##### Kerneldienste aktivieren #####
    # Forwarding wird aktiviert
    echo "1" > /proc/sys/net/ipv4/ip_forward
    # Dynamische IP Adresse (Vom Provider gesetzt)
    echo "1" > /proc/sys/net/ipv4/ip_dynaddr

    ##### Alte Regeln loeschen (flushen) #####
    # Filter Table flushen
    $IPT -F
    # NAT Table flushen
    $IPT -t nat -F
    # Mangle Table flushen
    $IPT -t mangle -F
    # Filter Table loeschen
    $IPT -X
    # NAT Table loeschen
    $IPT -t nat -X
    # Mangle Table loeschen
    $IPT -t mangle -X

    # Default Regeln setzen (Default Policy) #####
    # Alles eingehende loeschen
    $IPT -P INPUT DROP
    # Alles rausgehende loeschen
    $IPT -P OUTPUT DROP
    # Alles, was geforwardet werden soll, loeschen
    $IPT -P FORWARD DROP

    ##### Defekte Pakete verwerfen #####
    # Defekte eingehende Pakete loeschen
    $IPT -A INPUT -m state --state INVALID -j DROP
    # Defekte rausgehende Pakete loeschen
    $IPT -A OUTPUT -m state --state INVALID -j DROP
    # Defekte Pakete, die geforwardet werden sollen, loeschen
    $IPT -A FORWARD -m state --state INVALID -j DROP

    ##### Loopbackregeln #####
    $IPT -A INPUT -i $LO -j ACCEPT
    $IPT -A OUTPUT -o $LO -j ACCEPT

    # Pakete, die aus dem Internet kommen und sich als
    # Lan Pakete ausgeben verwerfen
    #$IPT -A INPUT -i $EXT -s 192.168.0.0/16 -j DROP
    #$IPT -A INPUT -i $EXT -s 10.0.0.0/8 -j -j DROP
    #$IPT -A INPUT -i $EXT -s 172.16.0.0/12 -j DROP
    #$IPT -A INPUT -i $EXT -s 224.0.0.0/4 -j DROP
    #$IPT -A INPUT -i $EXT -s 240.0.0.0/5 -j DROP

    ##### LAN komplett freigeben #####
    # Bekannte Verbindungen erlauben
    $IPT -A INPUT -i $INT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    # Zugriff aller Protokolle aus dem LAN ueber das LAN Interface erlauben
    $IPT -A INPUT -p all -i $INT -s $LAN_IP_RANGE -j ACCEPT
    # Broadcast ueber das LAN Interface zulassen
    $IPT -A INPUT -p all -i $INT -s $LAN_BCAST_ADDR -j ACCEPT
    # Rausgehend ueber das LAN Interface in das LAN alles erlauben
    $IPT -A OUTPUT -p all -o $INT -d $LAN_IP_RANGE -j ACCEPT

    ##### Ports freigeben #####
    # HTTP
    $IPT -A INPUT -p tcp -s $ANY --dport 80 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
    # SSL
    $IPT -A INPUT -p tcp -s $ANY --dport 443 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 443 -j ACCEPT
    # Webmin
    $IPT -A INPUT -p tcp -s $LAN_IP_RANGE --dport 10000 -j ACCEPT
    $IPT -A OUTPUT -p tcp -o $INT -j ACCEPT
    # FTP
    $IPT -A INPUT -p tcp -s $ANY --dport 20 -j ACCEPT
    $IPT -A INPUT -p tcp -s $ANY --dport 21 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 20 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 21 -j ACCEPT
    # ICMP Typen erlauben
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 0 -j ACCEPT
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 3 -j ACCEPT
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 4 -j ACCEPT
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 8 -j ACCEPT
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 11 -j ACCEPT
    $IPT -A INPUT -p icmp -s $ANY --icmp-type 12 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT

    # Ports fuer Sub7, BackOrifice etc komplett dicht machen und loggen
    $IPT -A INPUT -p tcp --dport $DEEPTHROAT_PORT -m limit -j LOG --log-prefix "Deepthroat_scan"
    $IPT -A INPUT -p tcp --dport $DEEPTHROAT_PORT -j DROP
    $IPT -A INPUT -p tcp --dport $SUB7_PORTS -m limit -j LOG --log-prefix "Sub7_scan"
    $IPT -A INPUT -p tcp --dport $SUB7_PORTS -j DROP
    $IPT -A INPUT -p tcp --dport $NETBUS_PORTS -m limit -j LOG --log-prefix "Netbus_scan"
    $IPT -A INPUT -p tcp --dport $NETBUS_PORTS -j DROP
    $IPT -A INPUT -p tcp --dport $NETBUS_PORTS2 -m limit -j LOG --log-prefix "Netbus_scan"
    $IPT -A INPUT -p tcp --dport $NETBUS_PORTS2 -j DROP
    $IPT -A INPUT -p tcp --dport $BACK_ORIFICE_PORTS -m limit -j LOG --log-prefix "Back_Orifice_scan"
    $IPT -A INPUT -p tcp --dport $BACK_ORIFICE_PORTS -j DROP
    $IPT -A INPUT -p tcp --dport $X_WINDOWS_PORT -m limit -j LOG --log-prefix "X_Windows_Port"
    $IPT -A INPUT -p tcp --dport $X_WINDOWS_PORT -j DROP



    ##### Forward #####
    # Alle Ports von LAN ins INET forwarden
    $IPT -A FORWARD -i $INT -o $EXT -s $LAN_IP_RANGE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    # Bestehende Verbindungen von EXT an INT halten
    $IPT -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Den ICQ-Message-Port forwarden
    $IPT -A FORWARD -p tcp --dport $ICQ_MSG_PORT -j ACCEPT
    # Die ICQ-Filetransfer-Ports forwarden (ACHTUNG! Ports sind selbst gesetzt
    # und muessen in ICQ vermerkt werden!)
    $IPT -A FORWARD -p tcp --dport $ICQ_FT_PORTS -j ACCEPT
    # Die eDonkey TCP Ports forwarden
    $IPT -A FORWARD -p tcp --dport $ED2K_TCP -j ACCEPT
    # Die eDonkey UDP Ports forwarden
    $IPT -A FORWARD -p udp --dport $ED2K_UDP -j ACCEPT
    # Die SLSK TCP Ports forwarden
    $IPT -A FORWARD -p tcp --dport $SLSK_TCP -j ACCEPT
    # DIE SLSK UDP Ports forwarden
    $IPT -A FORWARD -p udp --dport $SLSK_UDP -j ACCEPT

    # Nat
    # ICQ weiterleiten zum Client, MSG- und FT- Ports
    $IPT -t nat -A PREROUTING -i $EXT -p tcp --dport $ICQ_MSG_PORT -j DNAT --to-destination $CLIENT
    $IPT -t nat -A PREROUTING -i $EXT -p tcp --dport $ICQ_FT_PORTS -j DNAT --to-destination $CLIENT
    # eDonkey weiterleiten zum Client, TCP- und UDP- Packets
    $IPT -t nat -A PREROUTING -i $EXT -p tcp --dport $ED2K_TCP -j DNAT --to-destination $CLIENT
    $IPT -t nat -A PREROUTING -i $EXT -p udp --dport $ED2K_UDP -j DNAT --to-destination $CLIENT
    # SLSK weiterleiten zum Client, TCP- und UDP- Packets
    $IPT -t nat -A PREROUTING -i $EXT -p tcp --dport $SLSK_TCP -j DNAT --to-destination $CLIENT
    $IPT -t nat -A PREROUTING -i $EXT -p udp --dport $SLSK_UDP -j DNAT --to-destination $CLIENT

    # Masquerading
    $IPT -t nat -A POSTROUTING -o $EXT -j MASQUERADE

  2. #2
    TUX Liebhaber Avatar von FALc
    Registriert seit
    Nov 2002
    Ort
    Koblenz
    Beiträge
    128
    kommst du mit deinem router auf z.b deutschebank.de
    ??
    und klappt auch onlinebanking bei dir?

  3. #3
    Registrierter Benutzer
    Registriert seit
    Apr 2003
    Beiträge
    17
    ich hab nur ueberflogen und kann sagen, statefull firewalls sind schoener als stateless.
    Such mal unter dem Stichwort und verbessere Deine Regeln gegebenenfalls. Es soll auch einen iptables Generator auf Harrys Linux Seite oder so aehnlich geben(keine Erfahrungen daher auch keine Ahnung ob die statefull sind).

Lesezeichen

Berechtigungen

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