Windows 10 – Au secours !

Mes parents m’ont demandé d’effectuer, en fin d’année 2020, une configuration basique sur un ordinateur récent tournant sous Windows et je dois dire que le fonctionnement de cet OS m’irrite au plus haut point.

Lorsqu’un utilisateur sans mot de passe éteint l’ordinateur, c’est le compte de cet utilisateur qui est ouvert automatiquement par défaut. Complètement idiot si vous avez plus d’un utilisateur, cela obligeant un utilisateur à déconnecter le compte ouvert pour se connecter. Seule solution, à priori, mettre en place un mot de passe.

À la première installation du poste, pas de moyen visible de créer un compte local, sans utiliser la ruse qui consiste à saisir plusieurs fois un numéro de téléphone erroné, ou en ne se connectant pas au réseau comme demandé dans une étape précédente.

L’affichage est par défaut zoomé, 150% sur ce poste. Éventuellement utile pour l’accessibilité si vous avez des problèmes de vue, sinon, cela donne une interface horriblement grosse et prenant une place folle en comparaison du contenu.

Créer un autre compte utilisateur local est une plaie.

Des tas de bidules pas utile de base. Une icône LinkedIn, sérieux !? Heureusement, un petit coup de PrivateZilla permet de désactiver pas mal de choses.

Le petit message quand en changeant le navigateur par défaut la première fois, cherche à semer le doute dans la tête de l’utilisateur lambda.

Le petit choix proposé l’OS pour avoir des pubs non ciblées, qui seront donc moins pertinentes. On en pleurerait.

Et pour terminer, un petit coup de W10Privacy dans le système pour être certain de désactiver certains paramètres relatifs à la vie privée et bien cacher dans l’interface.


Et j’en oublie certainement d’autres. Pour le reste, le système a l’air de fonctionner correctement. Alors bien entendu, je pourrais tout supprimer et installer une version de GNU/Linux, mais n’étant pas l’utilisateur principal, je préfère ne pas forcer les choses. Je peux proposer, expliquer, mais c’est à l’utilisateur final de savoir s’il est prêt à devoir retrouver ces marques dans un autre système, avec une autre interface. Il faudrait également être certain de la compatibilité logiciel ou de la présence d’alternative pour certains outils.

En tout cas, cela ne me donne vraiment pas envie de remplacer Windows 7 pour mes quelques sessions de jeux, malgré l’absence de nouvelles mises à jour.

Voilà pour les réactions à chaud. Je me dis donc que j’ai bien fait de passer à MacOS au boulot. Et pourtant, je n’ai pas remarqué tous ces problèmes lors de tests en machine virtuelle Win 10 sur MacOS, mais cela pouvait peut-être provenir de l’utilisation d’une version Entreprise du système. Et qui sait, un jour peut-être, un OS GNU/Linux au quotidien dans le domaine pro, avec une configuration aux petits oignons et utilisable majoritairement au clavier: le rêve.

Il va y avoir du ban !

Je disais il y de cela deux semaines, que j’avais profité du retour d’Unicoda chez OVH pour faire un tour du côté des logs du serveur. En continuant de creuser et d’analyser, l’intérêt de mettre en place un outil automatique, ou un processus d’analyse périodique, se fait clairement sentir.

En effet, en étudiant les résultats de l’agrégation des logs sur une dizaine de jours, je constate avec étonnement que l’url la plus demandée est xmlrpc.php. Pas de problème, la chose est connue, un ou plusieurs bots doivent encore être en train de s’amuser à essayer d’infiltrer la plateforme. En revanche, ce qui m’intrigue au plus haut point, c’est que le nombre d’appels soit si élevé, étant donné que je déploie systématiquement une configuration très agressive contre ceux qui spam les appels à cette page, à savoir ban IP d’une journée via fail2ban.

En allant regarder les logs de fail2ban, je constate que celui-ci se plaint de ne pas arriver à déterminer la date correcte d’un événement. Aie ! Les filtres fonctionnent correctement, mais la configuration n’est plus suffisante pour que le timestamp Apache du log soit bien compris par fail2ban. Après plusieurs essais, je décide d’en profiter pour mettre à jour fail2ban vers une version plus récente que celle fournie de base dans Debian 10, en suivant la procédure décrite sur cette page. Cela ne suffisant pas à résoudre le problème, je passe donc à la modification de mes filtres.

