Iptables --> wenn policy=drop --> kinternet keine Verbindung

#0
07.04.2005, 08:42
...neu hier

Beiträge: 3
#1 Hi Leute!!

Brauche eure Hilfe!!

Will mir mit Suse 9.2 eine eigene Firewall konfigurieren. Skript steht soweit. Allerdings wenn die default policies der filter table auf DROP ist, baut Kinternet keine Verbindung mehr zum Internet auf.
In der Log wird keine Fehlermeldung angezeigt, da kinternet beim Verbindungsaufbau hängen bleibt. Wenn policies auf Accept stehen funktioniert es natürlich.
Muss ich für den Internetaufbau eine eigene Regel definieren?
Hier mal mein Skript:

#!/bin/sh

#Variablen definieren

ext_int="eth0" #Netzwerkinterface zum externen Netz
(Internet)
int_int="eth1" #Netzwerkinterface zum internen Netz
lan="192.168.0.0/24" #Adressbereich des lokalen Netzes
all="any/0" #Alle Ip Adressen
loopback="127.0.0.1/8" #Loopback Interface
classA="10.0.0.0/8" #privater Adressbereich Class A
classB="172.16.0.0/12" #privater Adressbereich Class B
classC="192.168.0.0/16" #privater Adressbereich Class C
classD="224.0.0.0/4" #Multicast Adressbereich
classE="240.0.0.0/5" #Adressbereich fr Forschung und Entwicklung
broadcast_src="0.0.0.0" #Broadcast Quelladresse
broadcast_dest="255.255.255.255" #Broadcast Zieladresse
priv_ports="0:1023" #Alle privilegierten Ports
unpriv_ports="1024:65535" #Alle unprivilegierten Ports
dns="195.3.96.67" #Nameserver des Providers
modprobe=/sbin/modprobe
iptables=/usr/sbin/iptables

#Module laden fr Verbindungsverfolgung bei ftp und nat --- in File: /etc/rc.local
$modprobe ip_conntrack
$modprobe ip_nat_ftp
$modprobe ip_conntrack_ftp
$modprobe iptable_nat
$modprobe ip_tables
$modprobe iptable_filter
$modprobe ipt_state
$modprobe ipt_LOG
$modprobe iptable_mangle
$modprobe ipt_MASQUERADE


#Alle Ketten werden initialisiert, in dem alle Richtlinien entfernt werden, die zu ihnen gebunden wurden

$iptables -F
$iptables -t nat -F
$iptables -t mangle -F

#User spezifische Regeln werden gelöscht

$iptables --delete-chain
$iptables -t nat --delete-chain
$iptables -t mangle --delete-chain

#default policies definieren (deny everything by default)

# Tabelle filter
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
# Tabelle nat
$iptables -t nat -P PREROUTING ACCEPT
$iptables -t nat -P POSTROUTING ACCEPT
$iptables -t nat -P OUTPUT ACCEPT
# Tabelle mangle
$iptables -t mangle -P PREROUTING ACCEPT
$iptables -t mangle -P INPUT ACCEPT
$iptables -t mangle -P FORWARD ACCEPT
$iptables -t mangle -P OUTPUT ACCEPT
$iptables -t mangle -P POSTROUTING ACCEPT


#Loopback Interface aktivieren
$iptables -A INPUT -s $loopback -d $loopback -j ACCEPT
$iptables -A OUTPUT -d $loopback -s $loopback -j ACCEPT

#Spoofing lo Interface
$iptables -A INPUT -i $ext_int -s $loopback -j DROP
$iptables -A OUTPUT -o $ext_int -s $loopback -j DROP

#Spoofing reservierte Adressbereiche
#ClassA-C
$iptables -A INPUT -i $ext_int -s $classA -j DROP
$iptables -A INPUT -i $ext_int -d $classA -j DROP
$iptables -A OUTPUT -o $ext_int -s $classA -j DROP
$iptables -A OUTPUT -o $ext_int -d $classA -j DROP


$iptables -A INPUT -i $ext_int -s $classB -j DROP
$iptables -A INPUT -i $ext_int -d $classB -j DROP
$iptables -A OUTPUT -o $ext_int -s $classB -j DROP
$iptables -A OUTPUT -o $ext_int -d $classB -j DROP

$iptables -A INPUT -i $ext_int -s $classC -j DROP
$iptables -A INPUT -i $ext_int -d $classC -j DROP
$iptables -A OUTPUT -o $ext_int -s $classC -j DROP
$iptables -A OUTPUT -o $ext_int -d $classC -j DROP


