Script de veille serveur sous Linux et Docker : alertes CVE, silence radio et vrais pièges

Illustration Geekeries d'un script de veille serveur Linux et Docker filtrant le bruit pour détecter les mises à jour de sécurité CVE

Bonjour à tous, quand on administre un serveur Linux qui héberge une vingtaine de conteneurs Docker en production, on finit vite écartelé entre deux extrêmes. Soit on délègue tout à des mises à jour automatiques aveugles (ce que je vous racontais récemment dans mon article sur MariaDB et les surprises de Watchtower et comment ça peut casser silencieusement un schéma de base de données), soit on reprend le contrôle en manuel… au risque d’oublier de vérifier les correctifs pendant trois semaines et de se faire poncer bien comme il faut ! Pour sortir de ce dilemme, j’ai construit un script de veille serveur, léger, en Python, piloté par systemd, qui inspecte l’état réel de la machine deux fois par jour sans jamais toucher à la production.

L’idée de départ est très simple : je voulais un observateur strictement en lecture seule (observer-only), capable de croiser en quelques secondes les paquets APT en attente, les images Docker (qu’elles viennent de Docker Hub, de GitHub ou d’un build local), les extensions WordPress, la fraîcheur des sauvegardes et les unités systemd. Surtout, je voulais qu’il respecte une règle d’or : se taire quand tout va bien, mais ne jamais rater … Lire la suite

Connecteur OpenCTI – AbuseIPDB Blacklist

Connecteur OpenCTI

Bonjour à tous, aujourd’hui, je continue avec OpenCTI parce que je vous ai développé un petit connecteur OpenCTI. J’en ai un peu chié :’-) entre le python qui n’est pas ma tasse de thé et le fait que je démarre avec OpenCTI : je suis pas parti avec des bonus là…^^
Mais du coup je me dis que ca vaut le coup de vous partager un peu de ce que j’ai fait, car il y avait de bon trucs à apprendre notamment autour du format Stix.

L’environnement de development.

Alors c’est probablement la partie la plus simple au départ, il suffit quasiment de suivre le guide du projet il peut y avoir quelques subtilité pour déployer Python sur votre Windows avec VSCode et pip mais globalement ça ne se passe pas si mal.

Une fois votre environnement de dev en place, il faut :

  1. Forker le projet OpenCTI connectors sur votre Github
  2. Faire une branche dédié et basculer dessus
  3. Si comme moi vous créer un nouveau connecteur :
    1. Copier le répertoire template
    2. renommer quelques variables/chemin comme indiqué dans la doc.

Jusqu’ici tout va bien.

Le development

Alors la bonne nouvelle c’est comme il existe déjà plein de connecteurs, vous … Lire la suite

Python vs PowerShell : Parcourir une liste par ensemble de n éléments

Installer Python3 et Pycurl sur CentOS 7

Salut à tous, je vous propose de se pencher sur un problème « tout con » en python que j’ai rencontré il y a un moment déjà : Comment parcourir une liste par ensemble de n éléments ? Et sur lequel j’ai eu du mal à trouver une solution élégante avec python. Pour faire simple, j’avais une (grosse) liste d’IP à scanner avec nmap et, histoire d’être un peu efficace, je voulais utiliser la capacité de nmap à paralléliser ses scans, et comme j’aime bien quand tout est ‘bien carré, bien parallèle » je ne voulais pas faire deux boucles for imbriquées pour faire un parcours linéaire de cette liste.… Lire la suite

Installer Python3 et Pycurl sur CentOS 7

Installer Python3 et Pycurl sur CentOS 7

Salut, aujourd’hui je vous montre comment installer Python3 et Pycurl sur CentOS 7. Une petite procédure qui fait suite à une surprise. Incroyablement, Python 3 n’est toujours pas présent de base dans les repos de CentOS  7. Alors, rien d’insurmontable, il existe 3 méthode d’installation bien expliquées ici, soit au choix :

Ici, je vous remontre l’installation depuis les sources car je ne voulais pas ajouter un repo externe sur le serveur en question, et je ne voulais pas avoir la surcouche SCL pour la suite.

Installer Python 3 depuis l’oeuf les sourcesInstaller Python3 et Pycurl sur CentOS 7

La tout se passe bien, compilation de Python3 depuis les sources  :

curl -O https://www.python.org/ftp/python/3.X.Y/Python-3.X.Y.tgz
yum-builddep python
tar xf Python-3.X.Y.tgz
cd Python-3.X.Y/ 
./configure 
make 
sudo make install

Pour vérifier l’installation :

which python #/usr/bin/python 
which python3 #/usr/local/bin/python3 
python3 --version #Python 3.X.Y 
#Nettoyage 
sudo rm -Rf Python-3.X.Y/ rm Python-3.X.Y.tgz

Il est possible de remplacer l’appel à python pour utiliser la version 3 en ajoutant la ligne suivante dans le ~/.bashrc des utilisateurs :

alias python='/usr/local/bin/python3'

Remarque : il suffit de modifier

… Lire la suite