Fournir un véritable service d’annuaire pour les organisations utilisant Google G Suite

La solution de Google, Google G-Suite est une solution très utilisée aux USA, notamment pour son coût extrêmement faible à destination des petites organisations par rapport à la concurrence. Ensuite, c’est une affaire de goût et d’habitude, personnellement, j’ai toujours eu des « difficultés » avec les interfaces proposées par Google, mais c’est un autre débat !

Un des problèmes majeurs que rencontrent les clients Google G-Suite provient du manque de fonctionnalités autour de la gestion des identités, en effet, Google ne propose pas un véritable service d’annuaire en mode SaaS, on sent bien que les fonctions sont uniquement là pour supporter l’usage de G-Suite et point. Il est donc très compliqué pour une organisation de se passer d’un Active Directory local, et généralement les organisations synchronisent leurs informations provenant de l’annuaire Active Directory vers le Google Directory via les outils Google Cloud Directory Sync et G Suite Password Sync. Cette approche ne convient pas aux organisations désirant justement éliminer l’usage d’Active Directory et s’affranchir des frais de gestion et d’administration des serveurs locaux.

Spécialement conçu pour les organisation ayant besoin de beaucoup d’agilité au niveau de la gestion de leur annuaire, JumpCloud propose via un partenariat avec Google de fournir un véritable service d’annuaire pour les client Google G-Suite et propose donc la brique manquante aux clients Google. Lire la suite

Active Directory Replication Status Tool: Back to the Future !

A l’heure d’AWS, d’Azure AD, de l’IDaaS & autre joyeuseté « Cloudifiante », il est totalement incongru de voir à quel point l’IT interne des entreprises est pauvrement géré, c’est même terrifiant… Surtout quand nous parlons d’Active Directory !

Je viens de finir une mission chez un grand compte (bien sur je garderais pour moi le nom du coupable par charité intellectuelle et conscience professionnelle…) sur la gouvernance et la sécurisation de leur annuaire Active Directory: et oui ! je fais encore de l’Active Directory ! J’en fais même encore beaucoup, mais disons que je sélectionne les missions.

Le pauvre responsable Active Directory n’en peut plus, je dois dire qu’il a fort à faire… vous vous voyez jongler avec 3 parpaings en équilibre sur un château de cartes avec un bandeau sur les yeux ? vous voyez l’idée ? c’est son pain quotidien… Je ne suis pas sur que la direction générale est bien conscience du danger, mais bon c’est un autre problème, moi perso, j’ai présenté mes recommandations au CTO, il en fera bien ce qu’il veut.

Pendant cette mission, il a fallut comprendre pourquoi la réplication AD ne fonctionnait pas, ou peu… Alors oui, on peut faire du « repadmin /showrepl * /csv > replsd.csv » à tour de bras et s’amuser avec Excel pour filtrer tout cela; oui, il y a plein de moyens de superviser la chose; oui. Mais le pauvre responsable Active Directory voulait juste un tool tout simple qui le sauve de la bankrupt les soirs de pleine lune…

C’est alors que je me suis rappelé d’un tool Microsoft, et il se trouve que ce software a été mis à jour il y a quelques mois: Active Directory Replication Status Tool (ADREPLSTATUS) – téléchargeable [ ICI ]

