Votre société de services en logiciels libres

Obtenir la taille des bases MySQL/MariaDB

26 novembre 2020   
SELECT
	COUNT(*) AS Total_Table_Count
	,table_schema
	,CONCAT(ROUND(SUM(table_rows)/1000000,2),'M') AS Total_Row_Count
	,CONCAT(ROUND(SUM(data_length)/(1024*1024*1024),2),'G') AS Total_Table_Size
	,CONCAT(ROUND(SUM(index_length)/(1024*1024*1024),2),'G') AS Total_Table_Index
	,CONCAT(ROUND(SUM(data_length+index_length)/(1024*1024*1024),2),'G') Total_Size
FROM information_schema.TABLES
GROUP BY table_schema
ORDER BY SUM(data_length+index_length);

Mettre à jour un fichier .gitignore

4 février 2020   

Vous disposez d’un dépôt GIT qui contient déjà des fichiers ainsi qu’un fichier .gitignore. Vous modifiez maintenant votre fichier .gitignore pour « ignorer » de nouveaux fichiers mais qui ont déjà été enregistrés dans le dépôt : comment les faire « disparaître » ?

  1. « commitez » toutes vos modifications actuelles, y compris votre fichier .gitignore
  2. nettoyez votre cache local ainsi :
    git rm -r --cached .
    1. rm est le « remove »
    2. -r sera récursif
    3. --cached ne supprimera les fichiers que de l’index
    4. . indique que tous les fichiers seront marqués « untracked » (car pour « untracker » un fichier il faut faire un git rm --cached foo.txt)
  3. ajoutez à nouveau tous les fichiers à GIT :
    git add .
  4. enregistrez la modification de .gitignore :
    git commit -m ".gitignore fix"
  5. puis faites le « push »

(source : http://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/)

(Re)générer rapidement un certificat auto-signé

3 septembre 2019   
$ openssl genrsa -out service.key 2048
$ openssl req -new -key service.key -out service.csr
$ openssl x509 -req -days 365 -in service.csr -signkey service.key -out service.crt

Recopiez le fichier *.crt et le fichier *.key « aux bons endroits » et voilà !

Attention, lors de la 2ème étape vous devrez donner le nom du serveur : indiquez bien le nom attendu par l’application cliente, sinon utilisez les extensions (voir le fichier openssl.cnf) qui permettent d’ajouter des subjectAltName.

Configurer un proxy pour le démon dockerd

3 septembre 2019   

Si le démon dockerd possède 3 variables d’environnement pour sa configuration de proxy (HTTP_PROXY, HTTPS_PROXY et NOPROXY), l’accès à une Registry externe (celle du Hub de Docker par exemple) se fait forcément en HTTPS… et c’est là que les petits problèmes commencent…

Pour configurer les variables d’environnement avec un démon géré par systemd, créez le répertoire /etc/systemd/system/docker.service.d puis ajoutez le fichier proxy.conf contenant la définition des variables d’environnement. Par exemple :

[Service]
Environment="HTTP_PROXY=http://mon_proxy:3128"
Environment="HTTPS_PROXY=http://mon_proxy:3129"
Environment="NO_PROXY=localhost,127.0.0.1,172.17.0.1,172.30.1.1"

Puis exécutez les commandes suivantes :

# systemctl dameon-reload
# systemctl restart docker

et un petit test….

$ docker search ubuntu

Attention :

  • si votre proxy utilise un certificat auto-signé, vous devrez rajouter l’option suivante dans la configuration du démon
--insecure-registry proxy:port
  • si votre proxy utilise un certificat signé par une CA, exécutez les commandes suivantes :
$ sudo cp mon_cert.crt /etc/pki/ca-trust/source/anchors
$ sudo update-ca-trust extract

Effectuer la rotation des clés des serveurs SSHD en douceur

2 juin 2018   

Depuis la version 6.8 de OpenSSH (disponible à partir de la RHEL/CentOS 7.4), il est possible d’effectuer des rotations des clés de serveurs pour le service SSH, tout en douceur pour l’utilisateur.

Quel est le problème ?

Vous savez bien que lors d’un changement de clés côté serveur, le client va devoir valider l’empreinte de la nouvelle clé, ce qui risque de surprendre l’utilisateur consciencieux qui va se croire victime d’une attaque Mitm !

Avec la nouvelle version de OpenSSH, plus de risque d’apeurer vos utilisateurs ou clients.

La solution :

  • générez vos nouvelles clés sous /etc/ssh/, avec l’algorithme ecdsa sur 521 bits par exemple:
    # ssh-keygen -t ecdsa -b 521
  • ajoutez les nouvelles directives HostKey après celles qui existent déjà
  • demandez aux utilisateurs d’ajouter l’option « UpdateHostKeys yes » (ou « ask ») dans la configuration de leur client SSH ou bien d’ajouter cette option. Par exemple:
    $ ssh -o UpdateHostKeys=ask serveur
  • lors de la connexion au serveur, le client SSH va aspirer toutes les clés du serveurs et mettre le fichier known_hosts à jour
  • après un « certain temps », estimant que tous les utilisateurs ont aspiré les nouvelles clés, il ne reste plus qu’à l’administrateur qu’à supprimer les anciennes clés !