PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables



thomas1446
17.07.03, 17:27
Hallo!

Ich habe eine Teststellung mit SuSE 8.0 und iptables aufgebaut.

PC W2K -------- eth0 SuSE8.0 eth1 ---------- W2K Server (WWW,VPN)

OK - eth1 wird noch ppp0 - dafür ist es eine Teststellung! Ich möchte den Linux -PC als Firewall betreiben u. a. mich mit VPN-Servern im Internet über PPTP verbinden. Über 2 Jahre hat ipchains sauber gearbeitet, aber mit pptp mag es nicht so. Deshalb iptables. Folgendes UNVOLLSTÄNDIGES Testscript, welches aber zum Aufbau einer VPN Verbindung ausreicht.

# Interface to Internet
EXTIF=eth1

# Interface zum LAN
INTIF=eth0

ANY=0.0.0.0/0
LAN=192.168.90.0/24
IPVPN=192.168.100.2/32
IPFWO=192.168.100.3/32
IPFWI=192.168.90.122/32

#Masquerading Module
modprobe ip_nat_ftp
modprobe iptable_nat

#Syn Flood Protection
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi

#Disable Source Routed Packets
for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo > 0 $i
done

#Enable Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

#IPCHAINS - Kisten leeren
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat

# Was nicht erlaubt ist, keine Chance!
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# HTTP
#iptables -A INPUT -i $INTIF -p TCP -s $LAN -d $IPVPN --sport 1023: --dport 80 -j ACCEPT
#iptables -A OUTPUT -o $EXTIF -p TCP -s $LAN -d $IPVPN --sport 1023: --dport 80 -j ACCEPT
iptables -A FORWARD -p TCP -s $LAN --sport 1023: -d ! $LAN --dport 80 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -p TCP -s ! $LAN --sport 80 -d $LAN --dport 1023: -j ACCEPT

# PPTP
iptables -A FORWARD -p ICMP --icmp-type 8 -s $IPVPN -d $LAN -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 0 -s $LAN -d $IPVPN -j ACCEPT
#iptables -A INPUT -i $INTIF -p TCP -s $LAN -d $IPVPN --sport 1023: --dport 1723 -j ACCEPT
#iptables -A OUTPUT -o $EXTIF -p TCP -s $LAN -d $IPVPN --sport 1023: --dport 1723 -j ACCEPT
iptables -A FORWARD -p TCP -s $LAN --sport 1023: -d $IPVPN --dport 1723 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -p TCP -s $IPVPN --sport 1723 -d $LAN --dport 1023: -j ACCEPT
iptables -A FORWARD -p 47 -s $LAN -d $IPVPN -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -p 47 -s $IPVPN -d $LAN -j ACCEPT

#Prototokollierung
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
iptables -A FORWARD -j LOG

#Masquerading
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE


Wie gesagt, noch nicht fertig! Ich mache alles dicht und alle Pakete, die nicht durchkommen werden geloggt. Dann schaue ich ins Logfile und öffne Step by Step die Türchen. Meine Frage ist folgende:

Ohne Forward-Chain geht nix! Habe ich aber die Forward-Chain für die notwendigen
Ports geöffnet (einmal hin und einmal zurück), läuft das Ganze auch ohne die vorher
erstellten Regeln in der INPUT bzw. OUTPUT-Chain. (siehe auskommentiertes)
Ist das normal??? Fehlt etwas in den Regeln oder habe ich irgendwo das Gatter zu weit geöffnet? Es sind definitiv nur die angegebenen Ports offen. Gibts einen Fehler im Script oder ist das schon korrekt???

Danke!
Thomas