19 Jun 2023, 00:00

Exchange online et Powershell

https://docs.microsoft.com/fr-fr/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Installation

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement

Si les message ModuleNotFound s’affiche, il faut installer ce module. Depuis mars 2020, il faut forcer TLS 1.2 au minimum, pour assurer l’installation correcte des modules et leurs dépendances :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Si un message disant “L’éxécution de scripts est désactivée sur ce système”, il faut l’activer avec :
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
(à voir s’il est nécessaire de lancer PS en admin pour ça ?)

Connect-ExchangeOnline -UserPrincipalName user@domain.com
Si le nom fourni est un admin, il pourra consulter les statistiques des autres boîtes mail.

Si un message du genre
Impossible de charger le fichier ou l'assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses dépendances. Le fichier spécifié est introuvable.
s’affiche, il faut probablement installer une version + récente du framework DotNet (genre 4.8 ?)

Connection RPS (remote PowerShell) dépréciée :
Connect-ExchangeOnline -UseRPSSession

Limite de taille

La sortie de certaines commandes peut être tronquée (avec ...) si la fenêtre n’est pas assez large pour tout afficher, et ce même si on redirige la sortie vers un fichier. Pour avoir les lignes complètes, on peut utiliser | out-string -Width 999999 .

Lister les dossiers d’une boîte mail par ordre de taille

$mailbox = "user@domain.com"
(guillemets obligatoires)

