note de synthèse – deuxième année de bts sio … · note de synthèse – deuxième ... du...

20
Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI Mission 4 - Monitoring et sécurisation du serveur Nous allons à présent prendre en compte le niveau de sécurité nécessaire à cet élément de l'infrastructure en évaluant les risques liés à l'utilisation du service. En effet, lorsque le serveur FOG est utilisé en production, il contient des données sensibles ou stratégiques (images dotées de logiciels développés par l’entreprise ou de logiciels configurés spécialement pour l’entreprise par exemple). C'est pourquoi une approche sécuritaire me semblait approprié afin de garantir la bonne évolution de Maxsodel dans son secteur d'activité. Mon choix concernant Linux s'est porté d'une part sur la gratuité du service mais également sur la sécurité que le système nous offre, en effet, il n'existe quasiment pas de virus ou d'infection sur Linux, le système étant fait de tel manière à ce qu'il soit rendu difficile pour un programme hostile de faire quoi que ce soit. 4.1 - Installation de SSH Afin de pouvoir administrer le serveur à distance en cas de nécessité, nous aurons besoin de SSH. SSH étant à la fois un logiciel et un protocole de communication sécurisé il impose la création de clés de chiffrement lors de la connexion qui permettront par la suite de chiffrer la connexion entre deux machines (voir plus), ainsi tout les segments TCP/IP sont authentifiés et chiffrés. De cette manière il est impossible pour un utilisateur malveillant d'utiliser un logiciel d'écoute du réseau tel que Wireshark pour en analyser les trames. Nous démontrerons ultérieurement l’efficacité de ce service. 1 / 20

Upload: doancong

Post on 16-Sep-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Mission 4 - Monitoring et sécurisation du serveur

Nous allons à présent prendre en compte le niveau de sécurité nécessaire à cet élément de l'infrastructure en évaluant les risques liés à l'utilisation du service.

En effet, lorsque le serveur FOG est utilisé en production, il contient des données sensibles ou stratégiques (images dotées de logiciels développés par l’entreprise ou de logiciels configurés spécialement pour l’entreprise par exemple). C'est pourquoi une approche sécuritaire me semblait approprié afin de garantir la bonne évolution de Maxsodel dans son secteur d'activité.

Mon choix concernant Linux s'est porté d'une part sur la gratuité du service mais également sur la sécurité que le système nous offre, en effet, il n'existe quasiment pas de virus ou d'infection sur Linux, le système étant fait de tel manière à ce qu'il soit rendu difficile pour un programme hostile de faire quoi que ce soit.

4.1 - Installation de SSH

Afin de pouvoir administrer le serveur à distance en cas de nécessité, nous aurons besoin de SSH.

SSH étant à la fois un logiciel et un protocole de communication sécurisé il impose la création de clés de chiffrement lors de la connexion qui permettront par la suite de chiffrer la connexion entre deux machines (voir plus), ainsi tout les segments TCP/IP sont authentifiés et chiffrés. De cette manière il est impossible pour un utilisateur malveillant d'utiliser un logiciel d'écoute du réseau tel que Wireshark pour en analyser les trames.

Nous démontrerons ultérieurement l’efficacité de ce service.

1 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Nous installons donc SSH avec la commande :

apt-get install ssh

4.2 - Modification du fichier de configuration

Nous nous rendons ensuite dans le fichier de configuration du programme afin de modifier le port de connexion pour augmenter la sécurité du service :

Puis nous activons ce même port sur la Livebox :

2 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Puis nous tentons de nous connecter grâce à Putty sous une machine Windows ne se trouvant pas dans le même réseau :

La connexion est alors établie nous spécifierons l'identifiant de connexion ainsi qu'un le mot de passe :

3 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Il est également possible de spécifier quel compte aura le droit de se connecter au serveur, pour plus de sécurité nous spécifions donc que la connexion sous le compte root est interdite dans le cas d'une attaque l'utilisateur malveillant n'aura aucun droits sur la machine, on met donc no à la ligne PermitRootLogin :

Puis en fin de paragraphe nous ajoutons la directive AllowUsers pour permettre à l'utilisateur maxsodel de s'y connecter.

Après enregistrement et fermeture de la session SSH nous consatons alors qu'il nous est impossiblede nous logger en tant qu'administrateur sur la machine même avec le bon mot de passe :

4 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

4.3 - Écoute du réseau avec Wireshark

Comme précisé précédemment, SSH crypte la connexion entre deux hôtes lorsque celles-ci tentent de communiquer, nous allons donc sniffer le réseau pour démontrer l’efficacité de cette solution, nous lançons une commande ping à destination du routeur depuis SSH :

Puis, nous lançons Wireshark en spécifiant l'écoute sur la bonne interface, nous remarquons alors les trames à destination du serveur :

Wireshark nous précisera l'adresse IP de destination et l'adresse IP source mais également le port visé, ici le 29129 que nous avons configuré plus tôt.

