Systèmes

Secure-Enhan­ced linux est un module qui ren­force la sécu­ri­té de Linux. Il per­met de défi­nir des poli­tiques d’ac­cès à dif­fé­rents élé­ments du sys­tème d’ex­ploi­ta­tion tel que des pro­ces­sus ou des fichiers. Chaque pro­ces­sus est caté­go­ri­sé, et en fonc­tion de cela les fichiers sont tagués/étiquetés. Pour cela les pro­ces­sus ne pour­ront accé­der qu’aux fichiers asso­ciés. Il vient amé­lio­rer la sécu­ri­té des ser­veurs en com­plé­tant ceux exis­tant, si un pro­ces­sus vien­drait à être alté­ré, il n’au­ra tout de même accès qu’aux fichiers pour celui-ci.


Les principes

SEli­nux peut se mettre en trois modes dif­fé­rents:

  • Enfor­cing : Il est mode par défaut, les accès sont res­treints avec des règles pré-défi­ni.
  • Per­mis­sive : Ce mode est géné­ra­le­ment à consi­dé­rer comme un mode de débo­guage. En mode per­mis­sif, les règles SELi­nux seront inter­ro­gées, les erreurs d’ac­cès log­guées, mais l’ac­cès ne sera pas blo­qué. Ce mode peut être utile pour consta­ter l’en­semble des erreurs SELi­nux posées par un pro­ces­sus par­ti­cu­lier par exemple.
  • Disa­bled : SELi­nux est désac­ti­vé. Rien ne sera res­treint, rien ne sera log­gué.

Pour pou­voir déter­mi­ner le mode actuelle de SEli­nux, nous pou­vons uti­li­ser cette com­mande pour nous retour­ner l’un des trois modes cité ci-des­sus:

getenforce

Pour pou­voir chan­ger le mode actuelle, nous pou­vons uti­li­ser cette com­mande avec l’at­tri­but que vous sou­hai­tez [0/1/2]:

setenforce 0

Si un pro­blème venait à arri­ver du à une confi­gu­ra­tion par­ti­cu­lière, SEli­nux four­nit beau­coup de log:

grep sealert /var/log/messages

 

Virtual Data Opti­mi­zer est une fonc­tion­na­li­té qui per­met d’op­ti­mi­ser le sto­ckage. Elle réduit la redon­dance des don­nées avec une com­pres­sion et une dédu­pli­ca­tion ( Fac­to­rise le sto­ckage ) avant qu’elles soient sto­ckées. Red Hat affirme que les couts de sto­ckage pour les cloud peuvent être réduits de plus de 80%. L’ou­til est dis­po­nible par défaut dans les dépôts de Cen­tOS / Red­hat, mais pour Debian il vous fau­dra com­pi­ler le logi­ciel à la main.


Installation & mise en place

Ins­tal­la­tion des paquets néces­saires:

dnf update && dnf install vdo kmod-kvdo

Iden­ti­fi­ca­tion des par­ti­tions:

lsblk

Nous vou­lons opti­mi­ser l’es­pace qui sera uti­li­sé sur sdb pré­sent à la ligne 8.

On créé la par­ti­tion sous VDO:

vdo create --name=vdo1 --device=/dev/sdb --vdoLogicalSize=20G

Sur la ligne n°7 nous pou­vons voir le disque opti­mi­sé et dis­po­nible sur /dev/mapper/vdo1.

On for­mate la par­ti­tion pour pou­voir l’u­ti­li­ser.

mkfs.xfs -K /dev/mapper/vdo1

La par­ti­tion est bien for­ma­tée.

Créa­tion du dos­sier qui sera mon­té sur la par­ti­tion créée.

mkdir /vdo1

Nous allons ensuite copier le fichier four­nit dans la docu­men­ta­tion de vdo pour ajou­ter le ser­vice qui fera le mon­tage auto­ma­ti­que­ment:

cp /usr/share/doc/vdo/examples/systemd/VDO.mount.example /etc/systemd/system/vdo1.mount

On édite le fichier:

vim /etc/systemd/system/vdo1.mount

