[ HOW-TO ] Bloquage attaque DDOS steam avec fail2ban
J'ai tenté d'installer les regles dans le fichier iptables rules mais quand je tente d'acceder à mon firewall via webmin j'obtiens :
Ligne inconnue dans le fichier IPtables : iptables -N REJECT_FLOOD28
Je ne peux pas ajouter les règles directement dans etc/iptables.up.rules ( ce fichier est automatiquement lancé au démarrage du dedié non ? )
j'utilise webmin
starouille
21/11/2012, 22h45
On ne bloque pas un ddos ni avec fail2ban, ni avec iptables. Sauf pour un petit ddos, ça peut être suffisant.
pour iptables, tu te fais un fichiers avec les règles, dans /etc/init.d, et tu t'arrange pour qu'il soit executé au boot du serveur (après avoir confirmé le bon fonctionnement!).

Envoyé par
lypizan
Bonsoir/bonjour,
Vous dites:
Pour commencer on applique quelques règles iptables.
c'est quoi? un fichier? comment faire?
Je possede webadmin, peut-etre ce sera plus simple pour expliquer aussi?
Cordialement
Pardon pour ce up mais je bloque vraiment sur ce tutoriel... j'ai tout compris sauf pour les règles iptables, ou les mettre ?
Merci à vous
Bonsoir/bonjour,
Vous dites:
Pour commencer on applique quelques règles iptables.
# Creation chaine flood udp 28
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP
iptables -A INPUT -i eth0 -p udp --dport "votre_port_du server_de_jeux" -m length --length 28 -j REJECT_FLOOD28
# Creation chaine rejet du flood udp 46
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP
iptables -A INPUT -i eth0 -p udp --dport "votre_port_du server_de_jeux" -m length --length 46 -j REJECT_FLOOD46
c'est quoi? un fichier? comment faire?
Je possede webadmin, peut-etre ce sera plus simple pour expliquer aussi?
Cordialement

Envoyé par
kingteamdunet
bonjour
avec Sécurité: APF (Firewall) et BFD (Brute Force Detection)
comment on ajoute la régler dessus il faut que install iptable en plus?
Désoler pour le retard
Pour ajouter les regles avec le firewall csf il te faudra crée un nouveaux fichier
Code:
nano /etc/csf/csfpre.sh
Rajoute tes regles custom et ensuite restart CSF
Code:
/etc/init.d/csf restart
kingteamdunet
26/09/2010, 12h36
bonjour
avec Sécurité: APF (Firewall) et BFD (Brute Force Detection)
comment on ajoute la régler dessus il faut que install iptable en plus?

Envoyé par
MysK
Toi si je comprends bien, tu ne drop que les paquets de taille 28 et 32 ? Et les paquets de taille 8, 16, etc tu les laisses passer ?
Oui, je drop uniquement les paquets taille 28 et 32. Depuis que j'ai mis ces règles en place, je n'ai jamais eu un seul drop sur ces tailles de paquets. J'ai des serveurs l4d2 pas CSS se qui explique peut être cela.
Toi si je comprends bien, tu ne drop que les paquets de taille 28 et 32 ? Et les paquets de taille 8, 16, etc tu les laisses passer ?

Envoyé par
MysK
salut,
le Regex est il bon ?
A la fin il y a LEN=28 ce qui veut dire que le regex ne prend que les lignes qui contiennent une taille de paquets à 28 ? Ce ne serait pas LEN=(28|46) ?
Dans mon cas, j'ai rejeté tous les paquets allant de 0 à 32 puis les 46 uniquement soit 0:32 et 46
donc dans le regex ne devrais je pas plutot utiliser une chaine 0-9 comme cela ? :
qu'en pensez vous ?
Pourquoi ce faire chier avec fail2ban et combiné iptables + fail2ban ?
iptables seul suffis, sauf si tu veut ban l'ip pendant des heures / jours.
Perso j'utilise ceci :
iptables -N REJECT_FLOOD32
iptables -A REJECT_FLOOD32 -j LOG --log-level info --log-prefix "REJECT_FLOOD LENGTH 32: " -m limit --limit 2/sec
iptables -A REJECT_FLOOD32 -j DROP
iptables -I INPUT -p udp --dport 27015 -m length --length 32 -j REJECT_FLOOD32
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-level info --log-prefix "REJECT_FLOOD LENGTH 28: " -m limit --limit 2/sec
iptables -A REJECT_FLOOD28 -j DROP
iptables -I INPUT -p udp --dport 27015 -m length --length 28 -j REJECT_FLOOD28
Surtout bien faire attention a la règle
iptables -I INPUT -p udp --dport 27015 -m length --length 28 -j REJECT_FLOOD28
J'utilise
-I INPUT au lieu de
-A INPUT pour que la règle soit tout en haut dans iptables.
Depuis que j'ai mis ces règles, ca n'a drop qu'un seul paquet depuis des mois. Faut croire que CSS est plus vulnérable que les serveurs l4d2.
J'ai stabilisé mes serveurs en utilisant 6 fichiers de conf différent au lieu d'un seul.
salut,
le Regex est il bon ?
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
A la fin il y a LEN=28 ce qui veut dire que le regex ne prend que les lignes qui contiennent une taille de paquets à 28 ? Ce ne serait pas LEN=(28|46) ?
Dans mon cas, j'ai rejeté tous les paquets allant de 0 à 32 puis les 46 uniquement soit 0:32 et 46
donc dans le regex ne devrais je pas plutot utiliser une chaine 0-9 comme cela ? :
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=([0-9])
qu'en pensez vous ?

Envoyé par
fugitif
Chez Free c'est gratuit (enfin compris dans l'abo)
Seulement si tu es en dégroupé...
Par default les règle filtre les entrée eth0 donc si tu lance une interface virtuelle exemple eth0:0 ou eth0:1 cela n'aura pas d'influence.
sauf si tu dispose de deux carte réseaux.
Salut, c'était Googley en mode boulet U_u. Désolé.
Merci.
Salut cmer,
Est-ce que fail2ban protège les ports sur les IPs failover ?
J'ai pas l'impression car hier je me suis fait attaquer mon serveur qui est sur le port 27016 de ma seconde IP

Envoyé par
chokapik
Salut,
je pense avoir un problème quelque part.
Depuis que j'utilise ce kernel : Linux 2.6.31.5-xxxx-rt14-ipv6-32, j'ai l'impression qu'il ne prend pas en compte les différentes commandes qui se trouvent au début de ce sujet.
Ce qui a pour effet qu'on s'amuse toujours à faire crasher mes serveurs.
Quelqu'un aurait une solution?
tu n'utilise pas un kernel 1000Hz
chez moi avec le kernel
2.6.32.7-xxxx-std-ipv4-64-hz1000 cela fonctionne bien

