PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Active Directory et l’attribut UserAccountControl

jeudi 17 février 2022 à 17:00

I. Présentation

Le schéma de l'Active Directory contient un grand nombre d'attributs qui permettent de stocker les informations propres à un objet (utilisateur, ordinateur, etc.). Certains sont faciles à interpréter, car ils contiennent une valeur texte unique, c'est le cas par exemple de l'attribut "sAMAccountName" pour l'identifiant de connexion, l'attribut "mobile" pour le numéro de téléphone, ou encore l'attribut "whenCreated" qui contient la date de création de l'objet. D'autres attributs sont plus complexes et contiennent une valeur plus compliquée à interpréter : c'est le cas de UserAccountControl qui est l'un des attributs les plus importants de l'annuaire Active Directory.

Dans cet article, nous allons découvrir ensemble l'attribut UserAccountControl de l'Active Directory afin de voir à quoi il sert et nous verrons comment fonctionne la valeur de cet attribut dans le but de la comprendre, de l'interpréter. En tant qu'administrateur système, si vous utilisez l'Active Directory, cela fait partie des choses à connaître.

II. L'attribut UserAccountControl

L'attribut UserAccountControl est indispensable au bon fonctionnement de l'Active Directory, car sa valeur va permettre d'indiquer l'état d'un compte, selon plusieurs critères :

Au sein de l'Active Directory, configurer ces différentes options, il faut regarder l'onglet "Compte" d'un objet utilisateur. Voici un exemple :

Ces différentes options n'ont pas chacune leur attribut dédié, mais un attribut commun : UserAccountControl. Par exemple, si l'on modifie le champ "Nom d'ouverture de session de l'utilisateur", on sait que l'on va modifier la valeur de l'attribut "UserPrincipalName". Par contre, si l'on coche l'option "Le mot de passe n'expire jamais" et "Le compte est désactivé" au sein des options de compte, cela va influencer directement la valeur de l'attribut UserAccountControl, et non pas deux attributs distincts.

Finalement, on peut dire que ces différentes options sont binaires, soit c'est coché, soit c'est décoché. Autrement dit, soit c'est vrai (true donc 1 en binaire), soit c'est faux (false donc 0 en binaire). Je vous parle de valeurs binaires, car l'attribut UserAccountControl utilise la méthode "bitmask", où chaque bit de la valeur de cet attribut va correspondre à une option.

Certains critères sont propres aux utilisateurs, d'autres aux ordinateurs. Voici une liste des propriétés disponibles et qui sont susceptible d'influencer la valeur de l'attribut UserAccountControl :

Indicateur de propriété Valeur hexadécimale Valeur en décimal
SCRIPT 0x0001 1
ACCOUNTDISABLE 0x0002 2
HOMEDIR_REQUIRED 0x0008 8
LOCKOUT 0x0010 16
PASSWD_NOTREQD 0x0020 32
PASSWD_CANT_CHANGE 0x0040 64
ENCRYPTED_TEXT_PWD_ALLOWED 0x0080 128
TEMP_DUPLICATE_ACCOUNT 0x0100 256
NORMAL_ACCOUNT 0x0200 512
INTERDOMAIN_TRUST_ACCOUNT 0x0800 2048
WORKSTATION_TRUST_ACCOUNT 0x1000 4096
SERVER_TRUST_ACCOUNT 0x2000 8192
DONT_EXPIRE_PASSWORD 0x10000 65536
MNS_LOGON_ACCOUNT 0x20000 131072
SMARTCARD_REQUIRED 0x40000 262144
TRUSTED_FOR_DELEGATION 0x80000 524288
NOT_DELEGATED 0x100000 1048576
USE_DES_KEY_ONLY 0x200000 2097152
DONT_REQ_PREAUTH 0x400000 4194304
PASSWORD_EXPIRED 0x800000 8388608
TRUSTED_TO_AUTH_FOR_DELEGATION 0x1000000 16777216
PARTIAL_SECRETS_ACCOUNT 0x04000000 67108864

