Routing, manche Webseiten können nicht aufgerufen werden

Post Reply
Message
Author
Der Michael

Routing, manche Webseiten können nicht aufgerufen werden

#1 Post by Der Michael »

Hallo zusammen,

Nachdem ich mit meinem Router von Debian auf Suse 9.0 umgestiegen bin scheint mein Firewall Script nicht mehr zu klappen, oder irgendwas Susemäßiges haut dazwischen.

Manche Webseiten können nicht mehr angepingt, aufgerufen oder sonstwas werden.

Die Nameauflösung klappt wohl, jedenfalls meldet z.B. ein

Code: Select all

ping www.kilahu.de
ne korrekte IP zurück.
Es geht weder vom Router noch von einem client aus.

pro-linux z.B. klappt ganz normal, wenn ich die Suse-Firewall nehm, geht es auch mit kilahu.

auch ein

Code: Select all

echo "1" > "/proc/sys/net/ipv4/tcp_ecn" 
hat nix gebracht :-(

Weiß jemand Rat???

(auf Suse umgestiegen bin/mußte ich wegen der DSL-Fritz-Card, ich hab das Modul auf Debian nicht zum laufen gekriegt)

Viele Grüße, Micha

User avatar
max
Posts: 806
Joined: 14. May 2000 12:55
Location: Ruhrpott

#2 Post by max »

was tut denn dein Firewall Skript?
Löscht es auch schön vorher die iptables Einträge?
Sonst ist die Chance recht groß das andere Einträge dich Ärgern.
Was sagt denn das Log dazu?

Guest

#3 Post by Guest »

mmmh, zum posten ist das wahrscheinlich zu lang :-)

Aber es flusht alles:
$IPTABLES -F #Flush
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -Z

