09 Mar 2023, 00:00

Convertir un PDF en noir&blanc

Cette ligne crée un nouveau document dont le nom suffixé de “-grayscale” input=mycolordoc.pdf output=$(echo "$input" | sed 's/.pdf$/-grayscale.pdf/') gs -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -sOutputFile="${output}" "${input}"

https://superuser.com/questions/104656/convert-a-pdf-to-greyscale-on-the-command-line-in-floss

14 Mar 2021, 00:00

Vrac sur LDAP / Active Directory

Généralités

DC : Domain Component (ce qui définit le domaine lui-même) OU : Organisation Unit (une organisation à l’intérieur du domaine, décidée par le service informatique ; non obligatoire) CN : Common Name (le nom courant d’un objet, par exemple “myUser”) DN : Distinguished Name (+- un chemin absolu, qui identifie l’objet de manière unique dans le répertoire ; comprend forcément des références aux DC et au CN, et éventuellement aux OU)

Exemple de DN : CN=OpenVPN,OU=OpenVPN,OU=IT,DC=paris,DC=myCompany,DC=com
Il s’agit du nom courant “OpenVPN” (un utilisateur), situé dans l’OU “OpenVPN”, elle-même située dans l’OU “IT”, elle-même située dans le domaine “paris.mycompany.com”

On peut obtenir le DN de n’importe quel objet dans Utilisateurs et ordinateurs Active Directory en faisant un clic-droit sur l’objet -> Éditeur d'attributs, puis en cherchant l’attribut distinguishedName (taper dist au clavier devrait amener dessus).

Recherche dans l’Active Directory depuis Linux

On peut utiliser le logiciel ldapsearch, disponible dans le paquet ldap-utils.

sudo apt install ldap-utils

On utilisera les flags suivants :

-H pour spécifier l'annuaire ldap (ou le serveur AD)
-x pour une authentification simple
-W pour demander le password
-D pour spécifier l'utilisateur utilisé pour se connecter auprès de l'AD ; ce peut être l'adresse mail (user@contoso.com) ou le DN de l'objet
-b pour définir le chemin de base de la recherche ; par exemple DC=paris,DC=myCompany,DC=com
-LLL pour supprimer les commentaires et la version de LDAP de l'affichage des résultats

On peut ensuite définir un ou plusieurs filtres pour sélectionner les objets désirés ; par exemple (sAMAccountName=Administrateur)" pour sélectionner l’objet dont le nom de compte est Administrateur ; on peut passer plusieurs filtres, avec la syntaxe suivante : (&(sAMAccountName=Administrateur)(memberOf=CN=myGroup,OU=Groups,OU=IT,DC=paris,DC=myCompany,DC=com)

Enfin, on peut choisir un attribut à afficher, pour ne récupérer que ce champ dans la liste des résultats. Par exemple "name" pour récupérer le nom du compte.

Ceci nous donne la syntaxe suivante pour rechercher le nom des membres du groupe

ldapsearch -H ldap://192.168.10.101 -x -W -D “CN=OpenVPN,OU=OpenVPN,OU=VCI,DC=boulogne,DC=escda,DC=viseoci,DC=fr” -b “DC=boulogne,DC=escda,DC=viseoci,DC=fr” “(&(memberOf=CN=Utilisateurs du VPN,OU=Groupes,OU=VCI,DC=boulogne,DC=escda,DC=viseoci,DC=fr))” “name”

28 Nov 2020, 00:00

Vrac wireguard

Point-to-point setup

https://www.wireguard.com/quickstart/
https://wiki.archlinux.org/index.php/WireGuard


## INSTALL
# Install wireguard
apt install wireguard

## KEYS
# Create storage
cd /etc/wireguard
mkdir keys && chmod go-rwx ./keys && cd keys

# Generate private key
(umask 0077; wg genkey > peer_A.key)
# Derive public key
wg pubkey < peer_A.key > peer_A.pub

# Optionnal - Generate Pre-Shared Key ; 1 for each peer pair
wg genpsk > peer_A-peer_B.psk


## NETWORKING
# Create interface
ip link add dev wg0 type wireguard

