[Problem] iptables firewall, kein forwarding

tcbox

Neuer User
Mitglied seit
7 Aug 2011
Beiträge
73
Punkte für Reaktionen
0
Punkte
0
Hallo,

habe auf der 7390 mit 84.04.91freetz-1.2-stable nach der Anleitung aus Freetz die iptables-Musterkonfiguration versucht anzuwenden. Die Clients haben danach keinen Webzugriff mehr. Wenn ich das richtig verstehe, klappt forwarding nicht?

Hier die Konfiguration:
Code:
iptables -F
iptables -N TRANS
# Outbound for surfing the Internet:
# 20 FTP data, 21 FTP, 22 SSH, 25 SMTP, 80 HTTP, 110 POP3, 443 HTTPS, 465 SSMTP, 995 POP3S, 5060 VoIP
# 53 DNS, 67/68 DHCP, 80 HTTP, 123 NTP, 5060 VoIP
iptables -A TRANS -p tcp  -s 192.168.0.0/24 -m multiport --dport 20,21,22,25,80,110,443,465,995 -j ACCEPT
iptables -A TRANS -p udp  -s 192.168.0.0/24 -m multiport --dport 53,67,68,80,123,5060 -j ACCEPT
iptables -A TRANS -p icmp -s 192.168.0.0/24 -j ACCEPT

# conntrack rules for returning data packages:
iptables -A TRANS -m state --state RELATED,ESTABLISHED -j ACCEPT

# ... Some rules for known hosts
# ...

iptables -A TRANS -j LOG --log-prefix "[IPT] DENY-LAN-ACCESS "          # log all dropped packets
iptables -A TRANS -j DROP                                               # PARANOIA LINK

# # # Rules for Fritz Device
iptables -P INPUT DROP..
iptables -A INPUT -p udp -s 0.0.0.0 -d 255.255.255.255 --sport 68 --dport 67 -j ACCEPT #DHCP
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT                 # LOCALHOST
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT                         # LAN
iptables -A INPUT -s 169.254.0.0/16 -i lan -j ACCEPT                  # EMERGENCY LAN
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j LOG --log-prefix "[IPT] DENY-FRITZ-ACCESS "      # Log other traffic

iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT                        # Allow LAN
iptables -A OUTPUT -d 224.0.0.1/24 -j ACCEPT                          # UPnP
iptables -A OUTPUT -d 239.255.255.250 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT                             # Local Host
iptables -A OUTPUT -p udp -m multiport --dport 53,123,5060 -j ACCEPT  # DNS, TIME, VoIP
iptables -A OUTPUT -p tcp --dport 5060 -j ACCEPT                      # VoIP
iptables -A OUTPUT -p tcp --dport 80 -d 63.208.196.0/24 -j ACCEPT     # DynDNS
iptables -A OUTPUT -d secureimap.t-online.de -j ACCEPT                # e-Mail OUT
iptables -A OUTPUT -d securesmtp.t-online.de -j ACCEPT                # e-Mail OUT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT     # stateful conntrack
iptables -A OUTPUT -d 212.42.244.73 -p tcp --dport 80 -j ACCEPT       # Plugins Server AVM

iptables -A OUTPUT -j LOG --log-prefix "[IPT] WARNING-CALL-HOME "     # Log forbidden outbound traffic
iptables -P OUTPUT DROP

# # # LAN WAN
iptables -P FORWARD DROP
iptables -A FORWARD -j TRANS
iptables -A FORWARD -j LOG --log-prefix "[IPT] DENY-FWD-ACCESS "