5 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

En effectuant un clique droit > Follow TCP Stream nous remarquerons alors que toute la communication est illisible et crypté :

Il est donc préférable de privilégier une connexion en SSH plutôt qu'en Telnet par exemple où les trames non cryptées circulent sur le réseau.

6 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

4.4 - Modification du mot de passe utilisateur

Enfin, nous changerons le mot de passe par défaut du compte utilisateur car il reste très simple à deviner ou à cracker par n'importe qui

Pour changer le mot de passe par défaut du compte, il faut aller dans User Management dans l’interface Web de FOG (deuxième icône en partant de la gauche) :

Il faut ensuite cliquer sur l’utilisateur par défaut, ici fog, et entrer le nouveau de passe dans les sections New Password et New Password (confirm) et cliquer sur Update :

7 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Lorsque le mot de passe est changé, on peut créer le nouvel utilisateur. Pour cela, il faut aller dans User Management > New User et entrer le nom d’utilisateur, le mot de passe du nouvel utilisateur, le confirmer en le retapant et cliquer sur Create User.

L’option Mobile/Quick Image Access Only est faite pour limiter un utilisateur à l’interface mobile deFOG, qui ne permet aucun paramétrage du serveur. Cette case ne doit donc pas être cochée.

8 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

4.5 – Monitoring du serveur avec Webmin

Afin de faciliter les tâches d'administration du serveur et les rendre plus intuitives j'ai décidé d'installer Webmin.

Qu'est ce que Webmin ?

Webmin est un programme dédié aux systèmes d'exploitations GNU/Linux, ce programme met en place une interface d'administration accessible depuis un navigateur web en HTTPS.

Pour administrer un serveur il faut généralement éditer à la main les fichiers de configuration ou exécuter des commandes. Webmin permet de réaliser ces taches via une interface web en mettant à jour toute la configuration nécessaire.

Cette installation présente plusieurs avantages, outre le fait qu'elle permet de simplifier l'administration de la machine par une interface claire et intuitive, Webmin utilise peu de ressourceset peut s'installer et se configurer sur des machines ne possédant pas une configuration optimale de ses composants (mémoire vive, processeur, etc).

La tâche d'administration du système s'en retrouve donc simplifiée.

Cette solution permet entre autre de gérer ses comptes utilisateurs par exemple, son Apache, son DNS, son firewall ou encore administrer ses partages, etc. depuis un navigateur. Presque tous les services supportés par un serveur GNU/Linux peuvent être pilotés par Webmin. Plus besoin de manipuler soi-même les fichiers systèmes (comme le /etc/passwd, par exemple), Webmin s'en charge. L’administration du serveur peut donc être pilotée depuis n’importe où.

Dans d'autres cas Webmin peut aussi être utilisé en cluster pour gérer une ferme de serveurs depuis un seul point de contrôle.

Ce programme opère donc un réel management au sein du réseau.

9 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Nous allons à présent étudier ensemble comment installer et utiliser ce service.

La première chose à faire est d'ajouter les dépôts de Webmin, ces derniers n'étant pas présents dans les dépôts officiels de Debian, nous éditons donc le fichier /etc/apt/sources.list afin d'y ajouter les lignes suivantes :

Il faudra ensuite mettre à jour les dépôts et la liste des paquets disponibles en faisant un classique apt-get update :

Une erreur nous est normalement retourné pour nous signaler que la clé publique n'est pasdisponible, nous nous plaçons alors dans le répertoire administrateur pour y télécharger la clé d'authentification, pour cela un wget de l'adresse suivante :

http://www.webmin.com/jcameron-key.asc

10 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Ensuite, afin d'ajouter cette clé il sera utile de faire un apt-key add jcameron-key.asc pour que le dépôt soit authentifié et sécurisé, puis, lorsque le shell nous retourne « OK » nous mettons une fois de plus à jour la liste des paquets :

Nous pouvons désormais installer le programme avec la commande suivante :

L'avantage de cette installation est qu'elle permettra de garder les dépôts de Webmin à jour. A la fin de l'installation Webmin nous notifie les informations de connexion dont nousavons besoin, nous remarquons qu'il est possible de nous connecter avec le nom du PC au port 10 000 avec le mot de passe du compte administrateur de la machine :

11 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Cela fonctionne également avec l'adresse IP locale de la machine :

Une fois connecté nous arrivons sur une interface simple et épurée permettant de visualiser directement les informations relatives au système avec notamment la charge du processeur, la mémoire et l'espace disque.

Le menu latéral gauche permet d’accéder aux différentes catégories de l’administration tel que Webmin, Système, Serveurs, Autres, Réseau, Matériel, Cluster, Un-used Modules. Sous chaque catégorie, différentes sous-catégories mèneront à l’administration complète du serveur.

