Qui cherche à vous pirater ?
Posté : sam. 11 juin 2022 18:52
Bonjour,
Bon, le contrôle d'accès, c'est fait
Et j'ai une idée pour mes temps perdus qui me trotte dans la tête.
Ceux qui ont déjà loué un serveur dédié ou qui ont mis leur pi en accès internet le savent : internet, c'est la guerre ouverte, la jungle, sans police, l'anarchie.
C'est pour cela qu'on a des pare-feu. Mais le pare-feu n'empêche pas la tentative.
Alors pour limité la casse (et les denis de services), on utilise tous fail2ban.
Pour ceux qui ne connaissent pas, fail2ban est exactement ce qu'il veut dire :
C'est un service qui va analyser les logs à la recherche de tentatives de connexion à votre serveur qui ont échoué
Ex : votre pi est accessible via internet par son port 22 en ssh (pas bien, mais vous mettriez le 3022 que ce serait pareil au bout de quelques mois) , un pirate essayera de se connecter en root
Vous avez probablement bloqué l'accès en root mais le pirate essayera quand même. Il se fera jeté chaque fois et ça va remplir les logs
Et là, fail2ban , entièrement paramétrable va suivre vos recommandation qui peuvent être du genre : "si cette ip tente 3 fois en 10 minutes de se connecter en ssh et qu'elle échoue, bannis là moi pour 1 mois".... sauf évidement si c'est mon ip à moi....gros bêta qui a oublié le mot de passe de son propre serveur et se fait bannir.
Pour ça, fail2ban va lancer un ordre à votre firewall (quelqu'il soit) et vous envoyer un email (je déconseille l'usage des mails.....à moins de vouloir faire exploser sa boite mail)
fail2ban va aussi loger ces informations : il peut vous dire : j'ai banni l'ip machin pour violation de la règle tartampion (tartampion = accès ssh ou accès ftp ou accès à votre page admin wordpress ... tout ce que vous voulez : c'est paramétrable)
Et donc vous savez qui fail2ban a banni.
Donc sur votre pi qui répond à un nom de domaine et est accessible en ssh sur le port 22 (pas bien) depuis 2 ans. Regardez ce qui se passe :
C'est 100 voir 400 ip par jours qui se font bannir !
Qui sont ces gens ?
Evidement, je ne vais pas pouvoir le dire
Mais où est localiser cette ip, ça on peut
Alors vous me direz oui mais on s'en fout de toute manière, les pirates utilisent des VPN.
Vrai et faux
Vrai dans les pays où le pirate souhaite cacher son identité (mais que risque-t-il avec vous, vous n'êtes ni la CIA ni le FBI, ni une instance gouvernementale)
Vrai si le pirate vous souhaite vraiment du mal
Mais il y a une majorité de pirates en herbes (on explique en formation en quoi consiste l'attaque en brute force les dénis de services et des étudiants s'inventent des TP !!)
Il y a aussi des entreprises concurrentes à la votre qui ne se gênent pas pour tenter le coup.
Et puis des écoles où c'est carrément enseigné avec travaux pratiques.
Bref, dans une majorité des cas, la tentative de piratages n'est qu'une tentative sans réel volonté de tout casser (elle doit pourtant être bloquée par votre système de sécurité)
Et puis ça me dirait aussi autre chose :
Puisque des pirates (surement la moitié au moins ) utiliseront de VPN : quelle localisation vont-ils choisir ?
En fait je connais déjà les réponses, j'ai déjà fait des stats là-dessus.
Donc je reprends :
fail2ban peut me dire quels ip sont bloquées pour quelle violation de règle
geoip (une bibliothèque python) peut me donner le pays des ip en question
Reste plus qu'à faire :
- une tâche python qui fait tout ça et remplit une base de données avec un horodatage (genre année / mois, ça suffit, si on stocke jour et heure, la base de données va faire 10 Go en 6 mois... je sais ce qui m'attend, on l'a déjà fait par analyse de trames de piratage avec tcpdump)
- une site web avec charts pour représenter les résultats.
Pour ceux qui auraient des doutes, voici un chart réalisé sur juin 2019 avec tcpdump sur un serveur web situé en France qui ne sert qu'à 3 personnes membres d'une association en France de 30 membres vivant tous en France : le trafique provenant de France ne représente que 25% du trafic total
La base de données est déjà modélisées et créée ( 15 minutes : 3 tables)
J'ai longuement hésité : Firebird (léger, complète, facile, ultra-fiable) , sqlite (très léger, trop, limitée : pas de PL) ou Mysql (connue, complète, mais usine à gaz)
Finalement j'ai opté pour Mysql mais je sais que certains vont galérer avec (processus de création de la base de de l'utilisateur qui change selon la version que vous utilisez)
Le script python est déjà réalisé (2h)
La tâche est en place sur un de mes serveurs.
Ne me manque que le site web à faire pour représenter les données.
Une fois fini je mettrai tout ça (les codes) accessibles si vous connaissez déjà fail2ban, vous vous rendrez compte à quel point une protection de ce type est indispensable et à quel point le monde du web est une zone de non droit.
Bon, le contrôle d'accès, c'est fait
Et j'ai une idée pour mes temps perdus qui me trotte dans la tête.
Ceux qui ont déjà loué un serveur dédié ou qui ont mis leur pi en accès internet le savent : internet, c'est la guerre ouverte, la jungle, sans police, l'anarchie.
C'est pour cela qu'on a des pare-feu. Mais le pare-feu n'empêche pas la tentative.
Alors pour limité la casse (et les denis de services), on utilise tous fail2ban.
Pour ceux qui ne connaissent pas, fail2ban est exactement ce qu'il veut dire :
C'est un service qui va analyser les logs à la recherche de tentatives de connexion à votre serveur qui ont échoué
Ex : votre pi est accessible via internet par son port 22 en ssh (pas bien, mais vous mettriez le 3022 que ce serait pareil au bout de quelques mois) , un pirate essayera de se connecter en root
Vous avez probablement bloqué l'accès en root mais le pirate essayera quand même. Il se fera jeté chaque fois et ça va remplir les logs
Et là, fail2ban , entièrement paramétrable va suivre vos recommandation qui peuvent être du genre : "si cette ip tente 3 fois en 10 minutes de se connecter en ssh et qu'elle échoue, bannis là moi pour 1 mois".... sauf évidement si c'est mon ip à moi....gros bêta qui a oublié le mot de passe de son propre serveur et se fait bannir.
Pour ça, fail2ban va lancer un ordre à votre firewall (quelqu'il soit) et vous envoyer un email (je déconseille l'usage des mails.....à moins de vouloir faire exploser sa boite mail)
fail2ban va aussi loger ces informations : il peut vous dire : j'ai banni l'ip machin pour violation de la règle tartampion (tartampion = accès ssh ou accès ftp ou accès à votre page admin wordpress ... tout ce que vous voulez : c'est paramétrable)
Et donc vous savez qui fail2ban a banni.
Donc sur votre pi qui répond à un nom de domaine et est accessible en ssh sur le port 22 (pas bien) depuis 2 ans. Regardez ce qui se passe :
C'est 100 voir 400 ip par jours qui se font bannir !
Qui sont ces gens ?
Evidement, je ne vais pas pouvoir le dire
Mais où est localiser cette ip, ça on peut
Alors vous me direz oui mais on s'en fout de toute manière, les pirates utilisent des VPN.
Vrai et faux
Vrai dans les pays où le pirate souhaite cacher son identité (mais que risque-t-il avec vous, vous n'êtes ni la CIA ni le FBI, ni une instance gouvernementale)
Vrai si le pirate vous souhaite vraiment du mal
Mais il y a une majorité de pirates en herbes (on explique en formation en quoi consiste l'attaque en brute force les dénis de services et des étudiants s'inventent des TP !!)
Il y a aussi des entreprises concurrentes à la votre qui ne se gênent pas pour tenter le coup.
Et puis des écoles où c'est carrément enseigné avec travaux pratiques.
Bref, dans une majorité des cas, la tentative de piratages n'est qu'une tentative sans réel volonté de tout casser (elle doit pourtant être bloquée par votre système de sécurité)
Et puis ça me dirait aussi autre chose :
Puisque des pirates (surement la moitié au moins ) utiliseront de VPN : quelle localisation vont-ils choisir ?
En fait je connais déjà les réponses, j'ai déjà fait des stats là-dessus.
Donc je reprends :
fail2ban peut me dire quels ip sont bloquées pour quelle violation de règle
geoip (une bibliothèque python) peut me donner le pays des ip en question
Reste plus qu'à faire :
- une tâche python qui fait tout ça et remplit une base de données avec un horodatage (genre année / mois, ça suffit, si on stocke jour et heure, la base de données va faire 10 Go en 6 mois... je sais ce qui m'attend, on l'a déjà fait par analyse de trames de piratage avec tcpdump)
- une site web avec charts pour représenter les résultats.
Pour ceux qui auraient des doutes, voici un chart réalisé sur juin 2019 avec tcpdump sur un serveur web situé en France qui ne sert qu'à 3 personnes membres d'une association en France de 30 membres vivant tous en France : le trafique provenant de France ne représente que 25% du trafic total
La base de données est déjà modélisées et créée ( 15 minutes : 3 tables)
J'ai longuement hésité : Firebird (léger, complète, facile, ultra-fiable) , sqlite (très léger, trop, limitée : pas de PL) ou Mysql (connue, complète, mais usine à gaz)
Finalement j'ai opté pour Mysql mais je sais que certains vont galérer avec (processus de création de la base de de l'utilisateur qui change selon la version que vous utilisez)
Le script python est déjà réalisé (2h)
La tâche est en place sur un de mes serveurs.
Ne me manque que le site web à faire pour représenter les données.
Une fois fini je mettrai tout ça (les codes) accessibles si vous connaissez déjà fail2ban, vous vous rendrez compte à quel point une protection de ce type est indispensable et à quel point le monde du web est une zone de non droit.