iptables - spezielle Regeln

Rund um die Sicherheit des Systems und die Applikationen
Post Reply
croc
Posts: 71
Joined: 2005-09-16 15:30
Location: Leipzig
Contact:
 

iptables - spezielle Regeln

Post by croc »

Hallo,

wie kann ich bei iptables eine Regel hinzufügen, die nur ping-anfragen von ip's aus deutschland zulässt?
wie kann ich eine regel hinzufügen, die für einen bestimmten port, den traffic auf 100kiloBYTE pro sekunde limitiert?
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: iptables - spezielle Regeln

Post by lord_pinhead »

Für Deutschland bräuchtest du die IP Ranges die die Provider und Hoster bekommen, und das sind dann verdammt viele Regeln.

Traffic Shaping ist das zauberwort das du suchst, allerdings würde ich das nicht direkt mit den Tables machen, sondern mit tc. Ein kurzeinstieg wäre der Wondershaper von lartc.org, allerdings erhöhen sich damit deine Reaktionszeiten um ein paar ms, für Game und Voip Server recht ungeeignet.
croc
Posts: 71
Joined: 2005-09-16 15:30
Location: Leipzig
Contact:
 

Re: iptables - spezielle Regeln

Post by croc »

Und gibts ein Programm, dass den Trafficverbrauch mitloggt und bei Ã?berschreitung eines Grenzwertes den Server ausschaltet oder ne E-Mail versendet?
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering
 

Re: iptables - spezielle Regeln

Post by chris76 »

Das mit der Email läßt sich z.B. mit IAM realisieren. Daz gibt es hier im Forum ein Script.
Gruß Christian

BofH excuses: YOU HAVE AN I/O ERROR -> Incompetent Operator error
buddaaa
Posts: 163
Joined: 2004-11-08 09:59
 

Re: iptables - spezielle Regeln

Post by buddaaa »

cRoC wrote:Hallo,

wie kann ich bei iptables eine Regel hinzufügen, die nur ping-anfragen von ip's aus deutschland zulässt?
kann Dir europa fuer iptables anbieten, ich erlaube z.b. auch nur von da FTP & POP3:

-s 145.0.0.0/8
-s 62.0.0.0/8
-s 80.0.0.0/5
-s 88.0.0.0/5
-s 193.0.0.0/7
-s 195.0.0.0/8
-s 212.0.0.0/7
-s 217.0.0.0/8

wenn man so paranoid ist muss man aber auch ab und zu nachschauen, ob neue netze fuer europa vergeben werden (RIPE NCC):

http://www.iana.org/assignments/ipv4-address-space
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: iptables - spezielle Regeln

Post by lord_pinhead »

buddaaa wrote: kann Dir europa fuer iptables anbieten, ich erlaube z.b. auch nur von da FTP & POP3:
-s 145.0.0.0/8
-s 62.0.0.0/8
-s 80.0.0.0/5
-s 88.0.0.0/5
-s 193.0.0.0/7
-s 195.0.0.0/8
-s 212.0.0.0/7
-s 217.0.0.0/8

wenn man so paranoid ist muss man aber auch ab und zu nachschauen, ob neue netze fuer europa vergeben werden (RIPE NCC):

http://www.iana.org/assignments/ipv4-address-space
Was ja auch nur über den Daumen gepeilt 134 Millionen IP´s ergibt und damit mögliche Angreifer :roll:
buddaaa
Posts: 163
Joined: 2004-11-08 09:59
 

Re: iptables - spezielle Regeln

Post by buddaaa »

Lord_Pinhead wrote:
buddaaa wrote: kann Dir europa fuer iptables anbieten, ich erlaube z.b. auch nur von da FTP & POP3:
-s 145.0.0.0/8
-s 62.0.0.0/8
-s 80.0.0.0/5
-s 88.0.0.0/5
-s 193.0.0.0/7
-s 195.0.0.0/8
-s 212.0.0.0/7
-s 217.0.0.0/8

wenn man so paranoid ist muss man aber auch ab und zu nachschauen, ob neue netze fuer europa vergeben werden (RIPE NCC):

http://www.iana.org/assignments/ipv4-address-space
Was ja auch nur über den Daumen gepeilt 134 Millionen IP´s ergibt und damit mögliche Angreifer :roll:
ja, aber es sperrt 324 millionen moegliche angreifer aus.
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: iptables - spezielle Regeln

Post by lord_pinhead »

