OVH Community, votre nouvel espace communautaire.

Sécurité / Dev / Solutions ADDOS 2


Pichax
24/03/2013, 18h46
Les liens du script pour virtualisation ne fonctionne plus, pourrait tu remettre en ligne le fichier ?

garderer
14/12/2012, 17h44
Bonjour,

Je vais crée l'application en langage C qui deviendra donc portable sur toutes les distributions, pour cela il faut un firewall indépendant, et un sniff réseaux aussi performant qui n'engendre pas la latence en cas d'attaque, pour tout cela il est nécessaire d'avoir un algorithme béton, car j'ai null envie de planter vos systèmes !
Mais je vous demande d'être très patient, car mon école d'ingénieur est prioritaire avant tout...
N'hésitait pas à faire des remarques ou des propositions.
Je pense rajouter un système de détection des attaques (dns par amplification) qui font râge en ce moment...

Pour répondre à vos questions vous avez la possibilité, de lancer plusieurs fois le script en fonction de l'application, je ne l'ai pas inclu dans mon cahier de test & recette, mais je pense que cela doit fonctionner, et ne pas engendrer des conflits.
Ensuite pour le problème de distribution je pense pas que les erreurs retournées par iptables soit si grâves... Le meilleur moyen de voir si cela fonctionne c'est de tester.

Merci de votre compréhension .

Cordialement garderer.

Raln
03/12/2012, 22h35
Bonjour,

Sur un kimsufi avec :

# lspci | grep -i ethernet
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
05:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Possible d'installer ton script ou pas ?

Merci.

Sensi
01/12/2012, 17h02
Bonjour garderer,

je viens d'installer ton script sur une ubuntu server 12.04 (Serveur Physique), mais il semble qu'il y a des erreurs de syntaxe au moment de l’ajout des règles dans Iptables au démarrage .


Aurais-tu une mise à jours disponible pour cette distribe ?

Merci à toi !


Cordialement

garderer
10/06/2012, 12h32
Ah, merci de m'avertir.

Je corrige cela dès demain soir.

EDIT :
Lien modifié!

Cordialement,
Garderer

stryk
09/06/2012, 18h39
Citation Envoyé par garderer
Script pour serveur physique sur la page 1 du Forum

Script pour virtualisation :

Code:
http://www.multiupload.nl/8GAHXQMJB2
Le programme ne dispose pas de la licence disponible sur [www.qualityserv.fr]

garderer
08/06/2012, 21h17
Script pour serveur physique sur la page 1 du Forum

Script pour virtualisation :

Code:
http://www.multiupload.ch/SAHXTUSU6J

garderer
08/06/2012, 10h18
Je vais donner les exe dans peut de temps.

Les tests sont très positifs, jusqu'a maintenant 95 % des attaques on était bloquées, une fois le script installé, configuré, et en surveillance.
Tout cela reste un gain de temps, énorme, étant donné l'automatisme.

Un ami c'est organisé, pour développer cette solution en python, mais je me contente du shell pour sa rapidité.
Je tient à préciser que l'utilisation du script pour des kimsuffi OVH est inutile... les cartes réseaux lowcoast supporte très mal les requêtes, et down en un temps record

Mes tests on était effectué sur des serveurs OVH EG, puis chez un concurent sur dell r210.
Par contre sur les kimsuffi il arrivera surement à vous envoyer le mail mais pas à bloquer...

[EDIT]

Les sources on était ajouté.

Cordialement,

stryk
03/06/2012, 18h29
Up svp

stryk
31/05/2012, 14h52
Lien DEAD possible de re upload le script merci d'avance

garderer
13/02/2012, 02h50
La commande pour surveiller la bandepassante ifstat -z
Et en une simple règle iptables, il est largement possible de bloquer la source des flood session slow-loris, grâce aux options.

Les requêtes en reading, il suffi de raccourcir le timeout des sessions est c'est propre.

Je vais voir cela tout de même.

