nach einschalten von iptables server sehr langsam

Post Reply
Message
Author
rbtux
Posts: 69
Joined: 23. Jun 2004 11:59

nach einschalten von iptables server sehr langsam

#1 Post by rbtux »

Hallo zusammen

Da ich ein Server habe, der mit einer öffentlichen IP-Adresse direkt im Netz steht, ist eine Firewall unumgänglich.

Da ich natürlich Linux einsetze spricht alles für iptables.

Sobald ich aber mein Firewall-Skript starte laufen alle Netzwerkverbindungen sehr viel langsamer. Vorallem ftp (ca. 40s bis Login erscheint, danach weitere 40s für LIST Command). Nameserver anfrage laufen gar nicht mehr! (auch bei iptables -A output -j ACCEPT) Ich danke das ist ein Timeout problem. SSH läuft auch sehr langsam

Wenn ich das Skript nicht lade läuft alles wunderbar.

Ich poste nachfolgend mal mein Skript und hoffe, dass jemand ein Fehler entdeckt oder mir möglichkeiten nennen kann, wie sich das Problem eingrenzen lässt!

Vielen Dank

Code: Select all

# Bereits existierende Regeln löschen
iptables -F

# Voreinstellung: Unbekannte Pakete dürfen nicht passieren
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP


# INPUT Regeln

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 1024: ! --syn -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT           # FTP Data
iptables -A INPUT -p udp --dport 20 -j ACCEPT           # FTP Data
iptables -A INPUT -p tcp --dport 21 -j ACCEPT           # FTP
iptables -A INPUT -p udp --dport 21 -j ACCEPT           # FTP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT           # SSH
iptables -A INPUT -p udp --dport 22 -j ACCEPT           # SSH
iptables -A INPUT -p tcp --dport 25 -j ACCEPT           # SMTP
iptables -A INPUT -p udp --dport 25 -j ACCEPT           # SMTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT           # DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT           # DNS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT           # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT          # HTTPS
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT         # MySQL
iptables -A INPUT -p udp --dport 3306 -j ACCEPT         # MySQL

# 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 -p tcp --dport auth -j REJECT --reject-with tcp-reset

# Fragmentierte ICMP-Pakete blockieren
iptables -A INPUT -p icmp --fragment -j LOG
iptables -A INPUT -p icmp --fragment -j DROP

# Bestimmte ICMP-Pakete erlauben
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT

# Manche Ereignisse kommen so häufig vor, dass ich sie im Protokoll nicht
# sehen will.
iptables -A INPUT -p udp --dport netbios-ns -j DROP

# Alles andere wird zunächst protokolliert und dann gesperrt.
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP


# OUTPUT Regeln

# NUR ZUM TESTEN: Alle Pakete senden
# iptables -A OUTPUT -j ACCEPT

# Pakete nach Loopback
iptables -A OUTPUT -o lo -j ACCEPT

# Bestimmte UDP-Pakete
iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT    # domain/udp
#iptables -A OUTPUT -p udp --dport 7091             -j ACCEPT   # nautilus

# Wir betreiben ein paar Server
iptables -A OUTPUT -p tcp --sport   22              -j ACCEPT   # our sshd
iptables -A OUTPUT -p tcp --sport   80              -j ACCEPT   # our httpd
#iptables -A OUTPUT -p tcp --sport  113              -j ACCEPT  # our authd

# TCP-Pakete von lokalen Client-Programmen
iptables -A OUTPUT -p tcp --sport 1024: --dport  21 -j ACCEPT   # ftp
iptables -A OUTPUT -p tcp --sport 1024: --dport  22 -j ACCEPT   # ssh
iptables -A OUTPUT -p tcp --sport 1024: --dport  23 -j ACCEPT   # telnet
iptables -A OUTPUT -p tcp               --dport  25 -j ACCEPT   # smtp
iptables -A OUTPUT -p tcp --sport 1024: --dport  37 -j ACCEPT   # time
iptables -A OUTPUT -p tcp --sport 1024: --dport  43 -j ACCEPT   # whois
iptables -A OUTPUT -p tcp --sport 1024: --dport  53 -j ACCEPT   # domain/tcp
iptables -A OUTPUT -p tcp --sport 1024: --dport  79 -j ACCEPT   # finger
iptables -A OUTPUT -p tcp --sport 1024: --dport  80 -j ACCEPT   # www
iptables -A OUTPUT -p tcp --sport 1024: --dport 110 -j ACCEPT   # pop-3
iptables -A OUTPUT -p tcp --sport 1024: --dport 119 -j ACCEPT   # nntp
iptables -A OUTPUT -p tcp --sport 1024: --dport 143 -j ACCEPT   # imap2
iptables -A OUTPUT -p tcp --sport 1024: --dport 443 -j ACCEPT   # https
iptables -A OUTPUT -p tcp --sport 1024: --dport 554 -j ACCEPT   # Real G2

