• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wieso sperrt er mir das Internet???

capser

Member
Hallo,

ich weiß es gibt wohl schon zig fertige FW skripte aber eigentlich habe ich mich ein wenig mit dem Thema auseinandergesetzt und dachte das ich mir nun mein eigenes Basteln kann.
Aber immer wenn ich das starte funktioniert die verbindung nach draussen leider nicht mehr.
Also zur Info ohne die Regeln läuft das Internet IP_Forwarding ist auch eingeschaltet hier einmal der code :

Code:
        echo " - Setting INPUT rules"
        # Policy ist ersteinmal "drop"
        /sbin/iptables -v -P INPUT DROP
        # schalte wieder frei
        /sbin/iptables -A INPUT -s 127.0.0.1 -j ACCEPT
        /sbin/iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

        # akzeptiere alle "Established"-Connections
        /sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

        # akzeptiere alle "Established"-Connections
        /sbin/iptables -A INPUT -m state  --state ESTABLISHED -j ACCEPT

        # Accept SSH
        /sbin/iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT

        # Accept FTP
        /sbin/iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT
        /sbin/iptables -A INPUT  -p tcp -m conntrack -m helper --helper ftp --ctstate RELATED,ESTABLISHED -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT

        # Accept Mail
        /sbin/iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --destination-port 110 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --destination-port 143 -j ACCEPT

        # Accept  WWW
        /sbin/iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT

        # Accept MySQL
        # /sbin/iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

        # Filter Syn/Fin-Attacken
        # http://archives.neohapsis.com/archives/bugtraq/2002-10/0266.html
        # SYN ACK FIN RST URG PSH                 ALL NONE
        /sbin/iptables -A INPUT  -m conntrack  --ctstate NEW -p tcp ! --tcp-flags SYN,ACK,FIN,RST SYN -j LOG --log-prefix 'bogus-packet-'
        /sbin/iptables -A INPUT  -m conntrack  --ctstate NEW -p tcp ! --tcp-flags SYN,ACK,FIN,RST SYN -j DROP

        # Accept DNS
        /sbin/iptables -A INPUT -p udp --destination-port 53  -j ACCEPT
        /sbin/iptables -A INPUT -p udp --source-port 53  -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --destination-port 53  -j ACCEPT
        /sbin/iptables -A INPUT -p tcp --source-port 53  -j ACCEPT

        # discard Pings
        /sbin/iptables -A INPUT -p icmp --icmp-type time-exceeded  -j ACCEPT
        /sbin/iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
        /sbin/iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
        /sbin/iptables -A INPUT -p icmp -j DROP

        echo " - Setting OUTPUT rules"
        /sbin/iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT
        /sbin/iptables -A OUTPUT -s 192.168.0.0/24 -j ACCEPT

        # akzeptiere alle "Established"-Connections
        /sbin/iptables -A OUTPUT -m conntrack  --ctstate ESTABLISHED -j ACCEPT
        /sbin/iptables -A OUTPUT -j ACCEPT


        echo " - Setting FORWARD rules"
        /sbin/iptables -A FORWARD -j DROP


# logge den Rest ab hier
        /sbin/iptables -A INPUT -j LOG --log-prefix 'iptables-'
        /sbin/iptables -A OUTPUT -j LOG --log-prefix 'iptables-'
        /sbin/iptables -A FORWARD -j LOG --log-prefix 'iptables-'

Es wäre super wenn mir vielleicht jemand helfen könnte und mal kurz gucken könnte wo der Fehler liegen könnte. Ich dachte schon das er vielleicht keine DNS anfragen senden kann aber die sind doch eigentlich auch möglich...

Also das Lan befindet sich natürlich im netz 192.168.0.0/24 der Router auf dem die FW läuft ist die 192.168.0.2 und unser Internet Router auf dem die anfragen geleitet werden hat die 192.168.0.1

vielen dank und gruß
nils
 
Hey

Du muss auch OUTPUT und FORWARD Regeln definieren.
z. B. DNS forwarden oder wenn ers selber ist brauch er noch ein OUTPUT.

Wie sind denn die Standart regeln

By huflatisch
 

neo67

Member
Am Anfang erstmal alles auf DROP setzen.
Code:
	iptables -P FORWARD DROP
	iptables -P INPUT DROP
	iptables -P OUTPUT DROP

Mir fehlen dann eigentlich die "-i" "-o" Anweisungen, auf welche Interfaces beziehen sich die iptables Befehle?

Bei mir sieht so eine Zeile fürs WWW so aus: (wobei die in einer Schleife abgearbeitet werden und $a mit tcp ersetzt wird $highports = 1024:65535. $OUTIF ist bei mir das Interface nach draussen. Und tcp wird noch mit "! --syn" abgefragt.

Also versuche mal die Interfaces oder das Interface zu definieren.

Wenn was nicht klappt im netz -> ethereal installieren und starten.

Code:
iptables -A OUTPUT -p $a --sport $highports -d 0/0 --dport $p -o $OUTIF      -j ACCEPT
iptables -A INPUT  -p $a --sport $p -s 0/0 --dport $highports -i $OUTIF $SYN -j ACCEPT
 
Oben