On 08/09/2012 01:58, Emmanuel Thierry wrote:

Le 6 sept. 2012 à 15:06, Frederic Dhieux a écrit :
Oui, iptables s'écroule quand on commence à mettre beaucoup de règles à la suite

Est-ce qu'on a une idée du "beaucoup" en question ? 100 ? 1000 ? 10000 ?

Hello,

Si tu routes avec Linux et que en plus tu rajoutes de la charge avec des
règles alors tu n'a pas les moyens d'encaisser un DDOS un peu sérieux (et
ça va très vite) : même si tu protèges le site visé l'ensemble de ton réseau
va être impacté plus ou moins sévèrement. L'interface de sortie de ton routeur
sur ton réseau n'est pas le goulot d'étranglement parce que ton backbone a
une capa supérieure à tes liens externes autrement dit le mal est déjà fait.

Je trouve bien plus intéressant de travailler avec tes upstreams pour que
le trafic n'arrive pas jusqu'à ton réseau et ainsi

- décharger tes routeurs (donc éviter de voir la latence grimper en flèche)
- décharger tes liens de transit (congestion)
- éviter de voir la facture de transit faire "boum" trop souvent

Donc blackholing en BGP avec des communautés. Ca peut se faire assez facilement
en montant un bird sur une sonde avec la liste des IPs blackolées en /32 et /64
dans une table static, envoyée à tes routeurs par un "protocol bgp" qui 
distribue le
contenu de cette table à tes routeurs en ajoutant la bonne communauté (voire
même, routeur par routeur, la communauté de l'upstream qui y est raccordé). La
conf est simple et regénérée par ton script de détestion (kill -HUP bird pour
qu'il relise sa config).

Stratégie de détection dans les grandes lignes  :
- sflow ou netflow vers une sonde
- statistiques à bonne fréquence sur les PPS pour classer les IPs visées
- conjuguer éventuellement à une mesure de latence

8<---------------------------------------
tant que (vrai) faire
  collecter les stats
  classer les IP par nombre de pps
  si (latence > L et pps > P) alors
    si (première IP de la liste a un trafic N fois > sum(3 précédentes 
mesures)/3) alors
      si (blackholing ON
          et IP pas whitelistée
          et IP pas dans la liste a surveiller) alors
        blackholer IP
      fin_si
      ajouter IP dans la liste à surveiller
      envoyer un mail à l'admin  "shut IP"
    sinon
      envoyer les stats a l'admin et lui dire d'améliorer son script ou ses 
seuils
    fin_sinon
  sinon
    pour chaque (IP dans la liste à surveille) faire
      cesser de blackholer IP
      envoyer un mail à l'admin  "no shut IP"
    fin_faire
  fin_sinon
  attendre un peu
fin_faire
8<---------------------------------------

Algo basique à améliorer.

Je suis en train de mettre ça en place sur Gixe (on a pas les moyens d'acheter
du Arbor), si qqun veut jouer à développer ça avec moi il sera le bienvenu.

++
Sylvain


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à