07 Feb 2022, 00:00

Gestion fine de la stratégie de mot de passe sur un AD

Sous Windows Server, la stratégie de mot de passe gérée par les GPO est commune à tous les utilisateurs.

À partir de Windows Server 2008 (et 2012 pour l’interface graphique, il me semble), si on veut définir des stratégies plus fines, on peut le faire en passant par les PSO (Password Settings Objects).
Il faut d’abord créer un groupe de sécurité, et y placer les utilisateurs concernés.
Ensuite, ouvrir le Active Directory Admin Center (ADAC) :
dsac.exe
Aller dans domain (local) -> System -> Password Settings Container et faire clic-droit -> Nouveau -> Paramètres de mot de passe.
Donner un nom et une priorité (1 = la + élevée) à la stratégie, régler les paramètres désirés, et choisir le groupe de sécurité précedemment créé dans “S’applique directement à”.

Une fois le PSO créé, il devrait s’appliquer correctement, uniquement aux utilisateurs positionnés dans le groupe, en étant prioritaire par rapport à la stratégie par défaut.

31 Jan 2022, 00:00

Compatibilité DDR DDR-L

La mémoire DDRxL est prévue pour fonctionner à plus bas voltage que la DDRx (par exemple 1.35V pour la DDR3L contre 1.5V pour la DDR3).
Elle est toutefois capable de fonctionner à voltage “complet”.

Donc, la DDRxL peut être mise à la place de la DDRx, mais pas l’inverse. Il faut toutefois, sur une même carte-mère, que toutes les barrettes soient du même type (?).
Pour que le système fonctionne en voltage bas, il faut que l’ensemble des composants le supporte.

31 Jan 2022, 00:00

Notes sur find

Suivre les liens symboliques

Par défaut, find voit les liens symboliques comme des fichiers. Pour qu’il considère la cible du lien et non le lien lui-même, il faut utiliser find -L.

Éxécuter une ou plusieurs commandes sur les résultats

-exec echo {} \; pour une commande (ici echo)
-exec echo {} \; -exec touch {} \; - exec cat {} \; pour plusieurs commandes.

Trouver des dates de modification dans le futur

Si une arborescence contient des fichiers dont la date de modification est dans le futur, on peut utiliser -mmin -0,01 pour trouver les fichiers dont la date de modification est plus récente que 0,01 minutes (soit moins d’une seconde) :
find ./ -mmin -0,01

On peut modifier cette date avec touch (avec -exec)

Trouver les liens symboliques

Source

find ./ -type l

Trouver les liens durs

Source

find -type f -links +1 pour lister les fichiers dont les inodes sont référencés plus d’une fois (ces autres références peuvent être en dehors du répertoire dans lequel est lancé find) . Pour ensuite voir les différents fichiers qui référencent le même inode qu’un fichier précis, on peut faire find -samefile ./my-file.

Trouver les dossiers vides

find ./ -type d -empty
find /path/to/data/ -type d -empty -print -delete pour les supprimer

Classer par date

find ./ -iname "*" -printf "%T+\t%p\n" | sort

On peut rajouter awk '{print $2}' pour ne pas afficher la date.

31 Jan 2022, 00:00

Permissions des disques VHD/VHDX

Dans Hyper-V, si on crée un disque virtuel, et qu’on l’attribue à une VM dans un 2nd temps, il est possible qu’elle ne puiss pas démarrer avec le message “Erreur d’accès général refusé” concernant le fichier VHD.

Ceci est parce que chaque VM est un objet de sécurité, et qu’il faut lui affecter les autorisation correctes sur le fichier disque. Pour ceci, lancer Powershell, et obtenir le SID de la VM :
Get-VM 'Mon serveur virtuel' | Select-Object VMID (en entrant le nom de la VM).
Puis lui donner les droits sur le fichier :
icacls hard-disk.vhdx /grant %SID%:F (en entrant le SID trouvé ci-dessus).

La VM devrait alors pouvoir démarrer.

Source

27 Jan 2022, 00:00

Gestion des certificats sous Windows

certmgr.msc pour voir les ceertificats de l’utilisateur actuel
certlm.msc pour voir les certificats de la machine elle-même (bureau à distance, etc.)

Pour voir à quel certificat correspond un hachage précis, on peut aller dans Actions -> Rechercher des certificats, choisir “Tous les magasins de certificats”, rechercher dans le champ “Hachage SHA1” et entrer le hash dans le champ “Contenu”.

Les certificats expirés pour l’authentification des clients (Magasin ordinateur -> Personnel -> Certificats) ne semblent pas se supprimer tout seuls après leur expiration, ce qui crée un Evt 64 dans l’observateur d’événement. On peut les supprimer manuellement.

14 Jan 2022, 00:00

Voir date d'expiration d'un certificat

openssl x509 -enddate -noout -in file.crt
Doit fonctionner avec les fichiers crt, pem

12 Jan 2022, 00:00

ID serveur sur Teamviewer

