Bonjour,

J’essaie depuis quelques jours de permettre à mon pare-feu de détecter certains scans de port pour pouvoir les rediriger par la suite (vers des HoneyPots en faite). Actuellement j'essaie simplement de les bloquer.
Ce que je fait est tout simple, je bloque les IP qui essayent d'ouvrir plus d'une vingtaine de connexion TCP avec le flag SYN à 1 et les autres à 0 à la seconde. Cette IP sera bloqué pendant 15 secondes pour faciliter mes tests

Le script fonctionne, mais l'IP est totalement bloqué et je suis obligé de relancé le script si je veux la débloqué.

Donc j'aurais plusieurs questions à vous poser :
1) Cette méthode vous parrait-elle être la bonne pour détecter et bloquer les scans de port ? En connaissez vous une meilleur, plus adapté ?

2) Auriez vous une idée sur la méthode que je pourrait utiliser pour que l'IP soit débloqué au bout de 15 secondes ?

3) Dois-je utiliser "-m recent" depuis le début de la connexion tcp jusqu’à son analyse ?


Voici une partie de mon script : (eth0 = 192.168.168.0; eth1 = 10.0.0.0)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
iptables -t nat -F
iptables -t nat -X
 
## On bloque toutes autres paquets
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#iptables -P FORWARD DROP
 
## Loopback
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
 
## On bloque toutes ip ayant essayer une attaque SYN et on met à jour la
## liste et l'attaque et de nouveau ban pour 15 secondes
iptables -I FORWARD -m recent --name Attaque_Syn -j LOG --log-prefix="Ip_Banned"
iptables -I FORWARD -m recent --name Attaque_Syn --update --seconds 15 -j DROP
 
## Création de la chaine Syn_Flood qui rajoute l'IP à la liste Attaque_Syn
## et reset de la connexion '"--reject-with tcp-reset
iptables -N Syn_FLood
iptables -I SYn_FLood -m recent --set -name Attaque_Syn -p tcp -j REJECT --reject-with tcp-reset
 
## Routeur + NAT
iptables -t nat -I POSTROUTING -o eth0 -s 10.0.0.0/24 -j SNAT --to-source 192.168.1.14
 
## Création de la chaine TesT_Scan et redirection des paquets vers cette ## chaine
iptables -N Test_Scan
iptables -I FORWARD -p tcp -j Test_Scan
 
## On redirige vers la chaine Syn_Flood si l'on detecte un scan de port
iptables -I Test_Scan -p tcp --tcp-flags ALL SYN -i eth1 -o eth0 -m limit --limit 20/s -j ACCEPT
iptables -I Test_Scan -m state --state NEW -p tcp --tcp-flags ALL SYN -i eth1 -o eth0 -m limit --limit 5/minute -j LOG --log-prefix="SYn_FLood"
iptables -I Test_Scan -m state --state NEW -p tcp --tcp-flags ALL SYN -i eth1 -o eth0 -j Syn_FLood
Merci de vos réponses !