Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Erstellung firewall (WLAN) mit iptables und iptables Generator

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Beiträge
    455

    Erstellung firewall (WLAN) mit iptables und iptables Generator

    Hallo,

    Ich habe eine Frage zur Firewall mit iptables.
    Auf http://www.harry.homelinux.org/ kann man eine Firewall sich erstellen
    lassen, wenn man in einem Formular einige Fragen beantwortet.

    Mein Problem ist ich weiß nicht wie ich die Frage nach dem externen Interface beantworten soll. Ich habe eine WLAN-Karte die in meinem System als ra0 bezeichnet wird. Es ist eine Digitus Network WLAN Karte
    mit Ralink Chipsatz. Der Treiber spricht die Karte als ra0 an.
    Über ra0 gehe ich über DSL ins Internet.

    Dann habe ich noch 2 weiter Netzwerkkarten eth1 und eth0 an die ab und zu ein 2. oder 3.PC angeschlossen werden über LAN mit Kabel.

    Muß ich jetzt die Frage nach dem externen Interface mit lan0 oder mit eth0 beantworten oder hat das überhaupt ein Bedeutung?

    Mein firewall script ist noch aus der Zeit als ich noch über ein Modem über ppp0 ins Internet gegangen bin.

    ifconfig ergibt bei mir folgende Meldung:

    hauptrechner:/home/xuser # ifconfig
    eth0 Protokoll:Ethernet Hardware Adresse 00:40:F4:BC:04:67
    inet Adresse:192.168.0.1 Bcast:192.168.0.255 Maske:255.255.255.0
    inet6 Adresse: fe80::240:f4ff:febc:467/64 Gültigkeitsbereich:Verbindung
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 Sendewarteschlangenlänge:1000
    RX bytes:0 (0.0 b) TX bytes:4351 (4.2 Kb)
    Interrupt:10 Basisadresse:0xc700

    eth1 Protokoll:Ethernet Hardware Adresse 00:10C:E5:4E:20
    inet Adresse:172.16.0.141 Bcast:172.16.255.255 Maske:255.255.0.0
    inet6 Adresse: fe80::210:dcff:fee5:4e20/64 Gültigkeitsbereich:Verbindung
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 Sendewarteschlangenlänge:1000
    RX bytes:0 (0.0 b) TX bytes:4351 (4.2 Kb)
    Interrupt:10 Basisadresse:0x2600

    lo Protokoll:Lokale Schleife
    inet Adresse:127.0.0.1 Maske:255.0.0.0
    inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:154568 errors:0 dropped:0 overruns:0 frame:0
    TX packets:154568 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 Sendewarteschlangenlänge:0
    RX bytes:64828957 (61.8 Mb) TX bytes:64828957 (61.8 Mb)

    ra0 Protokoll:Ethernet Hardware Adresse 00:50:18:2E:95:3A
    inet Adresse:192.168.178.22 Bcast:192.168.178.255 Maske:255.255.255.0
    inet6 Adresse: fe80::250:18ff:fe2e:953a/64 Gültigkeitsbereich:Verbindung
    UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1691541 errors:0 dropped:0 overruns:0 frame:0
    TX packets:12023754 errors:42901 dropped:42901 overruns:0 carrier:0
    collisions:992145 Sendewarteschlangenlänge:1000
    RX bytes:742192902 (707.8 Mb) TX bytes:1791353804 (1708.3 Mb)
    Interrupt:11 Basisadresse:0xc000

    Hier habe ich auch noch das Script:

    ### BEGIN INIT INFO
    # Provides: IP-Paketfilter
    # Required-Start: $network $local_fs
    # Required-Stop: $local_fs
    # Default-Start: 3 5
    # Default-Stop: 0 1 2 4 6
    # Short-Description: Harry's IP-Paketfilter
    # Description: Harry's IP-Paketfilter provides reasonable
    # IP-Security for Home-Computers and small networks
    ### END INIT INFO
    #

    case "$1" in
    start)
    echo "Starte IP-Paketfilter"

    # iptables-Modul
    modprobe ip_tables
    # Connection-Tracking-Module
    modprobe ip_conntrack
    # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
    modprobe ip_conntrack_irc
    modprobe ip_conntrack_ftp

    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X

    # Default-Policies setzen
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    # MY_REJECT-Chain
    iptables -N MY_REJECT

    # MY_REJECT fuellen
    iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
    iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
    iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
    iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
    iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
    iptables -A MY_REJECT -p icmp -j DROP
    iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
    iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

    # MY_DROP-Chain
    iptables -N MY_DROP
    iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
    iptables -A MY_DROP -j DROP
    # Eigene Regeln zur Abweisung bestimmter IP-Adressen
    iptables -A INPUT -s 216.73.92.112 -p tcp -j DROP
    # Alle verworfenen Pakete protokollieren
    iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
    iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
    iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG--log-prefix "FORWARD INVALID "

    # Korrupte Pakete zurueckweisen
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP

    # Stealth Scans etc. DROPpen
    # Keine Flags gesetzt
    iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP

    # SYN und FIN gesetzt
    iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

    # SYN und RST gleichzeitig gesetzt
    iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

    # FIN und RST gleichzeitig gesetzt
    iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

    # FIN ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

    # PSH ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

    # URG ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP

    # Loopback-Netzwerk-Kommunikation zulassen
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    # Maximum Segment Size (MSS) fr das Forwarding an PMTU anpassen
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    # Connection-Tracking aktivieren
    iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # DNS
    iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 53 -j ACCEPT
    iptables -A INPUT -i ppp0 -m state --state NEW -p udp --dport 53 -j ACCEPT

    # LAN-Zugriff auf eth0
    iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
    # LAN-Zugriff auf eth1
    iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT

    # Default-Policies mit REJECT
    iptables -A INPUT -j MY_REJECT
    iptables -A OUTPUT -j MY_REJECT
    iptables -A FORWARD -j MY_REJECT

    # Routing
    echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null

    # Masquerading
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

    # SYN-Cookies
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

    # Stop Source-Routing
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

    # Stop Redirecting
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

    # Reverse-Path-Filter
    for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

    # Log Martians
    for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

    # BOOTP-Relaying ausschalten
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

    # Proxy-ARP ausschalten
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

    # Ungltige ICMP-Antworten ignorieren
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

    # ICMP Echo-Broadcasts ignorieren
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null

    # Max. 500/Sekunde (5/Jiffie) senden
    echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

    # Speicherallozierung und -timing fr IP-De/-Fragmentierung
    echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
    echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
    echo 30 > /proc/sys/net/ipv4/ipfrag_time

    # TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

    # Maximal 3 Antworten auf ein TCP-SYN
    echo 3 > /proc/sys/net/ipv4/tcp_retries1

    # TCP-Pakete maximal 15x wiederholen
    echo 15 > /proc/sys/net/ipv4/tcp_retries2

    ;;

    stop)
    echo "Stoppe IP-Paketfilter"
    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X
    echo "Deaktiviere IP-Routing"
    echo 0 > /proc/sys/net/ipv4/ip_forward

    # Default-Policies setzen
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    ;;

    status)
    echo "Tabelle filter"
    iptables -L -vn
    echo "Tabelle nat"
    iptables -t nat -L -vn
    echo "Tabelle mangle"
    iptables -t mangle -L -vn
    ;;

    *)
    echo "Fehlerhafter Aufruf"
    echo "Syntax: $0 {start|stop|status}"
    exit 1
    ;;

    esac

    Gruß
    N.

  2. #2
    Registrierter Benutzer
    Registriert seit
    Nov 2004
    Beiträge
    52
    Du gehst über WLAN ins Inernet? ALso is da doch vmtl schon ein Router der das Firewalling für dich übernimmt?

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Beiträge
    455

    iptables

    Hallo,

    danke, ja ein fritz!Box WLAN AVM Router daran habe ich gar nicht mehr gedacht. Ist diese Firewall vom Router genauso gut wie die von dem iptables script-Generator?
    Und wenn sie nicht unbedingt notwendig ist dann hätte ich trotzdem ganz
    gerne gewußt, ob ich nur das eth0 im Script durch ra0 austauschen muß,
    und ob man jetzt eth0 oder lan0 nehmen muß.

    Gruß
    N.

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 15.10.03, 22:38
  2. HILFE! /var/log/messages
    Von der_angler im Forum System installieren und konfigurieren
    Antworten: 13
    Letzter Beitrag: 23.09.03, 23:11
  3. probleme mit iptables-firewall!
    Von gravity im Forum Anbindung an die Aussenwelt
    Antworten: 8
    Letzter Beitrag: 17.06.03, 22:48
  4. firewall blockt ACK,SYN-Pakete
    Von SniperRifle im Forum Sicherheit
    Antworten: 32
    Letzter Beitrag: 18.01.03, 22:54
  5. FW für Debian 3.0
    Von tantalus im Forum Sicherheit
    Antworten: 11
    Letzter Beitrag: 18.11.02, 15:08

Lesezeichen

Berechtigungen

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