Saturday, April 28, 2018

CentOS (FR) 01 - le retour - Network Manager - nmcli

English summary: after a first look at CentOS/RHEL in 2016, I take a new look at some components like Network Manager. Network Manager (and its command line equivalent nmcli) is now the primary tool for managing network devices and connectivity, rather than the manual editing of configuration files.

***

En 2016, j'ai composé une série d'articles sur CentOS 7 qui a pour source "RHEL" (Red Hat Enterprise Linux). Sur le plan technique, le système d'exploitation est le même mais CentOS ne s'accompagne d'aucun contrat d'assistance technique (sinon le soutien communautaire, notamment via des forums en ligne).

Je tiens à me remettre à l'apprentissage de Linux (et CentOS/RHEL en partculier) parce que Linux s'utilise un peu partout désormais et représente sans conteste un système utile à connaître. De plus, CentOS/RHEL évolue comme n'importe quel autre système et certaines nouveautés, comme nmcli pour la gestion des paramètres de réseau, sont désormais la méthode préférée (plutôt que la modification des fichiers de configuration avec un éditeur de texte).

C'est justement le branchement au réseau que je veux revoir ici. Il y a deux ans, je n'avais fait que jeter un coup d'oeil à nmcli. Dans les paragraphes qui suivent, je vais configurer tous les paramètres de base avec cet outil.

*** 

En quelques mots, je vais présenter de nouveau les bases de nmcli.

D'abord, Network Manager (nmcli à la ligne de commande) est un service dont nous pouvons vérifier la bonne marche avec un autre outil, systemctl :

systemctl status NetworkManager.service


Ceux qui viennent de l'univers Windows doivent garder à l'esprit que Linux est sensible à la casse.

Exécuter la commande avec "networkmanager.service" donnerait lieu à une erreur.

Note de dépannage : si le service ne tourne pas, nous pouvons le lancer avec cette commande :

systemctl start NetworkManager.service

Autres options :

systemctl restart NetworkManager.service
systemctl stop NetworkManager.service


Network Manager (nmcli) nous permet de gérer cinq aspects de la mise en réseau :

  • general (g)
  • device (d)
  • connection (c)
  • networking (n)
  • radio (r)

Nous pouvons abréger nos commandes en ne tapant que la première lettre du mot en question, "c" pour "connection" par exemple.

Remarque : comme il s'agit de la configuration d'un serveur dans mon scénario, je ne traite pas ici la configuration sans-fil ("radio" ou "r").


Si nous exécutons les commandes de base, sans autres options ou paramètres, en voici le résultat :



Nous pouvons afficher plus de détails avec l'option "show" comme ceux du périphérique "ens33" dans l'exemple ci-dessous (commande complète et abrégée) :

nmcli device show ens33
nmcli d sh ens33



Le terme "device" désigne un périphérique réseau, de type "ethernet" dans ce cas. C'est une sorte d'interface.

Le terme "connection" correspond à un profil composé d'un ensemble de paramètres (adresse IP, passerelle, etc.) qu'on associe à l'interface.

Nous pouvons configurer plusieurs profils (plusieurs jeux de paramètres) mais un seul peut être actif pour une interface donnée à un moment donné.

Le nom de périphérique "ens33" est un "nom d'interface réseau prévisible" ou "predictable network interface name". Je ne redonne pas d'explication ici mais renvoie le lecteur à mon article précédent :

Network Manager - premiers pas

Bien entendu, vous pouvez aussi recourir à la documentation Red Hat, entre autres :

4.7.3. Nouveau schéma d'affectation de noms de réseau


***

Je pourrais continuer à présenter d'autres aspects de nmcli, les uns après les autres, mais je ferais sans doute mieux de passer à la configuration réseau d'un serveur, une forme d'apprentissage plus pratique.

En premier lieu, je configure le nom d'hôte. Par défaut, il est "localhost". Je renomme le serveur avec la commande suivante :

nmcli general hostname LX1

ou bien :

nmcli g hostname LX1

Note : j'aurais peut-être pu abréger davantage (nmcli g h LX1 ?) mais je n'insiste pas toujours quand la commande n'est pas longue.

