Plusieurs mois de développement et après une année depuis la dernière version, une nouvelle version du module PowerArubaCP est disponible !

Mais avant tout c’est quoi PowerArubaCP ?

C’est un module PowerShell qui utilise l’API REST de ClearPass Policy Manager d’Aruba ! ClearPass est le super serveur RADIUS et gestion des invités d’Aruba/HPE. Il permet l’authentification en 802.1x/MAC/Web des équipements filaires et/ou WiFi !

PowerArubba

Vu que PowerShell est compatible Windows / Linux / macOS, ce module aussi ! Et il y a été testé et validé sur les 3 plateformes.

Mais revenons à notre module !

En premier lieu, il faut installer le module.

Accédez à l’invité de commande PowerShell.

Install-Module PowerArubaCP

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

Cela va directement télécharger le module depuis PSGallery, ou simplement mettre à jour celui-ci si vous avez déjà une précédente version.

Update-Module PowerArubaCP


Pour commencer, il faut se connecter. Le module supporte pour le moment 2 méthodes de connexion : token ou client_id/secret.

Le plus simple est d’utiliser la méthode token. Pour cela dans le menu API, on crée un nouveau API Client et on génère le token

Plus d’information dans la documentation officielle !

On se connecte

Connect-ArubaCP 192.0.2.1 -token 70680f1d19f86110800d5d5cb4414fbde7be12ae
Name              Value
----              -----
token             70680f1d19f86110800d5d5cb4414fbde7be12ae
invokeParams      {DisableKeepAlive, SkipCertificateCheck}
server            192.0.2.1
port              443
version           6.10.0

On peut maintenant interroger le ClearPass

Sa version

Get-ArubaCPCPPMVersion
app_major_version : 6
app_minor_version : 10
app_service_release : 0
app_build_number : 180076
hardware_version : CLABV
fips_enabled : False
cc_enabled : False
eval_license : True
cloud_mode : False

La liste des services

Get-ArubaCPService | Format-Table

id name                                         type        template                         enabled order_no _links
-- ----                                         ----        --------                         ------- -------- ------
 1 [Policy Manager Admin Network Login Service] TACACS      TACACS+ Enforcement                 True        1 @{self=}
 2 [AirGroup Authorization Service]             RADIUS      RADIUS Enforcement ( Generic )      True        2 @{self=}
10 [Aruba Device Access Service]                TACACS      TACACS+ Enforcement                 True        3 @{self=}
11 [Guest Operator Logins]                      Application Aruba Application Authentication   False        4 @{self=}
12 [Insight Operator Logins]                    Application Aruba Application Authentication    True        5 @{self=}
13 [Device Registration Disconnect]             WEBAUTH     Web-based Authentication            True        6 @{self=}

L’ensemble des commandes sont disponibles via Get-Command -Module PowerArubaCP ou encore sur le GitHub du projet

Nouveauté de la version 0.5.0

Voilà quelques nouveautés de la version 0.5.0 qui viens d’être publiée:

Device Network Group

A l’origine, une demande / besoin d’un client concernant l’ajout d’un grand nombre de Network Device (NAS/NAD) dans des groupes (Network Device Group)

Les versions précédentes supportaient déjà les Network Device (une des premières fonctions implémentées!)

Ajout d’un équipement:

Add-ArubaCPNetworkDevice -name SW1 -ip_address 192.0.2.1 -radius_secret MySecurePassword -vendor Aruba -description "Add by PowerArubaCP"

id            : 3097
name          : SW1
description   : Add by PowerArubaCP
ip_address    : 192.0.2.1
radius_secret :
tacacs_secret :
vendor_name   : Aruba
coa_capable   : False
coa_port      : 3799
attributes    :
_links        : @{self=}

d’un deuxieme

Add-ArubaCPNetworkDevice -name SW2 -ip_address 192.0.2.2 -radius_secret MySecurePassword -vendor Aruba -description "Add by PowerArubaCP"

id            : 3098
name          : SW1
description   : Add by PowerArubaCP
ip_address    : 192.0.2.2
radius_secret :
tacacs_secret :
vendor_name   : Aruba
coa_capable   : False
coa_port      : 3799
attributes    :
_links        : @{self=}

Maintenant il est aussi possible d’ajouter les équipements dans un groupe.

Add-ArubaCPNetworkDeviceGroup -name "My SW Group" -list_ip 192.0.2.1

id           : 3044
name         : My SW Group
group_format : list
value        : 192.0.2.1
_links       : @{self=}

On peut ajouter et supprimer facilement des équipements dans le groupe

Get-ArubaCPNetworkDeviceGroup "My SW Group" | Add-ArubaCPNetworkDeviceGroupMember -list_ip 192.0.2.2

id : 3044
name : My SW Group
group_format : list
value : 192.0.2.1, 192.0.2.2
_links : @{self=}

Get-ArubaCPNetworkDeviceGroup "My SW Group" | Remove-ArubaCPNetworkDeviceGroupMember -list_ip 192.0.2.1

id : 3044
name : My SW Group
group_format : list
value : 192.0.2.2
_links : @{self=}

Device fingerprint

C’est une des nouveautés de CPPM 6.9! Le moteur Fingerprint est accessible en API.

