Teil 2
Hab da noch etwas gefunden:
Hier auch noch ein paar Abwehrmaßnahmen (manche habe ich schon erwähnt, aber es sind auch neue dabei):
Zitat:
Code
WICHTIGSTE ABWEHR:
1. Verwende Syn-Cookies und du hast garkeine Probleme mehr mit SYN-Attacken:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
2. iptables, dort auffaellige Bereiche sperren, z.B. mit CIDR Notation (ggf. apt-get install netmask .. mit netmask ipstart:ipend ... gutes Umrechnungstool)
iptables -I INPUT -s 88.224.0.0/16 -j **** # block 88.224.0.0 to 88.255.255.255 TTNet (TTnet Autonomous System)
3. ddos deflate v0.6 installieren von http://www.deflate.medialayer.com/old/∞ - zaehlt wie oft eine ip gleichzeitig verbindungen aufbaut mittels netstat und wenn uebr schwellwert werden diese geblockt. am besten als cron job jede minute aufrufen.
/usr/local/ddos ... ddos.conf ... wenn kein apf installiert apf=0 ... connection limit z.b. 35 oder 50
DDOS Deflate v0.6 - v1.0 in Planung:
http://www.deflate.medialayer.com/old/∞ - Projektseite auf http://blog.medialayer.com/projects-ddos-deflate/∞
Script installiert sich in /usr/local/ddos/ und zaehlt Anzahl Verbindungen je IP, wenn ueber Schwellwert werden diese per
APF oder iptables fuer bestimmte Zeit (alles in ddos.conf einstellen) gebannt
Config: ddos.conf bei NO_OF_CONNECTIONS=150 ruhig runter gehen auf 35, apf auf 0, falls nicht vorhanden
CRON: cronjob ggf. manuell einrichten */1 * * * * root pfad parameter ...
IPTABLES
http://de.wikibooks.org/wiki/Linux-Kompe...P-Tables∞
http://de.wikipedia.org/wiki/Netfilter/iptables∞
#Limit bietet Schutz vor "Syn-Flood-Attacken
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
Pakete bestimmter hosts/ranges wegschmeissen:
iptables -I INPUT -s 88.224.0.0/16 -j **** # block 88.224.0.0 to 88.255.255.255 TTNet (TTnet Autonomous System)
iptables -I INPUT -s 85.0.0.0/8 -j ****
iptables -I INPUT -s 88.0.0.0/8 -j ****
mit hilfe von iptables könnt ihr ein paar sachen festlegen, wie z.b die max connections pro IP beschränken auf z.b. 10
und ihr könnt mit hilfe von iptables packet verwerfen welche sich nicht an den korrekten Aufbau einer TCP Verbindung halten ..
z.b.
# alle TCP-Sessions müssen mit einem SYN beginnen, sonst werden sie verworfen
$iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth Scan"
$iptables -A INPUT -p tcp ! --syn -m state --state NEW -j ****
# ungewöhnliche Flags verwerfen
$iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j ****
$iptables -A INPUT -p tcp --tcp-flags ALL ALL -j ****
$iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j ****
$iptables -A INPUT -p tcp --tcp-flags ALL NONE -j ****
$iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j ****
$iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j ****
# SYN-Flood-Schutz
$iptables -N syn-flood
$iptables -A INPUT -p tcp --syn -j syn-flood
$iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$iptables -A syn-flood -j ****
# Setzt die MMS (Maximum Segment Size) auf weniger 40Bytes für SYN,RST SYN Packete
$iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# max. 10 neue Verbindungen in 5 Sekunden pro Quelladresse erlauben, nimmt man meist für SSH
$iptables -N tcp_packets
$iptables -A tcp_packets -p TCP -i $wan_iface --dport 22 -m state --state NEW -m recent --set
$iptables -A tcp_packets -p TCP -i $wan_iface --dport 22 -m state --state NEW -m recent --update --seconds 5 --hitcount 10 -j ****
$iptables -A tcp_packets -p TCP -i $wan_iface --dport 22 -j ACCEPT
oder
# limitiert die Anzahl von HTTP-Verbindungen einer IP-Adresse auf vier Verbindungen
iptables -A INPUT -p tcp --dport 80 -m iplimit --iplimit-above 4 -j REJECT
Es gibt noch weiter Möglichkeiten, musst ihr einfach mal suchen ..
--michael bonge--
SYN Cookies
syn wiki
Gröe der Backlog-Queue anpassen, je nach Hardware. Standard 1024 offene SYN_RECV's, z.B. auf 256:
echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
Syn Packets Straffung:
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
PDFs zu SYN Flood DDOS bei computec.ch: Downloads / Denial of Service (Dokumente) durcharbeiten
IP-Netze nach Ländern, fertig für die .htaccess habe ich unter http://tools.sistrix.com/co/
Schutz gegen Schutzgelderpressung mit DDoS-Attacken
Green Gate Labs Homepage
SYN flood -- hping network security tool
Syn Flood Attacken
CBACK Software • Willkommen
Achja, das ist auch eine gute Resource als Basis für IPTables Firewalls:
http://www.rfxnetworks.com/apf.php∞
http://www.rfxnetworks.com/apf/README∞
LinuxSecurity.com
Dämme gegen die SYN-Flut | heise Security
in der apache2.conf
<Files index.pl>
SetHandler perl-script
PerlHandler Apache:Zunge raus Rout
Order Deny,Allow
Deny from 85.
Deny from 88.
</Files>
<Location /> <-- nicht garantiert, bessere loesung gesucht, evtl <Files *> Container besser
Order Deny,Allow
Deny from 85.
Deny from 88.
</Location>
KeepAlive OFF setzen:
Bei mir /etc/apache2/apache2.conf folgendes suchen:
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
KeepAlive On
Ändern auf
KeepAlive Off
Auf die Weise bricht der Apache offene Anfragen einfach ab.... und die Last füllt wieder
.htaccess im Hauptverzeichnis - gilt fuer alle Unterverzeichnisse
Order Deny,Allow
deny from 192.168
APF
APF ist eine Abstraktionslayer zum einfachen konfigurieren von Netfilter via IPTables.
APF enthält schlicht bekannte Schalterchen und Drehknöpfe um verschiedenen Angriffsmustern den Hahn etwas abzudrehen.
Es höngt halt viel von dem auf RH verwendeten Linux ab, ob synflood protection schon an ist (Debian std.) usw.
APF (http://www.rfxnetworks.com/apf.php∞) legt halt viele Hebel schon mal richtig
OK, ihr könntet folgende 2 Programme noch zusätzlich installieren:
http://www.ossec.net/∞
und
http://sourceforge.net/projects/sentrytools/∞
Beides zusammen schafft auch noch mal einiges ins reine.
Und wenn nix mehr hilft dann:
Sperren einer einzelnen "bösen" IP-Adresse bzw. eines Netzblocks
per iptables-Filter lässt sich leicht eine einzelne IP-Adresse blocken
iptables -I INPUT -s böse_IP -j ****
Es kann auch ein ganzer IP-Adressbereich geblockt werden, z.B.
iptables -I INPUT -s 213.133.99.0/24 -j ****
Das Blockieren macht bei dynamischen Einwahl-IP's des Angreifers/Störers natürlich wenig Sinn.
Schalte doch einfach vor deinen Server (oder machst es auf Softwarebasis) einen Router die diese Pakete ausfiltert.
Ein Text dazu: Dämme gegen die SYN-Flut | heise Security
Ich weiß ja nicht, wo ihr eure Seiten hostet, aber wenn ihr einen Rootserver habt, könnt ihr Einstellungen vornehmen, wenn nicht mußt euer Provider irgendwas machen.
Eine kurze Recherche im ergab diese Seite:
http://cr.yp.to/syncookies.html∞ (link von der wikipedia).
Interssant ist eigendlich dies hier:
SYN cookies are now a standard part of Linux and FreeBSD. They are, unfortunately, not enabled by default under Linux. To enable them, add
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
to your boot scripts.
Ich hoffe, ihr könnt die Attacken abwehren.
Alles anzeigen