Netscaler VPX / Citrix ADC : Le Guide Complet pour Bien Débuter

Introduction

Bienvenue dans ce cours

Ce cours est toujours en cours d’écriture, je pense en être à 80%

Hey!

Si comme nombreux de mes collègues, le netscaler te semble comme une boîte noir ou un produit réseau dont tu n’as pas à connaitre (nan mais Netscaler c’est un produit réseau), tu es sur la bonne page!

Car je vais te montrer de la manière la plus simple possible, comment fonctionne le Netscaler dans son utilisation la plus courante.
Laquelle ?
Permettre l’accès à une application publiée ou machine virtuelle à partir du Netscaler comme point d’entrée.

Donc permettre l’authentification sur l’interface web du Netscaler:

et de lancer des applications comme le CMD

Et nous allons voir exactement comment faire ça.

A la fin de ce cours, je te délivrerai ta ceinture noire de Netscaler:

Note de l’auteur

Juste avant de commencer, je vais te révéler pourquoi il est très bénéfique de se mettre à Netscaler.

Contrairement à Xenapp/Xendesktop, Netscaler est une solution quasi INTEMPORELLE.
J’ai connu Metaframe XP, 4.0, 4.5, 5.0, 6.0 (la version Vista de citrix lol), 6.5 etc … jusqu’à la 7.X.
D’une version majeure à une autre (6.X à 7.X par exemple), le fonctionnement est complètement différent.
Si tu me mettais devant la console Xendesktop 7.X sans être formé, je touchais pas la souris.

Normalement, même avec une grosse mise à jour, on devrait être capable de s’en sortir un minimum.
Comme dans un jeu, tu passes de Tekken 6 à 7, tu retrouves à peu près les mêmes persos et les mêmes coups.

Avec Xenapp/Xendesktop, pas vraiment, t’as presque l’impression de changer de jeu.
Sans compter que les noms des composants changent tout le temps. C’est très déstabilisant.

Sur Netscaler, quelque soit les mises à jour, l’interface web reste quasiment pareil.
Les concepts restent les mêmes.
Tu gardes tes connaissances pour longtemps!

Les meilleurs business sont ceux intemporels, et il en est de même pour la connaissance.

Prérequis

Pour le lab, j’ai utilisé Vmware workstation que vous pouvez retrouver ici:
https://www.vmware.com/fr/products/workstation-pro/workstation-pro-evaluation.html

Il vous faudra installer au préalable une plateforme Citrix comprenant donc au moins:

  • Un Delivery Controler
  • Un storefront
  • Un serveur Xenapp / Xendesktop
  • Un contrôleur de domaine Active Directory  avec une autorité de certification

Vous pouvez biensûr installer tous les composants Citrix dans un même serveur!
C’est moche mais ça reste du lab, et tant que ça marche 🙂

Pour information, voici comment est configuré mon Lab:

Premiers Pas

Télécharger Netscaler VPX ADC

Ce process n’est malheureusement plus d’actualité! Depuis fin 2019, Citrix a décidé de ne plus permettre d’essayer Netscaler. Les mauvaises langues diront que c’est pour restreindre la connaissance Netscaler afin de vendre plus de prestation officielle Citrix.
Pour avoir une licence d’éval, il va falloir passer par votre contact Citrix. Si vous en avez pas, vous pourrez peut être avoir une licence en appelant miel : https://www.miel.fr/citrix J’ai déjà appelé par téléphone par le passé et il m’avait fourni des licences.

Nous allons commencer par tout simplement télécharger la dernière version disponible de Netscaler disponible à cette adresse:
https://www.citrix.com/downloads/citrix-adc/

Il faut faudra vous logger avec votre compte mycitrix.
Si malgré tout, vous ne pouvez pas le téch

 

CTX3X-667PF-Y6LG7-TXMRT-QTGW7

Installation de Netscaler VPX ADC

Maintenant qu’on a téléchargé Netscaler, on va l’installer 🙂

On décompresse le fichier zip

 

Puis nous allons lancer Vmware Workstation.

Installation du fichier de licences

On voit voir dans ce chapitre comment récupérer un fichier de licence.

Récupération de l’adresse MAC

Pour récupérer la mac adress, vous pouvez le faire en vous connectant en ssh sur le netscaler puis tapper les commandes suivantes:

shell
lmutil lmhostid

La commande shell nous permet simplement de nous permettre de lancer des commandes shell comme les lignes de commandes MSDOS ( cd, cp, dir etc…)
Et la commande lmutil lmhostid nous permet d’afficher l’adress mac qui est dans mon cas: 000c2975032f