Il s’agit d’un outil vraiment sympa, avec une interface graphique remaniée qui permet d’analyser de façon très précise les réplications AD – les options de filtre sont vraiment très nombreuses et les résultats exportables dans un fichier CSV (pour les fans d’Excel 😉

La barre de menu est très claire:

Les options permettent de lancer un scan ciblé:

et de visualiser très simplement les résultats afin de permettre un diagnostic:

Bref, un outil vraiment sympa, mis à jour pour Windows Server 2016, et bien sur, plus le modèle de réplication est complexe, plus il est utile !

Bons tests de votre côté !

Retrouvez mes présentations lors de l’évènement aOS Grenoble !

Le 22 mai 2017, de nombreux experts IT se sont réunis sur Grenoble afin de présenter différents concepts autour des nouvelles technologies et des tendances informatiques actuelles. Cet évènement était organisé par la communauté aOS. Les sessions couvraient des sujets aussi variés que le développement dans Azure, la téléphonie sur IP ou les infrastructures Cloud. Pour ma part, j’ai réalisé une première présentation sur la Digitalisation des environnements de travail (Workplace Digitalization) et une deuxième sur la gestion des identités dans le cloud.

Vous pouvez retrouvez ces deux présentations sur ce lien docs.com:

 

Okta rachète Stormpath

La nouvelle est tombée hier, la société Okta a réalisé l’acquisition de la société Stormpath. Pour ceux qui ne connaissent pas Strompath, la société propose une solution d’AUTHentification as a Service à destination des développeurs Web.

Attention, on ne parle pas ici d’une solution complète IDaaS comme  le propose déjà Microsoft, Centrify ou Okta, mais d’une brique à destination des développeurs permettant d’intégrer dans des services ou des applications web n’importe quel type d’authentification directement au niveau du code de l’application. Typiquement la solution Stormpath ne propose pas son propre annuaire Cloud (du moins pas du même niveau fonctionnel que Microsoft/Centrify/Okta) mais va permettre d’utiliser de nombreuses sources d’authentification différentes en intégrant au passage des mécanismes d’authentification forte ou de SSO:

Je m’étais intéressé à cette société quand elle avait fournie une Gateway permettant d’utiliser directement dans les applications SaaS un modèle d’authentification basé sur Active Directory ou LDAP:

Un modèle technique extrêmement intéressant axé sur les développeurs mais vraisemblablement un modèle trop réducteur pour résister aux points lourds de l’IDaaS qui commencent à proposer ce type d’API en standard dans leurs propres solutions. Voir par exemple chez Centrify:

Centrify Cloud API Guide: http://developer.centrify.com/site/global/documentation/api_guide/index.gsp
Centrify Cloud API Reference: http://developer.centrify.com/site/global/documentation/api_reference/index.gsp

Reste à savoir la raison de ce rachat de la part d’Okta. Pour moi la raison majeure n’est pas au niveau des APIs d’intégration (Okta a commencé à travailler sur ses propres APIs depuis quelques mois) mais au niveau de la technologie de gateway avec les éléments on-premises tels qu’un annuaire LDAP, Active Directory ou même un ADFS. En effet, sur cette brique majeure pour une entreprise d’une certaine taille, Okta était bien mal équipé… voulant imposer une vision à l’Américaine basée sur une approche pure Cloud Public à ses clients.

A noter, que la plupart des analystes ne sont pas d’accord avec moi et mettent en avant la partie API – voir par exemple: https://techcrunch.com/2017/03/06/okta-stormpath/ – ceci est normal puisque Stormpath est majoritairement connu pour cela… Mais pour moi ce n’est pas la raison principale, à moins que les équipes interne d’Okta aient vraiment fait du mauvais travail depuis quelques mois..

Il sera intéressant de suivre et comprendre comment les technologies Stormpath vont être intégrées à l’environnement Okta… Quelles briques technologiques vont être abandonnées… A suivre…

Quel futur pour Active Directory et Azure Active Directory ?

eic_kimcameron

La 10ème conférence European Identity & Cloud (eic) est terminée. Elle a été très riche en sessions techniques ou stratégiques. Un des points culminants de cet événement a été la présentation de Kim Cameron sur le futur des technologies Active Directory (en local donc) et Azure Active Directory (dans le cloud donc).

Pour ceux qui ne connaissent pas Kim Cameron, il s’agit de « monsieur identité » chez Microsoft, il est Chief Architect of Identity et donne la mesure et bâtie la stratégie de Microsoft en ce qui concerne la gestion des identités. Son blog est une référence sur ce sujet dans le monde anglophone: http://www.identityblog.com/

Dans cette session, Kim Cameron a tenté de présenté des pistes pour les décideurs IT, leur donnant sa vision du futur et de la cohabitation des technologies Active Directory et Azure Active Directory, en faisant notamment un focus sur le service Azure AD Directory Services permettant d’exposer Azure Active Directory au travers de services généralement utilisés localement sur un Active Directory local (kerberos, LDAP, etc.).

Pour ma part, je pense que dans 2 ou 3 ans, le couple Azure Active Directory + Azure AD Domain Services permettra de fournir un ensemble de services équivalents à ce que nous connaissons actuellement avec un Active Directory local, il s’agit vraisemblablement du futur des annuaires dans le cloud, avec une multitude d’applications ou de systèmes qui pourront se connecter et utiliser ce service global. Sans vouloir faire le « Microsoft Fan Boy » de base, il n’y a aucun équivalent à cette offre chez les autres fournisseurs cloud, Microsoft est en train de créer une offre de services IAM dans le cloud sans aucun concurrent valable ou valide. Cela est même assez étonnant de voir la pauvreté de l’offre Amazon et Google dans ce domaine…

Vous pouvez consulter la présentation de Kim Cameron ici:

 

Série d’articles interressants sur Azure AD par un MVP Français

mvp Seyfallah Tagrerout, MVP Français travaillant à la base sur les technologies de virtualisation, commence une série d’articles sur Azure Active Directory.

C’est accessible aux débutants, bien documenté et surtout c’est en Français !

Vous pouvez consulter les deux premiers articles ici:

https://seyfallah-it.blogspot.fr/2016/06/azure-ad-part-1.html

https://seyfallah-it.blogspot.fr/2016/06/azure-ad-part-2-letude-qui-prepare.html?m=1

La page d’accueil de son blog: https://seyfallah-it.blogspot.fr/ – focus sur les technologies de virtualisation, mais pas que.

Ubuntu: Mise à jour de la documentation intégration Kerberos/LDAP

ubuntu_kerberos_ldap

Comme vous le savez certainement, il est possible d’utiliser un annuaire LDAP comme conteneur des utilisateurs utilisés dans un royaume Kerberos. Sous Active Directory, cette « association » se fait naturellement, Active Directory proposant cette fonction de native et transparente pour les administrateurs.

Dans le monde Linux/Unix, cela est très différent, il faut expressément paramétrer le royaume Kerberos pour que celui-ci utilise un back-end LDAP pour stocker les informations utilisateurs, ensuite, en terme de protocole, on est sur du connu, Kerberos pour la partie authentification, LDAP pour la partie autorisations.

Franchement, quand on a compris le concept, ce n’est pas très compliqué, je dois avoué que l’avantage sur Unix/Linux, est une plus grande séparation des fonctions, donc une meilleure compréhension globale de l’architecture: Comme les choses ne sont pas faite automatiquement, et bien du coup, on comprend précisément les différences entre Kerberos et LDAP, cela rend vraisemblablement les choses plus simple à conceptualiser pour les débutants même si bien sur cela occasionne un paramétrage supplémentaire non nécessaire sous Active Directory.

Les concepts sont identiques sur l’ensemble des plateformes Linux mais chaque distribution a bien sur ses petites particularités. Ubuntu a mis jour dernièrement la documentation présentant cette intégration: dans ce scénario, les comptes utilisateurs sont donc créés dans LDAP, si la réplication LDAP est paramétrée, on a donc « l’équivalent » d’une réplication multi-maitres comme des contrôleurs de domaine Active Directory (enfin presque…) et un royaume Kerberos qui peut s’appuyer sur l’annuaire LDAP au lieu de s’appuyer sur une base de données Berkeley (ce qui est la configuration native d’un royaume Kerberos) pour stocker les objets utilisateurs.

La documentation pour Ubuntu, en Français est accessible [ ICI ]

Pour une référence plus générique et globale, vous pouvez aussi consulter la documentation MIT Kerberos [ ICI ]

 

 

Comprendre les fonctions PAM de MIM et les nouveautés sur PAM apportées par MIM SP1

privilaged-access

 

La gestion des privilèges et des accès à des comptes d’administration est une problématique récurrente chez les clients d’une certaine taille. Plus l’infrastructure grossie, plus les applications sont nombreuses, plus les services IT sont découpés (merci ITIL…) plus les comptes dits « à pouvoir » se multiplient dans l’écosystème IT des entreprises.

Ici, point de salut avec le Cloud, IT locale ou délocalisée, le nombre de comptes à privilèges ne réduit pas dans le nuage, parfois, il augmente, car la situation actuelle est hybride, de l’IT locale et de l’IT dans le nuage, donc multiplication des comptes à privilège, représentant  des populations d’administrateurs ou de responsables IT parfois différentes.

De nombreuses solutions sur le marché existent pour gérer ces comptes, j’ai commencé un article qui parcourra les différents modèles, mais je voulais mettre en avant la solution proposée notamment par Microsoft car elle a un caractère innovant.

De prime abord, la fonction PAM proposée par MIM semble lourde, elle l’est. En effet, le principe est globalement (je fais simple) de créer une forêt dédiée à la gestion des comptes ou des groupes qui contiennent des comptes à privilèges. On parle ici d’un forêt « bastion », oui vous avez bien lu, il faut une nouvelle forêt, et cela peut rebuter les comptes de tailles moyennes, car cela signifie, de nouvelles procédures, des outils de backup, de supervision, etc…

Mais, pour les comptes d’une certaine taille, je dirais au delà de 10 000 comptes, cette approche d’architecture peut apporter des avantages:

1/ on utilise ici des technologies connues & fiables: Active Directory

2/ la solution sera de facto compatible avec tous les systèmes acceptant  Active Directory comme référentiel de comptes et de groupes, les technologies Microsoft bien sur, mais aussi, Linux, Unix, MacOS, etc… ca commence donc à devenir intéressant

3/ la solution se base sur des protocoles reconnus, tel que Kerberos par exemple

Je vous conseille cette page sur le site de documentation de Microsoft: https://docs.microsoft.com/en-us/microsoft-identity-manager/pam/privileged-identity-management-for-active-directory-domain-services qui décrit les fonctionnalités dans les grandes lignes et l’infrastructure afférente.

Les nouveautés du SP1 de MIM 2016.

Bon, le SP1 de MIM 2016 apporte des choses intéressantes à la solution, comme par exemple le support officiel des différentes browsers web du marché, mais concernant le module PAM, ce qui me semble le plus intéressant, c’est la possibilité de scripter l’intégralité de l’installation du module PAM via PowerShell. Cela ouvre de nouveaux horizons car les scripts de configurations ne s’arrêtent pas uniquement à la partie PAM de MIM mais prennent aussi en compte les paramètres nécessaires comme la partie Active Directory, le SID filtering, la partie Silo Active Directory, etc…

mimsp1_pam_powershell

Il est donc imaginable, soyons fous, de déployer des instances dédiées pour des environnements différents au sein d’une même entreprise; pourquoi pas modéliser la chose sous forme d’appliance prête à l’installation et dont le setup final se ferait via une interface web pilotant le PowerShell ?

Si la gestion des privilèges est dans votre périmètre, et que vous travaillez dans une entreprise de plus de 10 000 employés, regardez la solution PAM de MIM, elle peut être une voie parmi d’autres…

 

 

 

 

Migration de Samba vers un Proxy Active Directory

samba_logo

 

Les solutions de Active Directory Bridge proposent généralement une intégration avec Samba, permettant notamment une configuration automatisée des paramètres Winbind et des paramètres nsswitch.conf liés à Winbind. Ainsi le mapping des utilisateurs peut se faire avec des comptes utilisateurs Active Directory et non pas avec des comptes utilisateurs locaux au système UNIX/Linux. Certaines solutions, telle que Centrify, propose une intégration encore plus poussée avec Active Directory permettant en quelques clics un intégration de l’authentification kerberos sur Samba et en fournissant des GPOs pour paramétrer les détails de la configuration Samba sur les différents serveurs Samba – mais le revers de la médaille est qu’il faut alors utiliser les package Samba fournis par Centrify.

Depuis peu, Centrify propose de remplacer leur distribution Samba spécifique par une fonction « ADbindproxy ». ce nouveau service « centrifydc-samba » permet d’utiliser les packages standards fournis par le système d’exploitation (en version samba 4 néanmoins) et de relier le service Samba standard avec une zone d’utilisateurs créées dans Active Directory en gardant tous les avantages de ce type de configuration: intégration kerberos, mot de passe unique, etc…

Une vidéo de présentation courte (15 minutes) permet de mieux comprendre le fonctionnement de ce nouveau composant:

 

 

Tutorial: how to store or migrate UNIX NIS maps in Active Directory using the Centrify NIS Gateway

I received a lot, I mean a lot, of requests after I had published my 3 last posts about the storage of NIS maps in Active Directory [http://bit.ly/1S4gKUGhttp://bit.ly/1qvvyzrhttp://bit.ly/1q8iAHi ] – The main problem was my posts are in French 😉 and a lot of people tried to use Google Translate to get it, but it wasn’t perfect. So, from the popular demand, I decided to translate it in English. English is not my native language, so sorry in advance if you will find some ‘bugs’ in the text.

As I explained in one of my last post (sorry again in French !), Microsoft announced it will not implement some Unix Services in Windows 2016 and Active Directory 2016 anymore, including NIS Services.

Through my different projects, I had meet a lot of organizations which are using mixt environment with Windows and Unix boxes and I can say the NIS usage is even nowadays very widespread. For sure, it is very bad to use NIS authentication and NIS authorizations, it is really better to use Kerberos ad LDAP instead. I will not go in the details now, but it is true that NIS is not something secured, however, the fact to totally eliminate the NIS Services is impossible for a lot of organizations. These organizations have a « IT history », from years, and a lot of very important information still remain in the NIS maps (automount, etc.)

So, the goal is to use Kerberos/LDAP for authentication/authorization services and a NIS Gateway service which expose to NIS client the maps NIS which are stored in Active Directory. Using this way, we get the best of the two worlds, we can secure the authentication with Kerberos and the organization is able to continue to use the NIS maps for the legacy needs.


In this tutorial, we will use the NIS Gateway provided by Centrify and get a magic trick to improve security without abandon the NIS history.

Inn this tutorial, we will use a Fedora 23 workstation as a NIS Gateway and Fedora 23 as a NIS client, in my example the Active Directory is a Windows 2012R2 one, but it will work with various flavors of Linux/Unix and with different versions of Active Directory.

A/ First step: Centrify packages installation on the future NIS Server (=NIS Gateway)

First, we need to set our NIS Gateway with a hostname and with a IP which permit to the NIS Gateway to communicate with the Active Directory world. Here, we consider that the basic settings regarding the Centrify Zones are already done (just refer to the Centrify Quick Start Guide to do it).

1/ Hostname settings


In our example, the hostname of the NIS Gateway will be: nisserver01.demo.local

2/ SSH checking

We will check that the SSH server service is present on the Linux box, we will need it to transfer the packages for the Centrify agent and the packages for the Centrify NIS Gateway on the NIS Server.


If the SSH server is not installed, type the following command to install the SSH server packages:


When the SSH packages are installed, you need to start the SSH service


3/ Centrify packages transfer to the machine

We will use WinSCP to transfer the Centrify agent (Centrify Server Suite 2016) on the NIS server (/tmp directory for example) – for a Fedora23 OS, the name of the package is centrify-suite-2016-rhel4-i386.tgz


4/ Centrify agent installation

Go the the /tmp directory and check you have the agent package.


Unzip the package:


Instal the agent, using the install.sh script:


The install.sh script will check everything to be sure your system is able to get it – if you don’t have any ‘failed » result, you will be able to install the agent – if you get some ‘warning’ result, it is not really important (we are doing a POC !)


Choose the Enterprise or the Standard version, it doesn’t matter for the NIS Gateway itself, so let’ choose Enterprise [E] in our example:


Choose the run adcheck again (just to be sure…) et provide the needed information linked to Active Directory during the installation process – In our example, we will join a zone named arizona, so our NIS server will provide « NIS service » for this zone – and choose to not reboot at the end of the installation:


As soon the information will be provided, the install process will start, but just before the installation process will ask you to verify your different values.


The installation process is starting – after the adcheck final check, just validate the agent installation process:



At the end of the process, the Centrify agent installation proceeds:


Now, we will install the package which will update the SSH Server packages with the Centrify packages – this is not 100% mandatory, but it will provide a better integration with Kerberos authentication, so let’s do it:


Now, we will install the Centrify NIS Gateway package:


At the end, just reboot the system, again this is not 100% mandatory, but let’s do it easier and reboot the system.

At this stage the first big step is over. Let’s see now how to set Centrify NIS Gateway.

B/ Second step: Centrify NIS Gateway settings

1/ Active Directory integration of the NIS Gateway Linux box

We will integrate the NIS Server in the zone named arizona. We consider here that you already performed the basic step of the Centrify installation procedure (refer to the Centrify Quick Start guide for details) and we consider you already created some Centrify zones in Active Directory.

First, let’s connect to the NIS Server and execute the following command to perform the Active Directory join to the arizona zone:


In our example, the domain is named demo.local, the Centrify zone is named arizona and the Active Directory service account used to perform the Active Directory join is named centrify. And the password for the service account is …no, for sure, just kidding ;-)) – but the join process will ask you the password for the Active Directory service account.