Weißt du was einfacher ist? Portknocking nutzen und Dienste anständig Konfigurieren, dann sind die mir Chinesen wirklich egal ;) Und ein primitiver Ping kann nichts ausrichten, den wenn ein DDoS kommt ist eh der Router weg. Wer sich jetzt vor ICMP Tunneln fürchtet, der soll einfach mal die Kerneldoku ansehen oder kurz in /proc/sys/net/ipv4/ nachsehen, dort gibt es ein paar einfache einstellungen.

Btw.: Clients nutzen ICMP Echo um die Packetgröße festzulegen (durch das Echo Reply das dann die Packetgröße hat) und damit auch die Fragmentierung, nicht gerade intelligent das zu deaktivieren finde ich.
buddaaa
Posts: 163
Joined: 2004-11-08 09:59
 

Re: iptables - spezielle Regeln

Post by buddaaa »

Btw.: Clients nutzen ICMP Echo um die Packetgröße festzulegen (durch das Echo Reply das dann die Packetgröße hat)
nope, icmp-echo ist unabhaengig davon. die verbindung beginnt ganz normal mit TCP oder UDP und wenn dann eine station auf dem weg (oder der server) ein paket als zu gross empfindet schickt er ein ICMP-destination-unreachable mit "fragmentation needed" zurueck, und das sollte nicht geblockt werden. also ausgehend icmp type 3 erlauben, type 0 und 8 (echo request, echo reply) koennen ruhig verboten werden.
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: iptables - spezielle Regeln

Post by lord_pinhead »

Bist du dir so sicher ;) Clients schickt oft kurzes icmp echo und bekommt antwort, der Ping hat dann auch gleich die Packetgröße inbegriffen.

Meistens fängt das sowisso mit der Standardgröße 1492 an, wo jeder in seinen DSL einstellungen hat. Server hat allerdings eine MTU von 1500, weswegen ich sie auf 1472 runtergestellt habe um Packetfragmentierung zu verhindern.

Ausserdem, andere Frage: Was bringt dir bitte schön ein Sperren des Pings? Bots suchen sowisso über TCP Scanner und pingen dich gar nicht an ;) Sperren von request und reply ist an sich totaler schwachsinn, sobald du das machst weiß der Angreifer das eine Firewall läuft und das er andere Methoden wählen muss. Bist du auch der Meinung das man in den tables lieber -j DROP verwendet ;)
buddaaa
Posts: 163
Joined: 2004-11-08 09:59
 

Re: iptables - spezielle Regeln

Post by buddaaa »

Lord_Pinhead wrote:Bist du dir so sicher ;) Clients schickt oft kurzes icmp echo und bekommt antwort, der Ping hat dann auch gleich die Packetgröße inbegriffen.
jap, da bin ich mir sicher weil ich schon oft genug verbindungen mit tcpdump angeschaut hab und irgendwelche ICMP-geschichten kommen hoechstens im fehlerfall. kannst ja mal selber auf Deinem rootserver gucken:

Code: Select all

tcpdump -i eth0 icmp -n -p
... muesste ja sonst alle nase lang wenn jemand ne webseite anschaut oder spam abliefert was kommen.
Meistens fängt das sowisso mit der Standardgröße 1492 an, wo jeder in seinen DSL einstellungen hat. Server hat allerdings eine MTU von 1500, weswegen ich sie auf 1472 runtergestellt habe um Packetfragmentierung zu verhindern.
schon klar, hat aber nix mit icmp-echo zu tun.
Ausserdem, andere Frage: Was bringt dir bitte schön ein Sperren des Pings? Bots suchen sowisso über TCP Scanner und pingen dich gar nicht an ;) Sperren von request und reply ist an sich totaler schwachsinn, sobald du das machst weiß der Angreifer das eine Firewall läuft und das er andere Methoden wählen muss. Bist du auch der Meinung das man in den tables lieber -j DROP verwendet ;)
oh gott, Du hast auch den deutschen security by obscurity artikel in wkipedia gelesen und geglaubt.

also:
- es gibt mehr als eine moeglichkeit was es sein kann, wenn eine IP nicht auf einen ping antwortet, die schlussfolgerung "host firewall" stimmt nicht immer. es kann auch eine firewall fuer das ganze netz, blackhole routing, routing fehler, packet loss, einseitiges NAT oder sonstwas sein.
- ausserdem schicken nicht alle router ein "destination unreachable"
- daher kann das skript-kind nicht davon ausgehen, des "keine antwort von IP a.b.c.d" bedeutet, das diese IP benutzt wird wie es in dem lustigen wikipedia-artikel steht.
- also muss er alle ports abscannen, das ist fuer ihn langsamer ohne TCP-RST weil er mit einem timeout arbeiten muss und fehleranfaelliger weil "packet loss" gleich "geschlossener port".
- ausserdem hinterlaesst er eine riesige spur in den logfiles, jedes IDS/IPS springt an und manche leute benutzen ja nette tools die portscanner blocken (wuerde ich nicht tun, aber es gibt so leute).