#classD
$iptables -A INPUT -i $ext_int -s $classD -j DROP
$iptables -A INPUT -i $ext_int -d $classD -j DROP
$iptables -A OUTPUT -o $ext_int -s $classD -j DROP
$iptables -A OUTPUT -o $ext_int -d $classD -j DROP
#classE
$iptables -A INPUT -i $ext_int -s $classE -j DROP
$iptables -A INPUT -i $ext_int -d $classE -j DROP
$iptables -A OUTPUT -o $ext_int -s $classE -j DROP
$iptables -A OUTPUT -o $ext_int -d $classE -j DROP

#Spoofing Broadcastadressen
$iptables -A INPUT -i $ext_int -s $broadcast_dest -j DROP
$iptables -A OUTPUT -o $ext_int -d $broadcast_src -j DROP
#ICMP-Pakete

#ICMP Typ 4 erlauben
$iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT
$iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
#ICMP Typ 12 erlauben
$iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
$iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT
#ICMP Typ 3 erlauben
$iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT



$iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT


$iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
$iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT




#Domain Name Service erlauben
#Anfrage per UDP
$iptables -A INPUT -i $ext_int -p udp -s $dns --sport 53 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p udp -d $dns --dport 53 --sport 1024:65535 -j ACCEPT
#Anfrage per TCP
$iptables -A INPUT -i $ext_int -p tcp -s $dns --sport 53 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $dns --dport 53 --sport 1024:65535 -j ACCEPT

#POP3 erlauben
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 110 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 110 --sport 1024:65535 -j ACCEPT

#SMTP erlauben
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 25 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 25 --sport 1024:6535 -j ACCEPT

#FTP erlauben
#Datentransfer Kommandokanal
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 21 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 21 --sport 1024:65535 -j ACCEPT
#Datentransfer Datenkanal
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 20 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 20 --sport 1024:65535 -j ACCEPT
#HTTP erlauben
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 80 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 80 --sport 1024:65535 -j ACCEPT
#HTTPS erlauben
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 443 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 443 --sport 1024:65535 -j ACCEPT

#SSH erlauben
$iptables -A INPUT -i $ext_int -p tcp -s $all -m state --state ESTABLISHED,RELATED --sport 22 --dport 1024:65535 -j ACCEPT
$iptables -A OUTPUT -o $ext_int -p tcp -d $all -m state --state NEW,ESTABLISHED,RELATED --dport 22 --sport 1024:65535 -j ACCEPT

#Datenverkehr aus dem Lan ins Internet
$iptables -A INPUT -i $int_int -p all -s $lan -j ACCEPT
$iptables -A OUTPUT -o $int_int -p all -s $lan -j ACCEPT

#NAT
$iptables -t nat -A POSTROUTING -o dsl0 -s $lan -j MASQUERADE

$iptables -A FORWARD -i dsl0 -d $lan -j ACCEPT

#MTU auf den Clients kleiner als 1500 stellen --> nur für dsl
$iptables -A FORWARD -o dsl0 -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Danke schon im voraus für eure Hilfe!!!
Seitenanfang Seitenende
11.04.2005, 10:02
...neu hier

Themenstarter

Beiträge: 3
#2 ach ja bleibt bei folgenden Schritt hängen:

dsl0 <--> /dev/irgendwas

Als wenn mit der Hardware kommunizieren will --> hat jemand einen Tipp.
Seitenanfang Seitenende
13.04.2005, 11:57
Member

Beiträge: 31
#3 Es kommt darauf an wie deine Einwahl erfolgt. Anscheinend per PPTP.

Auf jeden Fall mußt du die entsprechenden Regeln dafür noch erstellen und gegebenen Falls die externe-Interface-Variable auf ppp0 ändern (bei PPTP-Einwahl)

J.G.

Ist ja Telekom Austria nicht Inode.... verwechselt.
Dieser Beitrag wurde am 14.04.2005 um 12:27 Uhr von hamilcar editiert.
Seitenanfang Seitenende
19.04.2005, 13:11
...neu hier

Themenstarter

Beiträge: 3
#4 lol
habe jetzt den port 1723 (für pptp) freigegeben und jetzt funktioniert die sache!!!

@hamilcar
ppp0 renamed der linuxkernel bei der einwahl auf dsl0
und wenn ich ppp0 verwende funktioniert nat nicht.
Seitenanfang Seitenende