Téléchargement du fichier de licences

Connectez vous à votre compte citrix:

https://identity.citrix.com/

 

 

Installation du fichier de licences

Dès lors que vous vous reconnecterez au Netscaler, il vous sera demandé d’uploader un fichier de licence.
Ca tombe bien, on en a un  😎

Cliquer sur Add New License

Clique sur Browse.
On notera qu’on peut aussi récupérer l’HOST ID (adress mac) du netscaler à droite, mais afin que le cours soit mieux structuré et que t’ais un premier aperçu avec la connexion ssh sur le netscaler, on l’a fait  en ligne de commande  😉

Et on reboot !

Reconnecte toi et tu devrais voir ça  😀 :

Activation des Features

Nous allons activer 2 features indispensables à la configuration de notre netscaler

Il suffit de faire un ptit clique droit Enable Feature

Ou en ligne de commande :

1
enable ns feature SSLVPN AAA

Nous verrons par la suite à quoi ils servent, ne t’inquiète pas 😉

Gestion des certificats

Avant de commencer

Pour beaucoup, les certificats est un sujet qui fait peur pour de nombreuses raisons:

  • manque de pratique
  • une autre équipe (ou collègue) l’a fait pour nous
  • les docs sur internet expliquant le fonctionnement ne sont pas toujours intuitifs…
  • les explications (trop techniques) de vos collègues vous confortent dans l’idée que ce n’est pas fait pour vous etc …

Personnellement, avant de me mettre à Netscaler, je n’étais vraiment pas à l’aise avec les certificats.
Pas à l’aise veut dire que je comprenais pas le fonctionnement exacte.
Je suivais les tutos sur internet sans vraiment comprendre, mais du moment que ça marchait, je me disais : ” Vu que ça marche, c’est que je maitrise …  :mrgreen: “.

Puis un jour, un collègue m’a demandé:
“Hey Max, j’ai jamais vraiment compris le fonctionnement des certificats, tu pourras m’expliquer quand t’auras 5 min s’il te plait ?”

Le process d’obtention d’un certificat est décrit à cet endroit:
Traffic Management / SSL / SSL Certificate

Il est même accompagné d’un ptit schéma que nous allons suivre pour créer notre certificat:

Ce schéma décrit le process complet que nous allons suivre pas à pas en 6 étapes:

Création du CSR et de clé privée

Création de la clé privée

On va traiter de l’étape 1 du schéma.

Création du CSR

Request File Name: netscaler.reqKey Filename:netscaler.key

PEM Passphrase (For Encrypted Key)

Digest Method*

Common Name*

Envoi du CSR à l’ Autorité de certification

Envoi du CSR à l’autorité de certification

On va traiter de l’étape 2 du schéma.

Récupération du CSR

Nous allons dans un premier temps, récupérer le CSR (pour l’envoyer, mieux vaut le récupérer avant 🙂 )

Envoi du CSR à l’ Autorité de certification

Récupération du certificat

On va traiter de l’étape 3 du schéma.

 

Installation des certificats

Installation certificat root

On va traiter de l’étape 4 du schéma.

Installation du certificat

Link du certificat

On va traiter de l’étape 5 du schéma.

Bind du certificat au Vserver

On va traiter de l’étape 6 du schéma.

A retenir sur les certificats

Si après avoir fait tout ça, les certificats sont toujours un peu floues pour vous, voici ce qu’il faut retenir:

Un certificat SSL (certificate-keypair) est composé de :
– un certificat fourni par une autorité de certification (privée dans notre exemple vu que l’on fait via notre Autorité de certification Windows)

Certnew que j’ai renommé en netscaler dans ce cours.

– une clé privée (que l’on a crée sur le netscaler)

 

La combinaison du certificat et de la clé privée nous donne le certificat SSL