Grâce a nmcli, nous ne sommes plus obligés de modifier les fichiers de configuration à la main mais j'étais tout de même curieux de voir ce qui se passerait dans le fichier de configuration "hostname". Voici la comparaison avant-après :



Pour constater le changement à l'invite, nous devons faire redémarrer le serveur :

shutdown --reboot (ou "-r")

Et voilà la nouvelle invite:


Nous sommes toujours "root" mais le nom d'hôte a bel et bien changé.


En second lieu, je configure le profil, c'est-à-dire les paramètres de réseau. Il est possible de modifier un profil existant mais nous pouvons aussi bien en créer un nouveau et l'associer à l'interface. Comme plusieurs profils peuvent coexister, mais un seul associé à une interface à la fois, tout autre profil en serait détaché. Je vais présenter chacun des paramètres, un à un, avec des valeurs de mon choix, puis l'ensemble dans la capture d'écran :

nmcli connection add
con-name PRD
ifname ens33
type ethernet
ipv4.method manual
ip4 10.2.2.1/8
gw4 10.1.1.3
ipv4.dns "200.67.220.220"

Remarque : oui, c'est l'adresse d'un serveur DNS chez OpenDNS.



Quand j'exécute "nmcli connection" de nouveau, je vois que l'association avec l'interface ens33 s'est faite de manière automatique (et s'affiche en vert - à comparer à la capture d'écran plus haut avec les commandes dites "de base") :


En cas de besoin, nous pouvons activer un profil nous-mêmes avec cette commande :

nmcli connection up PRD
nmcli c up PRD


Mais puis-je accéder à l'Internet ? Oui :



Remarque : ce n'est pas toujours le cas par défaut.


Je n'ai rien dit plus haut sur l'option "nmcli network" mais nous pourrions dire qu'elle donne l'état de l'accès Internet, "plein" dans notre exemple :

nmcli network connectivity


Selon le manuel, cinq états sont possibles (il les donne en anglais, même en version française) :

man nmcli network 



Si j'exécute les commandes "nmcli device" et "nmcli connection" maintenant, je vois plus de couleurs (notamment le vert) et l'association entre "device" et "connection" (périphérique et profil) :



Par ailleurs, je constate que la commande "ip address show" (et ses formes abrégées) fonctionne toujours (mais ne nous permet pas de faire de la configuration) :



L'affichage de certaines commandes peut être long. Pour nous déplacer là-dedans, nous pouvons recourir à la combinaison de touches Shift+PgUp et Shift+PgDn (sur mon clavier au moins). Nous pouvons aussi utiliser l'option d'affichage -p ("pretty") que je trouve assez utile dans cet exemple :

nmcli -p connection show PRD

L'affichage n'est pas moins long mais s'organise en catégories plus lisibles pour les humains.

Les fichiers de configuration se modifient selon les commandes nmcli que nous exécutons. Nous pouvons le constater en affichant le fichier qui correspond à l'interface en question :

cat /etc/sysconfig/network-scripts/ifcfg-PRD


Je constate cependant que nmcli possède sa propre syntaxe et ne modifie pas celle du fichier de configuration, les noms de paramètre par exemple :

nmcli : ip4 10.2.2.1/8

fichier : IPADDR=10.2.2.1
fichier : GATEWAY=10.1.1.3

Si nous y tenions par habitude, nous pourrions modifier les fichiers à la main avec vi ou un autre éditeur de texte et nmcli en tiendrait compte.


Saturday, April 21, 2018

Active Directory recovery - 3rd party tools - Recovery Manger Plus - 4

This is my last post on Manage Engine's "Recovery Manager Plus" which is a third party tool for Active Directory recovery operations (among other things). In my previous posts, I've attempted to restore users, groups and attributes of these objects. For the most part, these efforts were successful. In this post, I'll attempt to restore a DNS node/zone and a Group Policy Object (GPO).


***


DNS 

This is my second attempt to backup and restore a DNS node or DNS zone. My first attempt (not presented in any blog post) was not successful. What follows is a fresh start with a new DNS zone and nodes.

I create a DNS zone and add two DNS nodes. For the time being, I will not create a corresponding PTR zone:



I then perform a backup:




Under the Active Directory tab (in Recovery Manager Plus - RMP), I look at the Backup Summary (DNS section) and see no changes:




As I learned from previous experiences, it may be necessary to make a change (delete a node or zone) and then perform another backup for the summary to reflect the change.

So I delete a node (and confirm the operation as needed):







Note: granted, it would probably be easier to re-register the entry or recreate it manually than resorting to the backup but that is another story.

I then initiate another backup (if our incremental backups are frequent enough, this step might not be necessary).

I still notice no change reflected in the DNS section of the Backup Summary under the Active Directory tab (you can look at the screenshot above - nothing has changed).

I cannot find anything pertaining to DNS in the Restore, Rollback or Recycle sections - regardless of the date of the backup.

For now, I'll leave it at that (same result for the entire DNS zone).

Yes, the DNS zones are Active Directory integrated.

Let's try a GPO.


***


GPO

The RMP dashboard shows "Group Policy - 9" and that appears to represent the nine Group Policy objects that I have:



I will delete a GPO...






And then run an incremental backup to view the changes.

From the start, I see that, compared to the previous status quo, we have one less GPO:



On the Active Directory dashboard, I see the deletion of the GPO is indicated:





I attempt a restore but encounter the same challenge as in an earlier blog post. The most recent backup (of course) holds the deleted object which I cannot restore. The preceding backup does not seem to contain the object (before deletion). I only see (not shown here) some user and group objects used in previous restore experiments.

So this was not successful...




On the other hand, I was able to recycle the GPO:



Note: we restore and recyle the selected object(s) by clicking on the green "Restore" or "Recycle" button toward the bottom of the screen inside RMP (but not shown in the screenshots above).


We have 9 GPOs once again:




And I can confirm that directly in the Group Policy Management Console:



***


This concludes my final blog post on Recovery Manager Plus. With the exception of DNS, I was able to restore (or recycle) deleted objects more efficiently than resorting to a native Active Directory backup/restore operation. As for the problems encountered, this is the first time I've used the product (trial version) so I may be missing something. If a reader of this post has the solution, please comment below.

Note: if I understand correctly, the trial version is fully functional so that should not be the source of any limitation. 

Saturday, April 14, 2018

Active Directory recovery - 3rd party tools - Recovery Manager Plus - 3

In my previous blog post, I attempted to recover certain objects and was successful in 2 of 3 cases (please refer to that blog post for details). However, I was not able to recover the members of a group, probably because I was not selecting the correct backup version. In the following lines, I'll attempt the recovery operation again.

***


In this second attempt, I will use the "HR" group once again but with different members:




And once again, I delete the group:





The group has obviously been deleted:





In Recovery Manager Plus (RMP), I perform a backup (which takes into account recent changes), go to the Active Directory tab, and then look at the the column "Groups" where I can see that 1 group has been deleted and 4 users modified (probably a reference to the change in group membership): 




I'll now do what I did last time and indicate what I think was the error. Still under the Active Directory tab, I select the "Restore" option (to the left of the screen but not shown in the screenshot below) and observe, here as well, the deleted group and the modified users. I select a backup (red dot in screenshot)...




And then click on Restore:




The restore apparently completes but the result is the same as before (and the group is not restored in Active Directory):




Now, I could recycle the group as in my previous blog post but that did not restore the group membership.

So what is the problem?

We have to make sure we select the correct backup (by date and time) and in particular NOT the backup that we initiate manually so the most recent changes are displayed. That backup takes place AFTER the group was deleted and does not allow us to restore it.

We need to select the previous backup in which the group was still "undeleted":



Note: the icon representing the group is black here and not red.


If we peform the restore now, and look at the restore details, we see an attribute name ("Members") with the restored value: 






That is more promising. Better yet, if I go back into Active Directory (Users and Computers), I see that the group is restored with its 4 members:




***

In this blog post, I've made some more progress leaning about the third party Active Directory recovery tool "Recovery Manager Plus". We've now restored users and groups as well as attributes of these objects. In my next blog post, I'll attempt to restore a DNS zone and a Group Policy Object (GPO). While the product does allow other recovery operations (bare metal and virtual machine), I will not explore those options in this serie of blog posts.