Modi­fier comme ce qui suis:

On démarre le ser­vice et on l’ac­tive au démar­rage :

systemctl enable --now vdo1.mount

On véri­fie que le ser­vice à bien mon­té notre par­ti­tion:

mount

Cette ligne à la fin doit appa­raitre.

Nous pou­vons voir les sta­tis­tiques de notre par­ti­tion:

vdostats --human-readable

Un snap­shot per­met de pré­ser­ver l’é­tat d’une machine vir­tuelle. Le snap­shot per­met de retour­ner à un état anté­rieur de la machine, et ain­si faire comme ci aucune modi­fi­ca­tion n’a été appor­té. Les snap­shots sont utiles quand l’on sou­haite faire des tests, faire des mon­tés de ver­sion, ou encore si l’on veut réa­li­sé quelque chose dont nous ne sommes pas sur de la fina­li­té.


A la créa­tion d’un snap­shot, un fichier de la même exten­sion que la VM se créer — Exemple: pour VMware, un fichier .vmdk, avec un fichier “Snap­shot”. Ain­si, la machine vir­tuelle, va écrire les don­nées qui ont chan­gées sur le nou­veau fichier, l’an­cien fichier va pas­ser en read-only, elle pour­ra lire les anciennes infor­ma­tions et écrires les nou­velles sur le nou­veau fichier. 

Kernel-based Virtual Machine est la base de la vir­tua­li­sa­tion, il est inté­gré au noyau Linux. Cela per­met d’a­voir tota­le­ment le contrôle sur notre hyper­vi­seur et de savoir exac­te­ment ce qui y ai ins­tal­lé.


Sur un ser­veur Debian, on ins­talle les paquets néces­saires:

apt install qemu-kvm libvirt0 qemu libvirt-clients libvirt-daemon-system

Sur un client Debian, on peut ins­tal­ler les paquets néces­saires pour pou­voir faci­le­ment le mana­ger:

apt install virt-manager

L’in­ter­face de connexion, res­semble à cela:

Nous pou­vons ajou­ter une connexion avec file →Ajou­ter une nou­velle connexion.
L’a­van­tage c’est que tout se passe en SSH, et nous pou­vons avoir la vu de tous nos ser­veurs, et toutes nos VMs sur une seule inter­face

tips

virt-mana­ger n’exis­tant pas sur Win­dows, il est pos­sible de se connec­ter en SSH avec le X for­wa­ding, soit avec ssh ‑X, soit avec MobaX­term qui le gère nati­ve­ment, oui lan­cer virt-mana­ger !

ESXI est un hyper­vi­seur de type 1. Il a l’a­van­tage de pos­sé­der des tech­no­lo­gies plus récentes que cer­tains hyper­vi­seur, com­pa­ré à prox­mox, il est éga­le­ment lea­der du mar­ché. Il pos­sède une bonne inter­face connue avec l’hy­per­vi­seur de type 2 VMWare Works­ta­tion qui per­met de faire des machines à dis­tance, et en local via la même inter­face. Il faut par contre pos­sé­der une licence.


Ins­tal­la­tion

ESXI charge le cd d’ins­tal­la­tion.

ESXI charge l’ins­tal­la­tion.

On appuie sur “Entrée”.

On accepte la licence en appuyant sur F11.

Il scan les disques.

On choi­sit le disque pour l’ins­tal­la­tion puis “Entrée”.

On choi­sit le cla­vier Fran­çais puis “Entrée”.

On rentre un mot de passe mini­mum de 7 carac­tères et une majus­cule, puis “Entrée”.

On écrit sur les disques, on appuie sur “F11”.

L’ins­tal­la­tion se déroule.

On nous signale d’en­le­ver le disque d’ins­tal­la­tion puis “Entrée”

ESXI est lan­cé, nous pou­vons nous connec­ter sur une inter­face web à l’a­dresse indi­qué.

Prox­mox est un hyper­vi­seur de type 1. Il pos­sède éga­le­ment l’a­van­tage d’être libre et gra­tuite. On peut éga­le­ment avoir une sup­port si l’on le sou­haite.


Installation