certificat SSL = Combinaison du Certificat File Name (

Authentification Active Directory

Création du monitor LDAP

add lb monitor monitor-ldap_test.local LDAP -scriptName nsldap.pl -dispatcherIP 127.0.0.1 -dispatcherPort 3013 -password P@ssword01 -secure YES -baseDN "dc=test,dc=local" -bindDN svc_vpx_ldap@test.local -filter cn=builtin

Création du Load Balancing Virtual Server LDAP

add lb vserver virtual-server_ldap_test.local SSL_TCP 2.2.2.2 636 -persistenceType NONE -cltTimeout 9000
bind lb vserver virtual-server_ldap_test.local service-group_ldap_test.local
set ssl vserver virtual-server_ldap_test.local -sslProfile ns_default_ssl_profile_frontend
bind ssl vserver virtual-server_ldap_test.local -certkeyName netscaler-keypair
bind ssl vserver virtual-server_ldap_test.local -eccCurveName P_256
bind ssl vserver virtual-server_ldap_test.local -eccCurveName P_384
bind ssl vserver virtual-server_ldap_test.local -eccCurveName P_224
bind ssl vserver virtual-server_ldap_test.local -eccCurveName P_521

Ajout des serveurs LDAP

On ajoute nos serveurs LDAPS

add server DC01 192.168.43.11
add server DC02 192.168.43.12

Création du service group LDAP

add serviceGroup service-group_ldap_test.local SSL_TCP
bind serviceGroup service-group_ldap_test.local DC01 636
bind serviceGroup service-group_ldap_test.local DC02 636
bind serviceGroup service-group_ldap_test.local -monitorName monitor-ldap_test.local
set ssl serviceGroup service-group_ldap_test.local -sslProfile ns_default_ssl_profile_backend

Création de la Stratégie d’Authentification LDAP

add authentication ldapPolicy authentication-ldap-policy_test.local ns_true ldap-authentication-server_test.local

Création du Serveur d’Authentification LDAP

add authentication ldapAction ldaps-authentication-server_test.local -serverIP 2.2.2.2 -serverPort 636 -ldapBase "dc=test,dc=local" -ldapBindDn svc_vpx_ldap@test.local -ldapBindDnPassword P@ssword01 -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName sAMAccountName -secType SSL -passwdChange ENABLED

Storefront Load Balancing

Ajout des Serveurs StoreFront

add server STF01 192.168.43.41
add server STF02 192.168.43.42

Création du Monitor Storefront

add lb monitor "Monitor Storefront" STOREFRONT -scriptName nssf.pl -dispatcherIP 127.0.0.1 -dispatcherPort 3013 -LRTM DISABLED -secure YES -storename store1 -storefrontcheckbackendservices YES

https://docs.citrix.com/en-us/storefront/current-release/integrate-with-citrix-gateway-and-citrix-adc/load-balancing-with-citrix-gateway.html#citrix-service-monitor

https://docs.citrix.com/en-us/storefront/current-release/integrate-with-citrix-gateway-and-citrix-adc/load-balancing-with-citrix-gateway.html

https://www.carlstalhood.com/storefront-load-balancing-netscaler-12/#monitor

Création du Storefront Group

add serviceGroup Service-group_Storefront SSL -maxClient 0 -maxReq 0 -cip ENABLED X-Forwarded-For -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO

Passage du Monitor Storefront en https 443

cd "C:\Program Files\Citrix\Receiver StoreFront\Scripts"
.\ImportModules.ps1
Install-DSServiceMonitorFeature -ServiceUrl "https://localhost:443/StorefrontMonitor"

Création du Certificat pour le Virtual Server Storefront

Prérequis

De base, si vous tentez d’ajouter un Subject Alternative Name à un certificat, sous Windows Server 2012 en tout cas, cela ne marchera pas sans lancer cette ligne de commande sur votre Authorité de certification :

certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc

Cette astuce vient de ce site pour information : http://terenceluk.blogspot.com/2017/09/adding-san-subject-alternative-name.html

Si vous ne le faites pas, vous aurez un certificat sans SAN comme dans mon screenshot à gauche.
A droite, je refais la même demande de certificat, et j’ai bien le SAN ( la procédure de création de certificat est plus bas dans l’article   😉  )

Création de la clé RSA et du CSR

create ssl rsakey storefront.test.local.key 2048 -exponent F4 -keyform PEM -des3 -password P@ssword01
create ssl certReq storefront.test.local.csr -keyFile storefront.test.local.key -keyform PEM -PEMPassPhrase P@ssword01 -countryName FR -stateName PARIS -organizationName TEST -localityName FRANCE -commonName storefront.test.local -digestMethod SHA256

Envoi du CSR à l’ Autorité de certification

san:dns=storefront.test.local&dns=discoverReceiver.test.local

Récupération du certificat

Installation du certificat

add ssl certKey storefront.test.local-keypair -cert storefront.cer -password P@ssword01 -key storefront.test.local.key -expiryMonitor ENABLED -notificationPeriod 30
link ssl certKey storefront.test.local-keypair CAroot-keypair

 

Création du Storefront Load Balancing Virtual Server

Création d’une Entrée DNS pour la VIP Storefront