Activer une fonction MFA telle que Google Authenticator sur un système Linux ou MacOS

 

L’authentification forte à deux facteurs (MFA) est une solution commune pour sécuriser l’accès aux applications SaaS. Mais il est aussi parfois nécessaire de sécuriser via MFA l’accès aux systèmes qu’ils soient exécutés sur le LAN ou sur une plateforme IaaS telle que Azure ou AWS.

L’idée est ici par exemple de sécuriser via un facteur d’authentification supplémentaire (en plus d’un password) l’exécution d’une sessions SSH sur un système Linux. JumpCloud nous permet de faire cela sur les systèmes Linux et MacOS en utilisant un MFA totalement gratuit et très répendu, Google Authenticator. Je ferais prochainement un tutoriel pour implémenter cette fonction car pour moi ceci est une demande courante de nombreux clients que je rencontre.

En attendant, voici deux vidéos présentant cette fonction sur un système Linux et un système MacOS:

Vidéo sur Linux:

Vidéo sur MacOS:

Directory as a Service (DIRaaS) : Découverte de JumpCloud [2/4]

Directory as a Service (DIRaaS) : Découverte de JumpCloud [2/4]

Dans la première partie de cet article, nous avons évoqué la prise en main de la solution ainsi que la création des comptes utilisateurs, nous allons maintenant explorer l’intégration des systèmes Windows et Linux dans l’annuaire JumpCloud.

Référencement de systèmes (OS) dans l’annuaire JumpCloud

Il est possible de renseigner des systèmes, c’est-à-dire des OS dans l’annuaire JumpCloud. JumpCloiud est compatibles avec des clients Windows, MacOS et Linux. Il faut alors installer un agent JumpCloud sur le système qui fera office de client pour l’annuaire, un peu comme un client Active Directory pour un système Windows ou un client Active Directory sur un système Linux ou MacOS grâce à la technologie Centrify.

Le client jumpCloud communique avec une session sur le port 443 avec l’annuaire JumpCloud, la communication depuis l’annuaire JumpCloud vers l’OS se fera via cette connection sécurisée, il n’y a donc pas besoin d’ouvrir de port entre l’extérieur et l’intérieur de l’entreprise car cette session sur port 443 est initiée depuis le client JumpCloud :

Vous trouverez ici la liste des systèmes supportés par le client JumpCloud : https://support.jumpcloud.com/customer/portal/articles/2390451-jumpcloud-agent-compatibility-and-system-impacts

Vous trouverez ici la liste des ports TCP/IP nécessaire pour la communication entre le client JumpCloud et l’annuaire JumpCloud : https://support.jumpcloud.com/customer/portal/articles/2390681

Pour rajouter un système depuis l’interface d’administration :

Référencement d’un système Windows

Choisir l’onglet Windows, télécharger le client JumpCloud :

Le lien de téléchargement direct est : https://s3.amazonaws.com/jumpcloud-windows-agent/production/JumpCloudInstaller.exe

Bien évidemment, nous prendrons ici comme exemple un PC sous Windows 10 qui est en Workgroup et qui n’est donc pas intégré dans un domaine. Nous explorerons au travers de prochains articles la liaison possible entre une infrastructure Active Directory existante et JumpCloud, mais dans tous les cas, il n’est pas possible d’installer l’agent JumpCloud sur une machine Windows liée à un domaine Active Directory (c’est-à-dire qui possède un compte machine dans un annuaire Active Directory).

Installation de l’agent :

Copier/Coller la clé disponible depuis l’interface web JumpCloud :

Réaliser un redémarrage du système après la fin de l’installation. Après le premier redémarrage, le système Windows apparait dans l’interface :

En cliquant sur le bouton détails, il est possible de visualiser les attributs principaux de la machine :

Par défaut, les utilisateurs présents dans l’annuaire sont vus dans l’interface mais ils n’ont pas le droit de se connecter sur le système, il faut donc sélectionner explicitement les utilisateurs que l’on autorise sur ce système en les sélectionnant et en cliquant sur le bouton « save system » :

Le système des TAGS nous permettrait d’automatiser cette sélection explicité, mais nous découvrirons cela dans un prochain article.

L’utilisateur provenant de l’annuaire JumpCloud est alors créé dans la base SAM locale de la machine :

Comme il a été décidé que cet utilisateur possède des droits d’administration sur les machines de l’annuaire JumpCloud, il est aussi rajouté automatiquement dans le groupe des Administrateurs locaux de la base SAM :

Le compte utilisateur créé possède les propriétés suivantes :

Il est maintenant possible de s’authentifier avec le compte utilisateur JumpCloud sur la machine Windows en utilisant le mot de passe du directory JumpCloud :

Un nouveau profil utilisateur est créé sur la machine lors de la première authentification :

Changement du mot de passe de l’utilisateur et impact sur le système Windows

Via l’interface en ligne, l’utilisateur final peut changer son mot de passe depuis son portail utilisateur :

L’administrateur peut lui aussi réinitialiser le mot de passe d’un utilisateur de l’annuaire :

Le nouveau mot de passe devra être conforme aux exigences liées à la politique de mot de passe définies dans le portail administrateur :

Le nouveau mot de passe sera alors automatiquement poussé sur le système lors de la prochaine connexion avec l’agent du système.

Référencement d’un système Linux

Ici les tests seront réalisés avec une CentOS 7.

Lors de la première étape, nous allons indiquer que pour un même utilisateur, nous souhaitons avoir le même UID sur les différents systèmes Linux sur-lesquels nous allons provisionner ce compte – de cette façon, quand un compte utilisateur sera provisionné sur des systèmes Linux différents, l’UID associé sera toujours le même. Voir cet article : https://support.jumpcloud.com/customer/en/portal/articles/2439908-manually-assigning-uid-gid-to-users

Pour cela il faut se rendre dans la partie SETTINGS :

Puis désigner l’UID et GID pour les utilisateurs qui vont se connecter sur les différents systèmes Linux :

Maintenant, tout est prêt pour rajouter un système Linux :

Sur le système Linux, passer en root (su) pour vérifier que vous êtes bien en root, taper la commande « id », l’id retourné doit être «zéro»:

Ouvrir un terminal sur le système Linux, puis Copier/Coller la commande qui se trouve dans l’interface JumpCloud dans la fenêtre de terminal sur le système Linux :

L’installation de l’agent se déroule, le système doit avoir accès à Internet pour télécharger le package de l’agent.

Il est possible de redémarrer le système Linux pour s’assurer que tout fonctionne bien au démarrage, mais le système doit apparaitre sur l’interface de JumpCloud sans redémarrage :

Ensuite, il faut rajouter l’utilisateur que l’on souhaite provisionner sur le système (sans passer par le système des TAGS que nous verrons dans un prochain article) :

Après un redémarrage de l’agent JumpCloud :

service jcagent stop

service jcagent start

Le nouvel utilisateur est créé avec le bon UID/GID dans le fichier /etc/passwd :

Après avoir ouvert une session sur le système avec le nouveau compte, il est possible de vérifier son ID :

