SYN-Flooding

Lesenswerte Artikel, Anleitungen und Diskussionen
captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

SYN-Flooding

Post by captaincrunch » 2003-12-19 11:36

Ein netter Artikel bei Heise-Security:
http://www.heise.de/security/artikel/43066/0

Es geht dabei um Maßnahmen gegen SYN-Flooding, von dem auch Die Rooties betroffen sein könnten. Die aufgezeigten Mittel gegen solche Angriffe sind vermutlich hilfreich für einige, die einem solchen Angriff ausgesetzt sind, 100%igen Schutz erreicht man dadurch aber auch nicht.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

floschi
Userprojekt
Userprojekt
Posts: 3388
Joined: 2002-07-18 08:13
Location: München

Re: SYN-Flooding

Post by floschi » 2003-12-19 12:07

schon ausprobiert?

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: SYN-Flooding

Post by captaincrunch » 2003-12-19 12:20

Syncookies setze ich ohnehin schon recht lange ein, die anderen Maßnahmen (noch) nicht, ich wollte das ganze aber im Laufe der nächsten Woche mal austesten.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: SYN-Flooding

Post by dodolin » 2003-12-19 13:23

Syncookies werden u.a. in de.comp.security.firewall zwiespältig gesehen, weil sie wohl nicht wirklich RFC-konform sind. Deshalb sollte man das vielleicht doch nur "unter Beschuss" aktivieren und nicht ständig. Was da jedoch genau verletzt wird und welche Auswirkungen das hat oder haben kann... so genau habe ich mich dann doch noch nicht damit beschäftigt. IMHO sollte man sich darüber aber Gedanken machen, bevor man Syncookies standardmäßig aktiviert. Kommt halt immer drauf an, wie standardkonform man sein möchte und wie schwer die Verstöße jetzt sind...

chris76
Moderator
Moderator
Posts: 2015
Joined: 2003-06-27 14:37
Location: Germering

Re: SYN-Flooding

Post by chris76 » 2003-12-19 13:34

für manche hier wäre es aber auch interessant wie man sie wieder deaktiviert und wie man es so macht sie nur bei bedarf zu aktivieren.
Hast du da Ideen dodolin?

Ciao Christian

User avatar
nyxus
RSAC
Posts: 697
Joined: 2002-09-13 08:41
Location: Lübeck

Re: SYN-Flooding

Post by nyxus » 2003-12-19 14:11


oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: SYN-Flooding

Post by oxygen » 2003-12-19 15:18

chris76 wrote:für manche hier wäre es aber auch interessant wie man sie wieder deaktiviert und wie man es so macht sie nur bei bedarf zu aktivieren.
Hast du da Ideen dodolin?

Ciao Christian
Das ist ja wohl nicht das Problem:

Aktivieren:

Code: Select all

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Deaktivieren:

Code: Select all

echo 0 > /proc/sys/net/ipv4/tcp_syncookies

Nach bedarf akivieren ist da schon schwieriger... man könnte z.B. per Cron die Anzahl der netstat Zeilen mit SYN_RECV zählen und bei über 25 tcp_syncookies aktivieren und ansonsten deaktivieren. So im Stile:

Code: Select all

if [ 'netstat -nt | grep SYN_RECV | wc -l' >25 ]; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
else 
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
fi
Das funktioniert wohl so nicht, es weiß nicht zufällig jemand wie man in einen Shellscript den Wert eines Integers vergleicht? Ansonsten halt Perl verwenden ;)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11578
Joined: 2003-02-27 01:00
Location: Hamburg

Re: SYN-Flooding

Post by Joe User » 2003-12-19 16:15

øxygen wrote:Das funktioniert wohl so nicht, es weiß nicht zufällig jemand wie man in einen Shellscript den Wert eines Integers vergleicht?
man bash ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: SYN-Flooding

Post by oxygen » 2003-12-19 17:09

Danke aber auf die Idee wäre ich ohne dich nicht gekommen :evil:

ich weiß jetzt zumindest das der Operator -gt ist, aber ich bin noch nicht dahintergekommen wie ich der Ausgabe von 'netstat -nt | grep ESTABLISHED | wc -l' als Typ Integer zuweisen kann... naja bleib ich halt bei tcsh. Müsst ihr euch selbst mit vergnügen ;)

alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: SYN-Flooding

Post by alexander newald » 2003-12-19 17:33

dodolin wrote:Syncookies werden u.a. in de.comp.security.firewall zwiespältig gesehen, weil sie wohl nicht wirklich RFC-konform sind. Deshalb sollte man das vielleicht doch nur "unter Beschuss" aktivieren und nicht ständig. Was da jedoch genau verletzt wird und welche Auswirkungen das hat oder haben kann... so genau habe ich mich dann doch noch nicht damit beschäftigt. IMHO sollte man sich darüber aber Gedanken machen, bevor man Syncookies standardmäßig aktiviert. Kommt halt immer drauf an, wie standardkonform man sein möchte und wie schwer die Verstöße jetzt sind...
Man kann auch vorher SynCookies aktivieren, da diese Funktion nur zum tragen kommt, wenn der BackLog Puffer voll ist.

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: SYN-Flooding

Post by dodolin » 2003-12-19 18:14

aber ich bin noch nicht dahintergekommen wie ich der Ausgabe von 'netstat -nt | grep ESTABLISHED | wc -l' als Typ Integer zuweisen kann..
Bash, genau wie auch Perl, kennt und braucht keine typisierten Variablen. Die sind so intelligent, dass sie das selbst erkennen, was es sein soll. ;)
Man kann auch vorher SynCookies aktivieren, da diese Funktion nur zum tragen kommt, wenn der BackLog Puffer voll ist.
*Nachguck*

Ok, haste auch wieder Recht. Hier nochmal die Doku aus kernel-doc:

Code: Select all

tcp_syncookies - BOOLEAN
        Only valid when the kernel was compiled with CONFIG_SYNCOOKIES
        Send out syncookies when the syn backlog queue of a socket
        overflows. This is to prevent against the common 'syn flood attack'
        Default: FALSE
 
        Note, that syncookies is fallback facility.
        It MUST NOT be used to help highly loaded servers to stand
        against legal connection rate. If you see synflood warnings
        in your logs, but investigation shows that they occur
        because of overload with legal connections, you should tune
        another parameters until this warning disappear.
        See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
 
        syncookies seriously violate TCP protocol, do not allow
        to use TCP extensions, can result in serious degradation
        of some services (f.e. SMTP relaying), visible not by you,
        but your clients and relays, contacting you. While you see
        synflood warnings in logs not being really flooded, your server
        is seriously misconfigured.
Ergo: Andere Parameter sind erstmal besser geeignet, um sich gegen SYN Flood Attacken zu schützen und nicht gleich gegen die RFCs zu verstoßen.

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: SYN-Flooding

Post by oxygen » 2003-12-19 20:46

dodolin wrote:
aber ich bin noch nicht dahintergekommen wie ich der Ausgabe von 'netstat -nt | grep ESTABLISHED | wc -l' als Typ Integer zuweisen kann..
Bash, genau wie auch Perl, kennt und braucht keine typisierten Variablen. Die sind so intelligent, dass sie das selbst erkennen, was es sein soll. ;)
sieht so aus ;) der Fehler lag in der Verwechslung von ` mit ' ... folgendes funktioniert, wobei man es ja dann wohl eh nicht braucht:

Code: Select all

if [ `netstat -nt | grep ESTABLISHED | wc -l` -gt 20 ]; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
else
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
fi