Sous Teamviewer, il y’a un ID attribué à la sesion actuellement ouverte et active (non verrouillée), qui est celui qui s’affiche dans la fenêtre ; c’est l’identifiant utilisateur.
Mais si on veut pouvoir accéder au poste à tout moment, il faut l’ID de serveur ; pour l’obtenir, clic-droit sur l’icône de TV dans la zone de notification, puis À propos de Teamviewer.

05 Jan 2022, 00:00

Autoriser l'accès à un partage réseau sans authentification depuis Windows Server 2019

Depuis Windows Server 2019, l’accès aux dossiers partagés (sur un autre serveur) qui ne nécessitent pas d’authentification est désactivé.
Pour le réactiver, il faut aller dans gpedit.msc, et aller dans Configuration ordinateur -> Modèles d'administration -> Réseau -> Station de travail LANMAN et activer le paramètre Activer les ouvertures de session invité non sécurisées.

Probablement faisable via gpmc.msc dans le cas d’un domaine.

Source

Possible via regedit aussi ?

03 Dec 2021, 00:00

Virtualisation

https://wiki.debian.org/KVM
https://www.how2shout.com/linux/how-to-install-and-configure-kvm-on-debian-11-bullseye-linux/

Pour voir si le processeur possède les extensions matérielles nécessaires pour la virtualisation matérielle :
grep -E --color '(vmx|svm)' /proc/cpuinfo

Qu’est-ce que c’est ?

kvm - QEMU

kvm est un hyperviseur type 1, en espace noyau, sous forme de module noyau pour Linux (intégré au noyau depuis la version 2.6.20). Il permet l’accès aux instructions processeur de virtualisation (Intel-VT ou AMD-V).

QEMU est un émulateur de PC (ou hyperviseur de type 2) : il simule du matériel (disques, RAM etc) pour un système invité. Grâce à kvm, il peut mettre à disposition le processeur physique, pour des performances quasi-natives.

L’un n’a pas besoin de l’autre (kvm peut servir à faire tourner une appli Linux sans OS complet, via containerization, et QEMU peut faire tourner un OS virtuel en émulant complètement un processeur), mais c’est en binôme qu’ils fonctionnent le mieux.

Pour voir si une VM utilise kvm , il faut trouver le PID de la VM, puis entrer la commande strings /proc/<PID>/cmdline|grep kvm. Si oui, on peut y lire “-enable-kvm” ou “accel=kvm”.

Il y’a un module noyau nommé kqemu, qui visait à améliorer les performances de qemu, mais celui-ci a été rendu obsolète par kvm. Son seul avantage potentiel est qu’il fournissait une accélération (logicielle) sur les processeurs ne disposant pas des extensions de virtualisation (mais en ce cas, Virtualbox reste aujourd’hui une solution correcte), si l’invité et l’hôte sont sous la même architecture.

Le paquet qemu-user permet de faire tourner un OS compilé pour une architecure différente du processeur physique ?

libvirt, virsh, virt-install, virt-manager

libvirt est une bibliothèque qui permet de gérer les machines virtuelles. Elle peut aussi se connecter à plusieurs hyperviseurs, dont kvm/QEMU, mais aussi Xen par exemple.

virt-install est une interface en ligne de commande pour simplifier la création de VM.

virsh est une interface en ligne de commande pour interagir avec libvirt, et donc créer, supprimer, modifier, démarrer, arrêter etc. les VMs.

  • un “domaine” équivaut à une machine virtuelle.
  • pour lister les VMs de la session utilisateur : virsh list --all
  • pour lister les VMs de la session système : virsh -c qemu:///system list --all
  • pour démarrer une VM système : ‘virsh -c qemu:///system start nom_de_la_vm’

virt-manager est une interface graphique pour interagir avec libvirt (même rôle que virsh, mais en GUI).

virtio

Il me semble que c’est un protocole/une interface pour mettre le matériel de l’hôte à disposition des invités, avec le moins de latence possible. Ces périphériques virtuels nécessitent des pilotes spécifiques, sans quoi ils ne seront pas disponibles, au moins sous Windows. On peut trouver ces pilotes sur cette page.
En montant l’ISO en tant que lecteur CD lors de l’installation de Windows, on peut installer les pilotes pour le contrôleur de disque, à la volée (il faut choisir le dossier qui contient directement les pilotes, il n’y a pas de récursivité).

Virtualbox

C’est simplement un émulateur. Il est plutôt simple d’utilisation, peut être utilisé par un utilisateur non privilégié, mais n’a pas de performances folles.

Xen

Hyperviseur de type 1.

kvm - QEMU

Installation

kvm est déjà présent dans le noyau par défaut. Pour installer QEMU sous Debian Bullseye : sudo apt install qemu-system-x86.
Pour installer virt-manager : sudo apt install virt-manager. Installera automatiquement qemu.
Pour installer le démon libvirt : sudo apt install libvirt-daemon-system

Connexion system ou session

https://blog.wikichoon.com/2016/01/qemusystem-vs-qemusession.html

