Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 2 mai 2024Blogmotion | Culture web et nouvelles technos

[RedHat] Un générateur pour joindre un AD (winbind, SSSD)

Rejoindre un domaine Microsoft Active Directory à partir d'une machine Linux n'est pas toujours facile. Tout d'abord parce la méthode diffère en fonction des distributions, mais également parce qu'il existe plusieurs façons pour joindre un domaine AD.

J'ai découvert l'existance d'un générateur de script bash pour rejoindre un domaine AD avec Winbind ou SSSD.

SSSD vs Winbind ?

Pourquoi utiliser SSSD plutôt que Winbind ? Voilà une très bonne question.

Pour y répondre je vais prendre (volontairement) de gros raccourcis :

  • Si vous êtes en mono-domaine et mono-forêt alors SSSD est recommandé
  • Si vous disposez de relations d'approbations entre forêts (cross forest AD trusts) alors SSSD nécessite de créer un compte ordinateur dans chaque domaine. Alors que winbind non 🙂

En bref : préférez SSSD qui est plus récent que winbind, il est aussi plus sécurisé et s'appuie sur Kerberos. Notez aussi que SSSD ne sait pas dialoguer avec NTLM.

Le générateur de script (de RedHat)

Le script est compatible avec RHEL 7, RHEL 8 et RHEL 9 (et toutes les distributions dérivées de RHEL dans les mêmes versions: Rocky Linux, AlmaLinux, etc).

➡Accéder au générateur de script (AD Integration Helper)

Malheureusement ce générateur est réservé aux personnes ayant une souscription RedHat. Même si vous profitez des 16 licences développeur gratuites cela ne fonctionnera pas. Mais tout n'est pas perdu. Déjà parce que la documentation officielle RHEL est accessible à tous :

Ce script n'a rien de magique mais il permet aux débutants de ne pas se prendre la tête, grâce aux valeurs saisies en formulaire web et injectés en variables bash. Il fait aussi un backup de vos configurations actuelles par précaution.

Rejoindre un domaine AD à la main avec RHEL 8

Il est tout à fait possible de faire la même chose sans script à la mano.

Dans mon exemple le nom FQDN de mon domaine AD est "BM.LAB", son nom court est "BM" et mon compte permettant de joindre le domaine est "moncompteadmin".

Paquets Winbind :

yum install realmd oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator samba
realm join --user=moncompteadmin --membership-software=samba --client-software=winbind --server-software=active-directory BM.LAB
systemctl enable --now smb

Paquets SSSD :

yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
realm join --user=moncompteadmin --client-software=sssd --server-software=active-directory BM.LAB

Paquets SSSD avec Samba :

yum install realmd oddjob oddjob-mkhomedir sssd adcli samba samba-winbind krb5-workstation
realm discover BM.LAB
realm join -U moncompteadmin --client-software=sssd --membership-software=samba BM.LAB
cat > "/etc/samba/smb.conf" << EOF
[global]
realm = BM.LAB
workgroup = BM
security = ads
kerberos method = secrets and keytab 
template homedir = /home/%U
idmap config * : backend = tdb
idmap config * : range = 10000-199999
idmap config BM : backend = sss
idmap config BM : range = 200000-2147483647
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
machine password timeout = 0 
EOF
systemctl enable --now smb winbind

Tutoriels RHEL

Si ce petit guide rapide ne vous suffit pas, je vous propose également 2 sites qui proposent un tutoriel pour SSSD et Winbind pour RHEL 8 :

Joindre un AD avec Winbind (net ads) :

Joindre un AD avec SSSD (realm) :

⚠ Par défaut n'importe quel utilisateur de l'AD peut se connecter, alors n'oubliez pas d'aller gérer l'authentification SSH dans /etc/pam.d/sshd (comprendre la différence entre requisite, sufficient, required et optional).

Tutoriels Debian / Ubuntu

Si vous êtes sous Debian il faut adapter les noms des paquets :

Conclusion

Si vous êtes arrivés à la fin de cet article et que vous vous demandez pourquoi faire rejoindre une machine Linux dans un domaine AD Microsoft ? c'est vrai que j'aurais du commencer par ça.

