Impossible de faire fonctionner correctement portsentry

Bonjour à tous,

J’essaye de configurer portsentry comme il faut sur ma lenny mais en vain…

J’ai essayé en le couplant avec iptables, mais aussi avec le hosts.deny, mais rien n’y fait lorsque j’effectue un simple scan (sans options de bourrin) avec nmap, j’aperçois toujours mes ports. Ce qui, me semble t-il n’est pas normal. Je dirais même qu’il en montre plus qu’avant…

J’ai donc suivi les tutoriels disponibles sur le net dont celui-là, mais rien n’y fait.

Voici le contenu de mes fichiers :

hosts.deny :

ALL: 192.168.0.10 : DENY ALL: 127.0.0.1 : DENY ALL: 192.168.0.10 : DENY ALL: 127.0.0.1 : DENY ALL: 10.0.2.15 : DENY (Ma VM)

portsentry.ignore :

[code]# IPs from /etc/portsentry/portsentry.ignore.static:
#127.0.0.1/32
0.0.0.0

dynamically fetched IPs(via ifconfig -a):

#192.168.0.10
#127.0.0.1[/code]

Ça veut donc dire, que je ne devrais rien obtenir d’un nmap en local avec les deux interfaces, mais :

Starting Nmap 4.62 ( http://nmap.org ) at 2009-09-12 11:29 CEST Interesting ports on 192.168.0.10: Not shown: 1711 closed ports PORT STATE SERVICE 139/tcp open netbios-ssn 445/tcp open microsoft-ds 554/tcp filtered rtsp 9100/tcp filtered jetdirect

D’avance merci :smt002

Que contient le fichier /etc/default/portsentry ?

Merci de ta réponse Niloo, voici le contenu :

[code]# /etc/default/portsentry

This file is read by /etc/init.d/portsentry. See the portsentry.8

manpage for details.

The options in this file refer to commandline arguments (all in lowercase)

of portsentry. Use only one tcp and udp mode at a time.

TCP_MODE="tcp"
UDP_MODE=“udp”
[/code]

Dans ce fichier j’ai ceci :

[code]# /etc/default/portsentry

This file is read by /etc/init.d/portsentry. See the portsentry.8

manpage for details.

The options in this file refer to commandline arguments (all in lowercase)

of portsentry. Use only one tcp and udp mode at a time.

TCP_MODE="atcp"
UDP_MODE=“audp”[/code]

Salut,

J’ai donc modifié le fichier /etc/default/portsentry en conséquence, mais j’obtiens toujours quelque chose avec un nmap, pourtant en consultant /var/lib/portsentry/portsentry.history, il bloque bien les IP après des nmap :

1252963044 - 09/14/2009 23:17:24 Host: 192.168.0.10/192.168.0.10 Port: 53 TCP Blocked 1252963162 - 09/14/2009 23:19:22 Host: 192.168.0.10/192.168.0.10 Port: 80 TCP Blocked 1252963206 - 09/14/2009 23:20:06 Host: 127.0.0.1/127.0.0.1 Port: 80 TCP Blocked

Je ne comprends pas trop si ce que j’attends est possible ? À savoir ne rien voir en faisant un nmap.

Merci de ton aide. :smt002

De mon côté je ne banni pas via le host.deny mais via iptables, as tu essayé avec iptables ?

Oui également, en retirant le commentaire avant la ligne concernant iptables/linux. Je sens que c’est une erreur bête…

Voici ma conf en espérant que cela te vienne en aide :

/etc/portsentry/portsentry.conf

[quote]TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320"
UDP_PORTS=“1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321”

ADVANCED_PORTS_TCP=“1024"
ADVANCED_PORTS_UDP=“1024"
ADVANCED_EXCLUDE_TCP=”“
ADVANCED_EXCLUDE_UDP=””

IGNORE_FILE="/etc/portsentry/portsentry.ignore"
HISTORY_FILE="/var/lib/portsentry/portsentry.history"
BLOCKED_FILE="/var/lib/portsentry/portsentry.blocked"

RESOLVE_HOST = “0”

BLOCK_UDP="1"
BLOCK_TCP=“1”

KILL_RUN_CMD="/root/bin/BannedIp -f scan -i $TARGET$"

SCAN_TRIGGER=“0”[/quote]

/etc/portsentry/portsentry.ignore

[quote]127.0.0.1
ip_serveur_1
ip_serveur_2[/quote]

/etc/portsentry/portsentry.ignore.static

[quote]127.0.0.1
ip_serveur_1
ip_serveur_2[/quote]

/etc/default/portsentry

[quote]TCP_MODE="atcp"
UDP_MODE=“audp”[/quote]

Salut,

J’ai modifié les fichiers de sorte qu’ils soient exactement les mêmes que les tiens, et cela ne “fonctionne” toujours pas.

Qu’obtiens-tu lors d’un scan nmap ?

Merci de ton aide en tout cas :smt002

Si je me scan je suis banni par iptables.
Tu as modifié KILL_RUN_CMD ?

Oui, j’ai commenté cette ligne (mais plus tard si tout fonctionne j’aimerais envoyer des mails par cette ligne). Mais je préfère prendre les problèmes un à un.

IL semblerait que moi aussi non ? Pourtant je peux faire autant de scan de ports que je veux depuis la même IP, celle-ci sera notée “Bloquée” une fois, mais j’ai l’impression que cela ne change rien.

Le log te montre bien qu’un scan a été bloqué.
Ensuite l’action engendré dépend de la configuration.
Dans mon cas j’appelle le script BannedIp qui stocke l’ip dans un fichier et qui bannit tout requête entrante la concernant.

Et ce script, tu pourrais le partager ? Ça m’intéresse bien :smt001

Voici le script plus bas.

Penses à créer et à adapter si besoin le répertoire DIR.
Il faut également créer le fichier liste avant.
(Ces opérations ne sont pas automatiquement fait dans le script afin d’éviter les bourdes)

Mon script se trouve dans /root/bin mais tu peux le mettre ailleurs.

Utilisation : /root/bin/BannedIp -f -i
Remplace par le fichier dans lequel tu veux stocker la liste.
Remplace par l’ip.

[code]#!/bin/sh

Vars

IPT="/sbin/iptables"
DIR="/root/banned"

Arguments management

while getopts f:i: NAME
do
case $NAME in
f)
FVAL="$OPTARG"
;;
i)
IVAL="$OPTARG"
;;
?)
echo "Usage: $0 : -f -i "
exit
;;
esac
done

