Anzeige:
Ergebnis 1 bis 8 von 8

Thema: iptables -> Forward Table blockt alle Windows-Geräte, Linux hingegen funktioniert

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2010
    Beiträge
    21

    iptables -> Forward Table blockt alle Windows-Geräte, Linux hingegen funktioniert

    Hi Leute,

    ich habe ein merkwürdiges Problem. Ich über mich gerade daran eine Linux-Kiste als Firewall aufzubauen.
    Habe jetzt versucht die Forward-Tabelle einzurichten.
    Mit einem Linux-Betriebssystem (PC, Android am Handy) klappt auch alles, nur Rechner mit Windows 7/8 Betriebssystem bekommen einfach keine Verbindung zum Internet.

    Weder http(s) noch EMail über IMAP / SMPT / POP3..

    Ich kann mir das einfach nicht erklären. Die Policy ist auf DROP gesetzt:

    Startskript:

    Code:
    #--------------------------------------------------------------------------------------
    #SYSTEM INITALISIEREN
    #--------------------------------------------------------------------------------------
    
    #Die Regeln aller Ketten loeschen
    iptables -F
    iptables -t nat -F
    
    #Policity setzen
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
    
    #--------------------------------------------------------------------------------------
    #LOOPBACKUP-DEVICE FREIGEBEN (local device lo)
    #--------------------------------------------------------------------------------------
    #eingehende Kommunikation für lo (Localhost) zulassen
    iptables -A INPUT -i lo -j ACCEPT
    #ausgehende Kommunikation für lo (Localhost zulassen
    iptables -A OUTPUT -o lo -j ACCEPT
    #--------------------------------------------------------------------------------------
    
    #--------------------------------------------------------------------------------------
    #LOCAL.TABLE EINBINDEN
    sh /root/.iptables/tables/local.table
    #--------------------------------------------------------------------------------------
    
    #--------------------------------------------------------------------------------------
    #FORWARD.TABLE EINBINDEN
    sh /root/.iptables/tables/forward.table
    #--------------------------------------------------------------------------------------
    
    #--------------------------------------------------------------------------------------
    #NAT.TABLE EINBINDEN
    #sh /root/.iptables/tables/nat.table
    #--------------------------------------------------------------------------------------

    Dann noch die die FORWARD REGELN:




    Code:
    
    #Variablen
    
    CLIENTS=192.168.1.0/24
    LAN="eth0"
    IPTABLES="/sbin/iptables"
    
    
    #------------Antworten zulassen fuer ESTABLISHED/RELATED-------------------#
    $IPTABLES -A FORWARD -m state --state ESTABLISHED -j ACCEPT
    #------------Antworten zulassen fuer REALATED Meldungen ICMP-------------------#
    $IPTABLES -A FORWARD -p icmp -m state --state RELATED -j ACCEPT
    
    
    #____________________________________________
    #HTTP(S) und DNS
    
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 80 -j LOG
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 80  -m state --state NEW -j ACCEPT
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 443 -j LOG
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 443 -m state --state NEW -j ACCEPT
    #DNS
    $IPTABLES -A FORWARD -s $CLIENTS -d any/0 -p udp --dport 53 -m state --state NEW -j ACCEPT
    
    #____________________________________________
    
    #SSH IN/OUT
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 22 -m state --state NEW -j ACCEPT
    
    #___________________________________________
    #EMAIL
    
    #O2
    $IPTABLES -A FORWARD -s $CLIENTS -d imap4.o2online.de -i $LAN -o $LAN -p tcp --dport 143 -m state --state NEW -j ACCEPT
    #STRATO
    $IPTABLES -A FORWARD -s $CLIENTS -d imap.strato.de    -i $LAN -o $LAN -p tcp --dport 993 -m state --state NEW -j ACCEPT
    $IPTABLES -A FORWARD -s $CLIENTS -d smtp.strato.de    -i $LAN -o $LAN -p tcp --dport 465 -m state --state NEW -j ACCEPT
    #TH NBG
    $IPTABLES -A FORWARD -s $CLIENTS -d my.ohmportal.de   -i $LAN -o $LAN -p tcp --dport 993 -m state --state NEW -j ACCEPT
    $IPTABLES -A FORWARD -s $CLIENTS -d my.ohmportal.de   -i $LAN -o $LAN -p tcp --dport 465 -m state --state NEW -j ACCEPT
    
    #O2 POP3
    $IPTABLES -A FORWARD  -d pop3.o2online.de -p tcp --dport 995 -m state --state NEW -j ACCEPT
    $IPTABLES -A FORWARD  -d smtp.o2online.de -p tcp --dport 465 -m state --state NEW -j ACCEPT
    
    #___________________________________________
    #FTP OUT
    modprobe ip_conntrack-ftp
    
    
    #__________________________________________
    #SAMBA OUT
    
    #__________________________________________
    #HTTP(S) und APACHE
    
    
    #__________________________________________
    #NTP OUT
    Wäre super wenn Ihr mir das erklären könntet. Wie gesagt bin noch Anfänger mit Netfilter / iptables.


    Danke schon mal.

    Gruß dreamer_dani

  2. #2
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.052
    Hi Dani,

    ohne mir das im Detail anzuschauen:

    * Bekommen die Windows Clients eine DHCP-IP?
    * welche Regeln greifen, wenn Du mit einem Windows PC eine Seite aufrufst?

    Code:
    iptables -Z FORWARD   # Zaehler zuruecksetzen
    watch -n1 iptables -L FORWARD -v -n  # jede Sekunde die Regeln und Zaehler anzeigen

  3. #3
    Registrierter Benutzer
    Registriert seit
    Dec 2010
    Beiträge
    21
    Hi fork,

    ja die Adressen werden vom isc-dhcpd verteilt, der ebenfalls auf der gleichen Kiste läuft wie die IP-Tables. Meine Geräte haben hier alle fest zugeordnete Adressen anhand der MAC-Adressen.
    Bei dem einen Rechner mit Dual-Boot erhält der Client wenn Linux gebootet und wenn Windows gebootet genau die gleiche Konfiguration. Deshalb kann ich es auch gerade nicht so richtig verstehen.

    Also die Regeln für Port 80 und Port 443

    Code:
    #____________________________________________
    #HTTP(S) und DNS
    
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 80 -j LOG
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 80  -m state --state NEW -j ACCEPT
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 443 -j LOG
    $IPTABLES -A FORWARD -s $CLIENTS -i $LAN -o $LAN -p tcp --dport 443 -m state --state NEW -j ACCEPT
    #DNS
    $IPTABLES -A FORWARD -s $CLIENTS -d any/0 -p udp --dport 53 -m state --state NEW -j ACCEP
    PS:
    Könntest du mir kurz erläutern was die Regeln die du mir unten angehangen hast bewirken? Soweit bin ich bisher noch nicht mit meinem Wissen fortgeschritten.

    Danke Gruß dani

  4. #4
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.052
    Hi Dani,

    die zwei Befehle helfen Dir nur beim Debuggen. Der erste Befehl setzt die Byte/Paket-Zaehler von IP-Tables zurueck. Der zweite ist ein Mini-Monitor, bei dem Du in Echtzeit siehst wie die Pakete/Bytes hochgezählt werden. D. h. wenn Du auf der einen Seite ein Terminal offen hast mit dem watch.... von oben und auf der anderen Seite auf Deiner Windows Kiste eine Webseite aufrust, dann siehst Du, bei welchen Regeln die Pakete mehr werden. Ggf. kannst Du so herausfinden, ob Pakete von der falschen Regel erfasst werden - oder eben gar nicht und deswegen auf Policy DROP.

    Du hast nur 1 Netzwerkkarte in Deinem Server? Kann Sein dass Dir da ICMP-Redirect in die Quere kommt. (Der Server schickt an Deine Clients evtl. die Info raus, dass sie selbst zum Router Verbindung haben.) Das könnte von Win+Lin unterschiedlich gehandhabt werden.

    Ansonsten für weiteres Debugging: Wie ist Dein Setup(IP-Adressen, Verkabelung)?

  5. #5
    Registrierter Benutzer
    Registriert seit
    Dec 2010
    Beiträge
    21
    Hi,

    habe die beiden Befehle ausgeführt und habe folgende Ausgaben bekommen:

    Mit Linux + Firefox ein paar verschiedene Internetseiten aufgemacht

    Code:
    Chain FORWARD (policy DROP 27 packets, 7156 bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state ESTABLISHED
        4   240 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:80 state NEW
        5   300 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:443 state NEW
        0     0 ACCEPT     udp  --  *      *       192.168.1.0/24       0.0.0.0/0           udp dpt:53 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:22 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       91.136.8.190        tcp dpt:143 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       81.169.145.103      tcp dpt:993 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       81.169.145.133      tcp dpt:465 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       141.75.201.31       tcp dpt:993 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       141.75.201.31       tcp dpt:465 state NEW
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            91.136.8.190        tcp dpt:995 state NEW
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            91.136.8.190        tcp dpt:465 state NEW

    Das gleiche mit Windows + Firefox , nur das ich hier nicht mal erfolgreich eine Website angezeigt bekomme. Nach etwa 10s kommt "Diese Seite kann nicht angezeigt werden..."

    Code:
    Chain FORWARD (policy DROP 222 packets, 38555 bytes)
     pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state ESTABLISHED
       11   652 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:80 state NEW
        5   292 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:443 state NEW
        0     0 ACCEPT     udp  --  *      *       192.168.1.0/24       0.0.0.0/0           udp dpt:53 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       0.0.0.0/0           tcp dpt:22 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       91.136.8.190        tcp dpt:143 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       81.169.145.103      tcp dpt:993 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       81.169.145.133      tcp dpt:465 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       141.75.201.31       tcp dpt:993 state NEW
        0     0 ACCEPT     tcp  --  eth0   eth0    192.168.1.0/24       141.75.201.31       tcp dpt:465 state NEW
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            91.136.8.190        tcp dpt:995 state NEW
        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            91.136.8.190        tcp dpt:465 state NEW
    Das mit ICMP-Redirect habe ich mal nachgelesen, habe in der Datei /etc/sysctl.conf folgende Zeil aktiviert (war auskommentiert)

    Code:
    net.ipv4.conf.all.send_redirects = 0

    Zu meiner Verkabelung. Alle Rechner hängen an einem 8er Switch, der eine Verbindung zur Fritzbox hat. Auch die besagte Linux Firewall ist an diesem Switch angeschlossen.
    Da ich aktuell nur versuche mich in IP-Tables einzuarbeiten, habe ich keine 2. Netzwerkkarte, das heißt der Netzwerkverkehr geht über eth0 in den Linux-Rechner
    mit den iptables und verlässt auch alles wieder über eth0.

    Auf dem Linux-Rechner läuft ein isc-dhcpd der die Adressen nach MAC verteilt 192.168.1.50-250. Der Standardgateway ist 192.168.1.3 (Linux-Rechner mit Firewall), der DNS Server ist 192.168.1.2 (FritzBox)

    Ist hier vielleicht ein Problem mit dem DNS auf 192.168.1.2??

    Danke schon mal für die guten Tipps hier!!

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2010
    Beiträge
    21
    Hi, ich bin es nochmal,

    habe nun mal ein bisschen weiter versucht die Ursache meines Problems zu finden und habe mal meinen Netzwerkverkehr mit WireShark aufgezeichnet.
    Und dabei bin ich fündig geworden, meine Firewall sendet ICMP-Redirect Pakete an die Clients

    Code:
    117	4.386320	192.168.1.3	192.168.1.111	ICMP	276	Redirect             (Redirect for host)
    Code:
    Type: 5 (Redirect)
    Code: 1 (Redirect for host)
    Checksum: 0x1a82 [correct]
    Gateway address: 192.168.1.2 (192.168.1.2)

    Wie oben bereits beschrieben habe ich in der /etc/sysctl.conf bereits die Zeilen eingefügt die die Redirects eigentlich abschalten sollen?
    Könnt Ihr mir vielleicht sagen ob es noch eine andere Möglichkeit gibt die Redirects zu unterbinden.

    Auf dem Firewall-Rechner läuft Debian 6

    Danke hoffe ihr könnt mir weiterhelfen

  7. #7
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.052
    * ICMP-Redirect: Hast Du danach Deinen Rechner neu gestartet oder die Änderung auch nochmal manuell aktiviert(sysctl -w net.ipv4.conf.all.send_redirects=0)?

    * Ansonsten empfehle ich Dir einfach mal eine zusätzlich IP auf deinem FW-Interface(ifconfig eth0:1 192.168.2.1/24 ...) und den DHCP darauf umzustellen, so dass Du logisch getrennte Netze bei FBF<->FW und FW<->CLIENTS hast. Im Moment hast Du dadurch auch asynchrones Routing, da die FBF auf dem Rückweg direkt an die Clients sendet, ist auch im Netz der FBF, kein Grund das an deine FW zurückrouten zu müssen. Vielleicht schmeckt das den Windows-Clients nicht.

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2010
    Beiträge
    21
    Hi fork,

    also ich sehe schon das es die Sache so nicht ordentlich funktioniert wie es bisher konfiguriert ist.
    Ich habe jetzt deinen Ansatz weiter verfolgt mit dem virtuellen Interface, das funktioniert soweit auch, auf der Firewall habe ich zu den beiden Subnetzen Verbindung sowohl au eth0 als auch auf eth0:1

    Nur habe ich jetzt das Problem das ich im Subnetz auf eth0 (192.168.1.0/24) kein DHCP mehr bekomme? Leider weis ich jetzt gerade auch nicht weiter, die Suche bei Google hat leider auch nicht geholfen. Weist du wie ich den Service jetzt auf eth0:1 umstellen kann? Muss ich nun als Gateway den DSL-Router 192.168.0.2 angeben für die DHCP-Clients oder die Adresse der Firewall ( 192.168.1.3 bzw 192.168.0.3)??

    Danke schon mal für die Antwort, hoffe das Projekt hier führt doch noch irgendwan zum Erfolg...

    Gruß dani

Ähnliche Themen

  1. ipTables blockt nicht.
    Von SUMAS im Forum Linux als Server
    Antworten: 13
    Letzter Beitrag: 20.04.09, 17:02
  2. iptables blockt mail - bin am verzweifeln
    Von karx11erx im Forum Linux als Server
    Antworten: 31
    Letzter Beitrag: 21.03.08, 15:09
  3. iptables - can't initialize iptables table ...
    Von Tuisto im Forum Router und Netzaufbau
    Antworten: 9
    Letzter Beitrag: 17.08.03, 23:36
  4. iptables blockt zuviel
    Von Nighthawk im Forum Sicherheit
    Antworten: 4
    Letzter Beitrag: 09.04.02, 11:32
  5. iptables blockt scheinbar zuviel
    Von Nighthawk im Forum Linux als Server
    Antworten: 1
    Letzter Beitrag: 28.03.02, 09:58

Lesezeichen

Berechtigungen

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