Nous remarquons d'ailleurs que Webmin nous notifie que certaines mises à jour de paquets sont disponibles, ce qui n'est pas possible de visualiser simplement par le biais d'une connexion SSH par exemple :

12 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Bien sûr, il est possible de conserver un accès à l’administration classique de son serveur, que ce soit en ligne de commande ou en interface, connecté en direct sur la machine, maistrès vite la facilité et de l’interface de Webmin permet un gain de temps et simplicité d'utilisation rendant plus accessible les tâches d'administration d'un serveur à un utilisateurnon familiarisé avec les systèmes GNU/Linux.

Dans cet exemple nous pouvons démontrer l'accessibilité de l'interface par la mise à jour des paquets disponibles :

Nous obtenons alors une description de chaque paquets, il est d'ailleurs possible de programmer les mises à jour quand il y en a en utilisant le champ « Scheduled checking options » en les configurant par jour etc.

Il nous suffit donc de cliquer sur « update selected packages » en selectionnant les paquetsque nous souhaitons mettre à niveau.

13 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Chaque installation se détaille alors comme si nous administrions le serveur à travers le shell Linux :

La puissance de Webmin est telle que nous pouvons administrer, éditer les fichiers et étudier l'arborescence du système dans un explorateurs de fichiers en Java, utile pour des modifications rapides et pour obtenir de informations sur la taille des répertoires par exemple.

14 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

4.5.1 – Accessibilité depuis l'extérieur

Afin d'accéder à l'interface d'administration web de Webmin il nous faudra ouvrir le port par défautdu programme, attention cependant à bien le modifier afin de ne pas rendre la tâche plus simple à un utilisateur malveillant.

Cette manipulation reste simple et vaudrait le même principe sur un routeur Cisco en faisant une redirection de port. Nous nous rendons donc dans l'interface d'administration de la Box opérateur afin d'ajouter une entrée dans la table NAT du routeur :

15 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

De cette manière il me sera possible de me connecter à l'adresse IP publique du réseau de l'entreprise pour y administrer la machine, le principe reste le même que SSH.

4.6 – Monitoring du serveur avec Monit

Parce que deux services de monitoring valent mieux qu'un je vais maintenant détailler l'installation et l'utilisation de Monit. Monit est une autre interface d'administration web permettant de sonder uniquement les services que nous souhaitons et de la façon dont nous le voulons.

Monit permet l'automatisation des tâches d'administration en cas de problème, il suffit de le lui préciser. Il enverra également des alertes par mail à l'administrateur.

Concrètement si un de nos processus plante pour une raison inconnue Monit le relancera tout seul,ou du moins essayera le nombre de fois que nous lui avons précisé, car Monit fonctionne par cycles.

Nous commençons donc par son installation sur le système avec la commande apt-get install monit

16 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Afin de lancer Monit par défaut au démarrage du serveur nous devons ensuite modifier le fichier suivant en ajoutant « yes » à la directive « START » :

Une fois que cela est fait nous allons pouvoir configurer les différents services.

Monit s'organise de cette façon :

17 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Les fichiers de configuration des services supervisés sont placés dans le répertoire conf.d, le fichier monitrc quant à lui contient la configuration du superviseur.

Voici donc le contenu du fichier de supervision monitrc que j'ai configuré et commenté :

Nous remarquons que la configuration reste simple et qu'il est possible d'envoyer des alertes par mail en configurant le serveur SMTP.

Une fois que nous avons créer ce fichier nous allons pouvoir paramétrer les services à superviser ainsi que les composants du système, nous créons donc deux fichiers :

18 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Voici le fichier dédié aux services :

La conbfiguration est très syntaxique, il faut cependant connaître le PID et le port de chaque service que nous allons sonder pour cela la commande netstat –inet -lpn nous permettra de savoir quel daemons sont en écoute et actifs sur le système :

19 / 20

Note de synthèse – deuxième année de BTS SIO Yoan FAMEL | SI

Par exemple pour Monit, son PID est le 31637 et son port le 2812. Le protocole utilisé peut également nous être utile. Il faut cependant connaître le chemin absolu des fichiers .pid

Interprétons la configuration de la sonde du service Apache :

Monit permet de grouper les services avec le nom que nous souhaitons, j'ai donc ici choisi « www », il faut ensuite indiquer à Monit l'emplacement du fichier servant à démarrer et arrêter le service pour qu'il puisse ensuite le faire en cas de problème. Ensuite nous lui indiquons que si l'écoute du serveur sur le port 80 ne fonctionne plus pendant 3 cycles de 120 secondes (soit 2 minutes comme configuré dans le fichier monitrc), alors Monit redémarrera le service.

Également, si le processeur tourne au delà de 60 % pendant 2 cycles alors il nous alertera par mail, mais si ce dernier dépasse les 90 % Apache redémarrera. Enfin, nous fermons la boucle en disant que si le redémarrage du service n'a pas fonctionné trois fois de suite alors il stoppera Apache.

20 / 20