La réponse : permettre à des utilisateurs de votre domaine AD de se connecter à des machines Linux via SSH, sans devoir le communiquer le mot de passe root ni leur créer de compte locaux. Si vous êtes tout seul à administrer vos serveurs vous n'aurez probablement pas d'intérêt à réaliser cette jointure. En revanche si vous travaillez en équipe alors dès qu'un petit nouveau arrive il vous suffit de l'ajouter dans les bon groupes pour avoir accès aux machines.

D'un point de vue sécurité : si quelqu'un quitte l'entreprise (ou votre équipe) vous n'aurez pas besoin de changer tous les mots de passe root car il ne les connait pas. En effet il a toujours utilisé son compte nominatif pour se connecter 🙂

J'espère que cet article vous aura éclairé un peu, c'est un vaste sujet et il est difficile d'en parler sans rentrer dans les détails déjà présents dans la documentation RHEL.

En cas d'erreur de connexion jetez un oeil aus logs dans  /var/log/secure sur RHEL ou /var/log/messages sur Debian. Je vous partagerai encore quelques commandes utiles dans un futur article (si j'y pense ^^).

 

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 02/05/2024 | 2 commentaires |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article [RedHat] Un générateur pour joindre un AD (winbind, SSSD) provient de : on Blogmotion.
À partir d’avant-hierBlogmotion | Culture web et nouvelles technos

Visite d’un car régie ultra badass 🤩

Si vous aimez le matos vous allez être servi. Zebra Zone nous emmène visiter un car régie de AMP Visual TV, un prestataire de tournages télévisés multi-caméras :

Et on peut le dire, c'est du lourd ! On ne parle pas ici de quelques techniciens mais d'une véritable société au cœur des retransmissions TV qui arrivent jusqu'à votre écran.

Pour ceux qui en veulent encore :

Enfin, si vous aimé le contenu de Stéphane (Deus Ex Silicium) alors vous aimerez sûrement cette analyse de caméra pro :

Je ne sais pas vous, mais j'adore ce genre de contenu. La qualité des images de Zebra Zone est tellement chouette, on en prends plein les mirettes !

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 24/04/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Visite d’un car régie ultra badass 🤩 provient de : on Blogmotion.

Démontage en règle de la freebox Ultra 🚀

Stéphane Marty s'est attaqué au dernier bébé de Free : la Freebox Ultra. Xavier est allé lui-même expédier ce colis à Stéphane (c'est faux, mais il a mis un mot).

Démontage, analyse des composants, mesures de champs électromagnétiques, consommation. Stéphane Marty passe au crible la dernière box de l'opérateur. En conclusion : une très belle conception, le savoir faire de Free en matière de conception électronique n'est plus à démontrer.

Free a retenu la leçon de la freebox Delta. La Freebox Ultra est beaucoup moins complexe en terme de cartes et de fonctionnalités (plus de DECT, plus de domotique, etc).

En proposant un CPU dernier génération et un support du WiFi 7 dès sa publication en version finale, cette box est prévue pour durer. Et quand on voit aujourd'hui le nombre de Freebox Révolution encore en fonctionnement il n'y pas d'inquiétude à avoir non plus pour celle-ci (seul l'avenir le dira...).

Finalement cette Freebox Ultra est ultra optimisée. Si cette box rencontre un succès ce ne sera pas seulement pour son matériel, mais aussi grâce à l'offre de services que Free a réservé pour cette box :

C’est quoi ce poulet pic.twitter.com/Fu6Mr1Koz0

— Xavier Niel (@Xavier75) January 30, 2024

En effet, dans un contexte d'augmentation permanent des abonnements aux plateformes de diffusion, nombreux sont ceux qui y voient déjà des économies. Au lieu de payer un abonnement à Netflix, Disney+, Prime Vidéo... ils payent un forfait à leur FAI. On se rapproche tout doucement du modèle américain.

On a un peu de mal à s'en souvenir mais lors de son lancement Netflix n'était proposé sur aucune box, et l'accueil des FAI était plutôt froid. Aujourd'hui la situation a bien changé et les opérateurs ont bien compris l'effet levier qu'ils permettent grâce à leur base d'abonnés, tout en prenant une marge "facile" au passage.

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 17/04/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Démontage en règle de la freebox Ultra 🚀 provient de : on Blogmotion.

Quelles différences entre ces câbles HDMI ?