Envoyé par
chokapik
Salut,
je pense avoir un problème quelque part.
Depuis que j'utilise ce kernel : Linux 2.6.31.5-xxxx-rt14-ipv6-32, j'ai l'impression qu'il ne prend pas en compte les différentes commandes qui se trouvent au début de ce sujet.
Ce qui a pour effet qu'on s'amuse toujours à faire crasher mes serveurs.
Quelqu'un aurait une solution?
A tu un log ? Message d'erreur ?
Sinon compile toi un kernel perso avec iptables.
chokapik
02/02/2010, 20h32
Salut,
je pense avoir un problème quelque part.
Depuis que j'utilise ce kernel : Linux 2.6.31.5-xxxx-rt14-ipv6-32, j'ai l'impression qu'il ne prend pas en compte les différentes commandes qui se trouvent au début de ce sujet.
Ce qui a pour effet qu'on s'amuse toujours à faire crasher mes serveurs.
Quelqu'un aurait une solution?

Envoyé par
drdada
edit: pour une ip fixe il faut payer un supplement au fai...
Chez Free c'est gratuit (enfin compris dans l'abo)
Peut-etre une faille...
Voila mon ip css: 94.23.222.105:27009
Je te l'avais deja passee en MP mais tu ne la sans doute pas vue.
Code:
srcds_i686[22520]: segfault at 0 ip b1370a77 sp bfad00b0 error 4 in mani_admin_plugin_i486.so[b11ad000+25f000]
C'est ton mani admin plugin qui plante.
Je ne crois pas car juste avant j'avais banni un "pijama fouteur de merde" qui ragais...
je vais essayer de loger tout sa merci.
je vous tien au courant
edit: pour une ip fixe il faut payer un supplement au fai...

Envoyé par
cmer81
Tu ne peu pas demander une IP fixe à ton FAI ?

Envoyé par
cmer81
Dans se cas =>
iptables -N rcon
iptables -A INPUT -p tcp --dport 27015 -j rcon
iptables -A rcon -j LOG --log-level info --log-prefix "RCON : " -m limit --limit 2/sec
iptables -A rcon -s ton_adresse_IP_si_elle_est_fixe -j ACCEPT
iptables -A rcon -j DROP

Envoyé par
cmer81
!!!!ATTENTION!!!!!
Je vient de tomber sur un faille mais alors la plus stupide du monde :/
On a juste a tapez un mot de passe RCON a la con sur HLSW ou autre et OP le serveur crash DIRECT
Code:
rcon from "****:51526": Bad Password
Moe: 4
L 02/01/2010 - 14:34:29: "Moe<141>" say "4"
./srcds_run: line 344: 26521 Segmentation fault $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem
Mon Feb 1 14:34:29 CET 2010: Server restart in 10 seconds
Pour l'instant seule solution drop le TCP
Sur quel jeu ?
!!!!ATTENTION!!!!!
Je vient de tomber sur un faille mais alors la plus stupide du monde :/
On a juste a tapez un mot de passe RCON a la con sur HLSW ou autre et OP le serveur crash DIRECT
Code:
rcon from "****:51526": Bad Password
Moe: 4
L 02/01/2010 - 14:34:29: "Moe<141>" say "4"
./srcds_run: line 344: 26521 Segmentation fault $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem
Mon Feb 1 14:34:29 CET 2010: Server restart in 10 seconds
Pour l'instant seule solution drop le TCP

Envoyé par
drdada
Je me fais toujours attaquer et pourtant fail2ban ne vois rien :s
Comment tester inefficacité de ma manip.
Et comment savoir quel longueur de paquet est utiliser pour la bloquer?
Merci
Avec tcpdump tu peu voir jusqu'à quel longueur de paquets tu peu drop et faire des tests.
Cette commande log tous les paquets qui sont = ou > à 33 bytes
tcpdump -i eth0 -n -p -v 'len >= 33'
Celle là log tous les paquets = à 48 bytes
tcpdump -i eth0 -n -p -v 'len = 48'

Envoyé par
drdada
Justement il n'y a rien d'identifiable en temps que DoS...
Juste :
et une autre hier :
Code:
Jan 30 18:05:26 kernel: srcds_i686[22520]: segfault at 0 ip b1370a77 sp bfad00b0 error 4 in mani_admin_plugin_i486.so[b11ad000+25f000]
Donc je ne sais pas si c'est du DoS ou autre chose, mais mon serveur a ete attaquer et a planter.
J'ai suivi ton tuto a la lettre mais je ne sais pas verifier si il fonctionne bien ou non... (Pour ce qui est des attaque DoS)
C'est ton mani admin plugin qui plante.
essaye de lancer ton serveur dans un screenLog
tu aura un fichier a la racine du dossier de ton serveur, ensuite regarde les dernière ligne avant le crash.
Sinon si tu veux que je teste si tes règle fonctionne donne moi l'ip de ton serveur
Je ne crois pas qu'il lag, c'etais a pendant une freeze time apres un RS, ensuite plus moyen de bouger, message d'erreur "connection probleme", puis reboot du serv css.
ton serveur a lague t'il avant de planter??
'ai suivi ton tuto a la lettre mais je ne sais pas verifier si il fonctionne bien ou non... (Pour ce qui est des attaque DoS)
drop moi une ip d'un de tes serveur préférence css
Justement il n'y a rien d'identifiable en temps que DoS...
Juste :
Jan 31 19:25:39 kernel: srcds_i686[17150]: segfault at 0 ip b603230b sp bfeeb860 error 4 in server_i486.so[b57af000+af2000]
et une autre hier :
Jan 30 18:05:26 kernel: srcds_i686[22520]: segfault at 0 ip b1370a77 sp bfad00b0 error 4 in mani_admin_plugin_i486.so[b11ad000+25f000]
Donc je ne sais pas si c'est du DoS ou autre chose, mais mon serveur a ete attaquer et a planter.
J'ai suivi ton tuto a la lettre mais je ne sais pas verifier si il fonctionne bien ou non... (Pour ce qui est des attaque DoS)
donne moi la ligne de l'attaque stp
Je me fais toujours attaquer et pourtant fail2ban ne vois rien :s
Comment tester inefficacité de ma manip.
Et comment savoir quel longueur de paquet est utiliser pour la bloquer?
Merci