So wird es mir angezeigt:
Code:
root@fritz:/var/mod/root# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0              255.255.255.255     udp spt:bootpc dpt:bootps
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  192.168.0.0/24       anywhere
ACCEPT     all  --  169.254.0.0/16       anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
LOG        all  --  anywhere             anywhere            LOG level warning prefix `[IPT] DENY-FRITZ-ACCESS '

Chain FORWARD (policy DROP)
target     prot opt source               destination
TRANS      all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere            LOG level warning prefix `[IPT] DENY-FWD-ACCESS '

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             192.168.0.0/24
ACCEPT     all  --  anywhere             base-address.mcast.net/24
ACCEPT     all  --  anywhere             239.255.255.250
ACCEPT     all  --  anywhere             localhost
ACCEPT     udp  --  anywhere             anywhere            multiport dports domain,ntp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:sip
ACCEPT     tcp  --  anywhere             63.208.196.0/24     tcp dpt:www
ACCEPT     all  --  anywhere             email00.t-online.de
ACCEPT     all  --  anywhere             email03.t-online.de
ACCEPT     all  --  anywhere             email01.t-online.de
ACCEPT     all  --  anywhere             email02.t-online.de
ACCEPT     all  --  anywhere             sfwd00.sul.t-online.de
ACCEPT     all  --  anywhere             sfwd01.sul.t-online.de
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             update.avm.de       tcp dpt:www
LOG        all  --  anywhere             anywhere            LOG level warning prefix `[IPT] WARNING-CALL-HOME '

Chain TRANS (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.0.0/24       anywhere            multiport dports ftp-data,ftp,ssh,smtp,www,pop3,https,ssmtp,pop3s,6969
ACCEPT     udp  --  192.168.0.0/24       anywhere            multiport dports domain,bootps,bootpc,80,ntp,sip
ACCEPT     icmp --  192.168.0.0/24       anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
LOG        all  --  anywhere             anywhere            LOG level warning prefix `[IPT] DENY-LAN-ACCESS '
DROP       all  --  anywhere             anywhere

Irgendwie finde ich da keinen Fehler. :gruebel:
Vielen Dank erstmal für Euere Hilfe.
 
Hier ist das Freetz-Forum, nicht das Forum für Probleme mit iptables.

Und wenn Du schon so schöne Logging Regel drin hast, warum schaust Du nicht nach,was im Log steht?
 
Hallo Ralf,

da stand nix drinnen, deshalb war ich ja so verwundert.
Ich mach nochmal einen neuen Kernel und teste es am Abend nochmal.

Also ist Dir auch erstmal nix ungewöhnliches aufgefallen?

Danke für Deine Hilfe.
 
Hallo Ralf,

tcpdump kann ich erst am Abend Zuhause testen.

Offensichtlich habe ich die Anleitung
http://freetz.org/wiki/packages/iptables
falsch verstanden. Mea Culpa.

Ich hatte es so verstanden, dass was im TRANS definiert ist, also die IPs der Clients,
darf ins Internet auf die definierten Ports zugreifen. Die Antworten kommen mittels Forward zurück.
Was unter OUTPUT definiert ist, darf die Box selbst. Damit kann man das Umgehen der AVM-Firewall durch z.B. TR069 unterbinden. Ist da mein Denkfehler?

Hm, wie könnte ich denn umsetzen, dass über TRANS alle IP-Ziele (Server) auf die definierten Ports von den Clients erreicht werden kann? Damit verliere ich jedoch die Option unerwünschte Zugriffe zu dropen. Das muss ich dann wohl über die Windows-Client-Firewall sicherstellen.

Sofern ich dann noch Polipo und Tor einsetzen möchte, oder tun0 muss ich das dann auch nochmal irgendwie freigeben.

Sorry, wenn ich die Anleitung falsch verstanden habe. Bin erst durch die Frizbox mit iptables in Berührung gekommen.
 
Wie schon angedeutet, iptables ist ein komplexes Thema und nicht das Thema dieses Forums. Insbesondere sollte man nicht irgendwelche Regeln übernehmen ohne zu wissen, was diese tun.

iptables umgeht nicht die AVM Regeln, sondern diese gelten zusätzlich.