Quelles différences entre ces normes de câbles HDMI : 1.4, 2.0, 2.1... ?

Si toi aussi tu es perdu dans les normes HDMI voici un récapitulatif par la chaine iXPé (RTBF) :

Cette chaine elle vulgarise des sujets autour de la tech et de l'IT (voir playlist ONPDI).

Le tout dans des formats courts, ça se regarde bien 👍

Edit : la suite avec une 2ème vidéo

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 14/04/2024 | Un commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Quelles différences entre ces câbles HDMI ? provient de : on Blogmotion.

[Windows] Fermer toutes les sessions RDP mal fermées

Il arrive qu'il y ait un grand nombre de sessions RDP sur un serveur Windows (environnement TSE/RDS ou non). Chaque connexion déconnectée continue de consommer des ressources comme CPU et RAM.

Voici comment fermer les sessions déconnecter en une ligne de commande PowerShell.

La ligne de commande avec "quser"

C'est grâce à quser que nous pouvons identifier les sessions déconnectées qui ne sont pas fermées :

quser | Where-Object { $_ -notmatch (Get-Date).ToString("dd/MM/yyyy") } | Select-String "Déco" | ForEach {logoff ($_.tostring() -split ' +')[2]}

Que fait cette commande ?

Cette commande ferme toutes les sessions déconnectées qui ne datent pas d'aujourd'hui. En effet je considère qu'une session déconnectées depuis plus d'un jour n'a rien à faire sur une serveur.

⚠ Cela peut engendrer une perte de données si vos utilisateurs ont un logiciel ouvert (comme Word) parce que la session sera fermée en mode forcé (les modifications non enregistrées seront perdues).

Il est vrai que sur Windows Server la traduction française ne permet à l'utilisateur de comprendre la différence entre :

  • Déconnecter
  • Se déconnecter

La première option laisse la session ouverte en arrière plan tandis que la seconde la ferme complètement. Microsoft aurait pu choisir "fermer la session" pour ce soit plus clair pour tout le monde.

Si vous êtes sur une machine Windows Server en langue anglais la ligne de commande ne fonctionnera pas.

Voici une version qui fonctionne en anglais et en français :

quser | Where-Object { ($_ -like '*Déco*' -or $_ -like '*Disc*') -and $_ -notmatch (Get-Date).ToString("dd/MM/yyyy") } | ForEach { logoff ($_.ToString() -split ' +')[2] }

La limite de cette ligne de commande est que le nom d'utilisateur ne devra jamais contenir "déco" ou "Disc" car c'est cet élément qui permet d'identifier une session déconnectée, sinon la session sera systématiquement fermée.

La bonne pratique : définir un délai maximum

Je vous conseille de définir une politique pour limiter la durée des sessions, qu'elles soient actives ou inactives. Vous pouvez le faire par GPO ou bien directement dans les propriétés de votre collection RDS.

Ainsi vous n'aurez même pas besoin d'utiliser cette astuce.

Pour créer une limite de connexion sur votre ferme RDS suivez ce tutoriel.

Conclusion

Si vous faites partie de ceux qui doivent fermer les sessions RDP d'un serveur sur lequel beaucoup de monde "oublie" de se déconnecter, cela devrait vous faire gagner du temps. Que l'on parle d'une ferme RDS, d'un serveur RDS avec ou sans CAL.

Si vous souhaitez que ce script fonctionne en automatique ne le faites pas via le planificateur de tâches, mais par GPO. Et cela ne vous empêche pas de faire une communication *avant* pour avertir les utilisateurs, be smart 🙂

 

 

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 10/04/2024 | 2 commentaires |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article [Windows] Fermer toutes les sessions RDP mal fermées provient de : on Blogmotion.

[Linux] Quelle différence entre sudo et su pour passer root ?

Que vous soyez débutant ou averti vous utilisez forcément les commandes sudo et su. Mais connaissez-vous vraiment le fonctionnement de ces 2 commandes ?

Adrien nous propose une présentation et explication du fonctionnement, particulièrement intéressant avec la portée des variables :

Et surtout,  arrêtez d'utiliser ça :

sudo su -

Pour faire une élévation de privilèges il faut utiliser :

sudo -i

