[NETSCALER] Configuration Google authenticator OTP

Cet article  vous permettra d’installer et de configurer une Appliance Citrix NetScaler VPX en mode ICA-proxy (Netscaler Gateway) sécurisée avec l’authentification Active Directory et Radius Google Authenticator.

Google Authenticator ( http://code.google.com/p/google-authenticator/ ) est un excellent système d’authentification double facteur. De plus, il est libre. Il peut être utilisé avec FreeRADIUS pour fournir une authentification à 2 facteurs.

powered by WordPress Multibox Plugin v1.3.5

authenticator-322x140

Tout cela fonctionne grâce à une bibliothèque appelée PAM, PAM pour « Pluggable Authentication Modules ». Pour plus d’informations sur PAM, voir http://www.linux-pam.org/. Google Authenticator a un module PAM qui est inclus dans le cadre du projet. PAM est le lien qui permet au service FreeRADIUS de communiquer avec Google Authenticator.

FreeRADIUS est un serveur populaire open source. Radius est un système d’authentification standard qui peut être utilisé pour authentifier de nombreux appareils différents, y compris les VPN, routeurs, commutateurs, ordinateurs, et bien plus encore. Pour plus d’informations sur FreeRADIUS, voir http://freeradius.org/.

 

Certains éléments de l’infrastructure ne seront pas abordés, notamment :

L’installation d’un Active Directory Microsoft,

L’installation de Xenapp ou Xendesktop,

L’installation et la configuration de la Web interface Citrix 5.4 ou du StoreFront 2.x,

L’installation de base d’ubuntu-12.04.4-server-amd64,

L’installation et la configuration de base du NetScaler.

Seront traités :

L’installation et la configuration de FreeRadius avec Google Authenticator,

La configuration de l’authentification double sur le NetScaler,

La customisation de la page de login Netscaler Gateway.

 

1.Schema d architecture

 

Ce schéma présente les éléments de l’installation.

powered by WordPress Multibox Plugin v1.3.5

image2


2.Configuration de Google Authenticator avec Freeradius

 

Nous allons utiliser la distribution Ubuntu 12.4 serveur. Nous n’aborderons pas l’installation de base. Il faut donc au préalable avoir déployé la VM Ubuntu sur votre hyperviseur et avoir configuré la couche réseau.

 

Activer le Compte Root

Par défaut, le compte root est désactivé sur cette distrib

Sudo passwd –u root
Sudo passwd root

 

Installer SSH

Ceci pour continuer la config en Putty.

 

sudo aptitude install ssh

 

NTP Install

Google Authenticator utilise un système de token basé sur le temps. C’est pourquoi, il est très important que tous les composants discutent avec la même heure.

sudo bash
apt-get update
apt-get install ntp

 

Install FreeRADIUS et autres

sudo bash
apt-get update
apt-get install build-essential libpam0g-dev freeradius git libqrencode3

 

 

Download Module Google Authenticator Pam

cd ~
git clone https://code.google.com/p/google-authenticator/
cd google-authenticator/libpam/
make
make install

 

 

Configuration d’un groupe Local Unix

Ce groupe vous permettra de bloquer l’accès au service. Ajoutez ensuite tous les utilisateurs dans ce groupe pour les bloquer.

addgroup radius-reject

 

 

Configurer FreeRADIUS

FreeRADIUS doit s’exécuter en tant que root. FreeRADIUS doit accéder aux jetons google_authenticator dans chaque répertoire homedir de chaque utilisateur.

 

Editer avec vim le fichier  /etc/freeradius/radiusd.conf pour changer le compte de service Radius.

 

Chercher les lignes

user = freerad

group = freerad

Remplacer par

user = root

group = root

 

Editer avec vim le fichier  /etc/freeradius/users pour ajouter le group radius-reject.

 

Chercher les lignes suivantes # Deny access for a group of users.

#

# Note that there is NO ‘Fall-Through’ attribute, so the user will not

# be given any additional resources.

Modifier la ligne comme ceci

DEFAULT Group == “radius-reject”, Auth-Type := Reject

Reply-Message = “Votre accès n’est pas autorisé ”

Ajouter la ligne suivante

DEFAULT Auth-Type := PAM

 

 

Editer le fichier /etc/freeradius/sites-enabled/default

Chercher la ligne # Pluggable Authentication Modules.

#pam

Décommenter la lignepam

 

Editer /etc/pam.d/radiusd pour ajouter google authenticator comme source de mot de passe unique

 

Commenter tous les lignes suivantes #@include common-auth

#@include common-account

#@include common-password

#@include common-session

Et ajouter en dessous

auth required pam_google_authenticator.so

 

Le fichier doit ressembler à cela#

# /etc/pam.d/radiusd – PAM configuration for FreeRADIUS

#

# We fall back to the system default in /etc/pam.d/common-*

#

#@include common-auth

#@include common-account

#@include common-password

#@include common-session

auth required pam_google_authenticator.so

 

Editer le fichier /etc/freeradius/clients.conf pour autoriser le Netscaler à venir interroger le service FreeRadius

Ajouter les lignes suivantes a la fin du fichier de config

Ici est ajoutée l’IP du netscaler, une clef secrète est configurée et un petit nom est donnée pour le netscaler

client 10.20.30.40 {

secret = @@@@SECRET@@@@

shortname = netscaler

}

 

 

 

Ajouter vos comptes utilisateurs (ici obama)

 

Adduser obama

powered by WordPress Multibox Plugin v1.3.5

image3

 

Activer google authenticator pour le compte obama en entrant les commandes suivantes :

cd /home/obama

su obama

google-authenticator

powered by WordPress Multibox Plugin v1.3.5

image4

Flashez le codeQR avec l’application mobile google authenticator

powered by WordPress Multibox Plugin v1.3.5

image5

Redémarrage du service freeradius

service freeradius restart

 

Pour tester en local, utiliser la commande radtest

 

radtest <username> <GOOGLE OPT> localhost 1812 <share_secret>

Si cela ne fonctionne pas vous pouvez deboguer en lancer le service freeradius en mode debug avec la commande freeradius -X

 

3.Ajout de l authentification RADIUS sur le Netscaler

 

Retour sur la page de configuration web de l’Appliance Netscaler Gateway.

Dans la partie System,

puis Authentification,
puis Radius :

powered by WordPress Multibox Plugin v1.3.5

image6
cliquer sur Add. Entrer un nom et cliquer sur le bouton New. Entrer les informations comme sur la capture d’écran.

powered by WordPress Multibox Plugin v1.3.5

image035

Choisir un mot de passe comme Secret Key.

powered by WordPress Multibox Plugin v1.3.5

image8

Ce mot de passe devra être entré lors de la configuration du fichier client.conf du  serveur FreeRadius.

 

Cliquer sur le bouton Create.

powered by WordPress Multibox Plugin v1.3.5

image7

Ajouter l’expression ns_true.

Cliquer sur Create. Ensuite le Virtual Server NetScaler Gateway va être “linké”.

Aller dans la section

NetScaler Gateway,

puis Virtual Servers.

Cliquer sur la VIP Gateway puis sur Open..

powered by WordPress Multibox Plugin v1.3.5

image9

Cliquer sur l’onglet Authentification
En primary vous devez avoir votre Policy LDAP

powered by WordPress Multibox Plugin v1.3.5

image10

Cliquer sur Second…

Ajouter la policy OTP (radius) Voici le résultat sur le portail Netscaler

image11

Vous devez donc créer vos comptes utlisateurs avec le même login sur l’active directory et sur le freeradius. Le mot de passe sur le serveur radius ne sera pas utilisé.


4.  Customisation de la page de login Netscaler Gateway

 

 

Pour modifier les champs « Password1 et Password2 » voir les articles Citrix suivants :

 

 

How to Use Rewrite to Customize the Access Gateway Enterprise Edition Logon Page

http://support.citrix.com/article/CTX123121

 

 

How to Customize the Logon Page of a Access Gateway Enterprise Edition Release 9.2 Appliance

http://support.citrix.com/article/CTX126206

 

 

Version des produits :

PRODUIT Version
NETSCALER 10.1
Ubuntu server 12.4

 

Sources :

https://thomas.glanzmann.de/smsotp.pdf

https://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg04951.html

http://www.liberiangeek.net/2012/07/question-what-is-the-root-default-password-in-ubuntu-12-04/

http://www.cyberciti.biz/faq/howto-start-stop-ssh-server/

http://www.supertechguy.com/help/security/freeradius-google-auth

http://code.google.com/p/google-authenticator/

 

 

 

fgagne Auteur