PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Iptables und Portweiterleitung



Awacs
16.01.09, 21:50
Hallo zusammen,

ich habe ein kleines Problem mit iptables (vielleicht sehe ich den Fehler auch nicht)

Folgende Situation:
Ich bin dabei mir einen neuen Router zu bauen. Der alte Router (läuft auch noch) ist ein Debian System mit DSL-Einwahl. Die Firewall ist mit dem Firewallbuilder (http://www.fwbuilder.org) generiert worden. Der neue Router (auch Debian) soll im Grunde das gleiche machen, nur das ich nicht mehr den Firewallbuilder nutzen möchte.
Also habe ich mir mein Firewallscript selbst geschrieben.

Einige Sachen funktionieren auch schon. Ein Problem habe ich nur mit meinem Transparenten Proxy.


#!/bin/sh

# IP routing aktivieren
echo "1" > /proc/sys/net/ipv4/ip_forward

# Module laden
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

# Bereich Firewall
## alle Regeln löschen
iptables -F

## Tabelle nat leeren
iptables -t nat -F

## Default Einstellungen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

## Localhost zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

## bereits aufgebaute Verbindungen zulassen
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

## Ping immer erlauben
iptables -A INPUT -p icmp -m icmp --icmp-type any -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type any -m state --state NEW -j ACCEPT
iptables -A FORWARD -p icmp -m icmp --icmp-type any -m state --state NEW -j ACCEPT

## Eingehende Verbindungen an eth0 zulassen
iptables -A INPUT -i eth0 -j ACCEPT

## Ausgehende Verbindungen an eth0 zulassen
iptables -A OUTPUT -o eth0 -j ACCEPT

## Ausgehende Verbindung (geroutet) zulassen
iptables -A FORWARD -o eth0 -j ACCEPT

## transparent Proxy
iptables -t nat -A PREROUTING -p tcp -m tcp -s 192.168.0.0/24 --dport 80 -j DNAT --to-destination 192.168.8.2:3128

## NAT ins Internet
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/16 -j MASQUERADE

## DHCP LAN ins Internet zulassen
iptables -A FORWARD -o ppp0 -m iprange --src-range 192.168.0.20-192.168.0.40 -j ACCEPT

## Eingehende (geblockte) Verbindungen loggen
iptables -N log-in
iptables -A INPUT -i ppp0 -j log-in
iptables -A FORWARD -i ppp0 -j log-in
iptables -A log-in -j LOG --log-level info --log-prefix "drop-in"
iptables -A log-in -j DROP

## Ausgehende (geblockte) Verbindungen loggen
iptables -N log-out
iptables -A OUTPUT -o ppp0 -j log-out
iptables -A FORWARD -o ppp0 -j log-out
iptables -A log-out -j LOG --log-level info --log-prefix "drop-out"
iptables -A log-out -j DROP



Die Firewall hat 2 Schnittstellen
ppp0 öffentliche IP, DSL
eth0 192.168.0.14/24

der Proxy hat 192.168.8.2/24
mein Test-Client 192.168.0.21/24

das Routing zum Proxy passt, ist per Ping erreichbar. Auch wenn ich den Proxy in den IE Einstellungen eintrage kann ich darüber surfen. Also müssen meine Firewall Regeln richtig sein. Ich vermute meinen Fehler in der "transparent Proxy" Zeile.

Ich habe zum testen auch schon mal alles auf ACCEPT gesetzt und nur die "transparent Proxy" Regel geladen, funktioniert aber auch nicht.

Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht mehr. Wäre also schön wenn da mal jemand ein Blick drüber werfen kann.
Danke.