Linux Router + Firewall (iptables)

Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

Linux Router + Firewall (iptables)

Beitragvon reality.sys » So 25 Mai, 2003 23:31

Abend!

So, ich würde gerne einen Linux Router einrichten, der mein LAN via ADSL an das Internet anbindet.

Also Plattform habe ich einen ausrangierten Pentium 133 mit 2 Netzwerkkarten gewählt. Als Betriebssystem läuft Red Hat Linux.
Die Struktur sieht folgend aus

inet <--> adsl "modem" <--> linux router <--> LAN

Der ADSL Zugang via pptp ist eingerichtet und läuft. Pings zu Rechnern ins Internet funktionieren und wget funktioniert ebenfalls.

Im LAN befinden sich mehrere Workstation sowie ein kleiner Webserver der später mittels NAT und Portforwarding für die Öffentlichkeit erreichbar sein soll.

Aufbau:
Linux Router:

eth0: 192.168.0.254 (LAN)
eth1: 10.0.0.40 (Verbindung zu ADSL Modem)

IPchains sind deaktiviert und werden auch beim booten nicht mehr geladen.

Jetzt habe ich mir ein kleines Script geschrieben, in welchen ich meine iptables Regeln festlege:

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

#Portforwarding
#Webserver
iptables -A PREROUTING -t nat -p tcp -d XXX.XXX.XX.XXX --dport 80 -j DNAT --to 192.168.0.10:80

Gut, soweit funktioniert alles. Die Clients im LAN können aufs Internet zugreifen und der Webserver ist auch von draussen erreichbar.

Jedoch möchte ich nun auch Regeln definieren, die einer Firewall entsprechen. Sprich, die alles von aussen blockieren bis auf den Port 80 und den dann auf 192.168.0.10 weiterleiten.
Ich habe als mein Script erweitert:

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

#Damit wird mal alles gedropped was nicht den untenstehenden Regeln entspricht

# INPUT chain rules
# Rules for incoming packets from LAN
iptables -A INPUT -p ALL -i eth0 -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p ALL -i eth1 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s 192.168.0.254 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s 10.0.0.40 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s XXX.XXX.XX.XXX -j ACCEPT
#(XXX.XXX.XX.XXX = Internet IP Adresse)
iptables -A INPUT -p ALL -d 192.168.0.255 -j ACCEPT
#Broadcast

# Rules for incoming packets from the Internet
# Packets for established connections
iptables -A INPUT -p ALL -d XXX.XXX.XX.XXX -m state --state ESTABLISHED,RELATED -j ACCEPT

# TCP rules
iptables -A INPUT -p TCP -i ppp0 -s 0/0 --destination-port 80 -j ACCEPT

# ICMP rules
iptables -A INPUT -p ICMP -i ppp0 -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -i ppp0 -s 0/0 --icmp-type 11 -j ACCEPT

# FORWARD chain rules
# Accept the packes we want to forward
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# OUTPUT chain rules
# Only output packets with local adresses (no spoofing)
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p ALL -s 10.0.0.40 -j ACCEPT
iptables -A OUTPUT -p ALL -s 192.168.0.254 -j ACCEPT
iptables -A OUTPUT -p ALL -s XXX.XXX.XX.XXX -j ACCEPT

Wenn ich jetzt einen Portscanner vom Internet aus laufen lasse, sehe ich, dass alle Ports auf stealth geschalten wurden. Auch Port 80!

Nehme ich komischerweise die Regel fürs Portforwarding raus:
"iptables -A PREROUTING -t nat -p tcp -d XXX.XXX.XX.XXX --dport 80 -j DNAT --to 192.168.0.10:80"
Dann sehe ich mittels Portscanner, dass Port 80 nicht mehr auf stealth sondern auf closed ist. (da ja kein webserver auf der firewall läuft)

Es sieht fast so aus, als könnte mein webserver nicht nach draussen bzw. als würde das Portforwarding nicht funktionieren?

Hat jemand eine Idee? Bzw. findet jemand Fehler/Überflüssiges im obigen Script?

Vielen Dank!
reality.sys
 

Zurück zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 42 Gäste