Les informations du tableau ci-dessus sont issues de la documentation Microsoft.

Passons maintenant à la partie pratique afin de voir comment lire la valeur UserAccountControl et comment exploiter le tableau ci-dessus pour interpréter cette valeur.

III. Comprendre la valeur UserAccountControl

Que ce soit à partir de l'interface graphique ou de PowerShell, on peut consulter l'attribut UserAccountControl d'un objet. Prenons l'exemple d'un utilisateur nommé "florian" et présent dans mon Active Directory.

A partir de la console "Utilisateurs et ordinateurs Active Directory", il faut activer les fonctionnalités avancés pour accéder à l'éditeur d'attributs. Pour cela, il est nécessaire de cliquer sur le bouton "Affichage" dans le menu puis "Fonctionnalités avancées".

Dans les propriétés du compte, via l'onglet "Editeur d'attributs", je retrouve assez facilement l'attribut et sa valeur : 0x10202 en hexadécimal et 66050 en décimal.

D'accord, c'est bien, mais comment convertir cette valeur afin de l'interpréter ? Pour s'aider, on peut s'appuyer sur le tableau ci-dessus et faire un peu de calcul mental (même si l'on verra qu'il y a plus simple). Déjà, au niveau de l'interface graphique, on remarque quelques indications : ACCOUNTDISABLE, NORMAL_ACCOUNT, DONT_EXPIRE_PASSWD.

Si je regarde dans le tableau, j'obtiens les valeurs décimales suivantes :

En additionnant ces trois valeurs, on remarque que : 2 + 512 + 65536 =  66050 ! Dans ce cas, la valeur UserAccountControl signifie que le compte est désactivé, que le mot de passe n'expire jamais et qu'il s'agit d'un utilisateur classique (correspond à un type de compte par défaut).

Autres exemples :

IV. UserAccountControl et PowerShell

Il est temps de passer à la vitesse supérieure et de voir comment exploiter l'attribut UserAccountControl avec PowerShell.

A. Lire l'attribut UserAccountControl avec PowerShell

Commençons par quelque chose de simple : récupérer la valeur UserAccountControl d'un utilisateur. Avec le cmdlet "Get-ADUser", il suffit de sélectionner la propriété UserAccountControl. Voici un exemple pour l'utilisateur "florian" :

Get-ADUser florian -Properties UserAccountControl | Select Name,UserAccountControl
Get-ADUser - UserAccountControl
Get-ADUser - UserAccountControl

On obtient bien la même valeur qu'avec l'interface graphique : tout va bien !

B. PowerShell et les filtres LDAP

La commande Get-ADUser de PowerShell contient un paramètre nommé "-LDAPFilter" qui permet de créer son propre filtre LDAP pour rechercher les utilisateurs dans l'AD. On peut utiliser ce paramètre pour rechercher tous les utilisateurs désactivés dans l'AD car on sait que, dans ce cas, UserAccountControl est égal à 514.

Ce qui donne :

Get-ADUser -Properties UserAccountControl -LDAPFilter "(useraccountcontrol=514)" | ft Name

Cette méthode fonctionne, mais le problème c'est que UserAccountControl peut avoir une valeur plus élevée s'il y a d'autres options activées, comme nous l'avons vu précédemment. Conséquence, le résultat ne sera pas forcément fiable (même si certaines combinaisons sont impossibles).

Afin d'identifier les comptes où le mot de passe est vide, on peut s'appuyer sur le flag "PASSWD_NOTREQD" correspondant à la valeur 32. Si l'on fait 512 + 32 = 544. Notre recherchera sera :

Get-ADUser -Properties UserAccountControl -LDAPFilter "(useraccountcontrol=544)" | ft Name

C. Convertir la valeur UserAccountControl avec PowerShell