Pour protéger la page xmlrpc.php, j’obtiens finalement la configuration suivante:

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> -.* "(GET|POST|HEAD) /xmlrpc.php HTTP.*"
ignoreregex =
datepattern = ^[^[]*[({DATE})
              {^LN-BEG}

En ce qui concerne la page de login, la mise à jour de la configuration nous donne le filtre ci-dessous.

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> -.* "(GET|POST|HEAD) /wp-login.php HTTP.*"
ignoreregex =
datepattern = ^[^\[]*\[({DATE})
              {^LN-BEG}

Enfin, j’ai remarqué dans les logs qu’un bot testait des urls au pif, afin d’essayer de récupérer des éventuels fichiers de sauvegarde ou de configuration, à l’aide de requêtes HEAD qui terminent donc toutes en erreurs 404. J’en profite donc pour ajouter un nouveau filtre afin de traiter ce cas précis.

[INCLUDES]
before = apache-common.conf

[Definition]

failregex = ^<HOST> -.* "HEAD /.* HTTP.*" 404
ignoreregex =
datepattern = ^[^\[]*\[({DATE})
              {^LN-BEG}

Après ces quelques modifications, mon fail2ban fonctionne à nouveau correctement et il est vraiment satisfaisant de voir les bots se faire bannir automatiquement en temps réel. Cela devrait également permettre de soulager un peu le serveur, en évitant qu’il traite du trafic non désiré.

Depuis combien de temps fail2ban ne fonctionnait plus correctement ? Aucune idée… Et c’est là que le manque de monitoring se fait doucement sentir. Rien qu’avec une agrégation des logs, j’aurais été en mesure de détecter l’augmentation du nombre d’appel tentant de trouver une faille. A une époque, je recevais un mail quotidien de fail2ban résumant le nombre d’IPs bloquées et d’autres métriques similaires, malheureusement, lorsque j’avais tenté de réactiver l’envoi, le mail se faisait systématiquement attraper par les filtres de l’hébergeur, car contenant ce qui était identifié comme des liens vers du contenu malfaisant (spam, piratages, etc).

L’année 2021 s’oriente donc vers la question du monitoring, longtemps laissée de côté, faute de temps, ou pour des questions de priorité. Affaire à suivre. Les mécanismes de blocage automatique des attaquants sont donc à nouveau en place sur Unicoda et en totalité depuis le week-end dernier. Une bonne chose de faite, et qui ne devrait en aucun cas impacter les lecteurs !

Utiliser buildah dans Cloud Build

L’astuce consiste en l’utilisation d’une image buildah officielle, disponible à l’adresse quay.io/buildah/stable. Je distingue trois étapes dans mon build: la construction de l’image, la récupération de la clef de chiffrement depuis le Secret Manager et enfin, le stockage dans le Container Registry. Ce qui nous donne donc la configuration ci-dessous.

Construction de l’image

# Build image with buildah
- id: 'build'
  name: 'quay.io/buildah/stable'
  args: ['buildah', 'bud', '-t', 'mon-image', '.']
  volumes:
    - name: varlibcontainers
      path: '/var/lib/containers'

Récupération de la clef

# Get public key from secret manager
- id: 'get public key'
  name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bash'
  args: [ '-c', "gcloud secrets versions access latest --secret=pub-key --format='get(payload.data)' | tr '_-' '/+' | base64 -d > pub-key.pem" ]

Stockage de l’image

# Push image with buildah
- id: 'push'
  name: 'quay.io/buildah/stable'
  args: ['buildah', 'push', '--encryption-key', 'jwe:./pub-key.pem', 'mon-image', 'eu.gcr.io/$PROJECT_ID/mon-image']
  volumes:
    - name: varlibcontainers
      path: '/var/lib/containers'

Note

Précisons que ce Cloud Build est déclenché en cas de push sur une branche particulière d’un dépôt git, ici hébergé chez GitHub et connecté à la GCP. Ce dépôt contient bien entendu un fichier Dockerfile à sa racine.