Pour la taille de chaque dossier uniquement, sans les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderSize,@{ name="FolderSizeBytes"; expression={((($_.FolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderSizeBytes -Descending | Out-String -Width 999999 | ft

Avec les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderAndSubfolderSize,@{ name="FolderAndSubfolderSizeBytes"; expression={((($_.FolderAndSubfolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderAndSubfolderSizeBytes -Descending | Out-String -Width 999999 | ft

On peut le piper vers un fichier : > report.txt

Afficher les infos générales d’une boîte mail

Get-EXOMailboxStatistics $mailbox

Lister les dossiers vides d’une boîte mail

Pour lister les dossiers qui sont vides, y compris les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0} | Select Identity | out-string -Width 999999

Uniquement dans un sous-dossier

Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0 -and $_.FolderPath -Match "/Boîte de réception/Mon sous-dossier" }

| Select FolderPath,FolderID,Identity

31 May 2023, 00:00

Noms des services

Pour faire la correspondance entre les noms réels services Windows et leur nom d’affichage (localisés), on peut utiliser la commande Powershell
Get-Service

On peut également rechercher avec un motif du genre
Get-Service -Name *wua*
pour chercher sur le nom ou
Get-Service -DisplayName *update* pour chercher sur le nom d’affichage. Aucune sensibilité à la casse.

24 May 2023, 00:00

Police fixe pour l'horloge de Mate

Par défaut, la police de l’horloge MATE est une police à espacement variable, ce qui cause un très léger mouvement de l’ensemble des icônes de la zone de notification. Pour la passer en police chasse fixe pour empêcher ceci, créer/éditer le fichier ~/.config/gtk-3.0/gtk.css et y coller ce bloc :

#clock-applet-button {
  font-family: monospace-regular;
}

Puis pkill mate-panel devrait recharger le panneau avec la modification.

Source

13 May 2023, 00:00

Créer ou recréer les fichiers de démarrage BIOS Windows 10

Situation initiale

Pour démarrer, Windows a besoin de certains fichiers de démarrage (et éventuellement secteurs de boot).
Voici comment créer ces fichiers de démarrage s’il sont manquants (par exemple la partition de démarrage a été effacée, ou bien on souhaite passer d’une partition unique à une partition de démarrage séparée).

On a :

  • 1 seule partition NTFS avec une install windows fonctionnelle (C:\Windows, C:\Users etc). Peut être une image. Peut provenir d’un disque MBR ou GPT
  • aucun fichier de démarrage

Note : avec cette méthode, il est possible de contourner la plupart des restrictions imposées à l’installation de Windows, on peut faire un peu ce que l’on veut. Par exemple démarrer en UEFI sur un disque (même NVMe) MBR, avoir une ESP (GPT) en NTFS, démarrer en BIOS sur un disque GPT etc… Je parle ici de la configuration attendue par MS.

Fichiers de démarrage BIOS

Les fichiers de démarrage Windows (10) consistent en :

  • Un dossier BOOT\ contenant :
    • des dossiers de langues type fr-fr
    • Fonts
    • Ressources
    • BCD
    • BCD.LOG (+1|2)
    • BOOTSTAT.DAT
    • bootuwf.dll
    • bootvhd.dll
    • memtest.exe
  • bootmgr
  • BOOTNXT
  • BOOTSECT.BAK

Ces fichiers peuvent être sur le disque C, ou bien sur une partition dédiée (nommée “Réservé au système” si créée automatiquement lors de l’installation de Windows). Cette partition doit posséder le flag boot.

Table de partition

Il faut une table de partition MBR, avec :

  • une partition de 500M (voire 1G) formatée en NTFS, de type “7” (HPFS/NTFS/exFAT) et avec le drapeau boot
  • la partition avec l’install Windows, de type “7” (HPFS/NTFS/exFAT)

(note : il ne me semble pas possible d’avoir une partition système en FAT32, le NTFS est nécessaire. On peut copier les fichiers de démarrage sur une partition FAT32 mais le disque ne bootera pas)
On peut consulter/modifier les types de partitions avec cfdisk.

Par souci de cohérence dans l’ordre des partitions, on peut s’assurer que la partition soit bien numérotée 2 dans la table de partition. Si elle est notée 1, on peut changer son numéro avec la procédure définie ici

Création des fichiers

On démarre ensuite sur une clé USB d’install de Windows 10 (en mode BIOS) -> Dépannage -> Invite de commande
On lance diskpart ; on vérifie les lettres affectées à chacune des partitions (ici C: pour la 500M et E: pour l’install).

list vol

On sort de diskpart, puis
bcdboot E:\Windows /s C: /l fr-fr /f bios

Pour vérifier la présence des fichiers, il faut la commande
dir /a:HS X:

Normalement ça doit démarrer avec la nouvelle partition !

Fichiers de démarrage EFI

Les fichiers de démarrage sont à peu près les même, avec des exécutables .efi. Ils seront dans [ESP]/EFI/Microsoft/Boot/.

Il faut une table de partition GPT, avec :

  • partition type ESP (drapeau esp sur Gparted) de 500M en FAT32
  • la partition avec l’install windows, de type Msft basic data (drapeau msftdata).

(note : il est possible que cela fonctionne même si la table de partition est de type MBR ; en ce cas il faut le flag boot sur la partition FAT32. On préferera toutefois le GPT)

Si la numérotation des partitions est dans le désordre, on peut suivre ces instructions.

Ensuite on démarre sur sur une USB d’install, Réparer le PC, invite de commande, vérifier la lettre de la partition contenant l’install (par exemple C: ), puis
bcdboot C:\Windows
pour mettre les fichiers sur la partition ESP. Ils seront mis aussi bien dans EFI/Microsoft/Boot que /EFI/Boot/bootx64.efi
On peut aussi affecter une lettre à une autre partition et spécifier le flag /s X:.
L’entrée BootOrder dans l’UEFI semble ajoutée lors d’un simple démarrage de Windows si elle est manquante ET si le flag boot/esp est positionné sur la partition ESP.

Si besoin, pour s’assurer de l’installation des éventuels pilotes nécessaires en cas de changement de disque, on peut forcer le démarrage en sans échec :
bcdedit /set {default} safeboot minimal

Lorsque l’on a redémarré en mode sans échec et que tout fonctionne, on peut désactiver ce mode avec
bcdedit /deletevalue {default} safeboot

Comportement à l’install de Windows

Si le partitionnement a été fait avant l’installation de Windows, alors :

  • en UEFI, les fichiers de démarrage seront mis dans la partition flaggée comme ESP
  • en BIOS, les fichiers de démarrage seront mis dans la partition flaggée boot ????

WinRE

Partition de récupération

GPT :
Pour pouvoir accéder à winRE pour dépanner un poste, il lui faut une partition de récupération. Cette partition doit nécessairement être située après la partition système. À la toute fin du disque c’est bien.
On peut créer cette partition via gparted, la formater en NTFS et lui affecter le flag “diag” ((+ hidden ?).

Création du WinRE

Lien MS
Lien forum MS pour diskpart

C’est la commande reagentc qui permet de gérer la récupération.
reagentc /info pour voir l’état du WinRE

S’il est désactivé, on peut l’activer via
reagentc /enable

Si il y a le message “Image WindowsRE introuvable”, c’est que le fichier C:\Windows\System32\Recovery\winre.wim est absent.
On peut le copier à cet emplacement depuis le contenu d’un fichier “install.wim” d’un media d’install (7zip fonctionne pour ouvrir un .wim)

On peut aussi demander à boot en mode winre la prochaine fois (sans interrompre 3 fois le démarrage) via
reagentc /boottore

24 Mar 2023, 00:00

Téléphonie via Teams

Vocabulaire

Auto-attendant = SVI (serveur vocal interactif, navigation à l’aide des touches)
Call queue = file attente (message/musique attente + transfert des appels aux agents)
PSTN = RTC (réseau téléphonique commuté)

Généralités

Pour pouvoir utiliser la téléphonie Teams, chaque utilisateur a besoin de :

  • une licence Teams Phone Standard (Téléphonie Teams) : nécessaire pour se connecter au réseau RTC MS
  • une licence forfait d’appel
  • un numéro de téléphone attribué

Une fois ces 3 conditions validées (et un certain délai éventuel), chaque utilisateur verra apparaître le pavé de numérotation dans Teams, section Appels.
Si le pavé n’apparaît pas, voir cette page.

Gérer les numéros de téléphone

Se fait via le Teams Admin Center (TAC) :

Voice -> Phone numbers

Nombre de numéros de tél disponibles :

Numéro User : (nombre de calling plans*1.1) + 10 + pay-as-you-go-licences
Numéro Service (Voice App) (payant pour les appelants) : 5
Numéro Service (gratuit pour les appelants) : ?

Dépassement du forfait et numéros payants

Pour pouvoir continuer à appeler lorsque les minutes de forfait sont épuisées, et pouvoir appeler des numéros spéciaux (082* etc.), il faut acheter des crédits de communication.
Une fois les crédits achetés, il faut affecter la licence Crédits de communication à chaque utilisateur qui doit pouvoir les utiliser.

Numéro de service

Aussi appelé “Voice App”.
Peut être partagé entre plusieurs utilisateurs.
Il faut un compte de ressources, un numéro affecté à l’usage Service (voice app), une licence (gratuite) Teamps Phone ressource Account (Teams système téléphonique utilisateur virtuel).

Teams Admin Center -> Voice -> Call queues
Ajouter, choisir le compte de ressource créé auparavant.
Une fois créé et les utilisateurs (“agents”) affectés, chacun d’eux pourra appeler en tant que ce numéro de service.

Délégation

Déléguer sa ligne à une ou plusieurs personnes leur permet de recevoir les appels et répondre au nom du délégueur.
Pour ça, c’est fait directement par le client :
Teams -> Paramètres -> General -> Gérer les délégués

Par défaut, le délégué appelle avec son propre numéro, à moins de cliquer sur la petite flèche à côté de Appeler.

Compte de ressources

TAC -> Voices -> Ressource accounts (-> Add)

Choisir “Call queue” pour associer (plus tard) ce compte de ressource à une file d’attente.
L’utilisateur sera alors créé, visible également dans le Office Admin Center.

Si on veut lui assigner un numéro de téléphone, il est nécessaire que cet utilisateur possède une licence (gratuite) de type “Téléphonie Microsoft Teams Standard - Utilisateur virtuel”.
Une fois la licence assignée, et quelques minutes écoulées, on peut lui assigner un numéro (qui doit être de type “Voice app”) via le bouton “Assign/Unassign”. Choisir “Calling Plan” si le plan d’appel est fourni par Microsoft.

Les modifications mettent quelques minutes à se propager.

Files d’attente

TAC -> Voice -> Call queues (-> Add)

Un appel sur une file d’attente sera réparti entre tous les utilisateurs appartenant à cette file d’attente.
Il y’a plusieurs stratégies (tous en même temps, le 1er dispo, le + longtemps inactif etc).

Il est nécessaire, à la création, de l’associer à un compte de ressource.

On peut ensuite affecter des utilisateurs (ou un Canal standard d’une Team - les canaux privés ne fonctionnent pas) à cette file d’attente : ce sont tous les utilisateurs qui seront sollicités lors d’un appel sur ce numéro.

Le “Conference Mode” permet apparemment de recevoir les appels plus rapidement, et ne semble être incompatible qu’avec Skype for Business.

Répondeur partagé (numéro de service)

Via un groupe créé manuellement

Créer un groupe Microsoft 365 (OAC -> Groupes -> Nouveau groupe M365).
Ajouter les personnes qui doivent recevoir le message en tant que membres.

Paramétrer la call queue pour rediriger les appels non-répondus vers un boite vocale partagée (shared voicemail) ; choisir celle du groupe précédemement créé
Les membres du groupe recevront les appels dans outlook, dans la section Groupes

Il faut toutefois ajouter chaque utilisteur manuellement au groupe ; je n’ai pas trouvé comment ajouter un groupe de sécurité à un groupe MS365.

Via une Team

Chaque équipe possède une adresse mail ; il faut la trouver dans Teams, et activer le transfert des mails aux membres de l’équipe ( -> Administrateur -> Teams -> Choisir l’équipe -> Paramètres -> “Envoyer des copies des emails aux membres” ).

Paramétrer la call queue pour rediriger les appels non-répondus vers l’adresse mail de l’équipe.
Ainsi chaque membre recevra un mail (contenant le message vocal en PJ).

Pour les voir dans Teams directement ??

https://dynamicconsulting.com/2020/06/02/shared-voicemail-displaying-in-teams/

Appels en tant que numéro de service

Pour forcer le changement du numéro affiché lors des appels sortants pour un utilisateur, dans le TAC :
Voice -> Caller ID policies

Ajouter une politique, choisir un numéro de service (ou compte de ressource) qui sera utilisé pour les appels sortants.

Ensuite, toujours dans le TAC, Users -> Manage Users, sélectionner tous les utilisateurs à modifier, Policies -> Edit -> Caller ID Policy et choisir la stratégie créée précedemment.

Il semble que l’on peut toujours appeler en tant que délégueur si la stratégie s’applique uniquement au délégué.

Rendre muet la sonnerie d’un appel

Dans le client Teams :
Paramètres -> Notifications -> Apparence et sons -> Désactiver "Faire jouer le son..."

https://answers.microsoft.com/en-us/msteams/forum/all/need-to-be-able-to-mute-incoming-calls-while-on-a/8366dd59-0573-4daa-b6c9-3c669adea0b3?page=2

Appeler en numéro masqué

Dans la stratégie Caller ID, c’est le paramètre “Override Caller ID Policy” (ou “EnableUserOverride” via powershell).
Elle n’override rien directement, elle permet à l’utilisateur final d’overrider (=passer en anonyme uniquement). Aucun effet si la stratégie passe déjà les appels en anonyme.

L’utilisateur final peut ensuite aller dans les paramètres de l’appli Teams -> Appels -> Identifiant de l’appelant.

Quelques minutes nécessaires pour appliquer le changement (~3-5 minutes selon mes tests)

https://learn.microsoft.com/en-us/microsoftteams/how-can-caller-id-be-used-in-your-organization#end-user-control-of-outbound-caller-id

Affectation à une stratégie en fonction d’un groupe de sécurité

TAC -> Voice -> (stratégie à définir) -> Group policy assignment
On peut choisir un groupe de sécurité puis une stratégie définie précédemment, et tous les membres du groupe recevront automatiquement la stratégie.

Enregistrer un appel

https://learn.microsoft.com/en-us/microsoftteams/cloud-recording

Enregistré dans onedrive

Powershell

Nécessite le module MicrosoftTeams

https://learn.microsoft.com/fr-fr/skypeforbusiness/set-up-your-computer-for-windows-powershell/download-and-install-the-skype-for-business-online-connector

Rapports

TAC -> Analytics & Reports -> usage reports

Les rapports PSTN usage indiquent tous les appels émis/reçus par les numéros gérés par Teams.
Le “Display Name” ou “Username” correspondent au numéro géré par Teams qui est concerné, que ce soit un appel entrant ou sortant.
Pour actualiser le rapport, il faut agir dessus, par exemple changer l’ordre de tri, ou générer un autre rapport puis re-générer le rapport souhaité.

Dans le cas d’un appel sortant,

  • le type sera “user-out”
  • si l’utilisateur a paramétré le numéro masqué, on verra quand même son nom dans le rapport, mais le “Caller ID” sera vide
  • si l’utilisateur appelle en tant que numéro de service, on verra quand même son nom, mais le “Caller ID” sera celui du numéro de service

Dans le cas d’un appel entrant,

  • si c’est un numéro de service qui reçoit, le type sera “ucap_in”
  • si c’est directement un numéro utilisateur qui reçoit, le type sera “user_in”
  • si l’appelant a masqué son numéro, le “Caller ID” sera vide

Liens divers

Présentation :
https://docs.microsoft.com/fr-fr/microsoftteams/what-is-phone-system-in-office-365
https://docs.microsoft.com/en-us/microsoftteams/what-is-phone-system-in-office-365 (anglais)

Fonctionnalités :
https://docs.microsoft.com/fr-fr/microsoftteams/here-s-what-you-get-with-phone-system
https://docs.microsoft.com/en-us/microsoftteams/here-s-what-you-get-with-phone-system (anglais)

Gestion des licenses :
https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/virtual-user
https://docs.microsoft.com/en-us/microsoftteams/teams-add-on-licensing/virtual-user (anglais)
6.70€/util/mois

https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/microsoft-teams-add-on-licensing?tabs=small-business
https://docs.microsoft.com/fr-fr/microsoftteams/set-up-calling-plans

Transférer numéros :
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/transfer-phone-numbers-to-teams
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/manually-submit-port-order (demande manuelle, car transfert auto non dispo pour la france)

Demande contact
https://info.microsoft.com/ww-landing-Contact-Me-Business-Voice-Contact-Me.html?lcid=en-us

Microsoft 365 business standard : 10.5€/mois/user
Office 365 E3 : 19.7€/mois/user

18 Mar 2023, 00:00

Cloner un système Windows d'un disque SATA vers un disque NVMe

Il est nécessaire que la table de partition soit GPT, car Windows refuse de booter sur un SSD NVMe en mode BIOS (et donc MBR).

Il faut déjà avoir démarré une première fois en mode sans échec sur le disque SATA avec le NVMe connecté sur son emplacement NVMe. Ainsi le système installera les pilotes nécessaires à la bonne détection/initialisation du SSD.
Sinon on risque d’avoir une erreur de type “INACCESSIBLE_BOOT_DEVICE” ou reboot immédiat sur l’UEFI.

On peut ensuite cloner le disque normalement (sgdisk, dcfldd etc.)

Si on a quand même le message “INACCESSIBLE_BOOT_DEVICE”, il faut d’abord démarrer en mode sans échec (par exemple en interrompant 3 fois le boot. Le prochain redémarrage devrait fonctionner.

18 Mar 2023, 00:00

Convertir une table de partition MBR en table GPT

Il faut évidemment backuper tout le nécessaire avant la moindre manipulation.

Sous Linux

Source
sudo gdisk /dev/sdX
r f

Sous Windows

Se fait avec l’utilitaire MBR2GPT.EXE.
Ne fonctionne que pour un disque système !

Cet utilitaire va également créer/rendre bootable une partition ESP, et créer les fichiers de démarrage Windows pour protocole EFI.
Il est disponible à partir de Windows 10 1703. Il est prévu pour être utilisé en WinPE/WinRE, mais peut être utilisé directement sur l’OS en cours de fonctionnement avec le flag /AllowFullOS. un certain nombre de fonctionnalités risquent cependant de ne pas fonctionner. Il est donc préférable de redémarrer en WinRE (Paramètres -> Mises à jour et Sécurité -> Récupération -> Démarrage avancé -> Redémarrer) puis Invite de commande.
(possible depuis USB install ?)

Tout d’abord identifier le numéro du disque à convertir avec diskpart, list disk. Dans notre exemple, c’est le disque 9.
mbr2gpt.exe /validate /disk:9 pour vérifier que c’est faisable (voir les pré-requis sur le lien ci-dessus).
mbr2gpt.exe /convert /disk:9 pour effectivement lancer la conversion (+ création de la partition ESP, formatage en FAT32, ajout des fichiers de démarrage pour le protocole EFI etc…)

Il sera nécessaire de paramétrer le boot en EFI car ceci va de paire (sous Windows) avec une table de partition GPT.

02 Mar 2023, 00:00

Notes sur l'administration d'un réseau Unifi

Général

Il est nécessaire d’avoir un contrôleur pour gérer un réseau Unifi, et paramétrer les appareils. Ceci peut être une console Unifi (Dream Machine, etc), mais aussi n’importe quel poste (Windows, Linux, Raspi etc).
Centre de téléchargement Unifi

Si le soft est installé sur un PC, il lance un serveur web en local. On peut ensuite accéder à la config via navigateur en accédant à l’IP du matériel sur lequel est installé le serveur web sur le port 8443 (par exemple http://localhost:8443 ).

Une fois configuré, le matériel fonctionne sans la console ; mais il faudra le relancer pour modifier la configuration.

Les appareils peuvent se gérer individuellement en se connectant à leur IP, mais aussi en centralisé via https://unifi.ui.com. Ceci nécessite d’avoir un compte sur https://ui.com et d’avoir paramétré le contrôleur avec ces identifiants.
Il faut également que le paramètre Remote Access soit activé. (Console Settings -> Advanced)

La paramétrage, ainsi que le backup/restore, se fait à plusieurs niveaux différents : au niveau d’UnifiOS, qui est l’interface de gestion du contrôleur complet, et au niveau de chaque application (Network, Protect, etc).

Éteindre matériel via écran LCD :
sur écran : Settings -> Shut down
Pour revenir en arrière sur les menus de l’écran, swipe vers le haut ou le bas.

Interface

Il est possible de revenir à l’ancienne interface de l’appli Network, permettant plus de fonctionnalités/paramétrages.

Pour ceci, dans l’app Network : Settings -> System -> Advanced -> Interface : Legacy.

Backup/Restore

Pour backuper UnifiOS au complet (il me semble que cela inclut les paramétrages des applications), il faut être Owner du contrôleur. Être admin ne suffit pas. A priori un superadmin pourrait le faire aussi, mais je n’ai pas trouvé comment ajouter un superadmin.

Dans UnifiOS (https://unifi.ui.com/dashboard), choisir le contrôleur, puis Console Settings, de là on peut backuper le fichier sur les serveurs d’Unifi, et télechargera également le fichier en local. (ficheir .unifi)

Après restauration usine d’un contrôleur, si on le paramètre avec le même Owner que le contrôleur backupé, on peut le restaurer depuis les serveurs ou depuis un fichier local.
Attention, un backup n’est restaurable que sur un matériel ayant le même Owner !

On peut également backuper/restaurer les paramètres de chaque application individuellement (pour Network : Settings -> System -> Backup) (ficheir .unf)

Réseau

Modifier adressage réseau :
App Network -> Settings (bas gauche) -> Networks -> choisir le réseau et le modifier

DHCP bail fixe client :
App Network -> Topology -> choisir l’équipement -> activer Fixed IP

Changer serveur DNS distribué par DHCP :
App Network -> Settings -> Network -> Advanced -> DHCP -> DHCP DNS Server -> Enable -> Entrer entre 1 et 4 serveurs DNS

Redirection de port :
App Network -> Settings -> Firewall & Security -> Redirection de ports

IP fixe WAN routeur :
App Network -> Settings (bas gauche) -> Internet -> choisir le réseau WAN -> Advanced (Manuel) -> IPv4 Connection -> Static -> régler paramètres réseau

Fixer vitesse port routeur :
Topology (ou Unifi Devices) -> choisir l’équipement -> Ports -> Port Manager -> choisir le port et régler sa vitesse

Guest Hotspot :
Network app -> Settings -> Profiles -> Guest Hotspot

Isolation de réseau invité

https://vninja.net/2019/08/08/creating-isolated-networks-ubiquiti/

On peut créer un réseau “Guest” qui permet aux invités d’accéder à Internet, mais en le séparant du réseau principal.
Pour ceci, App Network -> Settings -> Network -> Create New Network.

Si on choisit “Guest” comme type de réseau, cela permet de restreindre l’accès via des codes/coupons etc. (???)

On peut également associer un réseau wifi à ce réseau invité.

Une fois le réseau créé, il sera cependant en mesure d’accéder (au moins pinger) les ressources du réseau principal. Pour empêcher ceci :
Network App -> Settings -> Firewall & Security -> New Rule.
Type : LAN In
Rule Applied Before predefined rules
Drop
Source : Network -> Choisir le réseau invité
Destination : Network-> choisir le réseau principal

Une fois appliquée, cette règle empêche aux clients du réseau invité d’accéder au réseau principal.
(vérifier si l’inverse est vrai aussi ?)

Note : pour vérifier, il faut tester un ping vers un vrai client sur le réseau principal, et non l’IP de la passerelle sur le réseau principal, car toutes les IP de la passerelle Unifi sont accessibles depuis tous les réseaux (ce sont des passerelles virtuelles, et le trafic réseau ne passe pas d’un réseau à l’autre, ça reste en interne).

Bornes Wifi

Explication des LED

blanc clignotant (0.5s) : démarrage
blanc fixe : en attente d’adoption (configuration/intégration ?)
blanc clignotant très rapide : bug, redémarrer l’AP

bleu fixe : adopté, foncitonnement normal
blanc/bleu clignotant rapide : upgrade en cours
bleu/éteint clignotant 5s : perte de connectivité WiFi
bleu/éteint rapide : mode “locate” activé dans l’appli unifi

bleu-blanc-off : TFTP mode (pour y rentrer, maintenir bouton reset lors de la mise en route jusqu’à apparition de ce motif)

Désactiver temporairement une borne

Ceci peut se faire logiciellement, mais uniquement dans l’ancienne interface. Pour ceci :
Devices -> choisir la borne à désactiver -> Config (engrenage) -> Manage device -> bouton Disable

On peut également complètement couper une borne alimentée en PoE en désactivant le PoE sur son port, via le Port Manager.

Caméras

Orientation

Dans l’appli Protect, aller dans la artie playback, ouvrir la caméra à réorienter, clic sur l’engrenage (en bas) et choisir Orientation.

Device groups

Settings -> General

Notifications mail

Si le “Remote Access” est activé, ce sont directement les serveurs Unifi qui sont utilisés pour l’envoi SMTP.

Pour tester l’envoi des mails, dans l’app Network, ancienne interface : Settings -> Network Application -> Test Cloud email.

Dans le portail Unifi, choisir un contrôleur puis System Log -> Push Notification Settings

Dans l’appli Network : System Logs -> Push Notification Settings.

Dans l’appli Protect : Settings -> Notification (-> Custom)

autre

port isolation conseils https://help.ui.com/hc/en-us/articles/115000166827-UniFi-Guest-Portal-and-Hotspot-System

Ports : https://help.ui.com/hc/en-us/articles/218506997

https://evanmccann.net/blog/ubiquiti/unifi-comparison-charts

Adoption : https://help.ui.com/hc/en-us/articles/204909754-UniFi-Layer-3-methods-for-UAP-adoption-and-management

22 Feb 2023, 00:00

Notes sur KeepassXC

Aperçu

Keepass est le client original. En v1 il était disponible uniquement sous Windows. Depuis la V2, il est multiplateforme.
Il est codé en dotnet (et donc mono sous Linux).

KeepassX était un client alternatif à Keepass nativement compatible Linux. Il n’est plus beaucoup développé. Je ne me penche pas dessus.

KeepassXC est un fork communautaire de KeepassX, nativement multiplateforme, codé en C++, et encore mis à jour régulièrement.

Keepass2 et KeepassXC partagent le même format de base de données, le format .kdbx.
Il me semble que Keepass v1 utilisait le format .kdb.

On peut ouvrir un fichier .kdbx alternativement avec Keepass2 et KeepassXC, les modifications sont vues mutuellement.

Par défaut, Keepass2 intègre une icône à la zone de notification.
KeepassXC ne le fait pas, mais on peut activer l’option dans les paramètres. Si on coche “Réduire au lieu de quitter l’appli” et “Afficher une icône dans la zone de notification”, on a le comportement le + souple : la fenêtre est réduite lors de la réduction et disparaît lors de la fermeture ; l’appli étant en permanence en fonctionnement dans la zone de notification.

Pour l’instant je me penche principalement sur KeepassXC. Son dépôt git est ici :
https://github.com/keepassxreboot
et son site officiel ici :
https://keepassxc.org/

On peut l’installer via les dépôts Debian avec la commande
sudo apt install keepassxc

L’intégration de KeepassXC à Firefox nécessite un module. En essayant de l’installer depuis le magasin de modules de Mozilla, je n’ai pas réussi à faire dialoguer les 2. Mais Debian package l’extension, et l’association avec KeepassXC a fonctionné directement (après avoir supprimé l’extension installée manuellement).
sudo apt install webext-keepassxc-browser

Il faut également activer, dans les paramètres de KeepassXC, l’intégration (générique) aux navigateurs, ainsi que l’intégration à chaque navigateur que l’on souhaite utiliser.
L’activation du navigateur Firefox va créer un fichier (qui contient le chemin du proxy KeepassXC) dans ~/.mozilla/native-messaging-hosts/ ; il faut donc la réactiver si on fait des tests à base de dossiers FF tout neuf.

Il me semble que chaque connection entre 1 profil et KeepassXC utilise une “base de données” (qui n’est pas la base de données KDBX, mais simplement le nom du lien entre les 2). On peut le voir dans les paramètre de Keepassxc-browser -> Base de données connectée. Je ne sais pas comment consulter les différents liens dans KeepassXC lui-même.

Une fois l’ensemble paramétré, on voit apparaître le logo de KeepassXC à côté des champs username. Si on clique dessus, cela remplit automatiquement les champs, ou propose de choisir l’identifiant en cas d’IDs multiple enregistrés pour une même URL.

Sync

Le fichier KDBX est synchronisable entre différents postes via des outils externes ; en mon cas Nextcloud.
Après test, il s’avère qu’il est tout à fait possible d’avoir le fichier KDBX déverrouillé sur 2 postes en parallèle. Dès que les modifications sont appliquées par le poste qui n’a pas créé ces modifs, KeepassXC s’actualise tout seul et affiche les modifications, sans besoin de fermer/ouvrir la base ou de redémarrer le logiciel.
La modification sera également accessible sous Firefox sans besoin de le relancer, mais en actualisant toutefois la page.

Import

On peut importer (entre autres) une base de password au format CSV. Ceci permet d’importer les passwords de Firefox.
Un bon guide est ici :
https://blog.bilak.info/2021/04/02/moving-passwords-from-firefox-lockwise-to-keepassxc/

On commence par exporter les mots de passe de Firefox dans un fichier CSV.
Si on utilise une version =< 2.7.0 de KeepassXC (jusqu’à Bullseye pour la version des dépôts Debian), il faut modifier les timestamps via le script présent sur le lien ci-dessus.

Ensuite, dans KeepassXC, “Base de données -> Importer -> Fichier CSV”. On choisit le CSV créé précédemment. Il faut alors créer une nouvelle base de données qui contiendra l’import. On pourra fusionner cette nouvelle base avec une base pré-existante ultérieurement.

Pour l’import, il faut cocher l’option spécifiant que la 1ère ligne contient les noms des champs.
Ensuite, établir cette correspondance :

  • Group -> Not Present
  • Title -> url
  • Username -> username
  • Password -> password
  • URL -> url
  • Notes -> httpRealm (pas obligatoire, mais permet de conserver des informations supplémentaires)
  • TOTP -> Not Persent
  • Icon -> Not Present
  • Last Modified -> timePasswordChanged
  • Created -> timeCreated

Fusion de 2 bases

Ouvrir la base destination.
“Base de données -> Fusionner à partir d’une base de données”. Taper le pass de la base source.
Les dossiers sont respectés lors de l’import.

10 Feb 2023, 00:00

Attribuer une IP fixe à un client VPN via Synology

Complètement copié-collé de cet article :
https://www.wundertech.net/setup-a-static-ip-address-for-openvpn-clients-on-your-synology-nas/

Testé sur DSM 6, mais pas sur DSM 7.

Pré-requis :

  • serveur OpenVPN installé sur le NAS
  • accès SSH au NAS, avec un utilisateur aux droits sudoers

L’identification du client dépendra de l’utilisateur (sur le serveur VPN) utilisé pour établir la connexion VPN.
On crée le dossier qui stockera les configurations IP souhaitées.

cd /usr/syno/etc/packages/VPNCenter/
sudo mkdir userIPs
sudo chmod 0755 userIPs
cd userIPs

Créer un fichier du nom (exact) de chaque utilisateur dont on souhaite fixer l’IP.
Notre utilisateur d’exemple s’appelle myUser. Je pense qu’il faut respecter la casse.
Notes sur l’utilisation de vi

sudo vi myUser

Dans ce fichier, coller la ligne suivante en adaptant l’adressage réseau. Attention, le dernier chiffre de la première adresse doit être ((multiple de 4) + 2), et la seconde adresse doit être l’adresse immédiatement précédente.
Choisir une adresse suffisamment élevée pour éviter le conflit avec les adresses attribuées à la volée.

ifconfig-push 10.8.0.202 10.8.0.201

Mettre les autorisations correctes :

sudo chmod 0644 ./*

On configure ensuite le serveur VPN pour prendre en compte ces fichiers :

cd /usr/syno/etc/packages/VPNCenter/openvpn/
sudo vi openvpn.conf

Ajouter dans le fichier la ligne suivante :

client-config-dir /usr/syno/etc/packages/VPNCenter/userIPs/
cd /volume1/@appstore/VPNCenter/etc/openvpn
sudo vi radiusplugin.cnf

et modifier la ligne overwriteccfiles pour obtenir

overwriteccfiles=false

Ensuite, il devrait suffire de redémarrer le Synology (ou éventuellement uniquement les services nécessaires ?) et de vérifier que les réglages sont bien pris en compte.