After few seconds, the following window will appear, saying everything is ok:


It is not mandatory to reboot the server itself, but to make it easier, let’s reboot the server:


2/ Let’s check some important things

Now let’s set some accurate parameters of the Centrify NIS Gateway. We will start to start the management tool Centrify Access Manager, we will find a new machine account in the zone names arizona, it is nisserver01:


This is another view with the list of the machines in the Centrify zone. We will use a other machine from this zone to be NIS client (ypbind) of our NIS Gateway. For sure, the NIS Gateway as a NIS server only for the machines which are in the same zone.


As we didn’t specify a specific container during the Active Directory join of the NIS Gateway, the computer object which represents the NIS server is stored by the containers Computers in Active Directory or any default container if you changed your Active Directory configuration:


Because we will apply some specific GPOs on the computer object which represents the NIS Gateway, we will create a new organization unit (OU) and we will move the computer object in it- in our example, the OU is named NIS_Gateway:


Now, we will start our NIS Gateway computer. When the computer will be started, it would be possible the use any AD account with a UNIX profile in the Centrify zone to log on it, but we will log as root to make it more convenient for the future manipulations.

As soon you are logged on the system, just type the adinfo command, you will obtain information about the state of the adclient daemon which represents more or less a Active Directory client for UNIX/Linux:


The most important thing is to have the value ‘connected’ for the attribute ‘CentrifyDC mode’, this means the system is truly connected to Active Directory and communicate with it. At this stage, our Linux server is integrated in Active Directory and it is totally secured, thanks to Centrify technology.

3/ Apply specific settings on the Centrify NIS Gateway

Let’s set some settings to set the correct behavior of Centrify NIS Gateway (adnisd).

First, we will use the Centrify extension for the GPMC to create some specific GPOs to set the NIS Gateway, nisserver01. Centrify provides some ADMX files if you just want to use the classic GPMC provided by Microsoft, so you can import the administration model in the GPMC. Or you can install some Centrify GPMC snap-in to create the UNIX/Linux GPOS. It is up to you, but you need to do one or the other.

Here we will use the ADMX files method, and e consider we already import the different ADMX files in the GPMC. Open the GPMC and go the node « computer configuration / Strategy / Administration model / Centrify Settings / DirectControl Settings / NIS Daemon Settings:


Edit the ‘Specify allowed client machines for NIS daemon‘ property and set the value to 0/0:


We need to do so, because by default, the NIS Gateway only accept NIS request from itself (I will not go in the details, but in some specific secured configurations where you need to deploy the NIS Gateway packages on all the UNIX systems, this « by default » behavior is useful). So we need to define the is of the IP addresses which are authorized to request the NIS service, if you set the value to 0/0, the NIS server will accept all the request from all the client.