Check parameters

if [ ! $FVAL ]
then
echo "Error : no file enter"
exit
fi
if [ ! $IVAL ]
then
echo "Error : no ip enter"
exit
fi
if [ ! -e $DIR ]
then
echo "Error : banned dir not exist"
exit
fi
if [ ! -e “$DIR/$FVAL” ]
then
echo "Error : banned file not exist"
exit
fi

Check valid ip

RES=$(echo $IVAL | egrep ‘^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$’)
if [ ! $RES ]
then
echo "Error : not valid IP"
exit
fi

Add ip in file

echo $RES >> “$DIR/$FVAL”

Check if the ip is added

VERIF=$(grep $RES “$DIR/$FVAL” | wc -l)
if [ ! $VERIF ]
then
echo "Error : add banned ip failed"
exit
fi

Drop packet in and out

$IPT -I INPUT -s $IVAL -j DROP
$IPT -I OUTPUT -d $IVAL -j DROP[/code]

Salut Niloo,

J’ai donc intégré mon script à portsentry en changeant tout ce qu’il faut et … ça marche impeccable ! :mrgreen:

Ton script est vraiment bien et très pratique même dans le cadre d’une utilisation indépendante de portsentry :smt002

J’aurais tout de même une dernière petite question :stuck_out_tongue: (Sinon c’est pas drôle)

Avec l’appel de ce script dans portsentry.conf, est-il toujours utile de faire appel à iptables avant de faire appel au script ? Je crois comprendre que ton script se charge tout seul d’iptables, c’est pour ça que je demande…

En tout cas merci beaucoup pour ton aide précieuse :laughing:

J’utilise également un autre fichier qui configure mon parefeu via iptables.
Le script présenté ici ne vide pas les tables, il fait juste des insertions donc pas de soucis de ce côté là :wink:

D’acc’ :smt002