Envoyé par
cmer81
@fugitif
Merci pour tes regles il faut que je fasse des test sur une VM ou le cloud
La règle =>
iptables -A INPUT -p tcp -m state --state INVALID -j LOG --log-level info --log-prefix "DROP INVALID TCP: "
iptables -A INPUT -p tcp -m state --state INVALID -j DROP
iptables -A INPUT -p udp -m state --state INVALID -j LOG --log-level info --log-prefix "DROP INVALID UDP: "
iptables -A INPUT -p udp -m state --state INVALID -j DROP
est a tester, car avec 5 serveur l4d2 j'ai pas mal de LOG et DROP sur cette règle. Et toujours sur les ports des serveurs de jeux.
Je sais pas si elle est efficace, mais mes serveurs plantent toujours autant.
segfault a gogo. C'est coder avec les pieds chez Valve ou quoi ?
Edit: top délire
http://94.23.53.92/
Y a aucun site sur se serveur, il sert juste a DoS où quoi ? OVH ne fait rien ?
Je remercie d'ailleurs Cmer quand il m'as aider a ce moment là Toujours là quand on à un problème.
Il te flood depuis un serveur OVH
94.23.53.92 essaye de drop l'ip
Code:
-A INPUT -s 94.23.53.92 -j DROP
Envoie les log a abuse OVH!!!
Cette meme IP a ddos a 100/Mega le serveur d'un amis a moi la semaine dernière obliger de prendre la main déçut un RPS
@fugitif
Merci pour tes regles il faut que je fasse des test sur une VM ou le cloud
Merci !
La première astuce ne fonctionne pas contre un des membres de la team N2O, qui ce soir vient de crasher notre machine.
Je vais donc essayer cette deuxième soluce, tout en loguant au maximum pour voir un peu comment il fait ça.
Et voila la suite, en boucle depuis 1 heure :
Jan 27 23:13:23 kernel: IPTABLES-27015: IN=eth0 SRC=94.23.53.92 LEN=78 TOS=0x00 PREC=0x00 TTL=63 ID=37523 DF PROTO=UDP SPT=36331 DPT=27015 LEN=58
LEN = 78 ?! Bien au dessus de 28 !!
Donc il faut bloquer la taille 78 aussi, jusqu'à cqu'ils changent de taille ... autrement dis on va être obligé de manger de l'accès disque pour bannir dynamiquement (à moins que quelqu'un ait une solution miracle ?)

Envoyé par
Jaktens
Salut !
Je me demande pourquoi on fixe la taille à 26 et 48, si jamais une bonne âme se sent de répondre
Merci bien pour ce petit plus, j'espère que ça ne va pas bannir des joueurs qui n'ont rien fait de mal, au pire ça fera de la place !
Jaktens, les attaques DDOS utilisent plein de petits paquets pour saturé le serveur. En bloquant ces petits paquets, tu ne touche en aucun cas au serveur et leurs joueurs qui utilisent de plus gros paquets au niveau de la taille.
Tu peu le vérifier avec tcpdump
Code:
tcpdump -i eth0 -n -p udp port 27015
Je me demande aussi pourquoi bloquer seulement les paquets de taille 26 et 48 au lieu de bloquer les paquets 0:48 où 0:28 comme le forum de srcds le préconise.
http://forums.srcds.com/viewtopic/12516
iptables -N REJECT_FLOOD
iptables -A REJECT_FLOOD -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 0:28: ' --log-level info
iptables -A REJECT_FLOOD -j DROP
iptables -A INPUT -i eth0 -p udp --dport 27015 -m length --length 0:28 -j REJECT_FLOOD
Ce code permet de LOG et DROP le paquets tcp / udp source port 0 et les paquets INVALID. Ca permet aussi de se protéger contre certaines attaques.
iptables -A INPUT -p tcp -m state --state INVALID -j LOG --log-level info --log-prefix "DROP INVALID TCP: "
iptables -A INPUT -p tcp -m state --state INVALID -j DROP
iptables -A INPUT -p udp -m state --state INVALID -j LOG --log-level info --log-prefix "DROP INVALID UDP: "
iptables -A INPUT -p udp -m state --state INVALID -j DROP
iptables -A INPUT -p tcp --dport 0 -j LOG --log-level info --log-prefix "TCP port 0 : "
iptables -A INPUT -p tcp --dport 0 -j DROP
iptables -A INPUT -p udp --dport 0 -j LOG --log-level info --log-prefix "UDP port 0 : "
iptables -A INPUT -p udp --dport 0 -j DROP
Salut !
Je me demande pourquoi on fixe la taille à 26 et 48, si jamais une bonne âme se sent de répondre
Merci bien pour ce petit plus, j'espère que ça ne va pas bannir des joueurs qui n'ont rien fait de mal, au pire ça fera de la place !
Oui je dois les tapper une fois?
OU oui je dois faire un fichier SH lancer a chaque demarrage?
Il faut que que les règles ce lance a chaque démarrage de ta machine
Je vient de mettre a jour la fonction de bannissement de Fail2Ban
Ensuite nous allons éditer le fichier iptables-allports.conf pour que l'ip soit complètement bannie du serveur sur tout les ports TCP & UDP
Code:
nano /etc/fail2ban/action.d/iptables-allports.conf
# a la fin du fichier on modifie protocol =
protocol = all
Ensuite mise en place des règles
Code:
/etc/fail2ban/jail.conf
On rajoute a la fin du fichier
Code:
[ddos]
enabled = true
action = iptables-allports
protocol = udp
filter = ddos
logpath = /var/log/iptables.log
maxretry = 1
Avec cette solution L'ip et banni du serveur sur tout les ports cela vous évite de la rajoutez a la main

Envoyé par
cmer81
Oui je dois les tapper une fois?
OU oui je dois faire un fichier SH lancer a chaque demarrage?
Car le oui ne precise pas lequel ^^
Logiquement oui mais apres je ne suis sur a 100%
Il est largement préférable de bloquer les paquets en amont avant qu'ils n'arrive sur ton serveur.
D'accord je vais bloquer tous les ports de mes serveurs de jeux, Merci
Dans ton tuto au debut tu donne des regles IPTABLES, est-ce que ces regles doivent juste etre entrer une fois, ou alors il faut faire un fichier SH lancer a chaque demarrage?
Oui
Edit: Et par exemple si j'ai 2 serveurs, un avec zBlock et l'autre sans. C'est utile que je protege le serveur avec zBlock? (car zBlock bloque normalement les attaques DDOS etc)
Logiquement oui mais apres je ne suis sur a 100%
Il est largement préférable de bloquer les paquets en amont avant qu'ils n'arrive sur ton serveur.
Petite question :
Dans ton tuto au debut tu donne des regles IPTABLES, est-ce que ces regles doivent juste etre entrer une fois, ou alors il faut faire un fichier SH lancer a chaque demarrage?
Merci
Edit: Et par exemple si j'ai 2 serveurs, un avec zBlock et l'autre sans. C'est utile que je protege le serveur avec zBlock? (car zBlock bloque normalement les attaques DDOS etc)