Let’s edit also the ‘Specify NIS daemon update interval‘ property and set the value to 60.


This property will allow us to set the synchronization time between Active Directory and the NIS Gateway. Because of performance reasons, the NIS Gateway maintains a local cache of the values from Active Directory, so in our example, the values will be replicate every minute. In a production environment, a value between 16 and 30 minutes seems a good choice.

Just validate the GPO and close the GPMC. If you want to update the NIS Server with these new settings, it is just matter to execute the adgpupdate command on the NIS Server, this command will refresh the GPOs settings from Active Directory. You can also wait for the next GPO application process (the time period will depend of your Active Directory settings):


It is possible to check which GPO is applied or not by executing the adgpresult command on the system, here, we will see the settings we just created in the new GPO we created:


C/ Third step: Verify some elements on the Centrify NIS Gateway settings

As you may know, to have a consistent NIS Server on a system, we need to have RPC services up and running. If you don’t know so much about NIS, I recommend to read this book which is for me a sort of « NIS bible » [ special thanks to Randip M to let me know about this book. 😉 ]

I will not go in the very details, but globally the RPC server service will receive the requests from the NIS/RPC client from the network, so the RPC server service will decide to use a certain port number, using the port mapper, then the communication between the client and the server will use this specific RPC port for the rest of session. So to have a NIS server running in the right shape we need to have a RPC server running in the right shape.