# Assign address and mask
ip address add dev wg0 192.168.2.1/24

# Set port
wg set wg0 listen-port 51871


wg set wg0 listen-port 51871 private-key ./peer_A.key

09 Nov 2020, 00:00

Monitoring du réseau sous Linux

Un peu de lecture ici.

nethogs

sudo apt install nethogs
sudo nethogs

06 Nov 2020, 00:00

Eth2 - Lighthouse via Docker

Exemple de docker-compose (pour Medalla)

22 Sep 2020, 00:00

Diagnostiquer profils réseaux et détection domaine

https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/domain-joined-machines-cannot-detect-domain-profile

Profiles

Observateur event
Journaux apps services
Microsoft -> Windows -> NetworkProfile -> Operationnel

On y voit le GUID du profil choisi une fois l’identificxation NLA effectuée

Get-NetConnectionProfile

https://learn.microsoft.com/en-us/powershell/module/netconnection/set-netconnectionprofile
Set-NetConnectionProfile -InterfaceIndex “18” -NetworkCategory “Private”

Pas possible de définit le profil Domaine ; ceci est fait automatiquement par Windows

https://superuser.com/questions/1725191/network-names-in-windows

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
Signatures

Pour diagnostiquer la connectivité réseau avec le controlleur de domaine
Test-ComputerSecureChannel

dcdiag

Serveur toujours en non identifié

Essayer de juste redémarrer le service NLA ; ça devrait fonctionner, mais ça recommencera au prochain reboot

https://glennopedia.com/2024/06/01/network-location-awareness-service-revisited/

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters
DWORD “AlwaysExpectDomainController” “1”

MTU

connaitre le MTU en powershell :
netsh interface ipv4 show subinterfaces

01 Jan 0001, 00:00

“adobe cloud” qui revient -> transforme les picees jointes pdf en lien adobe cloud

réactivé automatiquement à chaque update

tests solutions :

1 - https://www.reddit.com/r/Adobe/comments/1b1hfav/disable_office_com_addins_forever/ C:\Program Files\Adobe\Acrobat DC\PDFMaker rename/delete “Mail” et “Office” (fait sur poste fixe bicou (ancien Daniel) début avril 2024)

2 - https://www.reddit.com/r/Outlook/comments/17o692s/how_do_i_stop_outlook_asking_if_i_want_to_send/ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins\AdobeAcroOutlook.SendAsLink -> Load = 0 ou HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Office\16.0\Outlook\Resiliency\AddinList -> “AdobeAcroOutlook.SendAsLink”=“0” ou [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Adobe\Adobe Acrobat\DC\FeatureLockDown\cCloud] -> “bAdobeSendPluginToggle”=dword:00000001

01 Jan 0001, 00:00

“adobe cloud” qui revient -> transforme les picees jointes pdf en lien adobe cloud

réactivé automatiquement à chaque update

tests solutions :

1 - https://www.reddit.com/r/Adobe/comments/1b1hfav/disable_office_com_addins_forever/ C:\Program Files\Adobe\Acrobat DC\PDFMaker rename/delete “Mail” et “Office” (fait sur poste fixe bicou (ancien Daniel) début avril 2024)

2 - https://www.reddit.com/r/Outlook/comments/17o692s/how_do_i_stop_outlook_asking_if_i_want_to_send/ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins\AdobeAcroOutlook.SendAsLink -> Load = 0 ou HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Office\16.0\Outlook\Resiliency\AddinList -> “AdobeAcroOutlook.SendAsLink”=“0” ou [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Adobe\Adobe Acrobat\DC\FeatureLockDown\cCloud] -> “bAdobeSendPluginToggle”=dword:00000001

01 Jan 0001, 00:00

Introduction

Ansible est exécuté sur un poste local (typiquement un pc de bureau), et va servir à gérer un ou plusieurs postes distants (typiquement des serveurs).

Ceci ne nécessite pas de démon sur les serveurs à gérer ; la connexion se fait via ssh.

Installation