Pour avoir un statut de l’agent depuis le système Linux :

service jcagent status

Pour des détails sur le fonctionnement de l’agent sous Linux, voir l’article suivant : https://jumpcloud.desk.com/customer/portal/articles/2399128

Dans notre prochain article, nous allons explorer les fonctions liées à RADIUS et l’annuaire JumpCloud.

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 ]

 

 

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 😉

Utilisation d’Active Directory pour le stockage des maps NIS UNIX/Linux via la Centrify NIS Gateway [3/3]

 

Lors des deux premiers posts, nous avons vu les bases de l’intégration du système supportant la NIS Gateway au sein d’Active Directory puis l’installation et le paramétrage de la NIS Gateway elle-même. Dans ce dernier article consacré à la Centrify NIS Gateway, nous allons voir la configuration d’un client NIS et quelques options de publication des maps NIS.

Tout d’abord, il faut bien comprendre que dans notre cas d’utilisation, deux composants sont utilisés sur le client Linux/UNIX:

– L’agent DirectControl de Centrify qui permet l’intégration dans Active Directory du système ainsi que les mécanisme d’authentification par Kerberos et de gestion des autorisations via LDAP

– Un client NIS générique (celui du système)

Dans ce scénario, nous conservant tous les avantages de sécurité apportés par l’agent Centrify et nous permettons l’utilisation des NIS Maps de façon classique. La différence est que les NIS maps sont stockées dans Active Directory. Ceci amène plusieurs avantages dont celui-ci extrêmement important de ne plus dépendre du NIS master unique mais d’avoir en fait le rôle de NIS master porté par les contrôleurs de domaine Active Directory, cela tombe bien, ils sont multi-maitres et la NIS Gateway agit alors en tant que NIS Slave et répond donc aux requêtes des clients NIS.

Il existe d’autres scénarios, où l’authentification peut aussi être réalisé via NIS (bon je n’aime pas dire authentification via NIS, car NIS n’est en fait pas un protocole d’authentification, mais c’est pour rendre les choses simples via la comparaison avec Kerberos) avec des maps NIS et des hash de mots de passe compatibles NIS stockés dans Active Directory. Nous ne parlerons pas ici de ce scénario car il est de moins en moins utilisé par les entreprises et surtout parce que le niveau de sécurité global n’est pas très bon –ok, meilleur qu’avec uniquement NIS, mais c’est pas terrible quand même).

Paramétrage du client NIS

Réaliser une connexion via root sur le système client NIS, dans notre exemple la machine nommée fedora23.

Nous allons tout d’abord vérifier si le service ypbind (le client NIS) est démarré et fonctionnel sur le système en exécutant la commande: systemctl status ypbind –l

si vous obtenez quelque chose qui ressemble à cela:

capture20160406205428817

c’est que le service n’est pas démarré, et si il n’est pas démarré, il y a de fortes chances pour que ce soit tout simplement parce que les packages ne soient pas installés.

Un tentative de démarrage infructueuse via la commande systemctl start ypbind –l vous confirmera que les packages ne sont pas présents:

capture20160406205753580

Pour installer les packages nécessaires à l’exécution du client NIS, exécuter la commande suivante: dnf -y install ypbind rpcbind

Si rpcbind est déjà installé, vous obtiendrez le message suivant, ce n’est pas bien grave:

capture20160406210235398

Dans tous les cas, vous devriez obtenir quelque chose comme cela après l’installation des paquets:

capture20160406210435735

Après installation des paquets, je vous conseille un petit redémarrage du système. (pas purement techniquement obligatoire, mais bon…)

Que vous ayez déjà un client NIS fonctionnel sur la machine ou que vous veniez de l’installer, il faut maintenant arrêter le service ypbind sur le système via la commande: systemctl status ypbind –l