To verify if everything is ok for the RPC server, execute the following command: rpcinfo –p localhost


Here we can see we have six port mappers waiting for a RPC connection, so everything is ok.

We will now check if the Centrify NIS Gateway service (adnisd) is up and running by executing the following command: systemctl status adnisd –l


If the adnisd service is not running, execute the following command to start it: systemctl start adnisd –l

When we execute the command systemctl status adnisd –l to check the status of the service, we have a message saying that we don’t have any NIS map stored in Active Directory, at this stage it is totally normal, we will publish NIS maps in Active Directory latter.

D/ Fourth step: Check the configuration of the NIS client

1/ some thoughts about what we are doing here…

At the Linux client level, it is very important to understand that we have two different components:

– The Centrify DirectControl agent which provides the ability of the system to be fully integrated in Active Directory and provides the Kerberos and LDAP layers for authentication and authorization against Active Directory – Even if we have a NIS client on system to use NIS maps, the authentication is not managed by NIS but by Kerberos

– The NIS client of the Linux system – this is not a component provided by Centrify agent installation, here we are using a generic client, which could be slightly different from different Linux/UNIX forks – never mind, the generic NIS client will use « classic » NIS exchange with the Centrify NIS Gateway, so it will work

The good thing with this scenario, is we will get all the advantage provided by the Centrify agent but we will be able to use legacy NIS maps. As the NIS gateway server itself is using a Centrify agent, all the communication between the NIS gateway and Active Directory is secured. Another big advantage is the fact that we will not have any more a dependency with one single NIS Master – in this scenario, the « NIS master role » is technically provided by the different AD domain controllers, as the AD domain controllers are using multi-master replication, we don’t have any single point of failure there – The NIS gateway will act as a NIS slave and will cache the information from AD on his own system, and we reply to the NIS requests from the network.