FORWARD betrifft alle Pakete, die durch die Box gehe, sowohl die Pakete vom Client nach draußen als auch die Antworten in die Gegenrichtung. Forward ruft hier im Wesentlichen TRANS auf, von daher kann man TRANS und FORWARD hier als fast das Gleiche betrachten.

Du hast vermieden zu schreiben, welche IP-Adressen Deine Clients haben. Wenn diese nicht Adressen im Bereich 192.168.0.0/24 haben, werden sie von den Regeln blockiert.
 
Die Clients liegen bei 192.168.178.20 bis 192.168.178.25

Ich habe auch nicht gesagt, dass iptables etwas umgeht, sondern ich habe gelesen dass es u.a. gegen tr069 abdichtet. (DSL < — > AVM Firewall (NAT) < — > iptables Firewall < — > LAN / WLAN)

Wo soll ich denn die Frage stellen, wenn es um die o.a. Anleitung geht? Ich hätte einfach gerne ein funktionales Beispiel als Basis um es danach weiter auszubauen zu können. Gibts ausser mir niemanden der iptables für diesen Zweck einsetzen möchte bzw erfolgreich tut?

Danke Euch.
 
Das Beispiel hat vermutlich jemand ins Wiki gestellt, der etwas in der Richtung verwendet. Das heißt aber nicht, dass es für jeden Bedarf passt oder dass wir hier iptables Lehrgänge veranstalten wollen.

Ich vermute, dass TR-069 nicht die AVM-Firewall umgeht, sondern dass die AVM-Firewall TR-069 nicht blockiert. TR-069 kann man abschalten, und es gab mal Patches, es komplett zu entfernen.

Natürlich kann man auch iptables verwenden, um ausgehende Verbindungen zu blockieren, und das funktioniert vermutlich auch bei Dir.

Ich hatte doch bereits geschrieben, dass die Regeln nur Verbindungen von 192.168.0.0/24 durchlassen, alles andere wird blockiert. Es wird also insbesondere auch 192.168.178.0/24 blockiert. Daher ist ein kein Wunder, dass kein Client mehr eine Verbindung nach Draußen aufbauen kann.

Weiterhin kann ich Dir "iptables -vnL" empfehlen, damit wird auch angezeigt, wie oft eine Regel zur Anwendung kam. Wenn das nicht den Erwartungen entspricht, hat man einen Ansatzpunkt für die Fehlersuche.
 
Hallo Ralf,

da ich dieses Beispiel von der Freetz-Website hatte, habe ich unterstellt, dass die IP's daraus aus dem üblichen Fritz-Bereich sind. Deshalb hatte ich auch irgendwie übersehen, dass das ja /24 und nicht /16 ist. Nachdem ich es korrigiert habe geht alles wie gewünscht.

Danke für den Hinweis, sonst hätt ich mir noch nen Wolf gesucht. Evtl ändert mal jemand das Beispiel auf den default-Bereich.

TR-069 abschalten oder entfernen weiss ich. Doch ich habe gelesen, dass damit die Garantie der Fritzbox erlischt. Das war es mir dann auch nicht wert, da sie neu ist.

Für alle anderen die einen schnellen und guten Überblick bezüglich iptables gewinnen wollen, hier ein sehr guter Link: http://dozent.maruweb.de/material/iptables.shtml eines Autors vom C&L Verlag.

Danke. Damit darf man das Thema gerne als gelöst betrachten.
 
Würde ich gerne machen. Auf welchen Beitrag beziehst Du Dich? Finde nur Beiträge, die sich auf das Remove beim Image beziehen. Möchte aber eigentlich kein neues Image erstellen und einspielen. Der tcdump war übrigens im image. Wollte ich vorhin noch sagen. Das iptables -vnL war wirklich hilfreich.
 
Ich beziehe mich darauf, dass Du schreibst, dass mit TR-069 abschalten oder entfernen die Garantie der Fritzbox erlischt.