Avec PowerShell, on peut convertir la valeur décimale de l'attribut UserAccountControl afin qu'elle soit plus compréhensible. J'ai récupéré un bout de code sur Reddit qui le fait très bien et que l'on peut adapter très facilement pour cibler toute ou partie l'Active Directory. Dans l'exemple ci-dessous, on cible tous les utilisateurs de l'Active Directory.

$HashTable = @{
 1 = 'SCRIPT'
 2 = 'ACCOUNTDISABLE'
 8 = 'HOMEDIR_REQUIRED'
 16 = 'LOCKOUT'
 32 = 'PASSWD_NOTREQD'
 128 = 'ENCRYPTED_TEXT_PWD_ALLOWED'
 256 = 'TEMP_DUPLICATE_ACCOUNT'
 512 = 'NORMAL_ACCOUNT'
 2048 = 'INTERDOMAIN_TRUST_ACCOUNT'
 4096 = 'WORKSTATION_TRUST_ACCOUNT'
 8192 = 'SERVER_TRUST_ACCOUNT'
 65536 = 'DONT_EXPIRE_PASSWORD'
 131072 = 'MNS_LOGON_ACCOUNT'
 262144 = 'SMARTCARD_REQUIRED'
 524288 = 'TRUSTED_FOR_DELEGATION'
 1048576 = 'NOT_DELEGATED'
 2097152 = 'USE_DES_KEY_ONLY'
 4194304 = 'DONT_REQ_PREAUTH'
 8388608 = 'PASSWORD_EXPIRED'
 16777216 = 'TRUSTED_TO_AUTH_FOR_DELEGATION'
 67108864 = 'PARTIAL_SECRETS_ACCOUNT'
}

Get-ADUser -Filter * -Properties UserAccountControl |
   Select-Object Name, UserAccountControl, @{
      Name = 'Flags'
      Expression = {
         $uac = $_.UserAccountControl
         $HashTable[$HashTable.Keys.Where{ $_ -band $uac }] -join '|'
      }
}

Vous pouvez ajuster le filtre si vous voulez (un seul utilisateur, une OU cible, etc.). On obtient un résultat comme celui-ci :

Convertir UserAccountControl avec PowerShell

En plus d'avoir la valeur décimale, il y a le nom des flags donc on peut interpréter facilement la valeur actuelle de l'attribut. Si vous souhaitez obtenir les informations pour les objets "ordinateurs", il suffit de remplacer Get-ADUser par Get-ADComputer.

D. Modifier l'attribut UserAccountControl avec PowerShell

En manipulant les cmdlets Set-ADUser et Set-ADComputer qui permettent respectivement de modifier les utilisateurs et les ordinateurs, on peut agir sur l'attribut UserAccountControl sans s'en rendre compte. En effet, il y a des paramètres intégrés qui agiront directement sur cet attribut, comme "-PasswordNeverExpires" qui permet de gérer l'option "Le mot de passe n'expire jamais" ou "-CannotChangePassword" correspond à "L'utilisateur ne peut pas changer de mot de passe".

Set-ADUser -Identity florian -PasswordNeverExpires $true

Mais, il y a un troisième cmdlet qui est capable d'agir sur l'attribut UserAccountControl : Set-ADAccountControl. Il fonctionne sur le même principe car si l'on veut activer l'option "Le mot de passe n'expire jamais", on doit utiliser :

Set-ADAccountControl -Identity florian -PasswordNeverExpires $true

Désormais, vous êtes en mesure de gérer l'attribut UserAccountControl et vous connaissez son utilité ! Si vous souhaitez vous amuser avec PowerShell et votre Active Directory, je vous recommande de lire mon cours : Administrer l'Active Directory avec PowerShell.

The post Active Directory et l’attribut UserAccountControl first appeared on IT-Connect.

Chrome 100 et Firefox 100 : attention aux changements du user-agent

jeudi 17 février 2022 à 09:28

