firewall

Une des problématiques principales pour les sites ayant un peu de trafic, c’est la sécurité. C’est un vrai sujet récurrent.

S’il n’est pas possible de sécuriser entièrement un serveur, le but du jeu est de rendre le travail du hacker le plus difficile possible. Pour ce faire, bloquer les scanner de ports et détecter les tentatives d’intrusions sur un serveur hébergeant un site internet est un des prérequis.

Voici donc 3 règles de  pare-feu qui vous aideront :

  • La première partie empêchera le pirate de se connecter sur les ports définis,
  • La deuxième détectera les comportements de connexion étrange, et bannira les IP pendant un temps donné.

Voici donc quelques règles que vous pouvez ajouter à votre firewall.

Editer les règles de pare-feu

Alors la, ça dépend de la distribution que vous utiliser. En règle général, c’est dans iptables (et ip6tables) qu’il faudra ajouter ces lignes. Si ce n’est pas le cas, alors Google pourra vous aider.

Détecter un scan de port ou un comportement anormal

Ici, on va créer un « name » comprenant l’ensemble des ports couramment scannés par les robots : ftp, telnet, smtp, smb, irc, databases. Les règles IPTABLES ayant une limite en nombre de ports, nous aurons deux lignes.
Si un robot essaie de se connecter, la connexion sera également fermée (via DROP).

iptables -A INPUT -p tcp -m multiport --dports 20:21,23,25,465,587,137:139,194,6665:6669 -m recent --set --name SCANNERS --rsource -j DROP
 
iptables -A INPUT -p tcp -m multiport --dports 1433,1434,1521,3306,5432 -m recent --set --name SCANNERS --rsource -j DROP

* Notez bien que les ports peuvent être adaptés selon vos besoins.

Cette ligne vous permettra de bloquer un robot effectuant un scan sur 2 ports (hitcount) de la liste SCANNERS définie ci-dessus, en moins de 3600 secondes (seconds). L’IP détectée sera alors bloquée pendant 3600 secondes.
Malheureusement, la durée entre le scan de deux ports (surveillance) et la durée de bannissement ne peuvent être gérées indépendamment.

iptables -A INPUT -m recent --update --seconds 3600 --hitcount 2 --name SCANNERS --rsource --reap -j DROP

Visualiser les IP black-listées

Pour obtenir la liste des IP bloquées, et éventuellement les rajouter à une « blacklist », voici la commande.

cat /proc/net/xt_recent/SCANNERS

Remise à zéro des compteurs

Dans l’éventualité ou vous auriez besoin de remettre la liste des IP à zéro (si vous vous êtes auto-banni par exemple) :

echo / > /proc/net/xt_recent/SCANNERS

Augmenter la taille de la list d’IP

Le module xt_recent sur lequel est basé cette technique a une taille de stockage relativement limitée (généralement 100). Il est cependant possible d’en augmenter la taille :

cf /sys/module/xt_recent/parameters/ip_list_tot
vi /etc/modprobe.d/xt_recent.conf
options xt_recent ip_list_tot=1000 ip_pkt_list_tot=20

[Merci à Cédrik pour le partage de ses "petites astuces infrastructures" - Image Source]

Vous aimez cet article ? Partagez le.

By TechRevolutions| No Comment | Développement, Tutoriaux
1