It is existing other scenarios, where the NIS authentication (ok, I don’t like to use the expression « NIS authentication » because NIS is NOT an authentication protocol, but I make the things simple here by comparing with Kerberos…) will be provided by NIS even if the NIS maps are stored in Active Directory – but in this scenario we will need to store in Active Directory a hashed version of the user passwords compatible with NIS, we will not review this particular scenario there because it is not really used anymore and above all because it is not really secured (I will even say it is not secured at all…).

2/ Apply some settings at the NIS client level

Perform a connection, using root, to the NIS client, in our example, the NIS client hostname is : fedora23.

We will first check if the ypbind service (the NIS client) is up and running, so let’s execute the following command: systemctl status ypbind –l

If you get something like this :


It means the service is not started, and it means the ypbind packages are even not installed at all.

To check is the package are installed or not, let’s try to start the service using this command: systemctl start ypbind –l

The following message will confirm that the ypbind packages are not installed at all:


To install the NIS client packages, execute the following command: dnf -y install ypbind rpcbind

If rpcbind was already installed, you will get this message, it is not a big deal, just ignore it :


In all the situations, you may obtain something like that at the end of the packages installation:


After packages installation, I advise you to restart the system, it is not purely technically a requirement, but I was used to be a Microsoft Guy 😉

Never mind if you just installed the NIS client packages or if you were using it during years before this tuto, we will now stop the ypbind service on the client to apply some settings at the NIS client level: systemctl status ypbind –l

