Le blogouille de Caro et Nico

Entre famille, sport et aventures !

Lutte anti slowhack / botnet hack.

Bon alors… quand on gère des serveurs qui sont connectés sur internet, malgré le firewall, dès qu’on a une bonne série de services (SSH, FTPs, HTTPs, IMAPs, SMTPs, POP3s, etc…) on se retrouve avec un PAQUET de tentative d’intrusions, du genre plusieurs à la minute… à force cela devient fatiguant et fait tourner les machines pour rien.

En utilisant une bonne combinaison d’outils, on arrive à bien contenir les attaques basiques de type brute force venant de la même IP. En particulier avec les outils Fail2Ban et DenyHosts. Par contre depuis plusieurs mois je fait face à un nouveau type de problème, des milliers d’addresses IP différentes qui tentent toute une combinaison de login et mot de passe différents, genre « classique », mais à chaque fois, une seule unique IP tente une combinaison, puis quelques secondes après, c’est une autre IP qui tente une combinaison légèrement différente. Ca a l’air bien foutu, mais difficile à bloquer, en fait il y a quelques parades. 

Par exemple Dovecot logge se genre de choses

2017-11-12 14:44:08 auth-worker(7082): Info: sql(eleanor,101.187.110.152): unknown user (given password: password)

 

Et voilà l ‘adresse IP 101.187.110.152 qui tente la combinaison eleanor/password … je serais curieux de savoir ce qui se passe si ce script d’un botnet tombe sur un login valide, à priori je penche pour de l’envoi de spam.

En tout cas, voilà comment j’ai procédé pour limiter les ennuis :

Augmenté la fréquence de synchronisation de DenyHosts, à 5 minutes. Il y a une limite hardcodée de 50 hôtes à chaque sync, mais cela fait tout de même 15000 hôtes par jour à récupérer qui seront bloqués, en mettant un filet large de sélection, genre DOWNLOAD_THRESHOLD à 2 et SYNC_DOWNLOAD_RESILIENCY = 5h

Ensuite sur fail2ban, on peut mettre quelques filtres REGEX pour capturer ces tentatives de botnet sommes toutes basiques. Genre :

,<HOST>\): unknown user \(given password: 123456
,<HOST>\): unknown user \(given password: password
,<HOST>\): unknown user \(given password: web
,<HOST>\): unknown user \(given password: russ

Et en ajoutant quelques filtres sur les mots de passe basiques, on récupère un paquet d’adresse IP (j’en ai eu environ 70000 par jour !!) et avec un bon ban genre de plusieurs semaines, et ben voili voilou, bien tranquille, le nombre de de tentatives d’intrusions a complètement diminué, par un facteur 100.

Bon ban ! 

 

Aliases pour Postfix

Pour créer des alias pour postfix (liste de distribution)

Editer le fichier

/etc/aliases

Ajouter les alias sous le format :

nomalias:abcdef@ereoeri.com, defgrer@erer.com, ererieri@ererr

(le dernier email ne contient pas de virgule de séparation, possibilité aussi de les mettres sur plusieurs lignes)

Et ensuite compiler la base aliases.db avec la commande (root) :

newaliases

Clean up sur Ubuntu 12.04 LTS

Bon après passage (sans problème) sur Ubuntu 12.04 LTS, j’ai cherché à faire un clean up des packages inutiles. Cet article est très utile :

Cleaning up a Ubuntu GNU/Linux system

Et voilà les packages à installer et les commandes à faire pour purger le tout :

sudo apt-get autoclean 
sudo apt-get install localepurge 
sudo apt-get install deborphan 
sudo deborphan | xargs sudo apt-get -y remove --purge

Debian migration disque à disque

Impossible de trouver une documentation complète sur Internet, alors voilà ma contribution. Comment migrer une machine Debian d’un disque existant, (interne ide) vers un disque externe (usb), en copiant toutes les données, puis en installer tout ce quiva bien pour le boot, puis inverser les disques.

Article mis à jour en Décembre 2012, pour prendre en compte le passage à Grub2.

J’ai du faire cette migration pour cause de secteurs défectueux sur un disque IBM du linutop, puis par la suite migration vers SSD sur Linutop4

– monter le nouveau disque en USB, le brancher, il arrive sur /dev/sdb
– le disque actuel est sur /dev/sda (vérifier tout cela avec la commande fdisk -l qui list les interfaces et disques présents sur la machine)

– utiliser fdisk -l pour visualiser la configuration des partitions du disque d’origine.

Le mieux c’est d’utiliser gparted pour créer la structure de disque propre, c’est à dire une primaire (1), avec le flag en « boot », qui ne commence pas sur le secteur 1, mais un peu plus loin, sinon Grub2 ne pourra pas s’installer sur la MBR. Puis à la fin du disque je fais une partition étendue avec dedans une partition swap.

on obtient :

 Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *         113        7037    55613440   83  Linux
/dev/sda2            7037        7298     2098072    5  Extended
/dev/sda5            7037        7298     2097048   83  Linux

formater la partition principale (ext3)
mkfs.ext3 /dev/sdb1

formater la partition de swap
mkswap /dev/sdb5

creer et monter un point d’entrée pour le nouveau disque
mkdir /nouveau-dd
mount /dev/sdb1 /nouveau-dd/

Recréer les répertoires spéciaux sur le nouveau disque
mkdir /nouveau-dd/dev
mkdir /nouveau-dd/dev/pts
mkdir /nouveau-dd/proc

Mettre tous les services à l’arrêt (mysql, proftpd, samba, apache2 etc etc..)
Copier les fichiers depuis la racine, en ne copiant que le filesystem en cours (donc ne copie pas /nouveau-dd)
cp -ax / /nouveau-dd

suivre l’état de la copie avec une autre session terminal, via df et watch qui affiche la chose toutes les 30 secs.
watch -n 30 df -h

Attention c’est assez lent… il faut compter plusieurs heures en fonction du matériel. Sinon on peut « déplacer » par avance les gros dossiers users et lancer la copie système après pour éviter un arrêt trop long.

ok maintenant faire une installation de MBR et Grub sur le nouveau disque
on éteint, on échange les disques, et c’est parti !

Cette partie est un peu plus complexe avec Grub2, car il y a des UUID de partitions à purger, sinon on ne pourra pas booter.

grub-install –root-directory=/nouveau-dd /dev/sdb

Ensuite sur le nouveau disque il faut editer le fichier de config de Grub2, qui se trouve dans /boot/grub/grub.cfg et rechercher

root=UUID=ab123456…

par root=/dev/sda1

On échange les disques, on reboot. Le premier redémarrage devrait se faire, mais tout de suite on lance un update-grub pour mettre à jour la config, et récréer les UUID correctement.

Bon courage !!