Ensuite, nous allons supprimer tous les fichiers qui peuvent se trouver dans le répertoire var/yp/binding via la commande: rm -rf /var/yp/binding/*

Il faut maintenant définir le nom de domaine NIS auquel le client devra se référer, par défaut le nom de domaine NIS est le nom de la zone Centrify dans laquelle le système et la NIS Gateway se trouvent, dans notre exemple il se nomme donc arizona. Pour ce, exécuter la commande suivante: domainname arizona

capture20160406211557943

Puis éditer le fichier /etc/yp.conf afin de renseigner le nom du domaine NIS ainsi que le nom de serveur de la NIS Gateway, dans notre exemple, il faut donc renseigner la ligne suivante: domain arizona server nisserver01

Exemple avec l’éditeur nano:

capture20160406211932335

avec nano, après édition du fichier, Ctrl+O & Ctrl+X

Ensuite, démarrer le service ypbind via la commande: systemctl start ypbind –l

Vous pouvez aussi vérifier le statut du service via la commande: systemctl status ypbind –l

capture20160406213506789

Note: si le client NIS ne peut pas atteindre le service NIS de la NIS Gateway, alors le service client ne démarre pas. Si vous avez une erreur au démarrage, la première chose à faire est de désactiver le firewall sur le serveur portant la NIS Gateway afin de vérifier si le problème vient du filtrage du firewall. (commande pour arrêter le firewall sur fedora: systemctl stop firewalld –l)

Donc jusque ici, tout va bien, nous avons un service NIS Gateway opérationnel et un client NIS qui est capable d’interroger le service NIS Gateway – reste maintenant à publier des maps NIS dans Active Directory afin de voir si nous sommes capables d’y accéder via la commande ypcat !

Pour publier des maps NIS dans Active Directory, nous allons simplement utiliser l’outil graphique Centrify Access Manager – Lancer l’outil, puis se rendre dans la zone (arizona, dans notre exemple) puis ‘Unix Data’, puis sélectionner le noeud ‘NIS maps’. Réaliser un clic-droit sur le noeud et choisir ‘Nouveau / Generic Map’:

capture20160406214146188

Dans notre exemple, nous allons simplement créer une map générique, c’est à dire une map pour stocker des informations texte sans relation directe avec des éléments utilisés par le système. Vous pouvez bien sur créer des maps plus ‘classiques’ telle que Automount ou Netgroup par exemple.

Exemple de notre map:

capture20160406214457532

Notre map se nomme donc test et contient une clé test01 de valeur test0101

Depuis le client NIS, exécuter la commande suivante: ypcat test – vous devez obtenir les valeurs de la map tel que:

capture20160406214750560

Ca y est, ca fonctionne !

La commande ypwhich vous confirmera le nom du serveur NIS (la NIS Gateway) que le client utilise:

capture20160407091449128

Pour aller un peu plus loin dans la compréhension, exécuter la commande ypwhich –m qui permet d’afficher la liste des maps et le serveur NIS Master pour chaque map:

capture20160407091953853

Nous pouvons constater deux éléments:

(1) d’un point de vue du client NIS, la NIS Gateway est vue comme le Master NIS

(2) alors que nous n’avons créée qu’une seule map NIS (test) au niveau d’Active Directory, le client NIS perçoit quatre autres maps NIS: passwd.byuid / passwd.byname / group.byname / group.bygid – ces quatre maps NIS sont les maps dites ‘implicites’, c’est à dire qu’elles sont générées automatiquement par la NIS Gateway pour des besoins systèmes en fonction des profils UNIX et des groupes UNIX qui sont présents et actifs dans la zone Centrify arizona (pour rappel, avec la technologie Centrify, nous utilisons directement des comptes utilisateurs et des groupes Active Directory au niveau des systèmes UNIX)

Grâce à la commande ypwhich –x nous pouvons visualiser les correspondances entre les alias de nom de maps NIS (accessibles via la commande ypwhich) et le nom réel technique de certaines maps NIS:

capture20160407092842774

Si maintenant nous exécutons la commande ypcat passwd nous afficherons alors le contenu de la map NIS implicite passwd.byname qui contient une représentation des profils UNIX présents dans la zone ‘arizona’:

capture20160407093232688

Effectivement, si nous utilisons l’outil graphique de gestion Centrify Access Manager et si nous regardons la liste des profils UNIX effectifs dans cette zone ‘arizona’, nous retrouvons bien la même liste de comptes:

capture20160407093603198

Regardons maintenant à quoi ressemble le stockage des maps NIS dans Active Directory. Pour cela, vous pouvez utiliser l’ADUC de Microsoft ou un client LDAP basique.

Si nous regardons dans le container des zones, nous retrouvons l’ensemble de nos zones Centrify. Il suffit de sélectionner la zone ‘arizona’, puis le container NisMaps. Nous retrouvons à l’intérieur de ce container la map NIS que nous avons créée, c’est à dire la map nommée  ‘test’.

Sous le container de la map ‘test’, nous retrouvons notre entrée nommée ‘test01’:

capture20160407084650968

Si nous regardons les propriétés de cette objet ‘test01’ (avec ADUC, réaliser un clic-droit puis choisir ‘Propriétés’), nous pouvons visualiser les différentes valeurs des différents attributs de cet objet (avec ADUC, via l’éditeur d’attributs):

capture20160407085502254

Si nous regardons spécifiquement trois attributs, nous retrouvons les valeurs que nous avons renseignées lorsque nous avons créé l’entrée dans la map NIS, pour rappel:

capture20160407085643363

Voici les trois attributs:

KEY: (description)

capture20160407085942866

VALUE: (adminDescription)

capture20160407085806729

COMMENTS: (wWWHomePage)

capture20160407090045656

Bien évidement, vous pouvez utiliser les ACLs Active Directory pour donner des accès à une map NIS ou à une autre, ou même des accès spécifique à une entrée en particulier. Cela est très utile pour définir les groupes d’administrateur qui auront le droit de mettre à jour les entrées dans la maps NIS:

capture20160407090422802

En effet, la différence pour les administrateur Unix sera l’interface qu’ils vont maintenant utiliser pour mettre à jours les entrées dans les maps NIS: ils pourront utiliser l’interface graphique Centrify, un browser LDAP ou des scripts LDAP. Nous pourrions même imaginer réaliser une interface dans un outil de gestion des identités comme MIM !

Ce tutoriel est terminé. N’hésitez pas à me contacter si vous avez des questions ou des interrogations existentielles sur ce type de solution !

Utilisation d’Active Directory pour le stockage des maps NIS UNIX/Linux via la Centrify NIS Gateway [2/3]

 

Lors de notre post précédent nous avons vu comment installer l’agent Centrify (adclient) et le package de la Centrify NIS Gateway (adnisd) sur le serveur qui publiera les maps NIS stockées dans Active Directory.

Nous allons maintenant voir comment activer l’agent Centrify sur la NIS Gateway, comment réaliser quelques GPOs depuis Active Directory pour paramétrer la NIS Gateway et finir par des vérifications locales à faire sur la NIS Gateway.

Tout d’abord nous allons intégrer le futur serveur NIS dans Active Directory et le faire rejoindre une zone Centrify. Nous considérerons ici que la partie basique d’une installation Centrify a déjà été réalisée, et que des zones ont été créées. Je vous laisse jeter un œil sur la documentation (notamment le Quick Start Guide) sur ces étapes extrêmement basiques. Dans notre exemple, la zone que nous allons rejoindre se nomme arizona.

Tout d’abord, se connecter en root sur le systèmes (sur le futur serveur NIS donc) et exécuter cette commande pour rejoindre Active Directory et la zone nommée arizona:

capture20160405142931118

dans notre exemple: le domaine AD se nomme demo.local, la zone Centrify à rejoindre se nomme arizona et le compte de service (Active Directory) ayant le droit de joindre une machine au domaine se nomme centrify – ensuite, le mot de passe AD pour le compte utilisateur/administrateur centrify sera demandé:

capture20160405142947712

Après quelques secondes, la fenêtre suivante apparaitra, vous confirmant que l’opération s’est bien déroulée:

capture20160405143023882

Nous pourrions nous amuser à ne redémarrer que certains services, mais allons redémarrer le serveur NIS, ce sera plus simple:

capture20160405143109675

Maintenant, laissons le système Linux de côté quelques instant et utilisons quelques outils de gestion proposés par Centrify pour affiner notre configuration.

Lancer l’outil Centrify Access Manager, nous constatons qu’une nouvelle machine a rejoint la zone arizona, il s’agit de nisserver01, notre futur serveur NIS:

capture20160405143154356

Une autre vue, avec la liste des machines qui sont dans la zone Centrify, pour information, la machine fedora17 nous servira de client NIS (ypbind) pour les tests, pour que cela fonctionne il faut bien sur que la NIS Gateway et le client NIS soient dans la même zone Centrify:

capture20160405143220837

Comme nous n’avons pas spécifier de conteneur Active Directory spécifique lors de la jointure au domaine de la machine Linux (notre futur serveur NIS), l’objet Computer le représentant dans Active Directory s’est créé dans le conteneur par défaut, si vous n’avez pas fait de modification au niveau d’Active Directory, vous retrouverez alors l’objet Computer dans le conteneur nommé Computers:

capture20160405143259227

Pour la suite des tests, et notamment pour l’application de certaines GPOs sur le serveur NIS lui-même, nous allons créer une Unité d’Organisation (UO) dans laquelle nous allons déplacer l’objet AD représentant le compte ordinateur du serveur NIS, dans notre exemple, l’UO se nomme NIS_Gateway:

capture20160405143414531

Nous allons maintenant démarrer notre serveur NIS. Une fois démarré nous pourrions maintenant utiliser n’importe quel compte AD ayant un profil UNIX dans la zone et ayant les droits de login pour nous authentifier sur le système – pour plus de souplesse, nous continuerons d’utiliser le compte root pour les différentes manipulations.

Si nous nous connectons sur le système, et que nous tapons la commande adinfo, nous devons obtenir des informations sur l’état du service adclient qui représente le client AD du système Linux:

capture20160405143515949

Le plus important est que l’attribut ‘CentrifyDC mode’ est bien la valeur ‘connected’, cela signifie que le système est bien connecté à Active Directory. A ce stade nous avons un serveur Linux intégré dans Active Directory, dans une zone Centrify et qui est fonctionnel d’un point de vue système et totalement sécurisé par l’agent Centrify.

Nous allons maintenant voir certains éléments spécifiques à la partie NIS Gateway (adnisd).

Tout d’abord nous allons utiliser l’outil d’administration Centrify pour créer des GPOs spécifiques aux serveurs NIS qui s’appliqueront à notre serveur nisserver01. Centrify propose soit d’intégrer directement des fichiers ADMX au niveau de la GPMC soit d’installer un snap-in présentant les GPOs spécifiques aux environnements Unix/Linux et MacOS toujours au niveau de cette même GPMC. Il faut bien sur au préalable avoir fait une de ces deux manipulations.

Ouvrir la GPMC, se rendre sur le noeud Configuration ordinateur / Stratégies / Modèles d’administration / Centrify Settings / DirectControl Settings / NIS Daemon Settings:

capture20160405143959120

Editer la propriété ‘Specify allowed client machines for NIS daemon’ et renseigner la valeur 0/0:

capture20160405144020742

En effet, par défaut, le démon adnisd n’accepte que les requêtes locales, c’est à dire, les requêtes NIS émises depuis le serveur NIS lui-même (je ne rentrerai pas dans les détails, mais cette configuration est utilisée dans des cadres précis de sécurité), il faut donc spécifier les adresses IP qui auront le droit de lancer des requêtes NIS vers notre NIS Gateway, si l’on renseigne la valeur 0/0, toutes les requêtes NIS seront acceptées.

Editer également la propriétés ‘Specify NIS daemon update interval’ et renseigner la valeur 60:

capture20160405144101425

Cette valeur (par défaut sur 30 minutes) permet de spécifier l’intervalle de rafraichissement des données entre Active Directory et le cache local de la NIS Gateway. En effet, pour des raisons de performance, les informations des maps NIS stockées dans Active Directory sont mises en cache au niveau de la NIS Gateway (comportement par défaut), nous mettons ici la valeur sur 60 secondes afin de ne pas trop attendre entre les modifications faites dans Active Directory et leur synchronisation sur la NIS Gateway. En production, une valeur entre 15 et 30 minutes est tout à fait acceptable.

Valider la GPO, et refermer la console de gestion des GPOs Centrify.

Pour mettre à jour notre futur serveur NIS avec ces nouvelles valeurs de configuration (celles de la GPO), il faut se connecter sur le serveur NIS et exécuter la commande adgpupdate afin de forcer le rafraichissement de la GPO sur le système Linux, sinon attendre la prochaine application des GPOs:

capture20160405200401273

Pour visualiser les GPOs qui sont bien appliquées sur le système, exécuter la commande adgpresult, nous retrouvons bien les paramètres appliqués de notre GPO créée précédemment:

capture20160405200555997

Nous allons maintenant vérifier quelques éléments au niveau de notre serveur NIS Gateway.

Tout d’abord pour qu’un service NIS s’exécute convenablement sur un système, il faut que les services RPC soient opérationnels. je ne rentrerais pas les détails, mais globalement le service RPC du serveur va recevoir la requête, décider d’un numéro de port RPC pour la connexion cliente du client NIS et donc permettre la communication entre le client et le serveur. Il faut donc que RPC fonctionne correctement sur le serveur NIS, pour vérifier cela, exécuter la commande  rpcinfo –p localhost

capture20160405144954620

Nous voyons ici 6 portmapper en attente de demande d’échange RPC, tout va bien.

Nous allons maintenant exécuter la commande systemctl status adnisd –l afin de vérifier que le service adnisd est bien démarré et fonctionnel:

capture20160405202502019

Si jamais le service n’est pas démarré, exécuter la commande systemctl start adnisd –l pour le démarrer.

Le résultat de la commande systemctl status adnisd –l nous indique à la fin qu’il n’y aucune NIS map dans Active Directory, à ce stade, c’est tout à fait normal.

Dans le prochain et dernier article de cette série consacrée à l’utilisation d’Active Directory pour le stockage des maps NIS à destination des clients UNIX ou Linux, nous verrons comment publier quelques maps NIS dans Active Directory, comment paramétrer des clients NIS (ypbind) pour interroger ces même maps NIS et comment réaliser quelques tests supplémentaires.

Utilisation d’Active Directory pour le stockage des maps NIS UNIX/Linux via la Centrify NIS Gateway [1/3]

 

Comme indiqué dans un de mes derniers posts, Microsoft a annoncé la suppression de certains services Unix majeurs au sein de Windows 2016 et donc d’Active Directory 2016.

Au travers de mes projets, je rencontre de nombreuses sociétés qui utilisent des environnements mixtes Microsoft/Unix, et il est clair que les services NIS ont la vue dure… Bien sur, il ne faut pas gérer les authentifications et les autorisations via NIS, au profit d’utiliser Kerberos et LDAP. Je ne vais pas rentrer dans les détails ici, mais c’est comme dans Ghosbusters, utiliser les services NIS, c’est “mal”… Néanmoins, pour de nombreuses organisations, l’élimination totale des services NIS est un véritable challenge, car ces même organisations gère depuis des dizaines d’années des informations très importantes pour leur production dans ces fameuses map NIS (automount ou autre).

L’idée est donc généralement d’utiliser Kerberos/LDAP pour utiliser les services d’authentification et d’autorisation d’Active Directory et un service NIS “gateway” qui permettra d’accéder à Active Directory de façon sécurisée pour proposer le service NIS server depuis cette gateway. De cette façon, on obtient le meilleur des deux: on sécurise les services d’authentification par Kerberos et on permet à l’organisation de continuer à utiliser NIS pour exposer des maps “legacy”.

capture20160403202213508

Nous allons donc utiliser les services de NIS gateway proposés par la solution Centrify pour réaliser cette prouesse technologique et fonctionnelle Smile

Pour ce, nous allons paramétrer une workstation Fedora 23 en tant que passerelle NIS vers Active Directory.

Tout d’abord, il faut bien paramétrer votre Fedora pour vous assurer de lui donner un nom hostname qui corresponde à votre besoin et lui donner un paramétrage IP qui permette à cette passerelle NIS de communiquer avec Active Directory. Nous considérons ici, que les paramétrage basiques d’installation et de paramétrage de Zones Centrify ont déjà été effectués.

1/ Paramétrage du hostname

capture20160403204153493

Dans notre exemple, le hostname du futur serveur NIS sera: nisserver01.demo.local

2/ Vérification du service SSH

Nous allons vérifier que le service SSH Server est présent sur la machine, ceci afin de nous permettre de transférer les package de l’agent Centrify et de la NIS Gateway sur le futur serveur NIS

capture20160403204414276

Si le serveur SSH n’est pas installé, renseigner la commande suivante pour installer les packages:

capture20160403204724703

Une fois que les packages SSH sont installés, démarrer le service SSH serveur

capture20160403204915783

3/ Transfert des packages sur la machine

Via WinSCP, nous allons transférer l’agent Centrify de la version Centrify Server Suite 2016 sur la machine (dans le répertoire/tmp) pour une fedora 23, le nom du package est centrify-suite-2016-rhel4-i386.tgz

capture20160403205117288

4/ Installation de l’agent Centrify

Vérifier que l’agent est bien dans le répertoire /tmp:

capture20160403210045886

Décompresser le package de l’agent:

capture20160403210228837

Lancer l’installation de l’agent:

capture20160403210414251

Le script d’installation va lancer une vérification pour voir si la plateforme sera compatible avec l’installation de l’agent – si aucun test ne sort en “failed”, l’installation sera possible, les “warning” ne sont pas rédhibitoires pour l’installation:

capture20160403210626167

Choisir d’installer la version Enterprise ou Standard, en ce qui nous concerne pour le service NIS, cela n’a aucune importance – dans notre exemple, nous choisissons Enterprise [E]:

capture20160403210930120

Choisir de lancer adcheck à nouveau (pour être sur…) et renseigner les informations liées à Active Directory que demandera le processus d’installation – dans notre exemple, nous allons rejoindre une zone Centrify nommée arizona, notre futur serveur NIS fournira donc des services NIS pour cette zone Centrify – choisir de ne pas redémarrer à la fin de l’installation:

capture20160403211412414

Une fois les informations fournies, le processus d’installation vous demande de valider une dernière fois les informations fournies avant installation et paramétrage de l’agent:

capture20160403211646995

Le processus d’installation commence – après le processus adcheck, valider l’installation de l’agent:

capture20160403211958028

capture20160403212104744

L’installation se termine avec l’installation des agents Centrify:

capture20160403212219329

Nous allons maintenant installer le package permettant de mettre à jour le serveur SSH livré avec l’OS par la version serveur SSH Centrify qui permet une meilleure intégration au niveau de l’authentification Kerberos intégrée:

capture20160403213437402

Nous allons maintenant installer le package du serveur Centrify NIS Gateway:

capture20160403213822508

Nous allons maintenant pouvoir redémarrer le système !

Lors du prochain article, nous verrons ensemble le paramétrage de l’agent Centrify, le paramétrage du service NIS Gateway et nous publierons quelques maps NIS dans Active Directory afin de les rendre accessibles pour des clients NIS Unix/Linux sur notre réseau.

Microsoft annonce la suppression du support de Identity Management for Unix (IDMU) & NIS Server Role dans Windows Server 2016 Technical Preview (et après)

 

Depuis plus de dix ans, Microsoft propose le support des services NIS au sein d’Active Directory. Bon, ok, NIS c’est complètement pourri et le stockage des mots de passe NIS et leur transport sur le réseau sont un gouffre béant de sécurité sur une infrastructure d’entreprise.

Neanmoins, certaines entreprises utilisent encore NIS (et oui !) et certaines entreprises utilisent les Services for Unix sous la forme ou NIS Server Role dans Active Directory (bon, ok, pas beaucoup, mais j’en connais…)

Sur ce post, Microsoft révèle l’abandon de deux composants liés aux services Unix depuis Active Directory à partir de Windows Server 2016:

  • – NIS Server Role (rôle Windows Server)
  • – Extension IDMU pour la MMC: cette extension à la MMC permet de visualiser les attribut Posix définis dans la RFC2307 directement depuis l’interface ADUC

Pour rappel, voici un exemple d’interface IDMU:

Unix_tab

Attention, cela ne veut pas dire que la RFC2307 n’est plus supportée dans l’annuaire Active Directory, bien au contraire, cela signifie que si l’on veut modifier ces attributs, il faudra utiliser l’onglet Attribute Editor, comme pour tous les autres attributs prévu dans le schéma ou utiliser ADSIEDIT ou encore un client LDAP en écriture.

Pour rappel, voici la listes des attributs RFC2307 utilisés dans Active Directory:

RC2307

Par contre, cela signifie qu’il ne sera plus possible d’utiliser un contrôleur de domaine en émulation d’un service NIS en utilisant uniquement les technologie Microsoft.

Cela va ouvrir la porte vers les ISVs spécialistes de l’intégration Unix/Linux dans Active Directory et surtout à Centrify et Dell qui sont les seuls à proposer une NIS Gateway digne de ce nom.

Si vous êtes utilisateur SFU ou NIS Server Role, n’hésitez pas à me contacter pour définir comment anticiper ce changement majeur au niveau de Windows Server.

Installation de Solus 1.1

 

Solus est un OS Linux destiné à un usage desktop uniquement. Il a été créé par une communauté désirant désigner un OS desktop devenant une véritable alternative à Windows ou MacOS

Pour ma part, je suis convaincu que le fait de faire un focus unique sur la partie desktop est une excellente idée. Ici pas d’OS serveur, pas d’optimisation pour la partie serveur mais au contraire une optimisation de l’OS et des applications disponibles pour un usage workstation – c’est à mon sens le seul moyen de bien faire les choses, faire un focus fonctionnel précis répondant à des usages précis

Vous trouverez un article à propose de Solus sur le site de Korben: https://korben.info/solus-linux-user-friendly-refuse-de-devenir-usine-a-gaz.html

Télécharger l’ISO en version 1.1 depuis: https://solus-project.com/download/

Transformer une clé USB en clé USB bootable depuis l’ISO téléchargé – par exemple, sous Windows avec l’outil Rufus disponible sur http://rufus.akeo.ie/?locale=fr_FR

Démarrer sur la clé USB, après quelques secondes, vous obtenez un écran d’accueil, choisir “Instal Solus”

capture20160305121638720

Cliquer sur “Find my location automatically”

capture20160305123306338

Choisir la langue désirée

capture20160305123508918

Garder les options de clavier par défault, à moins que vous ayez des besoins particuliers

capture20160305123610657

Sélectionner le disque sur lequel l’installation doit être effectuée

Cliquer ensuite sur le bouton “Launch Partition Editor”

capture20160305123733104

Nous considérons ici que le disque est vierge, sans partition existante et sans données

Cliquer sur le menu Device et choisir “Create Partition Table”

capture20160305124113354

Choisir le type de table de partition “gpt” et cliquer sur le bouton “Apply”

capture20160305124304198

Ensuite, réaliser un clic-droit sur la zone “unllocated” et choisir “New”

capture20160305124615569

Sélectionner le menu “File system” et choisir “linux-swap”

capture20160305124847712

capture20160305125024381

capture20160305125105895

Dans la zone “New size” entrer la valeur 2048 – Puis cliquer sur le bouton “Add” – Pour rappel, la partition de swap sert de zone tampon si votre espace en mémoire vive est saturé, pour un poste de travail une valeur à 2Go est largement suffisante

capture20160305130011535

Réaliser à nouveau un clic-droit sur la zone “Unallocated”, choisir New

capture20160305131520143

Laisser les valeurs par défaut: Pour “File system”, laisser “ext4” et laisser la taille maximum possible au niveau de l’attribut “New size” ; puis cliquer le bouton “Add” – La partition ext4 prendra donc l’intégralité du restant sur le disque. Pour rappel, la partition ext4 sert à stocker les fichiers ou les répertoires du systèmes et des applications

capture20160305131808047

Au final, vous devez obtenir quelque chose qui ressemble à ceci:

capture20160305135031526

Cliquer ensuite sur la coche verte à droite de la barre d’outils afin de formater les différentes partitions

capture20160305135142166

Cliquer sur le bouton “Apply”

capture20160305135251889

A la fin de l’opération de formatage, vous devez obtenir le message “All operations successfully completed”

capture20160305135348272

Cliquer sur le bouton “Close”

Aller dans le menu “GParted” de l’utilitaire de partition et choisir la fonction “Quit”

capture20160305135649348

Vous revenez alors à l’utilitaire d’installation. Sélectioner la partition “swap” puis cliquer sur le bouton “Assign as swap partition”

capture20160305135838294

Sélectionner la partition “ext4” puis cliquer sur le bouton “Assign as root partition ext4”

capture20160305140120348

Puis cliquer le bouton “Next”

capture20160305140350262

Choisir la TimeZone puis cliquer sur le bouton “Next”

capture20160305140448573

Rajouter au moins un utilisateur qui pourra se connecter au système une fois l’installation terminée – cliquer le bouton [+] et rajouter autant d’utilisateurs que désiré puis cliquer sur le bouton “Next”

capture20160305140812465

capture20160305141105156

capture20160305141148729

Fournir un nom (hostname) qui permettra d’identifier le système sur le réseau – Activer la fonction “Should we install a boot loader on ths computer ?” en cliquant sur la coche – Cliquer sur le bouton “Next”

capture20160305141427214

Vous arrivez ensuite à un écran présentant le récapitulatif de l’ensemble des paramètres que vous avez choisis. Vérifier les paramètres et cliquer sur le bouton “Next”

capture20160305141707741

L’installation de l’OS Solus 1.1 sur le système de fichiers commence

capture20160305141907985

A la fin du procesus d’installation, cliquer sur la croix rouge en haut à droite de la fenêtre – puis déclencher un redémarrage du système après installation

capture20160305142710594

Le système redémarre

capture20160305143248700

L’écran d’accueil avec la mire de login apparait – par défaut l’utilisateur créé pendant le processus d’installation est présent  il suffit alors de renseigner le mot de passe et de tester ce nouvel OS plein de promesses !

capture20160305143512570

capture20160305144316504

Grosse faille de sécurité (grub2) sur les systèmes Linux actuellement en production !

 

Une très grosse faille de sécurité a été mise en evidence sur les systèmes Linux utilisant Grub.

Pour être plus précis il s’agit de la version Grub2 et les versions touchées sont comprises entre la version 1.98 et 2.02. Plus d’information sur Grub2 ici: http://www.linuxpedia.fr/doku.php/expert/grub2

Grub2 est un boot loader utilisé par la majorité des systèmes Linux, ce boot loader intègre un mode particulier, le mode “grub rescue” – Il s’avère que ce mode st accessible simplement en executant la marche suivante:

– démarrage de l’OS (pas en mode graphique, en mode tty1)

– vous arrivez à la mire de login

– vous appuyez 28 fois sur la touche “retour arrière”

– et c’est magique, vous vous retrouvez dans le mode “grab rescue shell” vous permettant d’avoir un accès sans autentification au système

hack-linux-grub-password

Les différentes distributions Linux ont publié un correctif pour cette faille. (voir aussi ici http://git.savannah.gnu.org/cgit/grub.git/commit/)

Pour vérifier la version de grub2 que vous utilisez, il suffit d’éxécuter (debian/ubuntu): ‘grub-install –version’

grub2_version

Cette “mésaventure” nous indique à quel point il est important de:

[1] – Protéger l’accès physique aux machines

[2] – D’avoir un système de protection au boot (BIOS password, loader sécurisé, etc.)

Plus d’information sur la faille sur ces articles:

http://www.securityweek.com/password-bypass-flaw-found-grub2-linux-bootloader

http://thehackernews.com/2015/12/hack-linux-grub-password.html

Gestion des systèmes Unix & Linux depuis SCCM 2012R2

Comme vous le savez si vous suivez assidument les articles de mon blog, les solutions qui permettent l’interopérabilité des plateformes Windows et Unix/Linux font parties de mes dadas. Depuis quelques années, Microsoft fait des efforts considérables pour permettre à ses solutions d’inter opérer avec les mondes Unix & Linux. Dans ce sens, une des solutions qui a fait le plus de progrès est SCCM, qui permet réellement depuis a version 2012R2 de gérer des systèmes Unix et Linux, avec des nouveautés quasiment tous les trimestres en termes de plateformes supportées ou de fonctionnalités.

Microsoft a publié un article recensant les erreurs communes que l’on retrouve lors que l’on veut utiliser SCCM 2012R2 avec des systèmes Unix & Linux – Vous trouverez cet article [ ici ]

Merci à Hervé Thibault pour le lien !

Une backdoor dans Linux ???

icon_linux

 

Il faut regarder cette vidéo, à partir de la 24ème minute… soudain une question du « monsieur loyal » qui amène les « panelists » à une situation inconfortable, la gène est perceptible…. et les démentis d’après conférence n’y feront rien… Si la NSA a une backdoor côté Windows, il n’y a aucune raison qu’il n’y en est pas côté Linux, Android etc… La négation orale conjointe à l’affirmation gestuelle de Linus Torvalds ne nous rassurent guère…

La priorité aux logiciels libres dans l’éducation va disparaitre !

Mortderire2

Je ne résiste pas au bonheur de vous donner de « bonnes » nouvelles du logiciel « libre » (libre de quoi au fait ?), sans déconner, mais c’est vraiment n’importe quoi, un jour c’est noir, un autre blanc, et le lendemain gris…

Plutôt que de changer de cap toutes les cinq minutes, il vaudrait mieux regarder quel est le vrai coût global des logiciels, c’est à dire, leur acquisition, leur déploiement, leur utilisation, etc. Bref le coût de possession global et pas simplement le prix d’achat de la licence, remise comprise.

J’ai en tête une grande administration française qui jette au feu quotidiennement des milliers d’euros à vouloir s’entêter à utiliser Linux pour ce qu’il n’est pas fait… et pourtant je suis le premier à reconnaître que Linux à de gros intérêts, mais encore une fois, chaque chose à sa place…

Les bonnes nouvelles à lire (sources: Le MagIT):

 » Les députés ont finalement voté en faveur d’une amendement du gouvernement qui ne donne plus la priorité aux logiciels libres dans le numérique éducatif. Le libre doit être seulement pris en compte, et quand l’offre existe. Un revers cinglant.

Le logiciel libre n’est plus une priorité pour le gouvernement dans son projet de loi de refonte de l’éducation. Ce mardi 4 juin, les députés ont voté en seconde lecture, un amendement qui vient vider de sa substance, comme anesthésié, un précédent amendement qui donnait la priorité aux logiciels libres ainsi qu’aux formats ouverts dans le numérique éducatif. Un revirement de situation et un cinglant revers pour la communauté du Libre en France, qui avait pourtant poussé un léger soupir de soulagement lors de la publication de la circulaire Ayrault – qui rappelons-le, invite les ministères à considérer les logiciels libres dans leur politique d’achats.

Pourtant ce texte était bien parti. La semaine dernière, la commission de la culture, de l’éducation et de la communication avait voté, en première relecture au Sénat, l’ajout d’un amendement au texte initial, transformant des logiciels libres et des formats ouverts en une «priorité» pour le service public éducatif. Le texte avait ensuite été adopté par la commission des Affaires culturelles et de l’Éducation à l’Assemblée. La partie semblait donc bien engagée.

Pourtant en séance publique, le gouvernement bascule et vote en faveur d’une modification du texte : d’une priorité, les logiciels libres ainsi que les formats ouverts ne sont désormais que «pris en compte», et à condition qu’une offre existe. Le nouveau texte, adopté par les députés, dit : «Dans le cadre de ce service public, la détermination du choix des ressources utilisées tient compte de l’offre de logiciels libres et de documents au format ouvert, si elle existe.» Comme chloroformé.

Il faut dire que Syntec et l’Afdel, les deux instances représentatives des éditeurs et des SSII en France, dans une levée de bouclier magistrale, avaient décidé de monter au créneau. S’insurgeant contre cet amendement qu’ils jugeaient tour à tour discriminatoire, considérant comme une atteinte au principe de neutralité des achats des marchés publics, évoquant même «le risque de recours contentieux entre les opérateurs privés du secteur et les administrations».

Des arguments qui semble-t-il, ont fait leur chemin auprès du ministre de l’Education nationale Vincent Peillon. Selon lui, inscrire les logiciels libres et les formats ouverts et en faire une priorité aurait ainsi provoqué des «difficultés juridiques et non politiques». Ce que l’April, l’association de promotion du logiciel libre en France, dénonce dans un communiqué : « La priorité au logiciel libre introduite par le Sénat est parfaitement légale, et validée par le Conseil d’État dans sa décision du 30 septembre 2011. Nous demandons au gouvernement de publier une analyse juridique étayant ses propos », souligne Jeanne Tadeusz, responsable des affaires publiques à l’April.

Le texte du projet de loi doit encore passer en seconde lecture au Sénat. »

Mandriva va ou va pas ?

Nouveaux rebondissements autour de la société Mandriva. Faites vos jeux…Rien de va plus… La société Mandriva SA ne va plus gérer le développement de l’OS Mandriva… et laisse donc à la « communauté » le soin de gérer les futures évolutions. Quelle future cohabitation attendre avec le fork Mageia ? mystère et boule de gomme.

Au delà des dysfonctionnements évidents de la société Mandriva SA, ce nouvel évènement met sous la lumière la difficulté du modèle économique de distribution Linux.

La société Mandriva avait commencé une initiative intéressante consistant en la création d’un package Annuaire des Identités, il est vraiment dommage que ce « produit » n’est pas évolué depuis plusieurs années, car il y a de la place à prendre sur ce secteur…

Néanmoins, très bonne chance à eux (j’ai un copain là-bas…).

Open, mais pas trop…

  je tiens en quelques lignes à vous faire partager mon expérience avec les organisateurs du salon « Solution Linux Open Source » qui se déroulera au CNIT les 19, 20 et 21 juin prochains.  En effet, étant membre de certains « cercles » , j’ai reçu une invitation à déposer un dossier afin de présenter une session sur l’un des thèmes abordés pendant le salon. Trouvant dans la liste des thématiques, la section « Sécurité / Identité », j’ai tout naturellement proposé deux conférences techniques abordant les thèmes de l’interopérabilité (déjà abordé pendant les Microsoft Techdays 2012) et concernant la gestion des identités en environnement poste de travail Linux.

Après avoir patiemment renseigné un dossier de candidature, expliqué mon background, mes propositions, les intérêts d’une session basée sur le thème de la gestion des identités (cela me semble tout de même un thème important dans un environnement professionnel…) j’ai alors attendu une réponse des organisateurs. Je tiens bien sur à préciser que ce type de participation en tant que Speaker est complètement gratuite, et que cela me coute même un peu d’argent pour me « téléporter » sur Paris (« Scotty ? Téléportation ! »).

Quelques jours après le dépôt du dossier, j’ai reçu l’appel d’un « collaborateur du salon » m’indiquant la bonne réception de mon dossier et me proposant de « prendre » (comprendre « acheter ») un emplacement en tant qu’exposant sur le salon, m’indiquant que bien évidement, la plupart des speakers « faisaient partis de sociétés exposantes »… L’obligation d’avoir un stand exposant (et donc de payer) pour devenir speaker n’était pas exposée frontalement, mais… clairement explicite.

Après un refus poli de ma part, mon interlocuteur coupa court à la conversation en me souhaitant tout de même une très bonne journée. Merci.

Quelques jours après ce coup de téléphone, je reçu un e-mail de la part des organisateurs du salon m’indiquant que ma candidature en tant que speaker n’était pas retenue dans la thématique « Sécurité / Identité ». Comme vous l’imaginez, ce refus ne m’a pas surpris outre mesure tant la conversation précédente fut explicite…

Décapitons immédiatement les malentendus, bien sur je me serais fait une joie de participer à un tel salon en tant que speaker, et bien évidement je comprends tout à fait que les choix de speakers soient cornéliens et que mon CV ne soit pas le plus adapté à une présentation sur le salon « Open Source » – néanmoins, deux faits totalement dé corrélés de mon ego possiblement surdimensionné ne sont pas discutables:

1/ Le rentre dedans du commercial me « conseillant fortement » de payer un stand pour améliorer mes chances d’être retenu en tant que speaker

2/ Au 18/05/2012, la pauvreté de la track « Sécurité / Identité » – je vous laisse seul juge – en fait il n’y a rien…

 

 

 

Ne vous inquiétez pas (si si je vous sens inquiets là…) l’intervenant unique sur la thématique « Sécurité / Identités »  travaille bien pour une société qui expose… ouf !!!

Bref, au delà de cette anecdote (au final ce n’est que cela…), certains éléments me désolent:

  • Le peu d’ouverture d’esprit des organisateurs (pour un salon dit « Open » c’est un comble) ainsi que la « méthode » de sélection ou d’enrôlement (au choix)
  • Le peu de vision de ce que Linux peut apporter dans l’entreprise, même sur le poste de travail (et il peut apporter beaucoup) et la non connaissance des implications de cette vision sur la gestion des identités de façon globale
  • Le sectarisme affiché pour des profils « d’origine non-Linux » ; pour rappel, sans le support de Microsoft, pas sur que le salon existerait encore…

Je rajouterai, que malgré des attaques parfois très ouvertes de ma part envers Microsoft, je n’ai jamais, je dis bien jamais reçu en retour la moindre remarque, menace ou pression – cela n’est JAMAIS arrivé, et pourtant je ne me gène pas.

Bref, certains penseront que ce billet n’est ici que pour me venger de n’avoir pas été retenu et que j’ai un ego gros comme une citrouille, mais ceux qui me connaissent bien savent plutôt que si j’ai pris 15 minutes pour écrire ces qq mots, c’est que l’attitude de certains me désole franchement… Il y a tant à faire avec Linux et il y a tant à faire en faisant cohabiter le monde Microsoft et le monde Linux, et pour le bien de tous. Tant pis.

 

Les sessions des Techdays 2012 sont en ligne !

  Les sessions des Microsoft Techdays 2012 sont en ligne ! Vous pourrez notamment retrouver mes deux sessions sur l’intégration Linux et Unix dans Active Directory et sur le déploiement d’AD RMS en entreprise. Il est également possible de télécharger les fichiers Powerpoint rattachés à ces présentations. N’hésitez pas à les visionner et à donner votre avis sur l’interface de gestion des commentaires et de notation.

# Session  » Windows & Linux: plus forts ensemble !  »

# Session  » Protéger le patrimoine informationnel de l’entreprise grâce à AD RMS  »

Microsoft Techdays 2012: Windows et Linux, plus fort ensemble !

  Une bonne nouvelle n’arrivant jamais seule, une deuxième session aux Microsoft Techdays 2012 vient de m’être accordée !

Cette deuxième session aura pour thème une problématique qui m’est chère: La cohabitation des environnements Linux et Windows au sein de la DSI, et ce depuis un angle technique ET organisationnel.

Vous trouverez des détails sur la session et le moyen de vous enregistrez sur le site des Techdays.

Venez très nombreux pour échanger sur cette problématique, les débats risquent d’être animés !

Etude comparative des solutions d’intégration gratuites à Active Directory pour les systèmes Unix et Linux

Une étude extrêmement intéressante a été réalisée par Rodney Ruddock, consultant au sein de la société Interop Systems, qui est un cabinet d’expertise Américain spécialisé dans les études de marché techniques en ce concerne les problématiques d’interopérabilité.

Cette excellente étude compare les différentes solutions logicielles gratuites permettant d’intégrer les systèmes Unix, Linux et Mac dans Active Directory, et qui permettent aux organisations d’utiliser Active Directory comme annuaire centralisant pour les authentifications des utilisateurs quel que soit le système utilisé. cette approche apportant de nombreux avantages tels que: unicité du nom utilisateur et du mot passe utilisateur sur l’ensemble des systèmes, centralisation des logs d’authentification sur les contrôleurs de domaine AD, stratégie de politique et de complexité de mot de passe unifiée sur l’ensemble des systèmes, etc.

En substance, voila les conclusions de Rodney Ruddock dans le tableau suivant, les cases en jaune indiquant les éléments significatifs et importants selon Rodney Ruddock:

Rodney Ruddock préconisant donc Centrify Express comme la solution idéale pour l’intégration gratuite des environnements hétérogènes dans Active Directory.

L’étude complète est accessible [ ICI ]

 

Centrify DirectExpress: Intégrer gratuitement les machines Mac, Linux et Unix dans Active Directory !!!

Centrify propose maintenant une version gratuite permettant de déployer et gérer l’intégration des environnement Mac, Linux et Unix dans Active Directory.

Bien sur, certaines fonctions ne sont pas présentes, donc pas de possibilité ici de gérer plusieurs UIDs/GIDs, de supporter les SmartCard ou de faire des GPOs sur les systèmes (fonctions intégrées dans la version payante) – néanmoins, il est possible ici de gratuitement intégrer les systèmes hétérogènes dans Active Directory.

Il donc possible de réaliser une intégration transparente dans l’annuaire Microsoft et donc de permettre aux utilisateur d’utiliser le même mot de passe sur tous les systèmes et de profiter d’un SSO utilisateur basé sur kerberos. Cela est déjà génial !

Centrify DirectExpress est téléchargeable [ ICI ]

Si vous voulez en savoir plus sur Centrify DirectExpress avant le déploiement, vous pouvez regarder la vidéo suivante:

Est ce que freeIPA est l’Active Directory de RedHat ?

redhat_freeIPA Apparu il y a quelques mois en version 1.0, la suite freeIPA est passée totalement inaperçue dans le monde de la gestion des identités et des accès. Et pourtant, la version 2.0 (pour l’instant en beta) propose une liste de fonctions qui rappelle fortement ce que propose Microsoft au travers d’Active Directory:

  • Service LDAP (anciennement Fedora Directory Server)
  • Service MIT Kerberos
  • Service NTP
  • Service DNS
  • Service d’autorité de certification
  • Interface d’administration en mode web ou en ligne de commandes
  • Gestion des comptes utilisateurs et des groupes

HighLevelArchV2

Avouez que la ressemblance est troublante…

J’ai pour habitude de dire qu’Active Directory, c’est trois éléments: [1] Un service LDAP [2] Un service Kerberos [3] Un ensemble d’autres choses…  Le tout proposé avec des outils d’administration et de gestion intégrés.

freeIPA 2.0 proposera en Mars 2011 des outils de synchronisation avec Active Directory, à voir la comparaison avec un méta-annuaire.

Mais, le véritable chalenge sera comme souvent l’intégration des clients… Active Directory possède pour l’instant la plus grande couverture fonctionnelle de clients qui puisse exister: Windows, Mac, Unix, Linux, tout est possible ! Il sera donc très important de tester l’intégration des clients lors du test éventuel de freeIPA en version 2.0.

Sortie de la version 2.1 pendant l’été 2011.

Un nouveau blog dédié au « group management »

getgroupblog Un nouveau blog vient d’apparaitre dans la blogosphère de la gestion de l’identité et des accès. Il s’agit du get-group blog [ http://blog.imanami.com/] – La particularité de ce blog est de réaliser un focus sur la méthode du Group Based Access Control (GBAC), méthode dérivée du RBAC qui permet de construire une méthode de contrôle d’accès basée sur les groupes et non pas sur les rôles. Cette méthode à l’avantage de la simplicité comparée à une méthode classique de RBAC, mais doit être complétée par une méthode d’audit des groupes pour être efficace en terme de reporting. Néanmoins, il s’agit d’une méthode tout à fait adaptée aux entreprise qui ne souhaitent pas investir dans le RBAC. Ce Blog est donc une initiative interressante pour tout consultant travaillant dans le monde des annuaires ou de l’IAM.

WebTV intéropabilité des systèmes Unix, Linux et Mac avec Active Directory

webcast2Les Groupes Utilisateurs font leur show ! -La Communauté Active Directory et Identity Management -Interopérabilité Windows-Linux-Unix-Mac

L’intéropérabilité ! C’est ce thème d’actualité que traîte la Communauté Active Directory et Identity Management lors de cette web TV dédiée au Groupes Utilisateurs,les experts Sylvain Cortes ( Président de la CADIM ) et Christophe Dubos (Microsoft) en font un tour d’horizon des solutions pour gérer les authentifications et les autorisations des systèmes Unix, Linux et Mac dans Active Directory, tout cela en 17 min ! Profitez de l’expertise de ces deux intervenants !

Pour visualiser la WebTV c’est ici: http://www.microsoft.com/france/vision/Technet-tv/Webcast.aspx?eid=2ae18d77-d4a9-40e6-9402-24fabf8339be