Was AVM betrifft, gibt es keine Unterstützung für eine modifizierte Box. Dazu zählt auch Freetz, ob TR-069 drin ist oder nicht. Man kann aber mit Recover den ursprünglichen Zustand wieder herstellen, und hat dann auch wieder Support von AVM.

Ohne TR-069 hat man vielleicht bei den entsprechenden Internet-Providern keinen Support, aber den hat man mit der modifizierten Firmware auch nicht, und mit blockiertem statt abgeschaltetem TP-069 auch nicht.
 
Auch zieht der Support im Fehlerfall eventuell jegliche Kooperationbereitschaft zurück wenn nicht mit TR069 konfiguriert wurde oder werden kann - bis hin zu angeblichem Garantieverlust des gelieferten Gerätes.
http://freetz.org/wiki/patches/remove_tr069

Mir hat der AVM-Support mal an der Hotline gesagt, dass Freetz für Sie kein Problem ist, solange nichts geändert wird, was die Box beschädigt. AVM lasse bewusst die Möglichkeit offen mit Linux zu arbeiten. Wie auch immer er das meinte :)
Ich habe es mal so interpretiert: wir sind kulant, solange du dich an Spielregeln hälst. Aber das ist nur meine persönliche Auffassung. Darauf darf man keinen Grundsatz ableiten.

Ich meinte auf welchen Thread im Forum. Wie man per Konsole abschalten kann, ohne das Image mit remove neu zu erstellen.
Die Beiträge die ich hier im Forum gefunden habe, waren immer auf das "howto" beim remove vom Image bezogen.

Meine config vom tr069 per cat ist übrigens leer. Ist dann inaktiv?
 
Im Zusammenhang mit der Meldung "Vom Hersteller nicht unterstützte Änderungen" habe ich mal gelesen, das nach einem Recover die Box wieder unterstützt wird.

Unabhängig davon wird bei einem Recover die Firmware überschrieben und die Einstellungen gelöscht, so dass AVM gar nicht mehr feststellen könnte, was vorher drauf war.

Dir Datei /var/flash/tr069.cfg ist bei mir auch leer, obwohl die Defaults für die Datei so aussehen:
Code:
tr069cfg {
   enabled = no;
   igd {
      managementserver {
         url = "";
             username = "";
             password = "";
             URLAlreadyContacted = no;
      }
   }
   FirmwareDownload {
       enabled = no;
   }
}
bzw.
Code:
tr069cfg {
        enabled = yes;
        igd {
        DeviceInfo {
                ProvisioningCode = "000.000.000.000";
        }
                managementserver {
                        url = "https://acs1.online.de/";
                        username = "";
                        password = "";
                        URLAlreadyContacted = no;
                }
        }
        FirmwareDownload {
                enabled = no;
        }
        ACS_SSL {
                verify_server = yes;
                trusted_ca_file = "/etc/default/1und1/root_ca.pem";
        }
        Download_SSL {
                verify_server = yes;
                trusted_ca_file = "/etc/default/1und1/root_ca.pem";
        }
}
Bei welchem Provider bist Du den, und welches Branding hat die Box?
 
Ich habe gelesen, dass Teile des flash nicht überschrieben werden. Logisch, adam2 Teil. Angeblich betrifft das auch tr069. Damit wäre Recovery nicht 100% spurenfrei. Weiss allerdingst nicht mehr wo ich das genau gelesen habe.

Es ist eine 1&1 Box (7390) die ich mit AVM-Branding an Telekom VDSL betreibe.
 
Dann ist TR-069 vermutlich sowieso aus. Oder hat sich die Box automatisch eingestellt?

Im Bootloader ist zum einen das Programm, das sowieso nicht verändert wird, zum anderen das Environment, also Branding usw. Die Konfigurationsdateien unter /var/flash zählen nicht dazu.
 
Ich nehme an, dass Du recht hast und es aus ist. Allerdings habe ich keine Erklärung, warum das so ist. Also aktualisiert hat sich nichts :)

Bei Deiner ist es ja ebenfalls so :)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.