spykeer
11/02/2012, 23h58
Citation Envoyé par Loup Artic
Le but de slowloris est d'arriver à générer mass slot apache et de les bloquer en reading.
Il n'y aura donc ni ip dans le server-status, ni enregistrement dans les logs.
De plus, étant donné qu'il n'envoi que très peu de packet et que le débit est extrêmement faible, sur un serveur avec un peu de trafic, il est presque impossible de localiser la source avec tcpdump.
Oui, dans ce cas, Fail2Ban ne vas gérer ce genre d'attaque. Mais le script proposé par garderer et voué a se dévelloper constemment, et les informations que tu donnes l'aideront surement.

Je penserais donc a des Scans assez réguliers sur les Slots utilisés par Apache :

Code:
Si Nbr Slots en Reading > Limite de slots(Adverts) Alors Lancement des tests de Slot's Par IP

Sa pourrait être intérressant. Attendons, la réponse de Garderer

spykeer
06/02/2012, 21h06
Tout a fait

garderer
06/02/2012, 11h21
Donc une bonne configuration de failtoban pourrais être suffisante.

spykeer
06/02/2012, 05h25
Selon un site internet, SlowLoris serais un programme de flood HTTP, qui ferait perdre la boule a ce genre de serveur WEB :

Apache 1.x
Apache 2.x
dhttpd
GoAhead WebServer
WebSense "block pages" (unconfirmed)
Trapeze Wireless Web Portal (unconfirmed)
Verizon's MI424-WR FIOS Cable modem (unconfirmed)
Verizon's Motorola Set-Top Box (port 8082 and requires auth - unconfirmed)
BeeWare WAF (unconfirmed)
Deny All WAF (unconfirmed)

Mais serais imunisés :

IIS6.0
IIS7.0
lighttpd
Squid
nginx
Cherokee (verified by user community)
Netscaler
Cisco CSS (verified by user community)

Je penses donc plutôt a un exploit DOS, en gros, le flood n'est pas trés important a la vue de la BP mais plutôt en ressource Systèmes causé par une sorte D'"Exploit".

Slowloris me fait dire exploit car il est codé en perl a ce que je vois.

Il utiliseras quand même un protocole TCP 80 pour communiquer avec le Serveur Web, il sera donc géré par ce type de script anti-DDOS, si il dépasses les limites qui sont fixés par vous.

garderer
06/02/2012, 00h49
Slowloris est un programme basique de flood. Donc si les serveurs ou l'utilisateur qui attaque envoie assez de données en fonction de vos limites il fera donc sont travail.

TBC_Ly0n
06/02/2012, 00h18
Bonjour,

De base, le script détectera les floods par saturation de bande passante.
Par contre, si je comprends bien, il ne sera pas en mesure de détecter des DDoS de type Slowloris ?

garderer
05/02/2012, 18h41
Bonjour j'avais déjà posté des solutions, pour éviter le DDOS ici http://forum.ovh.com/showthread.php?t=67535

On passe maintenant à autre chose.

Script ADDOS

Je vous présente aujourd'hui un script, qui et nomé ADDOS (Alerte-DDOS, Anti-DDOS).


- ADDOS c'est quoi ?
Addos est un script gratuit qui permet de détecter et de bloquer via iptables les ip effectuant des attaques de type ddos.

- Le DDOS ?
Le ddos (Distibuate denial of service) sert à remplir la bande passante d'un serveur, ou les ressources d'un serveur.
Il entraine par la suite, la chute de celui-ci.

- ADDOS comment ça marche ?

Il y a deux versions :