QEMU peut être utilisé avec une connexion système, ou avec une connexion session.

La connexion système permet l’accès complet à toutes les ressources ; libvirtd est lancé en tant que root, les VMs en tant qu’utilisateur qemu. L’accès d’un utilisateur simple est géré via polkit. On peut ajouter le user au groupe libvirt pour lui permettre un accès aux ressources sans avoir à s’authentifier en root.
La configuration de libvirt est dans /etc/libvirt/.

La connexion session est spécifique à l’utilisateur. Tout est exécuté par l’utilisateur simple. Les configurations/pools sont stockés dans le $HOME. Cependant le réseau accessible par défaut est lent, et peu flexible (difficile à rendre accessible depuis l’extérieur). À voir avec qemu-bridge-helper pour accéder à un pont réseau (créé au préalable par l’admin) ?
La configuration de libvirt est stockée dans $HOME/.config/libvirt.

Détacher souris/clavier de la VM

Par défaut, c’est la combinaison L-Ctrl + L-Alt.

Connexion via SSH

On peut gérer les VMs d’un serveur distant via ssh. Pour ceci, via virsh : virsh --connect qemu+ssh://root@example.com/system.
Via virt-manager, il faut ajouter une connexion, et entrer l’URI qemu+ssh://root@example/system.

En ce cas, il faudra entrer certains chemins manuellement (par exemple pour définir un chemin vers un ISO ou un fichier qcow2), le bouton “Parcourir” étant grisé.

Processeur

La configuration par défaut est de “Copier la configuration du processeur de l’hôte”. Il me semble que ça donne des performances très moyennes. Il vaut mieux décocher cette case et choisir le mode host-passthrough. De même, la détection automatique de la topologie ne me donnait pas de très bons résultats. En choisissant une topologie manuelle, ça fonctionne bien mieux.
Socket : nombre de processeurs physiques sur la MB (1 dans la plupart des cas)
Coeurs : nombre de core du CPU
Chaînes : nombre de thread de chaque core

Périphériques USB ?

Réseau

https://wiki.qemu.org/Documentation/Networking

Le réseau par défaut est un réseau en NAT, et il ne démarre pas automatiquement.
Si on veut bridger une VM à une carte réseau, il faut d’abord créer le pont au niveau système ; il ne semble pas possible de bridger la VM directement à l’interface physique.

Disques

Si connexion à qemu:///system, les pools de stockage (emplacement des fichiers image de disque dur) sont définis dans /etc/libvirt/storage/ et celui par défaut pointe sur /var/lib/libvirt/images/. Les définitions de VMs (fichier XML) sont rangées dans /etc/libvirt/qemu/.

Si connexion à qemu:///session, les pools de stockage dont définis dans $HOME/.config/libvirt/storage/ et celui par défaut pointe vers $HOME/.local/share/libvirt/images/. Les définitions de VMs sont rangées dans $HOME/.config/libvirt/qemu/.

Les images sont au format qcow2.
Il est possible d’utiliser directement un périphérique de type block. Pour ceci, il faut éditer le fichier XML.

Virtualbox

L’avantage principal que je vois est le fait de pouvoir ponter facilement et à la volée la carte réseau virtuelle et n’importe quelle carte réseau (physique, pont ou virtuelle, genre tap0 ), sans préparer le réseau auparavant.

USB

Pour pouvoir passer les périphériques USB à l’invité, l’utilisateur qui lance VBox doit faire partie du groupe vboxusers :
sudo adduser $(whoami) vboxusers

Pour gérer l’USB2 / USB3 , il faut l’extension pack :
sudo apt install virtualbox-ext-pack

On peut passer les périphériques à la volée, via clic-droit sur l’icône USB en bas à droite de la fenêtre de la VM.

15 Oct 2021, 00:00

Invite de commande Windows

Affecter une variable (y compris avec espaces)

set "myvar=string or something else"
Si on met les guillemets juste autour du contenu à affecter, les guillemets feront partie du contenu de la variable !

Appeler un script depuis un script :

CALL path\to\script.bat
(attend la fin de l’éxecution du script appelé avant de continuer le script principal)

Ajouter une pause

Si on veut attendre un certain nombre de secondes (ici 5) :
timeout 5

Si on veut une interaction de l’utilisateur :
timeout -1
On peut également utiliser
pause
mais dans certains cas, cela ne fonctionne pas dans les scripts.

Création de fichier .bat contenant des accents

Éditer le fichier avec Notepad++, et choisir dans le menu Encodage -> Codage de caractères -> Langues d'Europe occidentale -> OEM 850. Si les accents avaient été entrés avant la conversion, ils ont été remplacés par d’autres caractères, il faut donc les réécrire correctement.

Split d’une commande sur plusieurs lignes pour la lisibilité

Il faut échapper le retour à la ligne par un circonflexe ^ . Il semble qu’il faille faire commencer la ligne suivante par un espace, car le premier caractère ne sera pas pris en compte (non vérifié).

goto

goto :label

:label
echo "This is label"

Fin du label ???