Im log steht leider nichts. Ich hab keine logging Funktionen eingetragen :-(
Hmm, aber das sollte ich mal machen. Vieleicht seh ich da ja was....

Aber seltsam ist dieses Verhalten ja schon, unter Debian funktionierte alles tadellos.

Der Michael

ich poste sie doch mal

#4 Post by Der Michael »

ich poste sie doch mal:

Code: Select all


#!/bin/bash
IPTABLES=/usr/sbin/iptables
DEV_LOC=eth0
DEV_EXT=ppp0

my_ip=192.168.3.1
priv=192.168.3.0/24
alles=0.0.0.0/0

#Nameserver
NS1=145.253.2.11 #static
NS2=145.253.2.75 #static
NSR=`grep 'name' /etc/resolv.conf | awk '{print $2}'`
NS="$NS1 $NS2 $NSR"
echo "Nameserver $NS"

p_low=1:1023
p_high=1024:65535
p_ssh=1000:1023
LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
MULTICAST="224.0.0.0/4"
CLASS_E="240.0.0.0/5"

#ipdaresse des Internet-Interface
echo -n "Determinating IP-Address of Internet Interface... "
ip_inet=`ifconfig $DEV_EXT | grep 'inet Adr' | awk '{print $2}' | sed -e 's/.*://'`
echo "Internet-Adresse"
echo $ip_inet

echo "variablen ok"

if [ -e 'lsmod | grep ipt' ] ; then
 echo "Modules for iptables allready loaded"
 else
 modprobe iptable_nat
 modprobe ip_conntrack
 modprobe ip_conntrack_ftp
 modprobe ip_nat_ftp
 modprobe ipt_tcpmss
modprobe ipt_MASQUERADE
echo "Modules for iptables loaded"
 fi

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#
# Bei Problemen mit dem Aufruf einiger Web-Seiten, z.B. auch oft
# bei Online-Banking (DB24)  bitte folgendes aktivieren:
echo "1" > "/proc/sys/net/ipv4/tcp_ecn"

# Fuer ppp0 werden bei nicht bestehender Verbindung Fehler ausgegeben
for if in $DEV_LOC $DEV_EXT;do
    echo "1" > /proc/sys/net/ipv4/conf/$if/rp_filter
    echo "0" > /proc/sys/net/ipv4/conf/$if/accept_redirects
    echo "0" > /proc/sys/net/ipv4/conf/$if/accept_source_route
    echo "0" > /proc/sys/net/ipv4/conf/$if/bootp_relay
    echo "1" > /proc/sys/net/ipv4/conf/$if/log_martians
done

echo "kernel-paramerter ok"

#alte regeln loeschen
echo "alte regeln loeschen"
$IPTABLES -F  #Flush
$IPTABLES -F  INPUT
$IPTABLES -F  OUTPUT
$IPTABLES -F  FORWARD
$IPTABLES -t nat -F #NatFlush
$IPTABLES -t mangle -F #Mangle Flush

$IPTABLES -X #Alle chains löschen 
$IPTABLES -Z #Counter auf Null setzen

#Drop all
echo "Default Policy drop all"
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#$IPTABLES -A INPUT -j DROP
#$IPTABLES -A OUTPUT -j DROP
#$IPTABLES -A FORWARD -j DROP
#$IPTABLES -t nat -P POSTROUTING ACCEPT
#$IPTABLES -t nat -P PREROUTING ACCEPT
#$IPTABLES -t nat -P OUTPUT ACCEPT

echo "loopback"
#loopback device akzeptieren
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#der notnagel
$IPTABLES -A INPUT -i $DEV_LOC -p tcp -s $priv -d $my_ip --dport 23 -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_LOC -p tcp -s $my_ip -d $priv --sport 23 -j ACCEPT


echo "masquerading"
$IPTABLES -t nat -A POSTROUTING -o $DEV_EXT -j MASQUERADE

### Alles blocken was nicht aus intern kommt
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -i ! $DEV_EXT -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# auth-Anfragen werden mit einer Fehlermeldung an den Absender verweigert.
# Das beschleunigt den Aufbau zu Servern, die eine ident-Anfrage durchführen.
#$IPTABLES -A INPUT -i $DEV_EXT -p TCP --dport auth -j REJECT --reject-with tcp-reset
#$IPTABLES -A FORWARD -o $DEV_EXT -p TCP --dport auth -j REJECT --reject-with tcp-reset


echo "ICMP..."
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT


# Drop incoming on remote interface from known bad IPs
echo "private address block"
$IPTABLES -A INPUT -i $DEV_EXT -s $LOOPBACK -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -d $LOOPBACK -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -s $CLASS_A -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -d $CLASS_A -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -s $CLASS_B -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -d $CLASS_B -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -s $CLASS_C -j DROP
$IPTABLES -A INPUT -i $DEV_EXT -d $CLASS_C -j DROP
$IPTABLES -A FORWARD -i $DEV_EXT -s $CLASS_C -j DROP
$IPTABLES -A FORWARD -i $DEV_EXT -s $CLASS_B -j DROP
$IPTABLES -A FORWARD -i $DEV_EXT -s $CLASS_A -j DROP
$IPTABLES -A FORWARD -i $DEV_LOC -s ! $priv -j DROP
# echo "Done with private addresses"




#### Protecting Ports #####
BAD_TCP="9 111 113 137:139 23 25 1026"
BAD_UDP="137:139"
echo "disabling services from extern on Router..."
for i in $BAD_TCP; do
  echo "  disabling $i"
  $IPTABLES -A INPUT -i $DEV_EXT -p tcp --dport $i -j DROP
  $IPTABLES -A OUTPUT -o $DEV_EXT -p tcp --sport $i -j DROP
done
for i in $BAD_UDP; do
  echo "  disabling $i"
  $IPTABLES -A INPUT -i $DEV_EXT -p udp --dport $i -j DROP
  $IPTABLES -A OUTPUT -o $DEV_EXT -p udp --sport $i -j DROP
done



############################################
###      enable services                ####
############################################

##auf den Router von intern
#         telnet      ftp       ssh  samba  webmin --- donkeygui  ---
GOOD_TCP="23 20:21 ftp-data ssh 137:139 10000 4000 4001 4080 4663"
GOOD_UDP="137:139 4663"
echo "enabling services from intern on Router..."
for i in $GOOD_TCP; do
  echo "  enabling $i"
   $IPTABLES -A INPUT -i $DEV_LOC -p tcp -s $priv -d $my_ip --dport $i -j ACCEPT
   $IPTABLES -A OUTPUT -o $DEV_LOC -p tcp -s $my_ip -d $priv --sport $i -j ACCEPT
done
for i in $GOOD_UDP; do
  echo "  enabling $i"
  $IPTABLES -A INPUT -i $DEV_LOC -p udp -s $priv -d $my_ip --dport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_LOC -p udp -s $my_ip -d $priv --sport $i -j ACCEPT
done




##auf den Router von extern

#GOOD_TCP="www telnet ssh 20:21 4660:4672 4662 4080"
#GOOD_UDP="4660:4672 4665 4672"

GOOD_TCP="ssh 20:21 $p_high"
GOOD_UDP="$p_high"
echo "enabling services from extern on Router..."
for i in $GOOD_TCP; do
  echo "  enabling Service: $i"
  $IPTABLES -A INPUT -i $DEV_EXT -p tcp --dport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_EXT -p tcp --sport $i -j ACCEPT
done
for i in $GOOD_UDP; do
  echo "  enabling Service: $i"
  $IPTABLES -A INPUT -i $DEV_EXT -p udp --dport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_EXT -p udp --sport $i -j ACCEPT
done

#vom Router nach intern

GOOD_TCP="137:139 4001 4663"
GOOD_UDP="137:139 4663"

echo "enabling services from Router to intern..."
for i in $GOOD_TCP; do
  echo "  enabling Service: $i tcp"
  $IPTABLES -A INPUT -i $DEV_LOC -p tcp -s $priv -d $my_ip --sport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_LOC -p tcp -s $my_ip -d $priv --dport $i -j ACCEPT
done
for i in $GOOD_UDP; do
  echo "  enabling Service: $i udp"
  $IPTABLES -A INPUT -i $DEV_LOC -p udp --sport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_LOC -p udp --dport $i -j ACCEPT
done



#Vom Router nach extern
GOOD_TCP="www https 20:21 $p_high 25"
GOOD_UDP="domain $p_high"
echo "enabling services from Router to extern..."
for i in $GOOD_TCP; do
  echo "  enabling from router to extern Service: $i tcp"
  $IPTABLES -A INPUT -i $DEV_EXT -p tcp --sport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_EXT -p tcp --dport $i -j ACCEPT
done
for i in $GOOD_UDP; do
  echo "  enabling from router to extern Service: $i udp"
  $IPTABLES -A INPUT -i $DEV_EXT -p udp --sport $i -j ACCEPT
  $IPTABLES -A OUTPUT -o $DEV_EXT -p udp --dport $i -j ACCEPT
done

#passives ftp
$IPTABLES -A INPUT -i $DEV_EXT -p tcp --sport $p_high --dport ftp -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_EXT -p tcp --dport ftp --sport $p_high -m state --state ESTABLISHED,RELATED -j ACCEPT

#echo "  Stateful inspection..."
#Alle schon aufgebauten und abhaengigen Dienste zulassen
#fuer prozesse auf dem Router und die clients
$IPTABLES -A INPUT -i $DEV_EXT -p tcp --dport $p_high -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $DEV_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

#$IPTABLES -A INPUT  -i $DEV_LOC -p TCP -s $priv -d $my_ip --dport $p_high -m state --state ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A OUTPUT -o $DEV_LOC -p TCP -s $my_ip -d $priv --sport $p_high -m state --state ESTABLISHED,RELATED -j ACCEPT

#MTU-Problem bei DSL
# $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


# Forwarding
#          ftp                                - yahoo-   --ICQ--- dict
GOOD_TCP="23 20:21 ftp-data pop3 smtp http https 5050 5100 4000 5190 2628 56790 7979"
#                      yahoo
GOOD_UDP="domain 6801 $p_high"
echo "enabling forwarding for services"
for i in $GOOD_TCP; do
  echo "  enabling tcp forwarding for $i"
  $IPTABLES -A INPUT -i $DEV_LOC -p tcp -s $priv -d $my_ip --dport $i -j ACCEPT
  $IPTABLES -A FORWARD -i $DEV_EXT -p tcp --sport $i -j ACCEPT
  $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --dport $i -j ACCEPT
  done
for i in $GOOD_UDP; do
  echo "  enabling udp forwarding for $i"
  $IPTABLES -A INPUT -i $DEV_LOC -p udp -s $priv -d $my_ip --dport $i -j ACCEPT
  $IPTABLES -A FORWARD -i $DEV_EXT -p udp --sport $i -j ACCEPT

  $IPTABLES -A FORWARD -o $DEV_EXT -p udp --dport $i -j ACCEPT
done





## passives ftp
echo "ftp-browser"
$IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport $p_high --dport $p_high -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "passives ftp fertig"


# Kill malformed packets
# Block XMAS packets
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
echo "XMAS Packest blocked"
# Block NULL packets
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
echo "Some malformed packets blocked"



#####################
#      Testen       #
#####################


###TEST###
#echo "test"
#$IPTABLES -A INPUT -i $DEV_EXT -j ACCEPT
#$IPTABLES -A OUTPUT -o $DEV_EXT -j ACCEPT

#Gesamten internen Verkehr zulassen
#$IPTABLES -A INPUT -i $DEV_LOC -j ACCEPT
#$IPTABLES -A OUTPUT -o $DEV_LOC -j ACCEPT

#alles forwarden was von clients kommt
#$IPTABLES -A INPUT -i $DEV_LOC -j ACCEPT
#$IPTABLES -A FORWARD -i $DEV_EXT -j ACCEPT
#$IPTABLES -A FORWARD -o $DEV_EXT -j ACCEPT

#ausschalten der Firewall
#$IPTABLES -A INPUT -j DROP
#$IPTABLES -A OUTPUT -j DROP
#$IPTABLES -A FORWARD -j DROP


#der notnagel
$IPTABLES -A INPUT -i $DEV_LOC -p tcp -s $priv -d $my_ip --dport 23 -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_LOC -p tcp -s $my_ip -d $priv --sport 23 -j ACCEPT

Entfernt
Posts: 149
Joined: 22. Jul 1999 12:53

Mtu

#5 Post by Entfernt »

Vermutlich hast du einfach nur ein Problem mit der MTU. Du kannst auf dem Router die Größe der MTU beschränken. Das tust du entweder mit dem Konfigurationstool deiner Distribution oder mittels ifconfig. Nach der Verringerung sollten dann alle Seiten korrekt geroutet werden.

Der Michael

#6 Post by Der Michael »

Danke für den Tipp, aber hat leider auch nix geholfen.

Hab die mtu von ppp0 auf 1480 gesetzt, aber keine Veränderung.

Dabei ist mir aber aufgefallen das ein Device namens sit0 (scheint für Tunneling verantwortlich zu sein) existiert. Brauch ich das? Und wenn nicht, wie kann ichs's abschalten?
ein 'ifconfig sit0 down' hatte Null Effekt.
Ich hab in modules.conf und modprobe.conf mal auskommentiert, aber geladen wird es trotzdem.
(Kann das vieleicht da dran liegen?)

Grüße
Micha

Guest

#7 Post by Guest »

Ne, daran hats auch nich gehapert.......

Hab nu alles was mit ipv6 zu tun hat abgeschaltet

Guest

#8 Post by Guest »

Nu hab ich's aber gefunden

http://portal.suse.com/sdb/de/2001/11/cg_pmtu2.html
(Warum ich nicht mal sofort bei Suse nachgeschaut hab...... naja, manchmal is man halt nen Depp!! )

Danke trotzdem für die Bemühungen mit mir!!!!!


Grüße
Micha

Post Reply