OVH Community, votre nouvel espace communautaire.

[ HOW-TO ] Bloquage attaque DDOS steam avec fail2ban


Kos95
23/11/2012, 18h56
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

Kos95
23/11/2012, 09h39
Pardon je up

Kos95
22/11/2012, 12h50
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, 23h45
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!).

Kos95
21/11/2012, 21h35
Citation 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

lypizan
26/08/2011, 13h16
upe

lypizan
25/08/2011, 22h44
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

cmer81
15/10/2010, 22h43
Citation 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, 13h36
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?

fugitif
12/03/2010, 14h01
Citation 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.

MysK
09/03/2010, 13h01
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 ?

fugitif
09/03/2010, 11h29
Citation 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.

MysK
08/03/2010, 23h28
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 ?

Abazada
09/02/2010, 03h37
Citation Envoyé par fugitif
Chez Free c'est gratuit (enfin compris dans l'abo)
Seulement si tu es en dégroupé...

cmer81
08/02/2010, 20h05
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.

Googley
08/02/2010, 19h03
Salut, c'était Googley en mode boulet U_u. Désolé.

Merci.

cmer81
08/02/2010, 18h09
salut.

tu a la réponse en debut du topic ici http://forum.ovh.com/showpost.php?p=317810&postcount=3

Googley
08/02/2010, 17h43
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

cmer81
03/02/2010, 20h53
Citation 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

fugitif
03/02/2010, 20h47
Citation 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, 21h32
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?

fugitif
02/02/2010, 11h08
Citation 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)

drdada
02/02/2010, 10h23
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.

cmer81
01/02/2010, 21h02
Code:
srcds_i686[22520]: segfault at 0 ip b1370a77 sp bfad00b0 error 4 in mani_admin_plugin_i486.so[b11ad000+25f000]

drdada
01/02/2010, 20h53
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...

fugitif
01/02/2010, 17h42
Citation Envoyé par cmer81
Tu ne peu pas demander une IP fixe à ton FAI ?

cmer81
01/02/2010, 17h40
elle est dynamique http://forum.ovh.com/showthread.php?t=51547

fugitif
01/02/2010, 17h36
Citation Envoyé par cmer81
css
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

cmer81
01/02/2010, 17h19
css

fugitif
01/02/2010, 17h09
Citation 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 ?

cmer81
01/02/2010, 16h42
!!!!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

fugitif
01/02/2010, 16h37
Citation 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'

fugitif
01/02/2010, 16h06
Citation 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.

cmer81
01/02/2010, 12h45
essaye de lancer ton serveur dans un screenLog
Code:
screen -dmSL
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

drdada
01/02/2010, 09h58
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.

cmer81
31/01/2010, 23h11
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

drdada
31/01/2010, 22h34
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)

cmer81
31/01/2010, 22h27
donne moi la ligne de l'attaque stp

drdada
31/01/2010, 21h00
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

fugitif
30/01/2010, 14h11
Citation 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 ?

DaRk56
30/01/2010, 03h33
Je remercie d'ailleurs Cmer quand il m'as aider a ce moment là Toujours là quand on à un problème.

cmer81
28/01/2010, 19h14
rajoute celle-ci aussi

Code:
94.23.204.37

cmer81
28/01/2010, 00h09
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

Jaktens
27/01/2010, 22h21
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 ?)

fugitif
23/01/2010, 13h03
Citation 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

Jaktens
21/01/2010, 13h46
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 !

cmer81
17/01/2010, 18h11
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

cmer81
17/01/2010, 18h04
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

drdada
17/01/2010, 12h20
Citation Envoyé par cmer81
Oui
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

cmer81
17/01/2010, 06h09
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.

drdada
15/01/2010, 11h36
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)

fugitif
02/01/2010, 14h44
Citation 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

cmer81
01/01/2010, 16h29
cela fonctionne aussi pour l4d2

fugitif
31/12/2009, 14h52
Citation 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 ?

cmer81
31/12/2009, 01h53
Citation 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

fugitif
30/12/2009, 22h11
Citation 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.

cmer81
23/12/2009, 15h20
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.

fugitif
23/12/2009, 14h55
Met le maxretry = 2 ou 1
C'est le nombres de tentatives avant que Fail2Ban fasse son boulot.

chokapik
23/12/2009, 11h16
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

wxop
10/12/2009, 17h19
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

cmer81
10/12/2009, 16h47
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.

fugitif
10/12/2009, 10h26
Citation 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, 15h44
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.

fugitif
09/12/2009, 12h24
Citation 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.

cmer81
07/12/2009, 20h36
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, 19h40
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

cmer81
07/12/2009, 17h46
salut.

Que done un iptables -L -n il y a bien le chaine DDOS et SSH??

Furious13
07/12/2009, 12h11
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, 22h27
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

fugitif
06/12/2009, 19h47
Citation 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.

cmer81
05/12/2009, 15h46
Citation 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, 14h56
j'avoue ne pas avoir chercher

Attend moi Google, j'arrive

fugitif
05/12/2009, 14h20
Citation 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, 21h54
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, 16h43
Citation 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.

fugitif
01/12/2009, 03h59
Citation 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, 22h20
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, ...)

cmer81
24/11/2009, 20h32
pas de souci on va finir par les avoir ces petit c** de lamer a l'usure

Rat-Thon
24/11/2009, 20h25
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

cmer81
24/11/2009, 20h24
Citation 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, 20h21
en voila une : XX.XXX.XXX.XXX:27015 ...

n'y va pas trop fort ...

Rat-Thon
24/11/2009, 20h20
bon, je crois que j'ai trouvé :

virer le .log en trop dans le jail.conf.

réponse a la prochain attaque...

(Encore merci)

cmer81
24/11/2009, 20h19
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, 20h17
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.

cmer81
24/11/2009, 20h10
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
06/11/2009, 00h19
Citation 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.

Citation 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, 23h15
un ptit up...

Rat-Thon
25/10/2009, 17h09
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, 17h04
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.

Sammuel
25/10/2009, 12h05
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, 21h52
/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

cmer81
24/10/2009, 21h49
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, 21h44
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

cmer81
24/10/2009, 21h42
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, 20h56
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 )

cmer81
21/10/2009, 01h35
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

adapt
17/10/2009, 08h39
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

Abazada
15/10/2009, 03h16
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)

cmer81
15/10/2009, 01h43
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, 01h14
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...

cmer81
15/10/2009, 01h10
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
15/10/2009, 00h28
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 ?

cmer81
14/10/2009, 23h27
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