Envoyé par
cmer81
cela fonctionne aussi pour l4d2
Car depuis 48h j'ai 3 de mes 5 serveurs qui plantent un peu trop souvent.
Alors que j'ai un autre serveur sur un port non standard qui est online depuis 165 heures.
Le serveur qui plante le plus est celui du port 27015
cela fonctionne aussi pour l4d2

Envoyé par
cmer81
Cela fonctionne pour L4D mais pour le reste chez pas trop :/ si jamais tu veux que l'on test essaye de me contacter
L4D oui, mais L4D2 aussi ?

Envoyé par
fugitif
Se flood concerne tout les jeux steam ? Car j'ai ouvert 5 nouveaux serveurs left4dead2, et j'ai parfois un crash serveur avec segmentation fault.
Cela fonctionne pour L4D mais pour le reste chez pas trop :/ si jamais tu veux que l'on test essaye de me contacter

Envoyé par
cmer81
Normalement si tes règles Iptables sont appliquer ton serveur ne doit pas crasher car les paquet sont drop a partir du firewall et donc n'atteigne pas tes serveurs de jeux.
Se flood concerne tout les jeux steam ? Car j'ai ouvert 5 nouveaux serveurs left4dead2, et j'ai parfois un crash serveur avec segmentation fault.
Normalement si tes règles Iptables sont appliquer ton serveur ne doit pas crasher car les paquet sont drop a partir du firewall et donc n'atteigne pas tes serveurs de jeux.
Met le maxretry = 2 ou 1
C'est le nombres de tentatives avant que Fail2Ban fasse son boulot.
chokapik
23/12/2009, 10h16
Bonjour,
j'aimerai savoir s'il est possible pour fail2ban de bannir plus rapidement l'ip qui fait une attaque?
Car bien souvent quand y a une attque, mon serveur plante + de 5 secondes puis hop la partie reprend où elle s'était arrêtée
Voici la config
[ddos]
enabled = true
port = 27010,27015,27016,27017,27018,27019,27020,27025,27 037
protocol = udp
filter = ddos
logpath = /var/log/messages
maxretry = 3
bantime = 360000
Et voici l'iptable
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27010 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27016 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27017 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27018 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27020 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27037 length 28
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27010 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27016 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27017 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27018 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27019 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27020 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27037 length 46
Merci
Pensez à bien vérifier que votre fail2ban active bien SYSTEMATIQUEMENT toutes ses chaines iptables, parce qu'apparement ya un bug:
http://forums.ovh.net/showthread.php?t=54482
D'après moi c'est toi qui les a mis. Où alors un script qui se lance au boot.
et qui empêche les règle fail2ban de ce mettre en place d'où mon idée du module firewall fail2ban d'activer.

Envoyé par
Furious13
Non pas de webmin, il n'y a rien d'installé sur la machine à part proftpd et des serveurs de jeux css.
je regarde tout ça merci.
Les règles qui tu a sur ton iptables viennent bien de quelques part ?
D'après moi c'est toi qui les a mis. Où alors un script qui se lance au boot.
Furious13
09/12/2009, 14h44
Non pas de webmin, il n'y a rien d'installé sur la machine à part proftpd et des serveurs de jeux css.
je regarde tout ça merci.