On choi­sit le démar­rage au GRUB ” Ins­tall Prox­mox VE”.

On accepte la licence avec ” I agree “.

Choix des disques pour l’ins­tal­la­tion.

Sélec­tion de la loca­li­sa­tion pour le temps.

Ajout du mot de passe root et d’une adresse e‑mail, vous pou­vez en mettre une fausse.

Ren­sei­gne­ment de l’in­ter­face réseau prin­ci­pale, des infor­ma­tions réseaux.

Rap­pels de toutes les infor­ma­tions concer­nant l’ins­tal­la­tion.

L’ins­tal­la­tion est ter­mi­née, redé­mar­rer et connec­tez-vous sur un navi­ga­teur à l’a­dresse indi­quée

GNS3 est un outils de vir­tua­li­sa­tion qui per­met de simu­ler des archi­tec­tures réseaux avec des rou­ters et des switchs, en y incluant vos machines vir­tuelles de dif­fé­rents hyper­vi­seur tel que vir­tual­box ou VmWare.


Ici nous ferons l’ins­tal­la­tion avec pip, ce qui per­met­tra de l’ins­tal­ler sur n’im­porte quelle dis­tri­bu­tion Linux. Depuis une Debian:

Ins­tal­la­tion les dépen­dances:

apt install python3-pip python3-setuptools python3-dev python3-psutil  python3-sip python3-pyqt5* libpcap-dev python3-pyqt5.qtsvg python3-pyqt5.qtsvg-dbg python3-pyqt5.qtwebsockets python3-pyqt5.qtwebsockets-dbg

Ins­tal­la­tion de GNS3:

pip3 install gns3-gui gns3-server

Ins­tal­la­tion de ubridge

wget https://github.com/GNS3/ubridge/archive/v0.9.16.tar.gz
tar -zxvf v0.9.16.tar.gz
cd ubridge-0.9.16/
make
sudo make install

Ini­tia­li­sa­tion libvirt0

virsh net-start default
virsh net-autostart default

Au redé­mar­rage GNS3 aura créé un rac­cour­ci

A l’ins­tal­la­tion d’Ac­tive Direc­to­ry, les éten­dues DHCP sont désac­ti­vés.


Ren­dez-vous dans “Outils d’ad­mi­nis­tra­tion” ⇒ “DHCP”

On fait un clique droit le ser­veur puis “Auto­ri­ser”.

Votre éten­due ser­veur “IPv4” pour l’é­ten­due doit main­te­nant repas­sée au vert. Sinon, clique droit puis “Acti­ver” sur “IPv4”.

Il peut être impor­tant de mettre en place une redon­dance ou encore un sys­tème fai­lo­ver du ser­veur DNS. Même si Bind sur un sys­tème Linux est très stable, on est jamais à l’a­bri.


Configuration serveur principale

On reprend la même confi­gu­ra­tion que le ser­veur confi­gu­ré pré­cé­dem­ment.

On ajoute dans nos zones ain­si que notre fichier d’op­tions, la direc­tive ” allow-trans­fer” qui auto­rise le ser­veur secon­daire à faire un trans­fert de zone pour per­mettre la répli­ca­tion

vim /etc/bind/named.conf.local

 

vim /etc/bind/named.conf.options


Configuration serveur secondaire

On édite le fichier de zone

vim /etc/bind/named.conf.local

On redé­marre le ser­vice Bind9 et on peut s’apercevoir que nos fichiers de zone sont bien appa­ru !

systemctl restart bind9

ls -l

On peut main­te­nant indi­quer à nos clients via le DHCP nos deux ser­veurs DNS, le maître en tant que pre­mier et l’es­clave en tant que secon­daire !

Sous Linux et Win­dows, il existe énor­mé­ment d’ex­ten­sions de fichier dif­fé­rents, ici une petite liste de ceux qui m’ont posés pro­blème et qui pour­rait re-sur­ve­nir


Sous Linux, les biblio­thèques dyna­miques sont prio­ri­sés

.a : Biblio­thèque sta­tique

.so ( Sha­red Object ) : Biblio­thèque dyna­mique