so, und jetzt nenn mir einen sinnvollen grund auf einen ping zu antworten ? selbst http://www.ebay.com machts nicht, aber die ham ja keine ahnung vom internet und so sachen ;)
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: iptables - spezielle Regeln

Post by lord_pinhead »

buddaaa wrote: jap, da bin ich mir sicher weil ich schon oft genug verbindungen mit tcpdump angeschaut hab und irgendwelche ICMP-geschichten kommen hoechstens im fehlerfall. kannst ja mal selber auf Deinem rootserver gucken:

Code: Select all

tcpdump -i eth0 icmp -n -p
... muesste ja sonst alle nase lang wenn jemand ne webseite anschaut oder spam abliefert was kommen.
Ich erinnere mich irgendwie dran das bestimmte Clients den Server wegen der Fragmentierung kurz anpingen, wie z.b. mein News Client

Code: Select all

13:07:34.403300 IP 84.181.247.x > 213.x.x.x: icmp
13:07:34.403368 IP 213.x.x.x > 84.181.247.x: ICMP echo reply, id 768, seq 1536, length 1448
schon klar, hat aber nix mit icmp-echo zu tun.
Weil, wie du siehst, im echo reply die MTU steht, welche die Gegenseite nutzen soll, und damit braucht der Client nicht anfangen rumzutesten.
oh gott, Du hast auch den deutschen security by obscurity artikel in wkipedia gelesen und geglaubt.

also:
- es gibt mehr als eine moeglichkeit was es sein kann, wenn eine IP nicht auf einen ping antwortet, die schlussfolgerung "host firewall" stimmt nicht immer. es kann auch eine firewall fuer das ganze netz, blackhole routing, routing fehler, packet loss, einseitiges NAT oder sonstwas sein.
- ausserdem schicken nicht alle router ein "destination unreachable"
- daher kann das skript-kind nicht davon ausgehen, des "keine antwort von IP a.b.c.d" bedeutet, das diese IP benutzt wird wie es in dem lustigen wikipedia-artikel steht.
- also muss er alle ports abscannen, das ist fuer ihn langsamer ohne TCP-RST weil er mit einem timeout arbeiten muss und fehleranfaelliger weil "packet loss" gleich "geschlossener port".
- ausserdem hinterlaesst er eine riesige spur in den logfiles, jedes IDS/IPS springt an und manche leute benutzen ja nette tools die portscanner blocken (wuerde ich nicht tun, aber es gibt so leute).
Ein IDS/IPS bringt ungefähr soviel wie gar nix hoch drei wenn jemand es richtig macht, es ist einfach nur eine Spielerei für den Honeypod, mehr nicht. Jedes IDS/IPS kann man durch ein einfachen Trick überlisten, und zwar das codieren von Shellcode, in einer Phrack war das mal geschrieben wenn ich mich recht erinnere. Ich hab auf keinen meiner Produktiv Systeme ein IDS laufen und weiß trotzdem was vorgeht.

Mich interessieren keine Portscanns von Kindern, mir ist es auch wurst ob mich einer anpingt. Ob ein Scriptkiddie jetzt "nmap -sSUV -p 1-65525 HOST" oder "nmap -sSUV -p 1-65525 -P0 HOST" eintippt ist egal, wer es schneller haben will der nimmt scanrand. Das ich ein Ping blocke bringt in beiden Fällen überhaupt nichts, ausser das ich bei ein Fehler, nicht feststellen kann ob der komplette Server abgestürtzt ist oder nicht, ergo muss ich mich irgendwo einloggen und nachsehen. Und bevor du jetzt sagst das ich durch ein Pingsweep ein ganzen Netzbereich abscannen kann, das kann ich mit ein Scan auf 3 verschiedene Ports fast genauso schnell. Was bringt es mir, ausser das ich jetzt nicht mehr einfach feststellen kann ob die Kiste vom Netz ist, icmp echo zu blockieren?
so, und jetzt nenn mir einen sinnvollen grund auf einen ping zu antworten ? selbst http://www.ebay.com machts nicht, aber die ham ja keine ahnung vom internet und so sachen ;)
Die bringen es nichtmal fertig Ihre Datenbank richtig abzugleichen, des öfteren findet man Auktionen ganz plötzlich weil die mal wieder nicht abgeglichen haben. Sag jetzt nicht die wissen genau was sie da machen ;) Große Seiten lassen Ping zu, ich frag mich mal warum :). Und bei Ebay tippe ich sowisso auf einen Loadbalancer bzw. Proxy der ausser Port 80 und 443 nichts zulässt, vielleicht ein einstellungsfehler ;) Oder seh ich das im Traceroute jetzt richtig das Ebay da gar kein Einluss drauf hat :)
buddaaa
Posts: 163
Joined: 2004-11-08 09:59
 

