PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DDOS durch Paketfilter-Regel?



ciedan
23.07.04, 10:11
Mahlzeit,

ich beschäftige mich zur Zeit mit iptables und stolperte dabei über diese Regel um Pings nicht zuzulassen:
iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP.

Ihr werdet euch jetzt fragen, wie soll dadurch ein DDos entstehen?:confused: Ich stell mir das so vor, wenn mehrere/alle Clients an einem Router/Gateway diese Regel verwenden und der Router dann die ICMP-Nachricht "Quelle dämpfen" sendet reagiert kein Client und alle senden weiter auf voller Leistung und dann verwirft der Router halt alle möglichen Pakete oder geht selber in die Knie. Kann das sein oder hab ich da was falsch verstanden?
Wäre es deshalb nicht besser wenn die Regel:
iptables -A OUTPUT -s 127.0.0.1 -p icmp -j DROP heissen würde? Die Gegenseite bekommt immer noch keine Pingantwort, aber ich erhalte die Nachricht Quelle dämpfen.

Bis denn
ciedan

Jasper
23.07.04, 10:56
Wäre es deshalb nicht besser wenn die Regel:
iptables -A OUTPUT -s 127.0.0.1 -p icmp -j DROP heissen würde? Die Gegenseite bekommt immer noch keine Pingantwort, aber ich erhalte die Nachricht Quelle dämpfen.


icmp komplett zu droppen ist IMHO das dümmste, was man machen kann, da hast du schon recht.
allerdings ist es besser nur bestimmte icmp-typen (mit denen man richtig blödsinn anstellen kann wie z.b. 'redirect') abzulehnen. alternativ kann man natürlich auch nur bestimmte typen durchlassen. siehe 'iptables --icmp-type' (liste der icmp-typen mit 'icmp -p icmp -h')


-j

Bubble
23.07.04, 13:08
Ich stell mir das so vor, wenn mehrere/alle Clients an einem Router/Gateway diese Regel verwenden und der Router dann die ICMP-Nachricht "Quelle dämpfen" sendet reagiert kein Client und alle senden weiter auf voller Leistung und dann verwirft der Router halt alle möglichen Pakete oder geht selber in die Knie. Kann das sein oder hab ich da was falsch verstanden?


Ich dachte immer es sei so, dass das Source Quench von einem anderen Rechner gesendet wird, weil dieser die Pakete nicht so schnell verarbeiten kann. Kann mich jetzt nicht entsinnen dass auch Router diesen Mechanismus benutzen, schließlich müssen sie die Pakete ohnehin nur durchreichen und nicht bearbeiten. Im schlimmsten Fall werden die Pakete verworfen, und die Verbindung unterbrochen.

Bedenke mal: Würde ein Client bei einem ICMP-Source Quench von einer Adresse, mit der er keine direkte Verbindung hat (wie das bei einem Router nunmal so ist, die Verbindung besteht ja nur zum Ziel und geht über den Router hinweg) sein Senden verlangsamen ... nun, wie einfach wäre es da, diesen Client lahmzulegen? Ich weiß noch nicht mal ob Clients auf solche ICMP-Meldungen (source quench, redirect) standardmäßig überhaupt reagieren.
Bubble

ciedan
23.07.04, 14:17
@ Bubble: 1 .Wieso nur die Rechner? Stell dir einfach ein Medium Wechsel vor. Von 2Gbit/s LWL auf 10 Mbit/s Koax, da muß auch das Gateway puffern, ich weiss ist ein extremes Beispiel daher noch ein anderes, ein Router erhält von 3 serriellen Verbindungen mit jeweils 2Mbit/s Daten und die müssen auf einer serriellen mit 2Mbit/s raus, wiederrum muß der Router puffern und gegebenenfalls die Quellen dämpfen.
2. ICMP sollte in der ersten Version nur von Routern, Gateways usw. benutzt werden.


edit: @ Jasper: Mit deinem Befehl iptables --liste-icmp oder iptables icmp -p icmp -h bekomm ich nur die Hilfe angezeigt und dort find ich eine solche Option nicht. Welche Version benutzt Du?

bis denn
ciedan

canis_lupus
23.07.04, 15:20
Source-Quench kann von Routern und dem Zielhost benutzt werden, um die Sender aufzufordern zu drosseln.
Diese ICMP-Pakete werden heute aber auch kaum noch durch Paketfilter durchgelassen, gerade weil man damit auch super Unsinn anstellen kann.

Wenn der Verkehr zu gross wird, kommt - zumindest bei TCP - noch die Window-Size ins Spiel die regulierend eingreift.

Jasper
23.07.04, 18:44
edit: @ Jasper: Mit deinem Befehl iptables --liste-icmp oder iptables icmp -p icmp -h bekomm ich nur die Hilfe angezeigt und dort find ich eine solche Option nicht. Welche Version benutzt Du?


$ /sbin/iptables -p icmp -h
...
ICMP v1.2.9 options:
--icmp-type [!] typename match icmp type
(or numeric type or type/code)

Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply
$


-j

ciedan
24.07.04, 18:55
@jasper danke