ou alors si vous n'avez pas sudo (ou pas le droit sudo), pour passer root :

su -

Et puis, si vous êtes déjà root, arrêtez de préfixer vos commandes avec sudo quand vous suivez un tutoriel 😀

Si sudo est présent dans le tutoriel que vous suivez c'est que vous devriez être connecté en utilisateur et pas en root. Cela fait partie des bonnes pratiques. Pour autant je ne vois pas d'inconvénient à lancer des commandes en root à partir du moment ou vous avez le même niveau de droit avec sudo et que vous savez ce que vous faites.

Si vous n'êtes pas d'accord avec ça, jetez un œil à cette vidéo de Christophe qui vous fera sûrement changer d'avis :

Et voici la version longue si le sujet vous intéresse vraiment (trèèèèèèèèèès longue je précise) :

Merci Christophe & Adrien.

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 06/04/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article [Linux] Quelle différence entre sudo et su pour passer root ? provient de : on Blogmotion.

Comment vérifier et corriger vos scripts bash ☑️

J'utilise le site shellcheck pour vérifier que je n'ai pas fait d'erreur de syntaxe, déclaré des variables inutilisées, etc.

shellcheck peut fonctionner localement si vous ne souhaitez que vos scripts restent sur votre machine (disponible dans les dépôts de votre distribution) :

$ shellcheck myscript
In myscript line 12:
eof
^-- SC1118: Delete whitespace after the here-doc end token.

Je l'utilise avant de vous partager un script sur Blogmotion et cela me permet de faire une vérification avant publication. Il y a toujours quelques détails à modifier 😉

Je vous partage aussi la présentation d'Adrien D :