bullseye : sudo apt install ansible Dans bookworm, séparation entre ansible-core (binaires) et ansible (?). Le paquet ansible dépend de ansible-core.
Numéros de version différents : ansible 6 et ansible-core 2.13 en novembre 2022.

Pattern

https://docs.ansible.com/ansible/latest/inventory_guide/intro_patterns.html

À chaque appel, ansible se connecte à un hote (ou groupe d’hotes). On appelle ces cibles le “pattern”. Un pattern peut être un hote, une addresse IP, un groupe, un ensemble de groupe, ou un FQDN.

Par défaut, le seul pattern accessible est l’hote implicite localhost ou 127.0.0.1 (et PAS 127.0.1.1). Ce pattern n’est pas inclus lors d’un appel au groupe “all”.

Pour pouvoir être utilisé, chaque pattern DOIT être entré dans un inventaire (même les IP/FQDN).

On peut utiliser des wildcard, regex et autres pour définir un pattern.

Inventaire

https://linux.goffinet.org/ansible/comprendre-inventaire-ansible/

Constitué d’hôtes, de groupes d’hôtes, et de variables associées.
2 groupes spéciaux : all (tous les éléments) et ungrouped (tous les éléments n’ayant aucun autre groupe que all)

Les éléments d’un inventaire sont les éléments sur lesquels vont être effectués les modules ansible.

Nomenclature parent/enfant ?

On peut imbriquer des groupes.

On peut définir un inventaire au moment de l’appel de la commande (1 ou plusieurs hotes) :
ansible -i '127.0.0.1,'
Il faut préciser la virgule, même si 1 seul hôte, sinon il cherche un fichier nommé 127.0.0.1 dans le répertoire courant.

Modules

Les modules ansibles sont des scripts pré-écrits, réutilisables, qui servent généralement à remplir une fonction précise. On peut créer ses propres modules (?)

La syntaxe pour appeler un module est :
-m module_name -a module_args

Voici quelques modules inclus dans l’installation d’ansible :

  • command : c’est le module par défaut. Va exécuter, via ssh, la commande sur l’hôte. Par exemple ansible localhost -a "whoami"
    Ne passe pas par un shell ; exécute directement la commande. En conséquence, un certain nombre de fonctionnalités nbe sont pas disponibles, par exemple les redirecteurs (> etc), l’expansion de variables, l’environnement utilisateur etc.
    https://serverfault.com/questions/958952/ansible-task-write-to-local-log-file

  • shell

Différences entre les modules command et shell

  • ping : essaye de se connecter en ssh au pattern, et vérifie que python est accessible ; retourne "ping": "pong" en cas de succès ; Retourne "changed": false en tous les cas.
    En cas d’échec, "unreachable": true (ou autre ?)

Syntaxe

ansible pattern -i inventory -m module

Playbook

Ensemble/organisation de commandes ad-hoc ? Playbook est à commande ansible ce qu’un script est à une commande bash ?

Config

ansible-config list pour lister tous les éléments de configuration

/etc/ansible/ansible.cfg ~/ansible.cfg (override la précédente)

HOTES

ansible peut être utilisé sur un client local, et se connecter à un “hote”. Les hotes doivent être définis. L’hote “localhost” existe par défaut.

ansible –list-hosts localhost

dans inventory -> playground, sous sandbox, on spécifie l’hostanme/ip du serveur, et le user utilisé)

roles https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html

tags

variables : {{ myvar }}

chaque tache :

  • un nom friendly
  • des tags ; en l’absence de tags, la tache est jouée lors du playbook ; un “never” dit de ne pas lancer la tache SAUF si un des tags suivant est spécifié -> permet de spécifier un ensemble d’actions qui seront effectuées avec un tag (par exemple “install”, “populate”, “deploy” etc…)

01 Jan 0001, 00:00

Entra Domain Services

Fournit une partie des fonctionnalités AD DS locales, dont les GPO. Mais le domaine est géré par Microsoft.

Sur le portail Azure, dans “Tous les services” on peut trouver Microsoft Entra Domain Services ou aller là : https://portal.azure.com/#browse/Microsoft.AAD%2FdomainServices

On crée le service Domain Services