Envoyé par
cmer81
effectivement il te manque les chaine fail2ban
teste
Code:
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start
ensuite regarde si tes chaine sont monter sinon utilise tu un pare-feux du style webmin??
+1
Et en plus la règle OUTPUT est en (policy ACCEPT)
Donc les règles qui sont en dessous ne servent à rien. Tu doit avoir un firewall qui court-circuite les règles fail2ban.
Un sudo /etc/init.d/fail2ban restart devrait faire l'affaire.
effectivement il te manque les chaine fail2ban
teste
Code:
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start
ensuite regarde si tes chaine sont monter sinon utilise tu un pare-feux du style webmin??
Furious13
07/12/2009, 18h40
Bonjour,
Voici la réponse à cette commande (j'ai masqué mon port ssh par xxx)
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:xxx
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:20:21
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1200
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:27000:27015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:27015:27030
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:27014:27050
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27025
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28025
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27035
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27035
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28035
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27045
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27045
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28045
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27035 length 28
REJECT_FLOOD28 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27045 length 28
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27035 length 46
REJECT_FLOOD46 udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27045 length 46
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:xxx
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:20:21
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1200
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:27000:27015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:27015:27030
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:27014:27050
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27015
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28015
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27025
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27025
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28025
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27035
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27035
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28035
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:27045
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:27045
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:28045
Chain REJECT_FLOOD28 (18 references)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `IPTABLES-FLOOD LENGTH 28: '
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain REJECT_FLOOD46 (18 references)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 6 prefix `IPTABLES-FLOOD LENGTH 46: '
DROP all -- 0.0.0.0/0 0.0.0.0/0
salut.
Que done un iptables -L -n il y a bien le chaine DDOS et SSH??
Furious13
07/12/2009, 11h11
Bonjour,
J'ai une erreur dans les logs de fail2ban quand je le lance :
2009-12-07 12:08:31,779 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.3
2009-12-07 12:08:31,779 fail2ban.jail : INFO Creating new jail 'ddos'
2009-12-07 12:08:31,779 fail2ban.jail : INFO Jail 'ddos' uses poller
2009-12-07 12:08:31,790 fail2ban.filter : INFO Added logfile = /var/log/messages
2009-12-07 12:08:31,791 fail2ban.filter : INFO Set maxRetry = 3
2009-12-07 12:08:31,792 fail2ban.filter : INFO Set findtime = 600
2009-12-07 12:08:31,792 fail2ban.actions: INFO Set banTime = 6000
2009-12-07 12:08:31,797 fail2ban.jail : INFO Creating new jail 'ssh'
2009-12-07 12:08:31,797 fail2ban.jail : INFO Jail 'ssh' uses poller
2009-12-07 12:08:31,798 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2009-12-07 12:08:31,798 fail2ban.filter : INFO Set maxRetry = 3
2009-12-07 12:08:31,800 fail2ban.filter : INFO Set findtime = 600
2009-12-07 12:08:31,800 fail2ban.actions: INFO Set banTime = 600
2009-12-07 12:08:31,878 fail2ban.jail : INFO Creating new jail 'proftpd'
2009-12-07 12:08:31,878 fail2ban.jail : INFO Jail 'proftpd' uses poller
2009-12-07 12:08:31,879 fail2ban.filter : INFO Added logfile = /var/log/proftpd/proftpd.log
2009-12-07 12:08:31,880 fail2ban.filter : INFO Set maxRetry = 6
2009-12-07 12:08:31,882 fail2ban.filter : INFO Set findtime = 600
2009-12-07 12:08:31,882 fail2ban.actions: INFO Set banTime = 600
2009-12-07 12:08:31,892 fail2ban.jail : INFO Jail 'ddos' started
2009-12-07 12:08:31,899 fail2ban.actions.action: ERROR iptables -N fail2ban-ddos
iptables -A fail2ban-ddos -j RETURN
iptables -I INPUT -p udp -m multiport --dports 27015,27025,27035 -j fail2ban-ddos returned 200
2009-12-07 12:08:31,901 fail2ban.jail : INFO Jail 'ssh' started
2009-12-07 12:08:31,905 fail2ban.jail : INFO Jail 'proftpd' started
2009-12-07 12:08:31,906 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports xxx -j fail2ban-ssh returned 400
j'ai une erreur sur le fail2ban ddos et même sur le ssh. Je ne comprends pas d'où ça peut venir.
j'ai vérifié, et il y a bien
messages et non pas
messages.log dans jail.conf.
Voila ce que j'obtiens suite à :
Code:
fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/ddos.conf
ks306960:~# fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/ddos.conf
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/ddos.conf
Use log file : /var/log/messages
Results
=======
Failregex
|- Regular expressions:
| [1] IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
|
`- Number of matches:
[1] 0 match(es)
Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Sorry, no match
Look at the above section 'Running tests' which could contain important
information.
Merci par avance
Je suis sous debian lenny 64.
Rat-Thon
06/12/2009, 21h27
vi, exact, dans la version 0.8.4
j'avais pas vu car j'utilise la version "paquet debian" (0.8.3-2sid1)
on va essayer tout ça.
Merci bcp pour la piste

Envoyé par
Rat-Thon
j'avoue ne pas avoir chercher
Attend moi Google, j'arrive
Si tu connaît un peu bash c'est pas très compliquer à faire.
Les IP sont en principe dans /var/log/fail2ban.log, il suffis de faire un whois et récupérer le mail abuse s'il y en a, et de le pipe vers mailx avec un beau log.
Regarde dans /etc/fail2ban/action.d/ il y a déjà un début, il suffis de grep l'email abuse dans le whois et l'envoyer.

Envoyé par
Rat-Thon
j'avoue ne pas avoir chercher
Attend moi Google, j'arrive
A voir pour ton idée
Car en e omment c'est la foire
Code:
2009-12-01 14:58:22,629 fail2ban.actions: WARNING [ddos] Ban 86.69.222.53
2009-12-01 16:30:21,749 fail2ban.actions: WARNING [ssh] Ban 94.23.213.75
2009-12-01 17:30:27,551 fail2ban.actions: WARNING [ssh] Ban 91.121.194.91
2009-12-01 17:52:24,682 fail2ban.actions: WARNING [ssh] Ban 91.121.87.50
2009-12-01 18:10:22,605 fail2ban.actions: WARNING [ssh] Unban 94.23.213.75
2009-12-01 19:10:28,098 fail2ban.actions: WARNING [ssh] Unban 91.121.194.91
2009-12-01 19:32:25,315 fail2ban.actions: WARNING [ssh] Unban 91.121.87.50
2009-12-01 20:34:14,826 fail2ban.actions: WARNING [ssh] Ban 188.165.114.104
2009-12-01 22:14:15,287 fail2ban.actions: WARNING [ssh] Unban 188.165.114.104
2009-12-02 06:25:01,686 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-02 07:38:23,037 fail2ban.actions: WARNING [ddos] Unban 86.69.222.53
2009-12-02 09:42:01,760 fail2ban.actions: WARNING [ssh] Ban 91.121.223.40
2009-12-02 11:22:01,831 fail2ban.actions: WARNING [ssh] Unban 91.121.223.40
2009-12-02 12:23:34,485 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-02 18:02:33,875 fail2ban.actions: WARNING [ddos] Ban 86.69.222.53
2009-12-02 18:04:24,983 fail2ban.actions: WARNING [ddos] 86.69.222.53 already banned
2009-12-02 23:17:48,207 fail2ban.actions: WARNING [ssh] Ban 91.121.159.12
2009-12-03 00:57:48,697 fail2ban.actions: WARNING [ssh] Unban 91.121.159.12
2009-12-03 02:57:35,505 fail2ban.actions: WARNING [ssh] Ban 94.23.47.134
2009-12-03 04:37:36,307 fail2ban.actions: WARNING [ssh] Unban 94.23.47.134
2009-12-03 06:25:02,459 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-03 10:42:34,865 fail2ban.actions: WARNING [ddos] Unban 86.69.222.53
2009-12-03 14:32:35,006 fail2ban.actions: WARNING [ssh] Ban 91.121.18.18
2009-12-03 15:07:40,581 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-03 16:12:35,531 fail2ban.actions: WARNING [ssh] Unban 91.121.18.18
2009-12-03 18:20:22,449 fail2ban.actions: WARNING [ssh] Ban 91.121.211.61
2009-12-03 20:00:22,666 fail2ban.actions: WARNING [ssh] Unban 91.121.211.61
2009-12-03 22:23:14,711 fail2ban.actions: WARNING [ddos] Ban 92.140.156.42
2009-12-03 22:23:15,718 fail2ban.actions: WARNING [ddos] 92.140.156.42 already banned
2009-12-04 02:07:58,875 fail2ban.actions: WARNING [ddos] Ban 92.140.169.102
2009-12-04 02:10:51,023 fail2ban.actions: WARNING [ddos] 92.140.169.102 already banned
2009-12-04 02:10:52,026 fail2ban.actions: WARNING [ddos] Ban 90.20.30.172
2009-12-04 02:10:52,033 fail2ban.actions: WARNING [ddos] 90.20.30.172 already banned
2009-12-04 02:10:53,034 fail2ban.actions: WARNING [ddos] 90.20.30.172 already banned
2009-12-04 06:25:03,925 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-04 09:32:49,624 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-04 09:32:49,715 fail2ban.actions: WARNING [ddos] Ban 85.201.5.189
2009-12-04 11:05:24,277 fail2ban.actions: WARNING [ssh] Ban 91.121.88.201
2009-12-04 12:45:24,723 fail2ban.actions: WARNING [ssh] Unban 91.121.88.201
2009-12-04 15:03:15,207 fail2ban.actions: WARNING [ddos] Unban 92.140.156.42
2009-12-04 18:47:59,614 fail2ban.actions: WARNING [ddos] Unban 92.140.169.102
2009-12-04 18:50:52,775 fail2ban.actions: WARNING [ddos] Unban 90.20.30.172
2009-12-04 21:02:38,754 fail2ban.actions: WARNING [ddos] Ban 86.70.183.252
2009-12-04 21:02:39,763 fail2ban.actions: WARNING [ddos] 86.70.183.252 already banned
2009-12-05 01:30:49,772 fail2ban.actions: WARNING [ssh] Ban 91.121.73.184
2009-12-05 02:12:50,019 fail2ban.actions: WARNING [ddos] Unban 85.201.5.189
2009-12-05 02:38:10,204 fail2ban.actions: WARNING [ddos] Ban 82.121.103.189
2009-12-05 02:38:11,221 fail2ban.actions: WARNING [ddos] 82.121.103.189 already banned
2009-12-05 03:10:49,985 fail2ban.actions: WARNING [ssh] Unban 91.121.73.184
2009-12-05 06:25:02,739 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-05 07:48:26,732 fail2ban.filter : INFO Log rotation detected for /var/log/iptables.log
2009-12-05 13:12:27,312 fail2ban.actions: WARNING [ssh] Ban 70.32.39.144
2009-12-05 13:42:39,275 fail2ban.actions: WARNING [ddos] Unban 86.70.183.252
2009-12-05 14:52:28,253 fail2ban.actions: WARNING [ssh] Unban 70.32.39.144
Rat-Thon
05/12/2009, 13h56
j'avoue ne pas avoir chercher
Attend moi Google, j'arrive

Envoyé par
Rat-Thon
Juste pour info, fail2ban m'envoi un mail quand une ip se fait ban.
Y aurai t'il moyen de créer un script qui envoi un mail type a l'adresse abuse du FAI concerner avec un ptit log...etc... automatiquement
je sais pas si cela serai pris en compte et si cela aboutirai mais si les FAI font leur boulot et préviennent le gars qu'il s'est fait choper a attaquer, il réfléchira peut être.
(Pas de troll sur l'abuse d'ovh, merci )
Google est ton amis
Des scripts existent, suffis de tapoter les bon mots cléf sur ton clavier avec tes mimines.
Rat-Thon
03/12/2009, 20h54
Juste pour info, fail2ban m'envoi un mail quand une ip se fait ban.
Y aurai t'il moyen de créer un script qui envoi un mail type a l'adresse abuse du FAI concerner avec un ptit log...etc... automatiquement
je sais pas si cela serai pris en compte et si cela aboutirai mais si les FAI font leur boulot et préviennent le gars qu'il s'est fait choper a attaquer, il réfléchira peut être.
(Pas de troll sur l'abuse d'ovh, merci )
Rat-Thon
01/12/2009, 15h43

Envoyé par
fugitif
Ton logrotate est HS ou tu a une couille dans le regex de fail2ban ? Car 348563 IP de Ban ça en fait beaucoup.
c'est mon jail.conf qui était mal renseigné.
Et ce n'était pas 348563 IP, mais le log de l'attaque DDOS.

Envoyé par
Rat-Thon
lol, quel con que je suis, forcément, le fichier /var/log/messages.log n'existe pas ...
ça marche mieux :
Je n'ai copié que la fin (ça fait long 348563 lignes).
Maintenant, faut que je trouve pourquoi ça ne ban pas.
Ton logrotate est HS ou tu a une couille dans le regex de fail2ban ? Car 348563 IP de Ban ça en fait beaucoup.
Rat-Thon
30/11/2009, 21h20
Un ptit HS, pourrai tu édité ton quote pour effacer l'ip de mon serveur (j'ai quelques attaques de c... inconnu de nos serveurs alors bon, ...)
pas de souci on va finir par les avoir ces petit c** de lamer a l'usure
Rat-Thon
24/11/2009, 19h25
2009-11-24 20:28:41,716 fail2ban.actions: WARNING [ddos] Ban XX.XX.XXX.XXX
tien, prend ça dans les dents (hé hé)
Merci pour tout copain

Envoyé par
Rat-Thon
en voila une : xx.xxx.xxx.xxx:27015 ...
n'y va pas trop fort ...
Je pense que cela a du fonctionner (j'espère) car je voit en timeout
Rat-Thon
24/11/2009, 19h21
en voila une : XX.XXX.XXX.XXX:27015 ...
n'y va pas trop fort ...
Rat-Thon
24/11/2009, 19h20
bon, je crois que j'ai trouvé :
virer le .log en trop dans le jail.conf.
réponse a la prochain attaque...
(Encore merci)
Ben maintenant rajoute le bon chemin pour le fichier log dans jail.conf [Je pense]
Restart fail2ban drop moi l'ip d'un de tes serveur et je teste
Rat-Thon
24/11/2009, 19h17
lol, quel con que je suis, forcément, le fichier /var/log/messages.log n'existe pas ...
ça marche mieux :
Date template hits:
697139 hit(s): Month Day Hour:Minute:Second
0 hit(s): Weekday Month Day Hour:Minute:Second Year
0 hit(s): Weekday Month Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-Month-Year Hour:Minute:Second[.Millisecond]
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
Success, the total number of match is 348563
However, look at the above section 'Running tests' which could contain important
information.
Je n'ai copié que la fin (ça fait long 348563 lignes).
Maintenant, faut que je trouve pourquoi ça ne ban pas.
Slt dessoler en ce moment pas trop de temp
Essaye avec
Code:
fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/ddos.conf
Car les log s'écrive dans
/var/messages et non
/var/messages.log
MasterOfQuebec
05/11/2009, 23h19

Envoyé par
Sammuel
2009-10-24 19:50:50,608 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.3
2009-10-24 19:50:50,609 fail2ban.jail : INFO Creating new jail 'ddos'
2009-10-24 19:50:50,609 fail2ban.jail : INFO Jail 'ddos' uses poller
2009-10-24 19:50:50,620 fail2ban.filter : INFO Set maxRetry = 3
2009-10-24 19:50:50,621 fail2ban.filter : INFO Set findtime = 600
2009-10-24 19:50:50,622 fail2ban.actions: INFO Set banTime = 6000
2009-10-24 19:50:50,633 fail2ban.jail : INFO Jail 'ddos' started
2009-10-25 06:25:05,908 fail2ban.actions.action: ERROR iptables -D INPUT -p udp -m multiport --dports 27015,27016,27017,27025 -j fail2ban-ddos
iptables -F fail2ban-ddos
iptables -X fail2ban-ddos returned 100
2009-10-25 06:25:05,908 fail2ban.jail : INFO Jail 'ddos' stopped
Selon le message d'erreur je serais porté a dire que tu as mis les règles iptables dans un des fichiers de configuration de fail2ban. Bien sur il faut les entrer dans la console ou les ajouter a son script de configuration du pare-feu.

Envoyé par
Rat-Thon
/etc/fail2ban/filter.d/ddos.conf :
Code:
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
Attaque :
Code:
Oct 23 20:31:22 ns201858 kernel: IPTABLES-FLOOD LENGTH 28: IN=eth0 OUT= MAC=00:1c:c0:a6:7a:d7:00:b0:c2:f6:43:38:08:00 SRC=83.192.90.147 DST=91.121.251.182 LEN=28 TOS=0x00 PREC=0x00 TTL=118 ID=23604 PROTO=UDP SPT=55424 DPT=27015 LEN=8
L'erreur doit venir du regex (si tous tous est correctement configuré) et le problème doit être assez con.
Par contre je viens juste de relire le tutorial et je ne crois pas que sa va bloquer beaucoup d'attaques puisque sa va bloquer selon la taille du paquet que le serveur reçoit.
Code:
iptables -A INPUT -p udp --dport 1331 -m state --state NEW -m recent --set --name floodport1331
iptables -A INPUT -p udp --dport 1331 -m state --state NEW -m recent --update --seconds 10 --hitcount 5 --name floodport1331 -j DROP
iptables -A INPUT -p udp --dport 1331 -j ACCEPT
C'est plus utile selon moi. La règle va limiter les paquets udp classés en tant que nouveaux (bref il peut quand même passer les paquets légitimes normalement) sur le port 1331 a 5 en 10 secondes par ip. Peut être utile sur certain serveurs de jeu et dangereux sur d'autres.
Rat-Thon
28/10/2009, 22h15
un ptit up...
Rat-Thon
25/10/2009, 16h09
Perso, les 2 attaques que j'ai eu proviennent d'ip résidentielle. (2 crétins frustrés d'avoir été ban pour mauvais comportement avec le fameux : "si tu me ban, je fais planter ton serveur...")
Mais c'est sur que c'est toujours celui qui a le plus de BP qui gagne...
MasterOfQuebec
25/10/2009, 16h04
Je crois pas que sa va pouvoir vous aider a bloquer une attaque DDOS. C'est le jeu de celui qui a le plus de bande passante. Si par exemple votre serveur est attaqué depuis 2 autre serveurs dédiés la bande passante utilisé par l'attaque va probablement tourner autour de 120-150 mbits/sec. Alors votre serveur va constamment recevoir plus de 100 mbits/sec (qui est la connexion de ton dédié). Alors la bande passante du serveur va être bouffée a 99.999% (voir plus) par l'attaque et le serveur ne poura pas recevoir les paquets légitimes. Même si l'ip est bannie dans iptables votre serveur sera problablement inaccessible (bande passante de l'attaque >= bande passante de votre serveur). Donc au final fail2ban est un logiciel génial pour analyser vos logs (et prévenir les brute force surtout). Donc une des solutions est d'avoir une bande passante plus importante que le flux généré par l'attaque mais de la bande passante sa coute cher (pour OVH et pour vous, je crois pas me tromper la dessus). Bref installez fail2ban et configurez le correctement (comme sa sa fais un serveur pété de moins) mais croyez pas que sa va pouvoir arrêter une attaque relativement importante (soit venant de 1 serveur dédié minimum ou surtout pas un botnet) sa peut être utile pour bloquer des attaques (buffer overflow, vu les ports de l'exemple?) lancés depuis le PC d'un mec sur sa ligne résidentielle.
Salut,
J'ai un petit problème avec ton script ^^ J'ai un message d'erreur assez bizarre dans les logs de fail2ban :
2009-10-24 19:50:50,608 fail2ban.server : INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.3
2009-10-24 19:50:50,609 fail2ban.jail : INFO Creating new jail 'ddos'
2009-10-24 19:50:50,609 fail2ban.jail : INFO Jail 'ddos' uses poller
2009-10-24 19:50:50,620 fail2ban.filter : INFO Set maxRetry = 3
2009-10-24 19:50:50,621 fail2ban.filter : INFO Set findtime = 600
2009-10-24 19:50:50,622 fail2ban.actions: INFO Set banTime = 6000
2009-10-24 19:50:50,633 fail2ban.jail : INFO Jail 'ddos' started
2009-10-25 06:25:05,908 fail2ban.actions.action: ERROR iptables -D INPUT -p udp -m multiport --dports 27015,27016,27017,27025 -j fail2ban-ddos
iptables -F fail2ban-ddos
iptables -X fail2ban-ddos returned 100
2009-10-25 06:25:05,908 fail2ban.jail : INFO Jail 'ddos' stopped
ksXXXXX:~# fail2ban-client --v
Fail2Ban v0.8.3
ksXXXXX:~# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: ddos
Le jail ddos est bien lancé, mais apparemment il plante... surement quand quelqu'un tente d'attaquer ? Problème de règle IPTABLES ?
Pourtant, j'ai fais exactement ce que tu as indiqué.
Et :
fail2ban-regex /var/log/messages.log /etc/fail2ban/filter.d/ddos.conf
me retourne :
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/ddos.conf
Use single line: /var/log/messages.log
Results
=======
Failregex
|- Regular expressions:
| [1] IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
|
`- Number of matches:
[1] 0 match(es)
Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Sorry, no match
Au niveau d'IPTABLE :
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ddos udp -- anywhere anywhere multiport dport
Chain fail2ban-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Aurais tu une idée ?
Rat-Thon
24/10/2009, 20h52
/etc/fail2ban/filter.d/ddos.conf :
Code:
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
Attaque :
Code:
Oct 23 20:31:22 ns201858 kernel: IPTABLES-FLOOD LENGTH 28: IN=eth0 OUT= MAC=00:1c:c0:a6:7a:d7:00:b0:c2:f6:43:38:08:00 SRC=83.192.90.147 DST=91.121.251.182 LEN=28 TOS=0x00 PREC=0x00 TTL=118 ID=23604 PROTO=UDP SPT=55424 DPT=27015 LEN=8
Montre moi ton fichier /etc/fail2ban/filter.d/ddos.conf ainsi qu'un ligne d'attaque dans ton fichier messages
Rat-Thon
24/10/2009, 20h44
Code:
Running tests
=============
Use regex file : /etc/fail2ban/filter.d/ddos.conf
Use single line: /var/log/messages.log
Results
=======
Failregex
|- Regular expressions:
| [1] IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
|
`- Number of matches:
[1] 0 match(es)
Ignoreregex
|- Regular expressions:
|
`- Number of matches:
Summary
=======
Sorry, no match
Look at the above section 'Running tests' which could contain important
information.
A mon avis, c'est pas bon
Deja bonne nouvelle
Peut me donner un retour de
Code:
fail2ban-regex /var/log/messages.log /etc/fail2ban/filter.d/ddos.conf
Rat-Thon
24/10/2009, 19h56
Youpi, je viens d'avoir mes 2 premières attaques
Bon, pas de lag mais visiblement, fail2ban n'a pas banni.
Une idée ? (si tu veux, je peux te filler mon /var/log/messages de 40804 lignes )
Bonjour.
Je ne connait pas tres bien la
release 2.
Mais si vous avez fail2ban d'installer sur votre machine je vous invite a essayer ceci.
/etc/fail2ban/jail.conf
Rajout de
Code:
[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache2/access*.log
maxretry = 1
ensuite crée un filtre
Code:
[Definition]
failregex = ^ -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =
dite moi si cela fonctionne sinon je chercherai une autre solution pour vous
Bonjour
la release 2 d'oVH ne permet pas à priori d'avoir la possibilité d'intégrer dans IPTABLES des filtres sur des chaines :
# iptables -I INPUT -d xxx.xxx.xxx.xxx -p tcp --dport 80 -m string --to 70 \
--algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP
peut on faire evoluer iptables ? mon but est de bloquer toutes les attaques Dfind (w00tw00t...)
merci de votre aide, je suis en release 2 OVH gentoo
Bonjour cmer81,
Tu devrais préciser dans ton titre que ça ne concerne (sauf erreur)
QUE les serveurs de Jeux.
Ca n'aura aucun effet, sinon risques et complications, sur la majorité des serveurs. (web)
Ensuite tu peux pousser la sécurité encore plus loin en bloquant l'accès rcon a certaine ip
Code:
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 27015 -s "ton-ip" -j ACCEPT
au lieux de
Code:
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 27015 -j ACCEPT
car une nouvelle faille est sortie et avec un simple CFG qui envoie des info au rcon le serveur crash
Rat-Thon
15/10/2009, 00h14
Ok, merci pour cette précision, par contre, mes serveurs sont tous sur port 27015 (mais sur des ips séparées), pas besoin de mettre les règles pour les ports 27025, 27050, 28000 et 29000, le 27015 suffit ?
PS : pas encore mais derrière moi si, donc le vocal...
Salut.
1) Si j'ai plusieurs ips sur plusieurs interfaces virtuels (eth0:0, eth0:1...) faut'il faire une nouvelle regles a chaque fois :
Non pas forcement car le filtrage s'applique a
eth0 or
eth0:1 et un virtuel de
eth0 donc l'attaque passe bien par
eth0
Par contre dans le tuto jais oublier la règle DROP
donc tu peux bien laisser
eth0 a moins que tu utilise deux carte réseaux sur ta machine.
Voici ma conf a moi
Code PHP:
# Creation chaine rejet du flood udp 28
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP
# Drop des flood longueur paquet sur UDP
iptables -A INPUT -i eth0 -p udp --dport 27015 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 27025 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 27050 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 28 -j REJECT_FLOOD28
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 28 -j REJECT_FLOOD28
echo - Drop des flood longueur paquet sur UDP 28 : [OK]
# Creation chaine rejet du flood udp 46
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP
# Drop des flood longueur paquet sur UDP
iptables -A INPUT -i eth0 -p udp --dport 27015 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 27025 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 27050 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 28000 -m length --length 46 -j REJECT_FLOOD46
iptables -A INPUT -i eth0 -p udp --dport 29000 -m length --length 46 -j REJECT_FLOOD46
echo - Drop des flood longueur paquet sur UDP 46 : [OK]
Si jamais tu souhaite que l'on regarde et que l'on teste cela ensemble passe me voir TS si tu ne dort pas
Sinon pour la regex bien trouver
Rat-Thon
14/10/2009, 23h28
merci pour ce tuto, mais j'ai quelques ptites questions :
1) Si j'ai plusieurs ips sur plusieurs interfaces virtuels (eth0:0, eth0:1...) faut'il faire une nouvelle regles a chaque fois :
Code:
# Creation chaine flood udp 28
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A INPUT -i eth0:0 -p udp --dport "votre_port_du server_de_jeux" -m length --length 28 -j REJECT_FLOOD28
# Creation chaine flood udp 28
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A INPUT -i eth0:1 -p udp --dport "votre_port_du server_de_jeux" -m length --length 28 -j REJECT_FLOOD28
ou eth0 suffit pour tout prendre en compte ?
2) Je vois length 28 et 46, mais dans fail2ban, tu marques
Code:
failregex= IPTABLES-FLOOD LENGTH (28|48): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
n'est ce pas 46 ?
meme question que ci dessus, faut il une définition par interface virtuel, ou celle la suffit il ?
Bonjour a tous
Comme vous pouvez voir en ce moment c'est la foire au pyjamas qui flood les serveurs avec des logiciels a la con histoire de pouvoir faire des vidéos sur youtube et ce prendre pour les rois du hack
Je vous présente une solution qui combine fail2ban et iptables.
Pour faire gros on va dire a iptables de nous loguer les paquets indésirables sur nos serveur de jeux.
Pour commencer on applique quelques règles iptables.
Code PHP:
# Creation chaine flood udp 28
iptables -N REJECT_FLOOD28
iptables -A REJECT_FLOOD28 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 28: ' --log-level info
iptables -A REJECT_FLOOD28 -j DROP
iptables -A INPUT -i eth0 -p udp --dport "votre_port_du server_de_jeux" -m length --length 28 -j REJECT_FLOOD28
# Creation chaine rejet du flood udp 46
iptables -N REJECT_FLOOD46
iptables -A REJECT_FLOOD46 -j LOG --log-prefix 'IPTABLES-FLOOD LENGTH 46: ' --log-level info
iptables -A REJECT_FLOOD46 -j DROP
iptables -A INPUT -i eth0 -p udp --dport "votre_port_du server_de_jeux" -m length --length 46 -j REJECT_FLOOD46
Une fois les règles mise en place on installe Fail2Ban
Code:
apt-get install fail2ban
Une fois fail2ban d'installer il va nous falloir crée un filtre pour qu'il puisse lire les lignes des attaques.
Code:
nano /etc/fail2ban/filter.d/ddos.conf
On ajoute
Code:
[Definition]
failregex= IPTABLES-FLOOD LENGTH (28|46): IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC= DST=([0-9]{1,3}\.?){4} LEN=28
Ensuite nous allons éditer le fichier
iptables-allports.conf pour que l'ip soit complètement bannie du serveur sur tout les ports TCP & UDP
Code:
nano /etc/fail2ban/action.d/iptables-allports.conf
# a la fin du fichier on modifie protocol =
protocol = all
Ensuite mise en place des règles dans le fichier
jail.conf
Code:
nano /etc/fail2ban/jail.conf
On rajoute a la fin du fichier
Code:
[ddos]
enabled = true
action = iptables-allports
protocol = udp
filter = ddos
logpath = /var/log/messages
maxretry = 1
On redémarre fail2ban
Code:
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start
Et il nous reste plus qu'a attendre une attaques pour voir apparaitre dans votre fichier
/var/log/fail2ban.log une alerte de type
Code:
2009-10-14 19:11:43,702 fail2ban.actions: WARNING [ddos] Ban 78.22.165.***
Si vous avez des idées ou bien des remarques
Un énorme merci a
azes pour la création du regex