Attention aux suggestions de correction sur les doubles quotes, qui peuvent parfois être superflues et casser le script (j'ai eu le cas avec cURL).

Pour faire tourner du code en ligne (bash y compris) je vous rappelle que vous pouvez utiliser le site ideone.

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 29/03/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Comment vérifier et corriger vos scripts bash ☑️ provient de : on Blogmotion.

[Script] Être notifié d’une facture d’eau à payer (Métropole)

 


Les organisations publiques telles que les régies des eaux ne sont pas forcément les mieux dotées en terme de délivrance d'email.

Il est très facile de passer à côté d'une notification de facture à payer, ou pire : de ne jamais recevoir la facture ! Ensuite c'est la relance par courrier et éventuellement les pénalités qui vont avec 🤑

Pour éviter ça j'ai écrit un script bash qui va vérifier tous les jours si une facture est en attente de règlement et me notifie sur mon téléphone via ntfy :

 

Cela fonctionne avec certaines communes de l'agglomération Grenobloise, mais pas que.

Liste des communes de l'agglo compatibles

Avant tout vous devez savoir si votre commune est compatible avec ce script. Pour que cela fonctionne votre commune doit être en "gestion métropole".

3 méthodes pour cela : une facile 2 autres plus destinées aux bidouilleurs. Pas d'inquiétude car peu importe la méthode le résultat sera le même.

Méthode 1 (facile)

Rendez-vous sur cette page https://ael.eauxdegrenoblealpes.fr/ puis cliquer sur votre commune dans le menu.

Prêtez attention au message qui vous informe de qui dépend votre commune :

Si votre commune dépend de "Métropole Alpes Grenoble" le script fonctionnera pour votre commune.

Si votre commune dépend d'autre chose que "Métropole Alpes Grenoble" désolé mais ce script ne fonctionnera pas.

Méthode 2 (avancée)

Rendez-vous sur cette liste :

https://ael.eauxdegrenoblealpes.fr/local/communes.json

Une fois votre commune trouvé, cherchez :

"nomSociete": "METROPOLE"
  • Si votre commune est listée et avec cette valeur alors ce script va fonctionner
  • Si votre commune est listée mais avec une autre valeur que "METROPOLE" en face du champ "nomSociete" alors ce script risque de ne pas fonctionner.

Méthode 3 (avancée en CLI)

Pour les paresseux vous pouvez également vérifier la compatibilité depuis un terminal bash :

curl -s https://ael.eauxdegrenoblealpes.fr/local/communes.json | jq -r '.items[] | select(.nomSociete == "METROPOLE") | .nomCommune'

Cette valeur correspond aux communes qui utilisent le système d'agence en ligne (AEL) de "www.somei.fr" (également visible dans les entêtes HTTP de certaines requêtes) compatible avec ce script. Si votre commune fait partie de la liste retournée alors ce script fonctionnera.

Si vous habitez en dehors de l'agglomération Grenobloise et que cela marche pour vous pensez à le préciser en commentaire 🙂

Téléchargement du script

Récupérez le script depuis mon espace GitHub :

↪ regiesDesEauxGrenoble.sh (raw)

Rendez le script exécutable chmod +x *.sh

puis modifiez les 3 variables obligatoires :

LOGIN="mon@email.fr"
PASSW="xxxxxxxxxxxxxxxx"
NUMCONTRAT="1234567"

Le numéro de contrat se trouve en haut à gauche de votre espace en ligne, sinon sur vos factures.
⚠ à ne pas confondre avec le numéro de compteur.

Enfin pour recevoir la notification avec ntfy renseignez le chemin du script de notification ntfy :

NTFYSCRIPT="/home/pi/ntfy/ntfy-ng.sh"
NTFYTOPIC="topic-ntfy-au-choix"

Pour ne pas recevoir la notification via NTFY commentez la ligne qui commence par $NTFYSCRIPT

Lancement du script

Et voici une trace d'exécution du script :

./regiesDesEauxGrenoble.sh
___ Debut du script v2023.11.30 ___

> conversationId=JS-WEB-Netscape-d2b7b62f-dbbc-4e98-b6d9-c6cf0df682a2

=== [CURL_0] Lecture cookie BigIP ===
> Cookie BigIP=!FEnXYYZzn8rzsY1t3jM/Zi5c...

=== [CURL_1] Recup openToken et MessageId (/generateToken) ===
> OpenToken=openToken-9270a4c3-db52-5573-ccdf-a6548855ff0a3
> MessageId=SMI-WEBAPI-MSG-20240325-123157-874s9fd2-daf2-4cd6-9425-c718ea1011c1

=== [CURL_2] Envoi du formulaire de connexion (/authentification) ===
> tokenAuthentique=50364c12-19ac-87a2-a9b1-c14f2f8415ac

=== [CURL_3] Lecture solde euros (/Facturation) ===
[Facture d'Eau] 34,15€ A REGLER

Et voilà !

Conclusion

Vous n'avez maintenant plus aucune excuse pour payer vos factures en retard !

Vous pouvez ensuite connecter le tout facilement à votre solution domotique, ou laisser le script tourner en crontab.

Je suis content de vous partager ce bout de script car j'ai passé quelques heures dessus pour décortiquer le fonctionnement sans avoir d'API digne de ce nom. Je ne m'attendais pas à devoir faire autant d'étapes avec cURL !

J'espère que ce script vous sera utile! En tout cas c'était un très entrainement pour moi et je sais que cette base me resservira. D'ailleurs je vous partage très bientôt un autre script similaire pour des charges envoyés par un syndic d'immeuble (même problème : les emails arrivent aléatoirement...)

 

 

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 26/03/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article [Script] Être notifié d’une facture d’eau à payer (Métropole) provient de : on Blogmotion.

Comparatif des marques de piles rechargeables⚡🪫

Et de 3! Joffrey vient de sortir le tant attendu comparatif des piles rechargeables (accumulateurs) : prix, capacité, qualité... tout est passé au crible :

Un énorme boulot pour mener tous ces essais, ces achats, ces graphiques, alors bravo à Bricolage c'est cool ! D'ailleurs foncez voir son projet de retrofit.

La seule chose qu'il manque au test c'est la vitesse d'auto-décharge des accumulateurs. C'est pour cette raison que j'achète toujours des piles Eneloop (ou Ikea). Même sans les utiliser elles gardent leur énergie et c'est beaucoup plus pratique d'avoir ce genre d'accu que des accu vides en quelques semaines.

Et vous, surpris des résultats ?

Vous n'aimez pas le RSS : abonnez-vous par email 📥
Vous devriez me suivre sur Twitter : @xhark

Article original écrit par Mr Xhark publié sur Blogmotion le 19/03/2024 | Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons

Cet article Comparatif des marques de piles rechargeables⚡🪫 provient de : on Blogmotion.
❌
❌