Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables + geschwindigkeit
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?
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
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
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
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
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
Ja ist sie weil das die vorige schon macht.
Grüsse, Stefan
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.