Il était possible avant d’utiliser l’API EndPoint qui permet de spécifier le statuts ou encore les attributs d’un endpoint (adresse mac).

Get-ArubaCPEndpoint -mac_address b813d87d7cb3

id          : 3042
mac_address : b813d87d7cb3
status      : Unknown
attributes  :
_links      : @{self=}

mais il n’était pas possible de spécifier l’hostname, l’adresse IP et la catégorisation !

C’est maintenant possible

# Ajout Device Fingerprint (Device Nom, Categorie et Famille)
    Add-ArubaCPDeviceFingerprint -mac_address 000102030405 -device_category Server -device_family ClearPass -device_name ClearPass VM

    SUCCESS                                            _links
    -------                                            ------
    Successfully posted device fingerprint to profiler @{self=}

# Ajout Device Fingerprint (IP Adresse)
    Add-ArubaCPDeviceFingerprint -mac_address 000102030405 -ip 192.2.0.1

    SUCCESS                                            _links
    -------                                            ------
    Successfully posted device fingerprint to profiler @{self=}

# Ajout Device Fingerprint (Nom)
    Add-ArubaCPDeviceFingerprint -mac_address 000102030405 -hostname CPPM

    SUCCESS                                            _links
    -------                                            ------
    Successfully posted device fingerprint to profiler @{self=}

#Pour recuperer le resultat final 
 Get-ArubaCPEndpoint -mac 000102030405 | Get-ArubaCPDeviceFingerprint

    ip              : 192.0.2.1
    hostname        : CPPM
    updated_at      : 1622904104
    device_category : Server
    device_name     : ClearPass
    device_family   : ClearPass
    mac             : 000102030405
    added_at        : 1622903816
    _links          : @{self=}

Déploiement de VM

Un des défauts de CPPM, est l’installation de la VM. En effet, il n’y a pas de version vAPP avec les attributs pour spécifier les informations de VM (Nom, Adresse IP….)

Et l’installation prend un certain temps avec un certain nombre de fois où on attend la copie de fichier ou la configuration….

Pour les besoins de Poc / Test (des API), j’ai besoin de réinstaller assez souvent ClearPass.

Grâce à l’excellent script Set-VMKeystrokes de William LAM, j’ai pu automatisé l’installation et configuration initiale de ClearPass (et potentiellement mise à jour).

Il me faut maintenant uniquement environ 30min pour installer un Clearpass (et 45 minutes si je dois installer une mise à jour !)

Vous pouvez vous référer aux cmdlets suivantes pour réaliser la même chose ! J’aurai l’occasion de reparler bientôt du sujet avec une vidéo d’exemple !

Divers

Cela a été aussi l’occasion de moderniser le code !

Pour commencer, utilisation de ShouldProcess qui permet de demander une validation pour les Cmdlet type Set-XXX Ou Remove-XXX

Par exemple, en cas de suppression d’un Network Device:

Get-ArubaCPNetworkDevice SW1 | Remove-ArubaCPNetworkDevice 

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove Network device" on target "3154 (SW1)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

On peut bypasser la confirmation en utilisant -confirm:$false

Get-ArubaCPNetworkDevice SW1 | Remove-ArubaCPNetworkDevice -confirm:$false

C’est la façon standart en PowerShell.

La dernière version avait été testé sur CPPM 6.8, il est sorti l’année dernière CPPM 6.9 qui a fait un changement au niveau des adresse MAC (CP-19010). Elle utilise toujours le tiret (par exemple 000102030405) pour l’affichage, j’ai donc été obligé de mettre à jour les tests pour supporter ce cas-là.

De plus, courant Mai est aussi sorti CPPM 6.10, il y a fallu apporter des correctifs mineurs suite à des changements dans l’api ! Merci au test automatiser de Pester !

A ce sujet, j’ai basculé l’ensemble des tests sous la version 5(.1) de Pester, on a actuellement plus de 150 tests dans le projet.

A bientot pour des nouvelles explications sur un nouveau module PowerShell ou sur la mise à jour d’un module !

Alexis La Goutte

Rédigé par

Alexis La Goutte

Alexis La Goutte est depuis 6 ans consultant Réseau & Sécurité chez Cheops Technology. Il intervient chez des ETI de l’ouest et quelques grands comptes nationaux. Spécialisé dans le réseau, et plus particulièrement sur les produits Aruba, et dans la virtualisation & sécurisation du réseau VMware NSX. Alexis est certifié Aruba Certified Mobility eXpert (ACMX) et Aruba Certified ClearPass Professional (ACCP) également membre des programmes Aruba Ambassador Partner et MVP Airheads depuis 2017.
Lors qu’il lui reste du temps, il est Core dev pour Wireshark (contributeur au dissector WiFi, TLS, QUIC…) depuis 2011. Il contribue aussi au module PowerNSX qui permet l’automatisation NSX via PowerShell. il y a aussi crée en 2018, PowerAruba qui regroupe différents modules concernant l’automatisation (utilisation des API REST) des produits Aruba/HPE (PowerArubSW), pour ArubaCX (PowerArubaCX) et enfin pour ClearPass (PowerArubaCP).
Depuis 2020, Alexis est devenu vExpert, et reconnu aussi dans la catégorie vExpert NSX.