« LINUX:DDOS » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
Ligne 16 : Ligne 16 :


Au début j'ai utilisé un logiciel nommé No-More-DDos; je me suis tourné ensuite sur le logiciel DDoS-Deflate. Les deux ont une conception très proches et ont une base commune.
Au début j'ai utilisé un logiciel nommé No-More-DDos; je me suis tourné ensuite sur le logiciel DDoS-Deflate. Les deux ont une conception très proches et ont une base commune.
=Principe=
Le script travaille en boucle à intervalle régulier. Il analyse les connexions réseau avec la commande "ss" ou "netstat". Dès qu'une machine dépasse un certain nombre d'entrées et qu'elle n'est pas dans la liste blanche qui l'exclu de la recherche, un mail est envoyé à l'administrateur, une entrée de blocage est ajoutée au FireWall. Les connexions existantes pour cette machine seront éliminées ("tcpkill"). Après le temps de blocage écoulé, il enlève le blocage dans le FireWall. Plusieurs types de FireWall peuvent être utilisés. Nous n'avons pas utilisé le contrôle du taux de transfert ni la restriction à certains ports (80 et 443 par exemple pour le Web).
Dans notre cas, les logiciels "iptables", "ss" et "tcpkill" seront utilisés.




Ligne 70 : Ligne 76 :
----
----
* Le fichier "ignore.host.list" reprend la liste blanche des machines sous forme de son nom. Nous ne l'avons pas modifié. Aucune n'est active.
* Le fichier "ignore.host.list" reprend la liste blanche des machines sous forme de son nom. Nous ne l'avons pas modifié. Aucune n'est active.
Après modification, le service doit être relancé:
systemctl restart ddos.service




Ligne 85 : Ligne 94 :
liste les adresses IP bloquées.
liste les adresses IP bloquées.


Les fichiers de gestion se trouvent dans le répertoire "/var/lib/ddos". Dans mon cas, c'est le fichier "bans.list" qui est concerné. Quand une machine distante est bloquée, un entrée est ajoutée. Chaque ligne comporte une date exprimée en secondes qui définit l'échéance du blocage. Elle est suivie de l'adresse IP de la machine distante et en fin, le nombre de connexions concomitantes effectuées lors de sa détection. Dès que la date limite est atteinte, le blocage est éliminé ainsi que son entrée dans ce fichier.
Les fichiers de gestion se trouvent dans le répertoire "/var/lib/ddos". Dans mon cas, c'est le fichier "bans.list" qui est concerné. Quand une machine distante est bloquée, un entrée est ajoutée. Chaque ligne comporte une date exprimée en secondes qui définit l'échéance du blocage. Elle est suivie de l'adresse IP de la machine distante et en fin, le nombre de connexions concomitantes effectuées lors de sa détection. Dès que la date limite est atteinte, le blocage est éliminé ainsi que son entrée dans ce fichier. On retrouvera un message dans le fichier journal "/var/log/ddos.log".


Dans le cas d'une machine bloquée, par exemple "95.214.27.19", l'entrée suivante a été ajoutées au FireWall, via IPTABLES dans notre cas:
Dans le cas d'une machine bloquée, par exemple "95.214.27.19", l'entrée suivante a été ajoutées au FireWall, via IPTABLES dans notre cas:
Ligne 114 : Ligne 123 :


La seconde nécessite un back-slach devant l'étoile pour qu'elle soit utilisée telle quelle.
La seconde nécessite un back-slach devant l'étoile pour qu'elle soit utilisée telle quelle.
=Test=
Maintenant que tout est en place, il est utile de tester ce logiciel.
On va utiliser le logiciel "slowhttptest".
On va l'installer sur une autre machine Linux qui sera chargée de l’attaque:
dnf install slowhttptest
Evidemment la machine qui attaque ne doit pas être dans le fichier de la liste blanche.
Supposons que la machine protégée a l'adresse IP "192.168.1.2" et possède un service Web "httpd.service".
On lance une commande qui peut ressembler à ceci:
slowhttptest -c 1000 -H -g -o slowhttp -i 10 -r 200 -t GET -u https://192.168.1.2/ -x 24 -p 3
Si tout se passe bien, on recevra un mail et une entrée de blocage sera ajoutée.