# Abgehende TCP-Verbindungen sind erlaubt, wenn auf beiden Enden der
# Verbindung ein unsicherer Port benutzt wird.  Unsicher, aber für
# passives FTP notwendig, sofern -m state nicht benutzt wird.
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT

# Alternative: Das Zustandsmodul erlaubt aktives und passives FTP
# (beachten Sie auch die entsprechende Regel in der INPUT-Chain!)
#iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Bestimmte ICMP-Pakete erlauben
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

# Der Rest wird protokolliert und gesperrt.  Bei TCP-Verbindungen senden
# wir eine Fehlermeldung an unser eigenes Programm, damit wir nicht auf
# den langwierigen Timeout warten müssen.
iptables -A OUTPUT -j LOG
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -j DROP

Computer führen dazu, dass man die alten Fehler jetzt 100 mal schneller macht ;)

User avatar
debian_user
Posts: 23
Joined: 12. Jul 2005 8:35

#2 Post by debian_user »

Ich kann dir leider keinen Kommentar zu deinem Regelwerk geben, da ich iptables so nicht verwende.
Womöglich wäre aber ein Lösungsansatz, das Regelwerk generieren zu lassen - denn vielleicht hast du die eine oder andere Regel weggelassen oder zu restriktiv gesetzt.

Am Einfachsten, falls du X installiert hast, wäre z.B. firestarter bzw. http://www.fwbuilder.org/ .

Ich weiß, keine direkte Antwort auf deine Frage aber womöglich wäre es ein Lösungsweg, mittels der Tools, die ich genannt habe, ein Skript deiner Regelsetzung folgend zu generieren und dies dann mit deinem eigenen Script zu vergleichen.

Grüße

rbtux
Posts: 69
Joined: 23. Jun 2004 11:59

#3 Post by rbtux »

Vielen Dank erstmal.

Kennst du vielleicht so ein Tool, welches kein X benötigt?

Ich setze Linux immer ohne X ein.
Computer führen dazu, dass man die alten Fehler jetzt 100 mal schneller macht ;)

User avatar
debian_user
Posts: 23
Joined: 12. Jul 2005 8:35

#4 Post by debian_user »


chlor

#5 Post by chlor »

hi,

oft wird arnos firewall script empfohlen, selber hab ich es nocht nicht genutzt, aber das soll wirklich gut sein
http://rocky.molphys.leidenuniv.nl/irklich
oder
http://rocky.molphys.leidenuniv.nl/
ich finde ansonsten dieses howto gut
http://www.linux-user.de/ausgabe/2002/0 ... all-4.html
umfangreicher gehts dann hier weiter
http://www.netfilter.org/documentation/index.html#HOWTO
ansonsten ist vielleicht auch ipcop interressant für dich
http://www.opensourcedistribution.de/ip ... rewall.htm
www.ipcop.org/
shorewall war auch immer sehr gut, wird aber glaube ich, gerade nicht weiterentwickelt, aber kannst du dir auchmal anschauen
http://www.shorewall.net/
zumal sich da vielleicht auch schon wieder was getan hat.
ach ja, und dann gibts noch dieses wirklich gute o'reilly buch im latexformat zum download, um es zu lesen, musst du latex installieren. das hättest du übrigends auch hier
viewtopic.php?t=1027930&sid=cb7d7fcb7d4 ... 9b9dcb84f1
im forum 'allgemeine fragen, oben unter 'online-literatur' gefunden. :wink:

nun denn, viel erfolg

edit:
typo und oben einen 2. link zum arnos-firewallscript weil der erste zeitweise nicht funktioniert, dieser ist der hinzugefügte:
http://rocky.molphys.leidenuniv.nl/
Last edited by chlor on 01. Aug 2005 23:37, edited 4 times in total.

User avatar
Hans Solo
prolinux-forum-admin
Posts: 601
Joined: 20. Apr 2004 12:19
Location: AT
Contact:

#6 Post by Hans Solo »

hi

ganz gut ist auch dieser online generator
http://www.harry.homelinux.org/modules. ... _Generator

mfg
arno
[root@host]# cd /pub
[root@host]# more beer

rbtux
Posts: 69
Joined: 23. Jun 2004 11:59

#7 Post by rbtux »

Hallo Jungs

vielen Dank für die vielen Hinweise.

Ich werde mich mit diesen befassen und mich dann wieder melden

vielen dank
Computer führen dazu, dass man die alten Fehler jetzt 100 mal schneller macht ;)

Post Reply