TL;DR:
Ce rapide tuto indique toutes les étapes du déploiement "from scratch" d'un environnement CyberArk PAM on-prem (composants Vault, PVWA, PSM, CPM).
Ce document fait partie d'une série d'articles sur le PAM CyberArk.
Date: 07/2023
Version: 12.2
Mise à jour: en cours
Ce tuto fournit le minimum pour un déploiement complet histoire de disposer rapidement d'un lab minimal fonctionnel pour faire des tests. On ne va pas dans l'exploration de nombreuses problématiques de configuration, de sécurisation et de tuning. Pas de DR Vault, pas de PTA, ...etc.
L'idée ici est de disposer d'un environnement de Lab "fresh install/out-of-the-box" à la maison pour pouvoir faire des tests. On ne vise pas l'environnement de prod avec tout le détail du paramétrage spécifique.
Pour la réalisation de ce tuto je dispose d'une machine avec 32GB de RAM, OS Ubuntu 24.04 et hyperviseur KVM/libvirt (QEMU) installé, ainsi que le gestionnaire de machines virtuelles virt-manager (voir le détail du lab ici). De plus, j'ai créé des templates de VM Ubuntu Server et Windows Server.
Enfin, un environnement Active Directory de test est déployé.
Il faut en outre disposer des binaires d'installation du logiciel. Pour ce tuto, les fichiers suivants seront utilisés:
| Fichier | Composant | Remarques |
|---|---|---|
Central Policy Manager-Rls-v12.2.4.zip |
CPM | Gère les changements de mots de passes |
Client-Rls-v12.2.zip |
Vault Client | Client Windows pour accéder au Vault |
Master CD:DemoMasterKeys.zip |
Master CD + clés | Clés de démonstration |
Operator CD:DemoOperatorKeys.zip |
Operator CD + clés | Clés de démonstration |
ndp48-x86-x64-allos-enu.exe |
.NET Framework 4.8 | Prérequis Windows pour plusieurs composants CyberArk |
OPM-RHELinux8-Intel64-Rls-v12.2.zip |
OPM Linux | Pour Redhat/Ubuntu |
PACLI-Rls-v12.2.zip |
PACLI | CLI du Vault |
Password Upload Utility-Rls-v12.2.zip |
Password Upload | Pour l'import massif de comptes dans le Vault |
Password Vault Web Access-Rls-v12.2.4.zip |
PVWA | Portail d'accès au PAM |
Privileged Session Manager-Rls-v12.2.5.zip |
PSM | Proxy RDP |
PrivilegedSessionManagerSSHProxy-RHELinux8-Intel64-Rls-v12.2.5.zip |
PSM | Proxy SSH |
Remote Control Client-Rls-v12.2.zip |
RC Client | Utilisé avec certaines fonctions de contrôle à distance (PSM) |
Roles-Rls-v12.2.3.zip |
Roles Package | Scripts d'import des rôles et Safe par défaut |
Server-Rls-v12.2.4.zip |
Vault | Le coeur de la plateforme |
Add-Ons-Rls-v12.2.5.zip |
Add-ons | Modules complémentaires (connecteurs, extensions) |
Disaster Recovery-Rls-v12.2.4.zip |
DR Vault | Facultatif |
ExportVaultData-Rls-v12.2.zip |
Export tool | Pour migration/audit. Facultatif |
PTA Agent-Rls-v12.2.5.zip |
PTA | Facultatif |
Replicate-Rls-v12.2.zip |
Outils de réplication Vault | Facultatif |
Upgrade-Rls-v12.2.5.zip |
Outils d'upgrade | Facultatif |
Et bien sûr:License.xml |
Fichier de licence de test pour un lab | A demander gentiment à votre commercial préféré |
Le diagramme ci-dessous réprésente le lab à déployer. On a:
| Machine | Rôle | Adresse IP |
|---|---|---|
| vault | Vault | 192.168.122.110 |
| components | PVWA, PSM RDP, CPM | 192.168.122.111 |
| psmssh | PSM SSH | 192.168.122.112 |
| dr | DR Vault | 192.168.122.113 |
| dc1 | Domain Controller | 192.168.122.101 |
| batroun | Serveur Windows banal | 192.168.122.104 |
| cedar | Serveur Linux banal | 192.168.122.105 |
| pacli | Machine d'admin | 192.168.122.115 |
NB: on est dans un mode de fonctionnement où on va utiliser les Transparent Users et les Transparent Groups dans CyberArk, c'est-à-dire que des groupes AD vont être mappés sur des groupes internes CyberArk de sorte à ce que l'appartenance de comptes AD à ces groupes procure des privilèges dans CyberArk.
Créer les groupes AD:
| Groupe | (mapping prévu dans CyberArk) |
|---|---|
| CyberArk Vault Admins | Vault Admins |
| CyberArk Safe Managers | Safe Managers |
| CyberArk Auditors | Auditors |
| CyberArk Users | Users |
| CyberArk Help Desk | aucun |
| LinuxAdmins | aucun |
| WindowsAdmins | aucun |
Créer les utilisateurs AD (LDAP) en correspondance avec le tableau ci-dessous:
| User | Description | Authent | Rôle | Groupe AD |
|---|---|---|---|---|
| Administrator | Cyberark | Vault admin | - | |
| Master | Cyberark | Master user | - | |
| mike | CyberArk Team (AD) | LDAP | Vault Admin | CyberArk Vault Admins |
| cindy | CyberArk Team (AD) | LDAP | Auditor | CyberArk Auditors |
| dexter | CyberArk Team (AD) | LDAP | User Manager (custom) | CyberArk Help Desk |
| paul | Linux Team | LDAP | Safe Manager | CyberArk Safe Managers |
| carlos | Linux Team | LDAP | User | LinuxAdmins |
| tom | Windows Team | LDAP | Safe Manager | CyberArk Safe Managers |
| john | Windows Team | LDAP | User | WindowsAdmins |
| robert | Oracle Team | LDAP | Safe Manager | CyberArk Safe Managers |
Mettre les groupes LinuxAdmins et WindowsAdmins dans le groupe CyberArk Users.
Tous les users AD sont membres du groupe CyberArk Users
Déployer les machines virtuelles depuis les templates:
Si nécessaire (optionnel), synchroniser le temps de toutes les machines virtuelles du Lab à une date antérieure selon cette procédure.
Joindre les machines au domaine.
Sur le host, faire un script de démarrage et un script d'arrêt du lab. Par exemple:
$ cat startCA.sh
#!/bin/bash
/usr/bin/virsh start DC1
/usr/bin/virsh start vault
/usr/bin/virsh start components
/usr/bin/virsh start psmssh
/usr/bin/virsh start DR
/usr/bin/virsh start windows1
/usr/bin/virsh start linux1
$ cat stopCA.sh
#!/bin/bash
/usr/bin/virsh shutdown DC1
/usr/bin/virsh shutdown vault
/usr/bin/virsh shutdown components
/usr/bin/virsh shutdown psmssh
/usr/bin/virsh shutdown DR
/usr/bin/virsh shutdown windows1
/usr/bin/virsh shutdown linux1
Sur le Domain Controller, ouvrir une console PowerShell:
Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools
Install-AdcsCertificationAuthority -CAType EnterpriseRootCA
Exporter le certificat avec certsrv.msc.
Editer la GPO par défaut du domaine:
Le firewall Windows doit être activé sinon le Vault ne fonctionne pas.
netsh advfirewall set allprofiles state on
Installer .net framework 4.8
Copier Master CD et Operator CD sur C:\
Renommer la licence en License.xml et la mettre sur C:\
Lancer l'installation (ne pas activer le hardening quand demandé pour env. de test)
Dans C:\program files (x86)\provateark\server\conf\dbparm.ini, ajouter une ligne pour spécifier l'adresse IP du serveur components, puis indiquer le chemin vers la recovery key du Master CD:
EmergencyStationIP=192.168.122.11
RecoveryPrvKey="C:\Master CD\recprv.key"
Redémarrer le service.
Prérequis au PVWA:
PS> Install-WindowsFeature Web-Asp-Net45
Copier les binaires sources d'install sur C:\
Installer .net framework 4.8
1: Installer le client privateArk et rebooter.
2: Lancer l'install de PVWA.
Ouvrir l'URL du PVWA et faire le user provisioning LDAP pour le domaine.
3: Installation de CPM.
CPMEM038E importation des platforms en erreur
Prérequis au PSM RDP:
PS> Enable-PSRemoting
PS> Enable-PSRemoting -Force
PS> Enable-PSRemoting -Force -SkipNetworkProfileCheck
Sur le Domain Controller, ajouter dans les serveurs managés le serveur COMPONENTS:
4: Installation du PSM (Privileged Session Manager-Rls-v12.2.5).
Copier PrivilegedSessionManagerSSHProxy-RHELinux-Intel64-Rls-v12.2.5.zip sur le serveur.
Installer le composant:
# yum install unzip
# cd /tmp
# unzip /home/thom/PrivilegedSessionManagerSSHProxy-RHELinux-Intel64-Rls-v12.2.5.zip
# vi vault.ini
VAULT="lab"
ADDRESS=192.168.122.10
# yum install libssh
# cp psmpparms.sample /var/tmp/psmpparms
# vi /var/tmp/psmpparms
InstallationFolder=/tmp
AcceptCyberArkEULA=Yes
# chmod +x CreateCredFile
# ./CreateCredFile user.cred Password -Username administrator -Password LabPassword123! -EntropyFile
# rpm -i IntegratedMode/CARKpsmp-infra-12.02.5.19.x86_64.rpm
# rpm -i CARKpsmp-12.02.5.19.x86_64.rpm
# service psmpsrv status
# cat /var/opt/CARKpsmp/temp/EnvManager.log
Sur le serveur components: clic droit/properties sur This PC ; Remote settings => décocher la case "Allow connections only from ..."
Sur le Domain Controller: créer des users winadmin et linadmin et les mettre dans les groupes WindowsAdmins et LinuxAdmins.
Sur components: Login PVWA en administrator
Sur components: Login PVWA en mike
Dans la master policy:
Création du safe WIN_ADM (ajout groupe Cyberark Windows Sysadmins)
Onboarding du compte winadmin
test de connexion: dans la case du milieu (target) mettre vesvres.local puis cliquer Resolve et cocher la case mettre dans le profil. Remote machine: windows1 => Connect
Faire le test de connexion en "john"
linux1 est un serveur Ubuntu 24.04
$ sudo su -
# hostnamectl set-hostname linux1
# vi /etc/netplan/00*.yaml
Mettre le DC en DNS (192.168.122.20)
netplan apply
vi /etc/resolv.conf
nameserver 192.168.122.20
search [nom_du_domaine]
apt install sssd realmd
realm discover vesvres.local
realm join vesvres.local
Création compte local linadmin (ou intégration compte windows)
PVWA: création du safe LIN_ADM (ajout groupe Cyberark Linux Sysadmins)
Onboarding du compte linadmin
Test: login en carlos et utilisation du compte
2nd onboarding du compte linadmin en mode SSHkey
# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
PubkeyAcceptedKeyTypes=+ssh-rsa
systemctl restart sshd
--
TG - 07/2023