To be sure we will not have bad behavior because of previous settings/usage, we will delete all the files which are in the var/yp/binding directory: rm -rf /var/yp/binding/*

Now, we will define the NIS domain name at the client level – remember, by default, the NIS domain name is equal to the Centrify zone name where our NIS Gateway is acting, in our example, the zone name is arizona. So let’s execute the command: domainname arizona


Then, we will edit the /etc/yp.conf file to set the NIS domain name and the NIS Gateway hostname – in our example, we need to add the value: domain arizona server nisserver01

Example, with the nano editor:


If you are using nano, after editing the value, let’s use Ctrl+O & Ctrl+X

Now, let’s start the ypbind service: systemctl start ypbind –l

You can check the service status using this command : systemctl status ypbind –l


Note: if the NIS client is not able to contact the NIS server, so the NIS client service will not start. If you get an error when you try to start the NIS client service, the first thing to do is to disable the firewall service on the NIS server (use the following command to stop the firewall on a fedora system: systemctl stop firewalld –l )

At this stage, we have a NIS server and a NIS client which are able to communicate each other, let’s publish some NIS maps in Active Directory now !

E/ Fifth step: Publish some NIS maps in Active DIrectory

In this tutorial, we will use the Centrify graphical tool « Centrify Access Manager » to publish some information in the NIS maps, but you can do it using different ways (LDP command for example).

Start the Centrify Access Manager tool, and go the Centrify zone (arizona in our example) – Then go to ‘Unix Data’, then ‘NIS maps’ node. Right-click on the node and choose ‘New / Generic Map’:


In our example, we will create a Generic Map, i.e. a map used to store text information with no direct relation with something used by the Linux system itself. For sure, you create some ‘classic’ NIS maps like Automount or Netgroup, but we will not cover the usage of these NIS maps in this article.

In this example, the NIS maps name is test and we have a key test01 with the value test0101:


From the NIS client, execute the following command: ypcat test – you may get the values from the NIS map test :


Here we go, it is working fine !

With the ypwhich command you will be able to confirm the NIS server name used by the NIS client (so in our example, it is the NIS Gateway hostname:


F/ One step beyond…

1/ Generated NIS maps

Let’s now explore, some advance details. To get the list of NIS maps from a NIS master server you need to execute the following command ypwhich –m


Here you can note two important things:

(1) from a NIS client, the NIS gateway is considered as NIS master server

(2) we created only one NIS map (test) in d’Active Directory but the NIS client is able the « see » four other NIS maps : passwd.byuid / passwd.byname / group.byname / group.bygid – These four maps are what we call ‘derived maps’, there are implicited generated from Active Directory data – In fact, at the system level (NIS client side), the NIS client needs to have a visibility of these four maps, so you don’t need to create it, the Centrify NIS gateway will create it and update it for you. So the passwd.byuid and passwd.byname maps will be automatically generated from the UNIX user profiles from the arizona zone, and the group.byname and group.bygid maps will be automatically generated from the UNIX group profiles from the arizona zone. Remember, behind the scene, the UNIX user profiles and the UNIX group profiles are linked with ‘real’ Active Directory user and group objects.

If you are using the command ypwhich –x you will be able to see the correspondence between NIS maps aliases and the real technical name of such NIS maps.


If you are using the command ypcat passwd you will be able to see the content of the generated map passwd.byname which is the list of the UNIX user profiles from the zone arizona :


To fully understand this feature, you can open the graphical tool Centrify Access Manager and check the list of UNIX user profiles from the arizona zone, you will exactly the same list :


2/ NIS maps objects in Active Directory

We can check how the NIS maps objects are stored in Active Directory – let’s use Microsoft Active Directory Users and Computers tool (ADUC) or a basic LDAP client to do so.

If you go to the zones containers, you will be able to see all the Centrify zones you created (not cover by this article) – select the arizona zone, and the NisMaps container, you will list the NIS map we created, means the test NIS map.

Under the test container (our NIS map), you will see the entry we create named test01:


If you do right-click on the test01 object and choose ‘Properties’ (with ADUC, Attribut Editor), you will see the different values from the different attributes used by Centrify to store the information:


If you look at three specific attributes, we will review the values we put in the system with the Centrify Access Manager tool for our test map – as a reminder:


These are the three attributes:

KEY: (description)


VALUE: (adminDescription)


COMMENTS: (wWWHomePage)


For sure, you will be able to use Active Directory ACLs Active Directory to provide access and delegation for such NIS map or even some specific rights on a specific value: this is very useful to define the NIS administrators AD group which will be able to create or update NIS map values in the future:


The main difference for the UNIX administrator will be the interface. As now the NIS maps are stored in Active Directory, they will use a LDAP Browser, the Centrify graphical tool or some LDAP script to maintain the NIS maps contain.

At the end, the ideal situation will be to use a IAM tool such MIM for example to manage the NIS maps lifecycle with delegation, workflow, approval and activity logs !

We did it !

Now, this tutorial is finished. Don’t hesitate to add some comments or contact me if you have any questions. Let’s discuss on twitter (@sylvaincortes) or by email if you have a NIS migration project, we can help you 😉