Avant que Chrome 100 et Firefox 100 arrivent sur nos machines, ce n'est qu'une question de mois au rythme où sont publiées les nouvelles versions de ces deux navigateurs. Cette version "100" pourrait poser des problèmes au niveau du user-agent, une sorte de bug de l'an 2000 revisité. Que se passe-t-il ?

C'est assez rare de parler de Google Chrome et Mozilla Firefox dans le même article, et pourtant cette fois-ci, ils sont concernés par un problème plus ou moins similaire : la gestion du numéro de version "100" au sein du user-agent. Parce que, oui, le numéro de version d'un navigateur ne sert pas seulement à savoir si l'on utilise un logiciel à jour ou non. Ce numéro de version est également utilisé au sein d'une chaîne nommée "user-agent" (agent de l'utilisateur) qui permet d'indiquer aux sites Web différentes informations, comme le navigateur utilisé et sa version.

Pour une machine Windows équipée de Firefox 97, le user-agent ressemblera à ça :

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0

Sur Chrome, ce sera plutôt ça :

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36

La valeur "Mozilla/5.0" au sein du user-agent de Chrome peut vous surprendre ! D'après ce que j'ai compris, cette valeur correspond à la présence du moteur de rendu Gecko et aujourd'hui elle est conservée par tous les navigateurs pour des raisons historiques.

Bref, revenons à notre histoire de version 100. Le user-agent contient un numéro de version, tel que "97.0" ou "98.0.4758.82". La première partie de ce bloc contient le numéro de version majeure, sur deux chiffres. Cependant, avec la sortie de la version 100, ce numéro de version va passer sur 3 chiffres.

Comme certains sites s'appuient sur l'identification du navigateur (par exemple pour bloquer des versions trop anciennes), notamment en analysant la chaîne "user-agent", le passage à la version 100 pourrait créer des blocages. Les développeurs sont sur le coup, et plusieurs solutions sont à l'étude (quitte à figer le numéro de version 99 et utiliser les autres numéros), mais cette problématique n'est pas nouvelle. Il y a un peu plus de 12 ans, lors de la sortie de Firefox 10, il y avait eu un problème similaire avec certaines bibliothèques d'analyses du user-agent, car, à l'époque, on passait d'un chiffre à deux chiffres pour la version majeure.

Côté Chrome, l'affaire porte sur Duda, un kit de développement de sites Web qui n'est pas capable d'interpréter une valeur à trois chiffres. Au lieu de voir Chrome 100, Duda voit Chrome 10. Mais, c'est de l'histoire ancienne, car en quelques heures à peine, les développeurs ont remédié à ce problème. Maintenant, il faut que les sites qui s'appuient sur l'identification du user-agent soient en mesure de négocier ce virage, tout comme les équipes de développement de Chrome et Firefox.

Sachez que Chrome 100 est prévu pour le 29 mars tandis qu'il faudra attendre le 3 mai prochain pour Firefox 100. Cela laisse encore du temps à tout le monde ! Bon, et puis, c'est tout de même une version 100 alors j'espère que les développeurs vont marquer le coup avec des nouveautés importantes. 🙂

Source

The post Chrome 100 et Firefox 100 : attention aux changements du user-agent first appeared on IT-Connect.

Test X-Sense SC07-W, un détecteur de fumée et de monoxyde de carbone

mercredi 16 février 2022 à 16:00

I. Présentation

La protection de son domicile avec des détecteurs de fumée est indispensable pour réagir rapidement en cas d'incendie, mais aussi pour être en conformité vis-à-vis de la loi (et être en bonne posture avec son assurance). Dernièrement, je me suis penché sur l'utilisation des produits X-Sense, une société spécialisée dans les produits pour sécuriser sa maison et plus particulièrement les détecteurs en tout genre. Forcément, ma première question a était de demander si les produits respectaient les normes européennes afin d'être homologués à une utilisation en France, et le fabricant m'a confirmé que oui.

Pour ce premier article, je vais vous parler du produit X-Sense SC07-W qui est vendu à l'unité, par lot de 3 et par lot de 6. Niveau tarif, cela donne :

Le modèle X-Sense SC07-W présente la particularité d'être à la fois détecteur de fumée et de monoxyde de carbone, ce qui explique son tarif. Pour la partie fumée, il s'agit d'un capteur photoélectrique, tandis que pour le CO, c'est un capteur électrochimique. Autant la fumée est visible, alors que le monoxyde de carbone est un gaz incolore et indolore particulièrement dangereux ; il est à l'origine d'une centaine de décès en France, chaque année.

Ce détecteur intègre une technologie nommée Link+ qui va permettre de constituer un réseau pour interconnecter les détecteurs X-Sense. Grâce à ces communications entre les détecteurs, il y a une fonction de relai intégrée : si un détecteur s'active et déclenche son alarme, alors tous les autres détecteurs vont se mettre à sonner également. Une fonction appréciable d'un point de vue de la sécurité.

Découvrons plus en détail le détecteur X-Sense SC07-W.

Fiche produit sur le site officiel

Test X-Sense SC07-W

II. Découverte du X-Sense SC07-W

Le packaging est uniquement en anglais. Je pense que ce point pourra repousser certains utilisateurs, donc c'est dommage, car ce produit est de bonne qualité. Toutefois, la notice est très bien détaillée et disponible en français. Voici quelques informations quant aux fonctionnalités :

Les différents éléments sont bien emballés, chacun dans un sachet différent, et correctement disposé au sein de la boite. Le produit bénéficie d'une garantie gratuite de 7 ans que l'on peut activer en ligne, si l'on n'effectue pas l'inscription en ligne, elle est limitée à 5 ans.

Chaque détecteur est livré avec son socle de montage et un sachet qui contient 3 chevilles et 3 vis pour la fixation. Les supports sont en plastiques rigides et ils m'aspirent confiance ! Clairement, la qualité de fabrication est bonne et les finitions soignées. Après, visuellement, je le trouve un peu trop imposant.

Bien qu'il soit compatible avec le réseau Link+, ce modèle n'intègre pas de puce WiFi. Il ne sera pas possible de le gérer à distance avec son smartphone. Pour ce type d'usage, il faut s'orienter vers un autre modèle de chez X-Sense comme le modèle XS01-WT. Il s'agit d'un réseau fermé aux détecteurs et les détecteurs d'un même kit sont déjà couplés ensemble. On peut dire qu'il s'agit d'un détecteur interconnecté à défaut d'être connecté.

Lorsque l'on reçoit les détecteurs, ils ne sont pas activés. Pour effectuer la mise en service, il faut passer le taquet à l'arrière de "OFF" à "ON". Cette action est irréversible, tout comme le passage sur "DIS" pour "Disable". En fait, lorsque le produit sera en fin de vie, il faudra le désactiver en mettant le taquet sur la position "DIS" à l'aide d'un tournevis plat. Cette action va permettre de le désactiver définitivement : j'ai testé, car c'est mon rôle, et je vous confirme que le détecteur est inutilisable même s'il est neuf. Une erreur à ne pas commettre de votre côté.

Finalement, il suffit de passer le détecteur sur la position "ON" et de le mettre en place sur son socle mural fixé au préalable. Dans 10 ans, il faudra le passer sur "DIS" : quand le détecteur sera en fin de vie, le détecteur va émettre trois bips toutes les 60 secondes donc c'est facile de le savoir.

Sur la façade avant du détecteur, on retrouve un écran LCD qui indique le niveau de batterie, mais aussi le niveau de monoxyde de carbone. En dessous de l'écran, il y a une bande lumineuse qui peut s'activer notamment en rouge lorsqu'il y a de la fumée ou du monoxyde de carbone détecté. Elle sert aussi d'indicateur pour savoir quel est le détecteur à l'origine du déclenchement de l'alarme. En effet, s'ils sonnent tous en même temps, vous ne pouvez pas savoir dans quelle zone se situe réellement l'alerte d'où l'intérêt de cette indication visuelle.

Le bouton "Test / Silence" sert à tester le bon fonctionnement de l'alarme, mais aussi à stopper l'alarme manuellement lorsque le détecteur s'active.

Voilà, il ne reste plus qu'à laisser le détecteur faire son travail ! Dernière précision au sujet du monoxyde de carbone, voici les taux de détection en ppm (part par millions) :

III. Conclusion

X-Sense propose un détecteur de fumée très intéressant et pertinent, car il répond à une vraie problématique : la détection du monoxyde de carbone, en plus de la fumée classique. Il y a de plus en plus de poêles à bois dans les foyers français, ce qui peut encourager à s'équiper d'un tel détecteur (même si le monoxyde de carbone est présent dans les autres combustibles aussi).

Sa compatibilité Link+ permet d'associer plusieurs détecteurs entre eux, ce qui est forcément un plus surtout que l'on peut coupler un grand nombre d'appareils. Mon côté geek est un peu déçu, car j'aurais bien aimé avoir ses informations accessibles depuis mon smartphone, notamment pour avoir une alerte s'il y a un incident et que je ne suis pas à la maison.

The post Test X-Sense SC07-W, un détecteur de fumée et de monoxyde de carbone first appeared on IT-Connect.

Installer PhpMyAdmin sur Debian 11 et Apache

mercredi 16 février 2022 à 10:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à installer PhpMyAdmin sur un serveur Debian 11 (Linux) avec Apache. Cette procédure étape par étape part du principe que vous disposez déjà d'un socle LAMP opérationnel, c'est-à-dire qu'Apache, MySQL/MariaDB et PHP sont déjà en place sur la machine.

Pour rappel, PhpMyAdmin est une application est un logiciel gratuit qui permet de gérer un système de gestion de bases de données comme MySQL ou MariaDB à partir d'une interface web. Il permet aux administrateurs de manipuler les bases de données, les tables, les utilisateurs, les droits, etc... Sans forcément connaître les requêtes SQL correspondantes. À partir de l'interface Web, il est possible d'exécuter des requêtes SQL directement.

II. Installation de PhpMyAdmin

L'installation de PhpMyAdmin ne s'effectue pas comme un paquet classique, mais plutôt sur le même principe qu'une application web. Il faut que l'on télécharge les sources à partir du site officiel, directement dans le dossier "/tmp" (ou ailleurs) :

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip

Avant de faire la commande "wget" je vous invite à accéder à la page de téléchargement de PhpMyAdmin afin de récupérer le lien vers la dernière version. Ici, c'est bien la dernière version stable : 5.1.3.

Ensuite, nous devons extraire le contenu de cette archive ZIP avec la commande "unzip". Elle n'est pas installée par défaut sur Debian 11. Vous pouvez l'installer avec cette commande :

sudo apt-get update
sudo apt-get install unzip

Ensuite, on décompresse l'archive ZIP dans le répertoire courant :

unzip phpMyAdmin-5.1.3-all-languages.zip

Installation de PhpMyAdmin

On va déplacer le dossier complet vers "/usr/share" dans un nouveau dossier nommé "phpmyadmin". Ce qui donne :

sudo mv phpMyAdmin-5.1.3-all-languages /usr/share/phpmyadmin

Ensuite, on crée un dossier distinct pour les fichiers temporaires :

sudo mkdir -p /var/lib/phpmyadmin/tmp

Puis, on attribue les droits sur le dossier racine "phpmyadmin" à l'utilisateur associé à Apache (www-data) afin qu'il soit propriétaire. Nous préciserons le chemin vers le dossier "tmp" dans la configuration de PhpMyAdmin.

sudo chown -R www-data:www-data /var/lib/phpmyadmin/

PhpMyAdmin est fourni avec un template pour le fichier de configuration, alors on va créer une copie de ce template pour ne pas partir de zéro :

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Afin d'utiliser le mode d'authentification basé sur les cookies, nous devons générer une chaîne aléatoire qui est une sorte de passphrase au sein du fichier de configuration. Il doit s'agir d'une chaîne de 32 caractères. Un cookie permanent stockera l'identifiant sur votre machine tandis que le mot de passe est géré par un cookie temporaire.

On peut générer cette chaîne aléatoire avec la commande suivante :

openssl rand -base64 32

Copiez la valeur retournée en sortie. Nous allons l'insérer dans le fichier de configuration de PhpMyAdmin. Ouvrez le fichier avec nano (ou un autre éditeur de texte) :

nano /usr/share/phpmyadmin/config.inc.php

Collez la valeur au niveau de l'option "blowfish_secret", comme ceci :

$cfg['blowfish_secret'] = 'deJ8reLGV1cXPyd32454/um/EGWRef/14Jo7tg112WM=';

Ensuite, il faut définir un user et un mot de passe que PhpMyAdmin va utiliser pour se connecter à sa base de données et stocker ses données. Pour cela, il y a deux options à décommenter et modifier pour éviter d'avoir les valeurs par défaut :

$cfg['Servers'][$i]['controluser'] = 'pma2022';
$cfg['Servers'][$i]['controlpass'] = 'MotDePasseComplexe';

Décommentez les autres options, comme sur l'image ci-dessous.

Fichier de config PhpMyAdmin - config.inc.php

Enfin, ajoutez cette directive pour déclarer le répertoire temporaire (créé précédemment) :

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Sauvegardez et fermez le fichier.

Avant de créer notre propre compte "admin" distinct pour administrer PhpMyAdmin, on va créer la base de données de l'outil. Pour cela, on va utiliser le script fournit :

mysql -u root -p < /usr/share/phpmyadmin/sql/create_tables.sql

Ensuite, on va se connecter à l'instance MySQL/MariaDB pour donner les droits sur cette base de données à l'utilisateur "pma2022" :

mysql -u root -p

Une fois connecté avec le prompt "mysql>" à l'écran, exécutez les requêtes SQL suivantes :

CREATE USER 'pma2022'@'localhost' IDENTIFIED BY 'MotdePasseComplexe';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma2022'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Les informations (utilisateur et mot de passe) doivent correspondre aux valeurs définies dans le fichier de configuration.

III. Création d'un admin pour PhpMyAdmin

Nous allons profiter d'être connecté à la console MySQL pour créer un nouveau compte administrateur qui aura la main sur l'ensemble des bases de données. Nous utiliserons ce compte pour se connecter à PhpMyAdmin.

Voici les requêtes SQL à exécuter pour créer un utilisateur nommé "pma-admin" avec le mot de passe "MotdePasseComplexe2".

CREATE USER 'pma-admin'@'localhost' IDENTIFIED BY 'MotdePasseComplexe2';
GRANT ALL PRIVILEGES ON *.* TO 'pma-admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Contrairement à l'utilisateur précédent, celui-ci a les droits sur toutes les BDD de l'instant MySQL, d'où le "*.*" dans la requête GRANT.

IV. Intégration de PhpMyAdmin à Apache

PhpMyAdmin est installé et configuré mais il nous manque une étape cruciale : la publication de l'application via Apache afin de pouvoir y accéder avec un navigateur.

Nous allons créer un fichier de configuration propre à PhpMyAdmin :

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Voici le contenu à intégrer au fichier de configuration (peut-être adapté) :

Alias /pma /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
  Options SymLinksIfOwnerMatch
  DirectoryIndex index.php

  # Autoriser accès depuis certaines adresses IP / sous-réseau
  Order deny,allow
  Deny from all
  Allow from 192.168.1.0/24

  <IfModule mod_php.c>
    <IfModule mod_mime.c>
      AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
      SetHandler application/x-httpd-php
    </FilesMatch>

    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
    
    php_admin_value mbstring.func_overload 0
  </IfModule>

</Directory>

# Désactiver accès web sur certains dossiers
<Directory /usr/share/phpmyadmin/templates>
  Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
  Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
  Require all denied
</Directory>

Quelques explications :

Enregistrez le fichier et activez ce fichier de config (qui s'appuie sur le VirtualHost par défaut, mais on pourrait créer un vhost distinct) :

sudo a2enconf phpmyadmin.conf

Validez la configuration, et si c'est OK rechargez Apache :

sudo apachectl configtest
sudo systemctl reload apache2

Le moment est venu de tester l'accès à PhpMyAdmin !

V. Accéder à PhpMyAdmin

Ouvrez un navigateur et accédez à l'adresse suivante :

http://<ip-de-votre-serveur>/pma

Je vous rappelle que la valeur "pma" dépend de l'option "alias" définie précédemment. Vous arrivez sur une page de connexion, vous devez vous connecter avec le compte "pma-admin" que l'on a déjà créé.

PhpMyAdmin Debian 11

Ensuite, l'interface de PhpMyAdmin apparaît avec un accès sur toutes les bases de données existantes et la possibilité de créer une nouvelle BDD, etc.... Il ne reste plus qu'à profiter de l'outil.

PhpMyAdmin Apache

Pour finir, je vous invite à supprimer le dossier "setup" car il n'a pas d'intérêt. Au cas où on laissera la directive dans la config d'Apache pour refuser l'accès à ce dossier.

rm /usr/share/phpmyadmin/setup/ -Rf

PhpMyAdmin est en place sur votre serveur Debian !

Pour aller plus loin dans la sécurisation de PhpMyAdmin, vous pouvez regarder la documentation officielle : Sécurisation PhpMyAdmin.

Si votre PhpMyAdmin est accessible publiquement, je vous recommande de le basculer en HTTPS et d'ajouter l'authentification Apache "htpasswd" en complément pour avoir une authentification supplémentaire avant de pouvoir à la page de connexion PhpMyAdmin.

The post Installer PhpMyAdmin sur Debian 11 et Apache first appeared on IT-Connect.

Windows 10 : 35 bugs corrigés par le patch KB5010415

mercredi 16 février 2022 à 08:08

Microsoft a mis en ligne la mise à jour KB5010415 pour Windows 10, correspondante à une version preview de la mise à jour à venir au sein du Patch Tuesday de Mars 2022. Cette mise à jour corrige 35 bugs !

Disponible pour Windows 10 20H2, Windows 10 21H1, et Windows 10 21H2, cette mise à jour corrige des bugs et apporte des améliorations au niveau du mode Internet Explorer pour Edge, des fonctions d'impression, etc. Voici les 5 changements principaux mis en avant par Microsoft :

Nous retrouvons également la correction d'un bug lié à l'utilisation d'applications publiées RemoteApp sur un serveur RDS sous Windows Server 2019, où ce dernier peut devenir installable lorsqu'il y a plus de 100 utilisateurs connectés. Lorsque ce bug se produit, les applications sont inutilisables.

Windows 10 KB5010415

Deux liens utiles au sujet de cette mise à jour avec notamment la publication de Microsoft pour avoir toute la liste des bugs corrigés :

Si certaines de ces corrections de bugs vous intéressent, vous pouvez tester cette mise à jour dès à présent. Dans tous les cas, ce serait bien de tester cette mise à jour avant sa sortie en mars prochain afin de voir si elle est à l'origine de nouveaux effets de bords. Cette mise à jour reste optionnelle pour le moment, avant de rentrer dans le circuit principal le 8 mars prochain.

Source

The post Windows 10 : 35 bugs corrigés par le patch KB5010415 first appeared on IT-Connect.