Re: iptables - spezielle Regeln

Post by buddaaa »

Lord_Pinhead wrote: Ich erinnere mich irgendwie dran das bestimmte Clients den Server wegen der Fragmentierung kurz anpingen, wie z.b. mein News Client
was ist denn Dein newsclient ? feststellen der max MTU halte ich fuer eine betriebssystem-aufgabe, wenn das stimmt ist das eh ein komisches stueck software.
Ein IDS/IPS bringt ungefähr soviel wie gar nix hoch drei wenn jemand es richtig macht, es ist einfach nur eine Spielerei für den Honeypod, mehr nicht. Jedes IDS/IPS kann man durch ein einfachen Trick überlisten, und zwar das codieren von Shellcode, in einer Phrack war das mal geschrieben wenn ich mich recht erinnere.
ja und, nur weil man eine sorte angriff mit etwas codierung schwieriger zu erkennen macht sind doch IDSe nicht per se nutzlos. ISS verkauft seine buechsen immer noch, trotz dieses artikels.
Ich hab auf keinen meiner Produktiv Systeme ein IDS laufen und weiß trotzdem was vorgeht.
ich hab auch keins laufen weil ich mehr angst vor einem buffer overflow in snort habe als das ich glaube, das es mir was bringt mit meinem ueberschaubaren setup. aber ich geb mich nicht der illusion hin, das ich einen guten angriff auf meine kiste mitkriegen wuerde.

Das ich ein Ping blocke bringt in beiden Fällen überhaupt nichts, ausser das ich bei ein Fehler, nicht feststellen kann ob der komplette Server abgestürtzt ist oder nicht, ergo muss ich mich irgendwo einloggen und nachsehen.
Du kannst es ja genauso schlau machen wie die boesen und "nmap -p 21,25,80" benutzen.
Und bevor du jetzt sagst das ich durch ein Pingsweep ein ganzen Netzbereich abscannen kann, das kann ich mit ein Scan auf 3 verschiedene Ports fast genauso schnell. Was bringt es mir, ausser das ich jetzt nicht mehr einfach feststellen kann ob die Kiste vom Netz ist, icmp echo zu blockieren?
ich hab z.b. ne extra-IP mit nur 2 nicht-standard-high-ports offen. die findet niemand solange er nicht alle ports abscannt obwohl er keine antwort auf irgendwas kriegt und die muehe machen sich nur die wenigsten.

jedes halbwegs schlau skript-kind scannt ja wohl das ganze jahr in der gegend rum und sammelt sich eine datenbank mit IPs, OS, offenen ports, dienst und version. wenn es dann den 0-day-exploit kriegt kann es sofort Deine kiste hacken bevor der patch draussen ist, weil Du mit allen daten in der datenbank stehst, ich nicht.
Die bringen es nichtmal fertig Ihre Datenbank richtig abzugleichen, des öfteren findet man Auktionen ganz plötzlich weil die mal wieder nicht abgeglichen haben. Sag jetzt nicht die wissen genau was sie da machen ;) Große Seiten lassen Ping zu, ich frag mich mal warum :). Und bei Ebay tippe ich sowisso auf einen Loadbalancer bzw. Proxy der ausser Port 80 und 443 nichts zulässt, vielleicht ein einstellungsfehler ;) Oder seh ich das im Traceroute jetzt richtig das Ebay da gar kein Einluss drauf hat :)
guck mal, es gibt noch mehr die ohne ping leben koennen:

http://www.cnn.com
http://www.linux.com
http://www.microsoft.com
http://www.hp.com
http://www.sun.com

sag ihnen bitte bescheid das sie da einen echt grossen fehler machen ;)
Post Reply