Sur un serveur physique, le script va observer la bande passante utilisé par le serveur, si la bande passante dépasse la limite incrémenté par vous même, alors le serveur passera à une vérification par ip.
Il fera 200 phases de vérifications d'ip. Si le nombre de requêtes en 2 secondes par ip, dépasse le nombre que vous avez définie à la configuration, alors le script procédera à un BAN iptables, suivie d'un envoi de mail détaillé, via postfix (inutile d'avoir un serveur mail entier mais juste sortant).

Une autre version pour la virtualisation, qui elle ne regardera pas la bande passante, mais directement le nombre de requetes par ip, il est plus difficile d'observer un réseaux en virtualisation.

-ADDOS fonctionne sur quel système d'exploitation ?

Addos fonctionne sous Debian 6 actuellement.

- à savoir :

Le script a des limites, il s'avère que si vous reçevez des attaques.
Exemple: plus de 30 serveurs en fonction de la capacité serveur.
Alors le script arrivera sûrement à vous envoyer le mail, mais pas à bloquer les sources des attaques. Nous avons effectuer des tests, qui sont très positifs.
Avec le script le serveur reste stable, mais par contre sans, il s'avère que il ne tient pas très longtemps...
Dans tous les cas celui-ci ne pourra que vous aider dans votre administration.

- Quelle utilité ?

Le script va donc vous loguer les attaques reçues et vous les faire parvenir par mail, il est donc plus rapide de faire des abus! Il essaye de bloquer les sources, mais il est limité si la bande passante du serveur et remplie, ou si le serveur sature niveau traitement. Privilégié donc la bande passante, et les ressources, oui c'est sur il faut y mettre le prix.


- Attention :


En fonction de vos limites un "wget" peut s'avérer difficile, je vous conseille donc de le désactiver, si vous faites des manipulations de téléchargements, ou d'augmenter les limites.


- Attention pour le script dédié à la virtualisation :

Pour éviter des bugs sur le script de virtualisation les ban iptables ont été désactivés. Car le réseaux n'est pas gêré de la même façon.
Il sera peut être nécaissaire d'installer le package gcc

Code:
 apt-get install gcc
Si vous n'arrivez pas à lancer le script avec "stoped" faites un

Code:
 killall -9 scriptaddosV.sh.x
Le script devrait fonctionner alors sur debian 5 utilisé par proxmox 1.9


Problème d'envoi du mail d'alerte ?

Tapez la commande :

Code:
 echo 'test' | mail -s "TEST" votreadresse@email.com
Si cela ne fonctionne pas essayez d'installer le package :

Code:
apt-get install postfix
Répondez-y, puis si il vous pose des questions sur la configuration séléctionnez "Site Internet"




FONCTIONNEMENT & INSTALLATION



Se rendre dans le bin

Code:
cd /bin
Ajouter les SOURCES avec nano :

Script pour un serveur physique [scriptaddos.sh] :

Code:
http://www.multiupload.ch/DQ1SHV1FHX
Script pour un serveur virtualisé (Sur serveur maître) [scriptaddosV.sh]

En page [2] sur le forum


Ajout des permissions :

Pour Serveur physique

Code:
chmod 777 scriptaddos.sh.x
Pour Serveur virtualisé

Code:
chmod 777 scriptaddosV.sh.x

Exécution :

Il est préférable d'éxécuter le script en tâche de fond (screen)

Lancer une screen :

Code:
screen -S ADDOS

Dans la screen tapez

Pour serveur physique :

Code:
./scriptaddos.sh.x
Pour serveur virtualisé :

Code:
./scriptaddosV.sh.x

N'oubliez pas d'avoir souscrit à la licence gratuite.


Rappel de la gestion d'une screen :

Obtenir la liste des screen

Code:
screen -ls
Rejoindre la screen

Code:
screen -r ADDOS
Fermer le script ou quitter la screen et la fermer :

Code:
Control + C
Fermer la screen :

Code:
exit
Quittez la screen, en la laissant fonctionner en tâche de fond :

Code:
Control + A + D

Configuration du script :

-Le script vous demandera votre e-mail
-Indiquez l'ip du serveur WAN
-Si vous ne virtualisez pas, indiquer le débit maximum de la bande passante. N'hésitez pas à la première exécution à incrémenter une grande valeur.
-Indiquer le nombre de requêtes maximale par ip, n'hésitez pas a la première exécution à mettre une grande valeur.

Le script procède aux installation des packages, et les scripts nécaissaires, avant l'éxécution un mail de test sera envoyé. Il est conseillé d'utiliser une adresse gmail. Vérifiez sa réception.
Si celui ci ne fonctionne pas. Il n'y a pas de suivi si vous rencontrez des problèmes d'envoie de mail.

Essayez de faire fonctionner la commande :

echo 'MAIL DE VERIFICATION' | mail -s "MAIL VERIF" votreadresse@provider.fr


Fonctionnement :


Le script va donc observer la bande passante du serveur, si vous possédez le script pour serveur physique.
Et si vous posséder le script pour virtualisation, il va donc vous afficher des erreurs si vous n'avez pas de traffic (normal il ne trouve pas les ip pour comparer).

Si les phases de conditions sont respectés, le serveur, ou les serveurs, qui attaquent seront bloqués iptables et un mail d'alerte sera envoyé.


Voici un exemple du mail :

Code:
-------------- A.DDOS ----------------
Pour le IP.IP.IP.IP | DATE : 29-01-2012-07:46:04 PM
La bande passante utilise et de 33821 kbit/s
L adresse ip attaquante et SIP.SIP.SIP.SIP
Elle a effectué 91592 requetes en 2 secondes
--------------------------------------
IP SIP.SIP.SIP.SIP a été bloqué du serveur via iptables
---------------------------------------

####################################### WHOIS #########
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/...-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to 'SIP.SIP.0.0 - SIP.SIP.255.255'

inetnum:        SIP.SIP.0.0 - SIP.SIP.255.255
netname:        FR-OVH-20100119
descr:          Ovh Systems
country:        FR
org:            ORG-OS3-RIPE
admin-c:        OK217-RIPE
tech-c:         OTC2-RIPE
status:         ALLOCATED PA
mnt-by:         RIPE-NCC-HM-MNT
mnt-lower:      OVH-MNT
mnt-routes:     OVH-MNT
mnt-domains:    OVH-MNT
source:         RIPE # Filtered

organisation:    ORG-OS3-RIPE
org-name:        Ovh Systems
org-type:        LIR
address:         OVH SAS
                140 quai du Sartel
                59100 Roubaix
                France
phone:           +33 3 20 20 09 57
fax-no:          +33 3 20 20 09 58
admin-c:         GM84-RIPE
admin-c:         OK217-RIPE
admin-c:         OTC2-RIPE
mnt-ref:         OVH-MNT
mnt-ref:         RIPE-NCC-HM-MNT
mnt-by:          RIPE-NCC-HM-MNT
source:          RIPE # Filtered

role:           OVH Technical Contact
address:        OVH SAS
address:        2 rue Kellermann
address:        59100 Roubaix
address:        France
admin-c:        OK217-RIPE
tech-c:         GM84-RIPE
nic-hdl:        OTC2-RIPE
abuse-mailbox:  abuse@ovh.net
mnt-by:         OVH-MNT
source:         RIPE # Filtered

person:         Octave Klaba
address:        OVH SAS
address:        2 rue Kellermann
address:        59100 Roubaix
address:        France
phone:          +33 9 74 53 13 23
nic-hdl:        OK217-RIPE
abuse-mailbox:  abuse@ovh.net
mnt-by:         OVH-MNT
source:         RIPE # Filtered

% Information related to 'SIP.SIP.0.0/15AS16276'

route:          SIP.SIP.0.0/15
descr:          OVH ISP
descr:          Paris, France
origin:         AS16276
mnt-by:         OVH-MNT
source:         RIPE # Filtered
####################################### PING ##########
PING www-cctld.l.google.com (74.125.230.248) 56(84) bytes of data.
64 bytes from par08s10-in-f24.1e100.net (74.125.230.248): icmp_req=1 ttl=56 time=4.46 ms

--- www-cctld.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 4.464/4.464/4.464/0.000 ms
####################################### CREDITS ########
Script cree par Garderer
####################################### LOGS ###########
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
   SIP.SIP.SIP.SIP.38560 > IP.IP.IP.IP.80: [udp sum ok] UDP, length 50
########################################################




Bonne utilisation, et bonne administration.