PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables + geschwindigkeit



boxa
24.05.02, 15:24
HAllo Experten,

seit ich IPTABLES auf meinem Server (RedHat 7.2. mit Apache, Samba, ProFTP) laufen habe, ist das System unerträglich langsam. Die Regel machen zwar was ich will, aber so kann man das trotzdem nicht lassen.

Habt ihr das Problem auch schon gehabt? Wie kann man das lösen?

geronet
24.05.02, 16:44
Welche Regeln hast du denn bei iptables verwendet, und "wie" ist das System langsam (dauert das Netzwerk zu lange oder ist die Konsole lahm) ?

Grüsse, Stefan

boxa
27.05.02, 07:35
Hallo!
Alle Dienste die über IPTABLES freigeschalten sind, werden unerträglich langsam.

Hier das Script:

#!/bin/bash

#definierten Startzustand herstellen
iptables -F
iptables -X
iptables -Z

#Module laden
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
################################################## ####################
#Variablen Deklaration
IFACE="eth1"
IPADDR="192.168.1.240"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/5"
CLASS_E_RESERVED="240.0.0.0/5"
LOOPBACK="127.0.0.0/8"
BROADCAST="192.168.1.255"
NAMESERVER_1="194.25.2.129"
NAMESERVER_2="212.185.253.9"
UP_PORTS="1024:65535"
################################################## ####################
#Alles verbieten
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
################################################## ####################
#
#Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
<b>
#SYN- Flooding Protection
iptables -N SYN_FLOOD
iptables -A INPUT -i $IFACE -p tcp --syn -j SYN_FLOOD
#4 Connections per Second allowed
iptables -A SYN_FLOOD -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A SYN_FLOOD -j DROP
#Sicherstellen, dass neue Verbindungen mit einem SYN Paket beginnen
iptables -A INPUT -i $IFACE -p tcp ! --syn -m state --state NEW -j DROP
</b>
#Fragmente loggen und verwerfen
iptables -A INPUT -i $IFACE -f -j LOG --log-prefix "IPTABLES FRAGMENTS: "
iptables -A INPUT -i $IFACE -f -j DROP

#Spoofing vehindern
# spoofed Pakete verwerfen, die scheinbar von eigener IP ausgehen
iptables -A INPUT -i $IFACE -s $IPADDR -j DROP
# spoofed Paket verwerfen, die aus einem private Network kommen
iptables -A INPUT -i $IFACE -s $CLASS_A -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_B -j DROP
#iptables -A INPUT -i $IFACE -s $CLASS_C -j DROP
#Class D Multicast Adressen verwerfen. Multicast als Quelladr. ist illegal
iptables -A INPUT -i $IFACE -s $CLASS_D_MULTICAST -j DROP
#Class E reservierte Adressen verwerfen
iptables -A INPUT -i $IFACE -s $CLASS_E_RESERVED -j DROP
#Pakete verwerfen die scheinbar von der lo-Adresse kommen
iptables -A INPUT -i $IFACE -d $LOOPBACK -j DROP
#Pakete mit Broadcast Adresse verwerfen
iptables -A INPUT -i $IFACE -d $BROADCAST -j DROP

#DNS
#UDP Packete vom DNS akzeptieren
iptables -A INPUT -i $IFACE -p udp -s $NAMESERVER_1 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i $IFACE -p udp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT
#UDP Pakete zum DNS erlauben
iptables -A OUTPUT -o $IFACE -p udp -d $NAMESERVER_1 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p udp -d $NAMESERVER_2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

#SSH
iptables -A INPUT -i $IFACE -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#WWW
iptables -A INPUT -i $IFACE -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 80 -j ACCEPT

#Webmin
iptables -A INPUT -i $IFACE -p tcp --dport 10000 -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 10000 -j ACCEPT

#FTP
iptables -A INPUT -i $IFACE -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
#aktives FTP
iptables -A INPUT -i $IFACE -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
#passives FTP
iptables -A INPUT -i $IFACE -p tcp --dport $UP_PORTS --sport $UP_PORTS -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --dport $UP_PORTS --sport $UP_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT

#ICMP
iptables -A INPUT -i $IFACE -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p icmp -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

#SMTP ausgehend
iptables -A INPUT -i $IFACE -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3
iptables -A INPUT -i $IFACE -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IFACE -p tcp --sport 110 -m state --state NEW,ESTABLISHED -j ACCEPT

################################################## ####################
#Regeln auflisten lassen
iptables -L


exit 0

boxa
27.05.02, 08:10
Nochmal Halllo!

Ich habe weiterexperimentiert und festgelstellt, dass die ganze Sache an den Zeilen mit dem SYN-Flooding hängen. Allerdings versteh ich das nicht so ganz. Wenn ich die Zeilen aukommentiere, läuft alles einwandfrei und in der gewünschten Geschwindigkeit. Ansonsten werden manche Websites die auf dem Server liegen gar nicht zuende geladen bzw. brauchen ewig bis sie vollständig erscheinen.

Gruß

Boxa

geronet
27.05.02, 17:51
Wenn du das ganze so schreibst funktioniert es auch:



#4 Connections per Second allowed

iptables -A INPUT -i $IFACE -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j RETURN


#Sicherstellen, dass neue Verbindungen mit einem SYN Paket beginnen

iptables -A INPUT -i $IFACE -p tcp ! --syn -m state --state NEW -j DROP




Grüsse, Stefan

boxa
28.05.02, 07:49
Hallo,

danke für Deine Antwort. Doch was ist mit der Zeile

iptables -A SYN_FLOOD -j DROP

Ist die Regel überflüssig???



Gruß

Roland

geronet
28.05.02, 17:04
Ja ist sie weil das die vorige schon macht.





Grüsse, Stefan