Multisites WordPress et Drupal sur Debian

Après plusieurs heures et jours de recherche pour mettre en œuvre le multisite, je vous dévoile en guise de cadeau, les étapes pour en venir à bout. 

Sur VirtualBox configurer le réseau de votre machine en Nat puis commençons doucement et proprement par l’installation des mises à jour : 

Clone de Vm Debian 3D Wp et drupal OK [En fonction] - Oracle VM Virtua180x apt update apt tull-upgrade_  

apt update && apt full-upgrade 

Installation des services 

Afin de ne pas taper votre mot de passe toutes les cinq secondes, je vous conseille de vous connecter en root avec la commande : 

su  

Bitvise - Passage en root 

– Apache2 

On commence avec le célèbre serveur Apache2. Il faut taper la commande suivante : 

apt-get install apache2 

Installation d'Apache2 

N’oubliez pas d’appuyer sur la touche O puis entrée pour valider l’installation du paquet. 

– Installation php

# apt-get -y install php php-mysql php-curl

– Installation de MariaDB Server

# apt-get -y install mariadb-server

– Sécuriser MySql Serveur

On va sécuriser le serveur en créant un mot de passe pour l’accès administrateur, puis créer un autre utilisateur. Pour cela tapez la commande suivante :

mysql_secure_installation 

Sécurisation du serveur MySql 

Le programme vous demande le mot de passe courant à MySQL. Etant donné que c’est une installation neuve, il suffit de taper sur la touche entrée pour signifier qu’il n’y en a pas. Le système demande ensuite si vous souhaitez changer le mot de passe.

Changement du mot de passe Root sur MySql Server 

Vous devez taper sur la touche entrée et saisir un mot de passe. Faites attention à ne pas mettre n’importe quoi. C’est le mot de passe du compte administrateur, alors il doit respecter les règles de création de mot de passe complexe. 

Ensuite MySQL server demande si vous souhaitez supprimer les comptes anonymes qu’il a créé au préalable. Je vous conseille vivement de les supprimer aussi.

Suppression des comptes anonymes de MySql Server 

Pour les supprimer, vous devez taper sur la touche Y et appuyer sur entrée. Maintenant nous allons passer à un autre paramètre. Accepte-t-on ou pas que l’administrateur du serveur puisse s’y connecter à distance ? Encore une fois, je vous conseille de désactiver la fonction de connexion administrateur à distance.

Désactiver la connexion à distance par l'administrateur au serveur MySql 

Maintenant, le programme demande s’il doit supprimer la base de données de test générée par défaut.

Suppression de la base de données de Test sur MySql Server 

Après cela, MySql vous propose de recharger les privilèges sur les tables. Je vous conseille aussi de faire Yes.

Rechargement des privilèges MySql 

Maintenant configurer le réseau de votre machine accès par pont.

Tester notre installation

On a déjà fait pas mal de choses. Je vous propose de vérifier que tout est fonctionnel. Petit récap des opérations précédentes : on a installé notre serveur Apache2 puis MySql et PHP 7. On peut donc maintenant accéder à notre serveur web à partir de notre navigateur. Tapez l’IP de votre serveur dans la barre d’adresse.

Ouverture de la première page Apache2 

Si vous avez bien suivi le tutoriel, vous devez vous retrouver sur la même page que moi.

Installation de WordPress

Téléchargement de l’archive 

Avec la commande wget, nous téléchargeons la dernière version de WordPress.

# cd /tmp 

Décompression de l’archive dans « /var/www/html » 

Nous allons installer unzip pour la décompression ensuite deplacer le dossier vers html.

# apt-get install unzip (install unzip) 

# unzip latest.zip -d /var/www/html  (décompresse le dossiers précedement teléchargé) 

# cd /var/www/html (on vas dans le repertoire) 

# rm index.html (supprime le fichier index.html) 

Installation de Drupal 

Préparation de l’environnement

Pour commencer, ouvrez votre terminal. Il faut ensuite vous rendre dans le répertoire qui contiendra le site Drupal que nous allons installer. Pour cela, entrez la ligne suivante :

cd /var/www/html

Une fois dans le bon répertoire, il faut maintenant télécharger l’archive depuis le site Drupal.org. 

wget https://www.drupal.org/download-latest/tar.gz 

Le téléchargement de l’archive se lance. Une fois celui-ci terminé extrayez son contenu.

tarxvf tar.gz 

Nous allons maintenant chercher le nom du dossier pour le renommer. 

ls  

img-ls 

Le nom du dossier apparaît alors comme le montre l’image. Dans ce tutoriel, le dossier porte le nom de la version actuelle de Drupal, soit la 8.6.2. De votre côté le nom du dossier doit donc différer car la version ne sera pas la même. 

Vous pouvez le renommer comme vous le souhaitez. 

Pour l’exemple, nous le renommons par ‘site_drupal’. 

Entrez à la place de « drupal-8.6.2 » le nom de votre dossier.

mv drupal-8.6.2 site_drupal 

En faire de même pour wordpress. 

Maintenant on va entrer dans le dossier pour pouvoir y apporter des modifications.

cd site_drupal

Selon votre configuration Apache, il se peut que le propriétaire des fichiers et l’utilisateur Apache soient différents. Cette différence peut poser des problèmes de droit d’écriture dans la suite de l’installation. Pour y remédier, nous allons changer le propriétaire du répertoire pour donner ces droits à Drupal. Il existe une commande qui nous le permet, cependant elle est à manier avec précaution car elle peut avoir de graves conséquences. Cette commande va impacter le répertoire et son contenu. 

 Veillez donc à être dans le bon dossier ! 

Pour vérifier simplement où vous vous situez, utilisez cette commande : 

pwd 

img-pwd 

Si, comme dans l’image, le résultat de cette commande se finit bien par ‘…/site_drupal’ alors vous êtes dans le bon dossier. 

Si ça n’est pas le cas, entrez cette ligne de commande. 

cd /var/www/html/site_drupal 

Une fois assuré d’être au bon endroit vous pouvez entrer cette commande.

sudo chown -R www-data:www-data * 

En faire de même pour wordpress. 

Création d’une base de données pour WordPress et Drupal 

Pour ne pas être bloqué lors de l’installation de WordPress, je vous propose de créer en amont la base de données. Ainsi qu’un utilisateur qui aura les droits de lecture/écriture. Pour cela, on doit d’abord se connecter à la base de données en console. Vous devez jouer la commande suivante : 

mysql -u root -p  

Vous devez aussi taper votre mot de passe. 

Connexion MySql-MariaDb 

Une fois connecté à la base de données, tapez les commandes suivantes en changeant password par un mot de passe costaud (pour drupal, changé wordpress par drupal) :

CREATE DATABASE wordpress; 

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER 

ON wordpress.* 

TO wordpress@localhost 

IDENTIFIED BY ‘password‘; 

FLUSH PRIVILEGES;  

Celles-ci vont nous permettre de créer la base de données et de donner les droits à l’utilisateur fraîchement créé. Le résultat est le suivant : 

Création de la base de données WordPress et d'un utilisateur wordpress 

On peut maintenant sortir de la base de données. Pour cela, tapez la commande : 

Exit  

Serveur Web Multi-Site

Déclaration des sites existants

Dans Apache2, les sites disponibles (on parle de virtualhosts, ou vhost) sont déclarés à l’aide de fichier dans le répertoire : /etc/apache2/sites-available 

Partons du principe que vous souhaitez mettre en ligne 2 sites que nous nommerons site_1 et site_2 (pourquoi faire compliqué ?).

Apache vous livre lors de son installation dans ce même répertoire un fichier “000-default.confn” qui va nous servir de base pour nos 2 sites. 
On va donc en faire une copie :  

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site_1.conf 

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site_2.conf  

A présent, nous allons éditer le nouveau fichier de configuration en jouant la commande suivante :  

nano site_1.conf  

Nous allons y insérer le chemin pour accéder à notre site web. Faites bien attention à mettre le nom de site choisi précédemment.

Clone de Vm Debian 3D Wp et drupal OK [En fonction] - Oracle VM Virtua180x GNLI nano 3.2 VirtualHost s te_l.con # The ServerName direct ive sets the request scheme, hostname and port that # the server uses to ident ifu itself. This is used when treat ing # redirect ion URLs. In the context of virtual hosts, the ServerName # specif ies uhat hostname must appear in the request 's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicit lg. DocumentRoot ServerName site_l (Directory opt ions Indexes Followsgrrn-inks iVieuJs Require all granted irectorg> Directorylndex index .html index.ohp # Available loglevels: trace8, # error, crit, alert, emerg. tracel, debug, info, not ice, warn , # It is also possible to conf igure the loglevel for part icular # modules, e.g. info ssl:ujarn Error-cog « error . log CustomLog log comb ined # For most conf igurat ion files from conf-available/ , which are # enabled or disabled at a g 10bal level, it is possible to # include a line for only one part icular virtual host. For example the # following line enables the CGI conf igurat ion for this host only # after it has been global lu disabled with « a2disconf ». *Include conf-available/serve-czi-hin. cnnf Lecture de SS I ignes Aide Quitter Écrire Lire fich. Chercher Remplacer Couper C011er Just if ier Orthograp . Pos. cur. Aller lig. Annuler  » />

 

 

DocumentRoot « /var/www/html/site_1 » 

ServerName site_1 

<Directory « /var/www/html/site_1 »> 

Options Indexes FollowSymLinks MultiViews 

Require all granted

DirectoryIndex index.html index.php 

Faites de même pour site_2.conf. 

Activation/Désactivation des sites 

  Activation : 

Sudo a2ensite site_1  

 Désactivation : 

Sudo a2dissite site_2

Adaptation du fichier /etc/hosts 

Éditez votre fichier /etc/hosts et modifiez-le comme suit avec l’ip de votre machine pour qu’elle fasse le rapport entre vos vhost et le localhost. 

hosts - Bloc-notes Fichier Edition Format Affichage 127. Ø.Ø.I localhost ::1 localhost 192.168.1.48 site 1 192.168.1.48 site 2 Aide  

Relancer le serveur apache2 et tester

sudo /etc/init.d/apache2 restart 

Ouvrez votre navigateur et testez en tapant dans la barre d’adresse :  

http://site-1/

puis

http://site-2/ 

Linux

plus grands clouds de la planète, Linux a profondément marqué l’histoire de l’informatique. Ce noyau d’OS est devenu le socle de multiples systèmes d’exploitation de renom.

Linux : qu’est-ce que c’est ?

Né il y a 25 ans, Linux est un noyau de système d’exploitation (en anglais kernel) permettant de gérer l’exécution d’application que ce soit sur un terminal ou un serveur. Il se charge également de piloter l’ensemble des processus matériels associés, informatiques et réseau. Linux est disponible en open source sous licence  GNU (pour GNU GPL).

 

 

Tux, mascotte de Linux, représente l’emblème du projet open source. ©  Larry Ewing, Simon Budig, Anja Gerwinski
 

Des centaine de distributions Linux

Notamment grâce à son modèle open source (code source réutilisable), Linux a permis de donner naissance à des centaines d’OS ou distributions Linux, c’est-à-dire de systèmes d’exploitation complets basés. Ces distributions peuvent être conçues pour jouer le rôle d’OS sur un PC, un objet connecté, un serveur…

Parmi les distributions Linux les plus populaires figurent, notamment, Linux Mint, Linux Ubuntu, Red Hat, Debian, Suse Linux, ou encore Kali Linux et Arch Linux. Chacune a ses propres spécificités (voir le tableau ci-dessous).

Les distributions Linux les plus populaires
NomEditeurCommentaire
Linux DebianProjet open sourceDistribution Linux pour serveur et ordinateur. Cette distribution est notamment connue pour avoir été retenue par la ville de Munich pour équiper 14 000 ordinateurs.
Linux UbuntuCanonicalDistribution Linux pour ordinateur et serveur reposant sur la distribution Debian. Elle a aussi donné lieu à des déclinaisons pour TV (Ubuntu TV), smartphone (Ubuntu Touch), etr IoT (Snappy Ubuntu Core)
Linux MintProjet open sourceDistribution Linux pour ordinateur, basée sur Ubuntu. Linux Mint se différencie d’Ubuntu via un gestionnaire de bureau qui lui est propre (Cinnamon). 
Red Hat EnterpriseRed HatDistribution Linux pour serveur. Son éditeur Red Hat est le principal pure player des systèmes serveur open source. Il enregistre un chiffre d’affaires de 2 milliards de dollars.
Suse LinuxMicro FocusDistribution Linux qui se décline à la fois pour PC et pour serveur. Il s’agit de la plus ancienne distribution Linux commerciale encore existante. Après avoir été la propriété de Novell puis d’Attachmate, elle appartient à Micro Focus depuis 2014.
Kali LinuxProjet open sourceDistribution Linux conçue pour l’audit et le test d’intrusion. Elle repose sur Debian.
Arch LinuxProjet open sourceDistribution Linux dessinée pour les utilisateurs Linux avancés, les puristes. Se voulant très légère, elle est livrée sans outil graphique et implique donc des compétences techniques. Elle peut s’installer aussi bien sur un PC qu’un serveur. 
 

Linux : 25 ans d’histoire

 Le 25 août 1991, un étudiant finlandais de 21 ans poste ce message dans un forum : « Je réalise actuellement un système d’exploitation gratuit – c’est juste un hobby, cela n’a pas vocation à devenir aussi important et professionnel que GNU ».  Le message est signé Linus Torvalds, qui cherche des retours et des suggestions sur son projet. Il ne se doute alors pas que son nom deviendra l’un des plus connus dans l’informatique.

Une mascotte officielle :
le manchot Tux

A l’époque, il s’inspire de Minix, une version plus simple d’Unix. L’histoire raconte que Linus Torvalds voulait initialement baptiser son OS Freax, mais que celui qui a rendu le logiciel disponible via FTP l’a rangé dans un dossier appelé Linux, composé à partir de « Linus » et « UNIX ». Les semaines suivantes, Linus Torvalds supervise les rapports de bug envoyé par le communiqué, ce qu’il continue encore à faire 25 ans après…

 1992, la version 0.12 de Linux est diffusée sous la licence GNU (pour GNU GPL).

 1994, Linux 1.0.0 sort, avec 176 250 lignes de code. Cette même année, Marc Ewing crée sa propre distribution Linux, qu’il baptise Red Hat Linux. En mars 1995, Linux 1.2.0 paraît, reposant cette fois-ci sur 310 950 lignes de code.

C’est en 1996, que le concours organisé par Linus Torvalds pour trouver une mascotte à l’OS est remporté par le développeur Larry Ewing et son manchot. Tux, est né, et cet animal restera associé à Linux jusqu’à aujourd’hui. Il a été dessiné via le logiciel de traitement d’image Gimp, solution phare de Linux. Pour expliquer ce choix, Linus Torvalds prétend avoir été mordu par un manchot et avoir été séduit par ce logo plus « drôle et irrévérencieux » que les autres propositions, plus « commerciales » mais aussi plus « ennuyeuses ».

Le recours à la pile LAMP (Linux, Apache, MySQL, PHP) explose

 1999, Red Hat entre en bourse. Le mois suivant, c’est au tour de VA Linux (la société qui supporte aujourd’hui la forge de projets Open Source Sourceforge, depuis devenue Geeknet). Le système d’exploitation a déjà percé, et commence à être utilisé par de grandes entreprises. Quelques années après, IBM ou HP proposeront des serveurs et des configurations basées sur Linux.

 Années 2000, L’usage de Linux sur les serveurs web va exploser dans les années qui suivent (alors que sa part de marché pour les postes clients restera marginale). Une montée en puissance que le système d’exploitation doit en grande partie à son association avec trois autres technologies open source : le langage PHP, la base de données MySQL et le serveur Apache. C’est l’émergence de la fameuse pile LAMP (Linux, Apache, MySQL, PHP).

En août 2016, Linux motorise 36% des serveurs web dans le monde selon w3techs (contre 33% qui reposent sur Windows Server).

 

Ces chiffres sont publiés par w3techs, un spécialiste de l’analyse d’architecture web. w3techs parcourt 10 millions de sites web chaque mois. © JDN

 Linux aujourd’hui L’un des plus grands succès de Linux de ces dernières années n’est autre qu’Android. Reposant sur le système open source, l’OS mobile de Google s’est imposé sur le segment des smartphones. D’après le Gartner, sa part de marché représente 86% au deuxième trimestre 2016, contre 13% pour iOS. Entre temps, Linux aura conquis de nombreux appareils grand public : lecteurs de musique, box de fournisseur d’accès Internet, assistants personnels, GPS, téléphones… Une écrasante majorité des supercalculateurs tournent aujourd’hui aussi sous ce système. 

Linux : OS roi du cloud

Mais Linux a su également se faire un nom sur le terrain du cloud. Les infrastructures cloud de Google et d’Amazon (AWS) reposent en grande partie sur lui. L’OS est d’ailleurs aussi très présent sur le cloud de Microsoft. Selon l’éditeur de Redmond, un quart des machines virtuelles provisionnées par ses clients sur Azure tournent sur Linux.

Linux constitue également le socle d’une des dernières grandes innovations du cloud : le container Docker (qui repose sur le composant Linux Container du système open source). Ses principaux avantages ? Docker permet d’alléger le processus de virtualisation des applications et surtout de rendre portables ces dernières d’un cloud à l’autre. 

 

Sources: https://bit.ly/389N96K

VIRTUALISATION

S’il y a bien un concept dont on entend régulièrement parler c’est bien la virtualisation. Mais, derrière ce concept « vague », il y a beaucoup de différences dans les types de virtualisation. Dans cette vidéo, je démystifie le concept de la virtualisation en répondant aux questions suivantes :

  • Qu’est ce que la virtualisation ?
  • Qu’est ce qu’une VM ? De quoi est-elle composée ?
  • Qu’est ce qu’un hyperviseur et quels sont les différents types d’hyperviseur ?
  • Quels sont les concepts clés de la virtualisation ?
  • Quels sont les différents types de virtualisation ?
  • Qu’est ce qu’une virtualisation de serveur ?
  • Qu’est ce qu’une virtualisation de postes de travail ?
  • Qu’est ce que la virtualisation de session ?
  • Qu’est ce que la virtualisation d’application ?

Alors, qu’est-ce que la virtualisation ?

La virtualisation consiste à faire fonctionner sur une machine physique, plusieurs systèmes comme s’ils fonctionnent sur des machines physiques distinctes.

Un grand nombre de sysèemes sont virtualisables : Stockage (VSAN), des équipements de sécurité, serveurs, postes de travail et réseau (VLAN). Dans cette vidéo, je vais seulement traiter la virtualisation de serveur et de poste de travail.

Composants d’une VM

Une machine, comme un serveur par exemple, est décomposée en 3 couches :

  • Le hardware,
  • La couche OS
  • La couche applicative.

La virtualisation consiste à utiliser le hardware et donc les ressources de la machine pour faire tourner plusieurs systèmes comme si chacune tournent sur une machine séparée. Sur cette même machine, on aura donc plusieurs OS sur lesquelles tournent des applications qui pourraient être incompatible sur le même OS par applications.

Il s’agit là d’un exemple de virtualisation mais il en existe d’autres. Mais avant d’entrer dans le détails des types de virtualisation, on va d’abord expliquer le rôle de cette couche de virtualisation.

L’hyperviseur

Le rôle de l’hyperviseur est d’assurer  le contrôle du processeur et des ressources de la machine hôte. Il permet d’allouer alternativement à chaque VM (Virtual Machine) ce dont elle a besoin et s’assurant que ces VM n’interfèrent pas l’une avec l’autre.

L’hyperviseur crée le contexte d’exécution pour les serveur virtuels (invités) et réalise l’ordonnancement des serveurs virtuels.

Il existe 2 types d’hyperviseur :

  • Un hyperviseur de Type 1 ou « bare metal », est un logiciel qui s’exécute directement sur le hardware. Un système d’exploitation secondaire (ou OS invité) peut alors être exécuté au-dessus du hardware.
  • Un hyperviseur de Type 2 est appelé « Hosted Metal » est un logiciel qui s’exécute à l’intérieur d’un autre système d’exploitation (l’OS hôte). Un système d’exploitation invité s’exécute donc en troisième niveau au-dessus du matériel.

Différents types de virtualisation

Il existe plusieurs type de virtualisation avec des caractéristiques différentes, en fonction notamment des couches virtualisées

Niveau virtualisation OS,

Soit c’est un serveur qui est virtualisé (virtualisation de serveurs), soit c’est un poste de travail.

Chaque invité dispose de :

  • De disques indépendants (virtuels)
  • De connectivité réseau (virtuelle)
  • De son propre socle OS
  • Partage de ressources

Sur un serveur, il est possible de faire tourner plusieurs machines. Dans ce cas, plusieurs OS tournent sur le même serveur physique.

Niveau OS, 2 types de virtualisations de postes de travail possibles :

  • Le poste de travail virtuel (VDI) est hébergé dans le datacenter sur une plateforme de virtualisation d’OS et est accessible par une connexion à distance (déport d’écran). L’environnement de travail est alors directement associé au profil utilisateur. L’utilisateur a la même vue sur son environnement indépendamment du terminal utilisé.
  • Il existe aussi le streaming OS qui permet de virtualiser le poste de travail. L’utilisateur ne télécharge que le contenu et les fonctionnalités dont il a besoin sur son poste de travail.

La virtualisation de session correspond à une exécution côté serveur de l’application, accès via déport d’écran aussi.

Ensuite il y a la virtualisation sur la couche application

La virtualisation d’application peut être distingué en fonction du côté d’exécution de la virtualisation :

  • Si la virtualisation est réalisée côté serveur alors il s’agit de la virtualisation de session. L’utilisateur ouvre une session sur un serveur distant.
  • Si la virtualisation est réalisée sur le poste de travail il s’agit d’une virtualisation d’application au sein d’une bulle (isolation par bulle applicative). Ce type de virtualisation consiste à installer sur le poste de travail à distance et en streaming une application.

Sources: https://bit.ly/2LqEJOA

FRONT END / BACK END / FULL STACK : QUELLES DIFFÉRENCES?

Pour comprendre la différence entre développement Front End et Back End, imaginez que vous ouvrez un magasin de vêtements.

Vous allez avoir besoin de 2 parties dans la magasin, il y a d’abord la boutique qui est l’espace de vente où vous allez recevoir vos clients. Vous allez engager une personne qui va alors s’occuper d’agencer la boutique pour que cela reflète l’identité de votre marque mais aussi pour donner aux clients l’envie d’acheter vos produits.

A l’arrière de la boutique inaccessible au client, c’est là où vous allez ranger et gérer vos stocks de vêtements, gérer les livraison avec vos fournisseurs, etc, bref ce que le client ne verra jamais mais dont l’activité est essentiel pour faire tourner votre boutique.

Et bien disons maintenant  que le magasin c’est un site web, le développeur front end va s’occuper de tout ce que va être vu par le client et le développeur back end s’occupe de tout ce qui permet de faire tourner le site web

Le développement Front End

Le « frontend » désigne les éléments d’un site internet que vous voyez à l’écran et avec lesquels vous pouvez interagir depuis votre navigateur

Et tout ça c’est en général codé avec du HTML, CSS, JavaScript par le dev Front End. A noter que ce sont de plus en plus les webdesigners qui prennent en charge le développement front end

Il s’agit sur une page web notamment de polices, de menus déroulants, de boutons par exemple. Bref tout ce que vous voyez sur votre navigateur et avec lequel vous pouvez interagir

Mais comme On l’a vu : pour que ce front end puisse tourner il faut aussi du développement back end !

Le développement Back End

Le « backend » est l’arrière boutique d’un site web et donc invisible à l’utilisateur mais qui donne vie au site web. Et il est composé essentiellement de trois éléments :

  • Un serveur (pour l’hébergement web)
  • Une application (c’est à dire le site web) qui tourne donc sur le serveur
  • Et une base de données qui va stocker toutes les données : que ce soit celle du site web, données clients, ou produits, etc.

Et c’est codé avec des langages comme le PHP, Python SQL, Ruby et Java par le développeur Back End.

Le développement Full Stack

Enfin terminons avec Une dernière catégorie de développeurs. Ce sont des devs qui sont capables aussi bien d’intervenir sur le front end que sur le back end. On les appelle les développeurs Full Stack. Un développeur Full Stack est donc un développeur capable d’intervenir sur n’importe quelle couche technique d’une application.

Sources: https://bit.ly/33Ut4ht

DMZ

Le terme DMZ vient de l’anglais “DeMilitarized Zone” et veut dire zone démilitarisée en francais. En informatique, la DMZ est un sous-réseau isolé séparant le réseau local (le LAN donc) et un réseau considéré comme moins sécurisé, comme Internet par exemple. Et cette séparation est faite par un firewall.

La DMZ héberge justement des machines du réseau interne qui ont besoin d’être accessibles depuis l’extérieur, c’est le cas notamment lorsqu’ils fournissent un service fourni aux utilisateurs sur Internet (serveur web, un serveur de messagerie, proxy, RP, un serveur FTP public, DNS, VoIP, etc)

La DMZ joue le rôle de « zone tampon » entre le réseau à protéger et un réseau hostile. Les serveurs du LAN ne sont jamais exposés directement à Internet. Et à l’inverse, les personnes de l’extérieur n’ont jamais à accéder directement à des ressources du LAN. Tout doit d’abord transiter par la DMZ

En terme de sécurité cela veut aussi dire qu’en cas de compromission d’un des services dans la DMZ, le pirate n’aura accès qu’aux machines de la DMZ et non au réseau local.

A noter qu’il est aussi tout à fait possible de mettre en place des DMZ en interne afin de cloisonner le réseau interne selon différents niveaux de protection

En termes d’architecture, Il existe plusieurs façons de concevoir un réseau avec DMZ.

La première méthode est d’utiliser Un seul pare-feu avec trois interfaces réseau à créer. Le réseau externe est formé sur la première interface, entre le FAI et le firewall. Le réseau interne est formé à partir de la deuxième interface réseau. Et la DMZ à partir de la troisième interface. Et les différentes règles de firewall vont contrôler le trafic entre lnternet et la DMZ, et entre le LAN et la DMZ. Le principal inconvénient de cette architecture est que si cet unique firewall est compromis, cette architecture tombe.

Une architecture plus sécurisée consiste simplement à utiliser deux firewalls pour créer une DMZ. Le premier laisse passer uniquement le trafic vers la DMZ. Le second n’autorise que le trafic entre la DMZ et le réseau interne. Cette configuration est considérée comme mieux sécurisée, puisqu’un pirate devra compromettre deux machines pour accéder au LAN interne.

Sources: https://bit.ly/2sK5Z40

LE CHIFFREMENT SSL/TLS

Bonjour à tous!

Dans cette vidéo je vais vous parler de chiffrement des communication sur le web. Plus concrètement c’est lorsque vous surfez sur des sites en https. Alors oui, vous savez maintenant que le S c’est pour dire que la communication est sécurisée car chiffrée.

Et dans cette vidéo, je vous explique comment tout ça marche dans cette vidéo.

Mais voyons ce qu’est le chiffremement web avec un exemple :

  • Lorsque vous vous connectez sur le site de votre banque, la connexion se fait toujours en https pour des raisons de sécurité
  • Vous pouvez vérifier ce sera toujours le cas (ou alors changez de banque!)
  • Mais que se passerait-il si la communication se faisait en HTTP?

Eh bien c’est simple, toutes les informations échangées transiteraient en clair. Ce qui veut dire qu’une personne malveillante peut intercepter les échanges avec votre banque et donc avoir toutes les informations qui y transitent

En fait le HTTPS c’est une connexion HTTP dans un tunnel chiffré SSL/TLS. Et ce tunnel va sécuriser vos échanges car mêmce si une personne malveillante intercepte vos échanges, les informations sont chiffrées et donc incompréhensibles pour elles.

SSL veut Secure Sockets Layer. TLS veut dire Transport Layer Security. SSL et TLS sont des protocoles de sécurisation des échanges sur Internet. Aujourd’hui c’est TLS qui est utilisé, SSL étant obsolète. Mais on parle parfois de SSL/TLS pour parler juste de TLS.

Maintenant voyons ce qui se passe derrière ce chiffrement SSL/TLS.

Le chiffrement consiste à transformer vos données afin de les rendre illisible grâce un algorithme de chiffrement et une clé de chiffrement

La clé de chiffrement est utilisé par un algorithme, pour chiffrer et déchiffrer des données utiles (l’information qu’on veut faire transiter). La clé de chiffrement c’est une donnée (en gros c’est une suite de bits comme une phrase ou une série de chiffres) qu’on peut voir comme un mdp. Un algorithme de chiffrement c’est juste une méthode de chiffrement, cad une façon de rendre inintelligible vos données.

Pour pouvoir lire ces données de nouveau, il est nécessaire de connaître l’algorithme et la clé de chiffrement pour les déchiffrer

Maintenant que vous avez compris ça, passons à la notion de cryptographie symétrique :

  1. Ici Alice et Bob ont la même clé secrète.
  2. Alice veut envoyer un message à Bob. Elle veut que personne d’autre que Bob ne puisse lire ce message. Du coup, elle prend sa clé secrète et va chiffrer le message avec
  3. Elle envoie le message chiffré à Bob
  4. Lorsque Bob recoit le message d’Alice, il ne peut pas encore le comprendre à la reception. Il faut d’abord qu’il déchiffre le message avec la même clé secrète. Et c’est seulement là qu’il pourra lire le message
  5. Et si Bob veut répondre à Alice de façon sécurisé, il peut utiliser la clé secrète pour chiffrer sa réponse et ensuite l’envoyer à Alice.

Il y a donc une seule clé pour chiffrer et déchiffrer un message

Le Gros problème de la cryptographie symétrique c’est l’échange de ces clés. En effet, Le fait que les 2 personnes. doivent utiliser la même clé impose d’avoir un canal sécurisé pour l’échange de la clé parce que si quelqu’un d’autre arrive à s’emparer de la clé… il sera capable de lire le message…

Passons maintenant à la cryptographie asymétrique

Le principe du chiffrement asymétrique repose sur l’utilisation de 2 clefs :

  • on appelle une des 2 clefs la clef privée et l’autre la clef publique.
  • Quand l’utilisateur chiffre avec la première clef, il peut déchiffrer avec la deuxième clé
  • Quand l’utilisateur chiffre avec la deuxième clef, il peut déchiffrer avec la première clef.
  • Peu importe l’ordre des clés utilisés parce qu’en fait ces 2 clés ou algorithme de chiffrement sont liés mathématiquement

Reprenons avec Alice qui a maintenant une clé privée et une clé publique :

  • La clef privée n’est jamais transmise à personne (ça porte bien son nom d’ailleurs).
  • Par contre, Alice peut diffuser sa clé publique à n’importe qui,
  • Donc là Alice a envoyé sa clé publique à Bob pour que les 2 puisse communiquer

Voyons maintenant comment ça marche :

  1. Ici Bob et Alice se sont transmis leur clé publique et garde leur clé privé
  2. Bob veut envoyer un message à Alice et veut que seul Alice puisse lire le message. Il chiffre donc son message avec la clef publique d’Alice
  3. Alice déchiffre le message avec sa clef privée (il n’y a qu’elle qui possède cette clef). Alice est la seule à pouvoir déchiffrer les messages qui lui sont adressés
  4. De façon similaire, Si Alice veut répondre à Bob. Alice utilise la clef publique de Bob pour envoyer le message;
  5. Bob utilisera sa propre clef privée pour le déchiffrer le message

Ce procédé assure la confidentialité de l’échange c’est-à-dire être sûr que Alice et Bob sont les seuls à échanger.

Bob est sûr que seul Alice peut lire son message puisque Bob a utilisé la clef publique d’Alice pour chiffrer son message. Seule la clé privé d’Alice peut déchiffrer le message de bob. Bob est donc sûr que seule Alice peut lire le message et inversement pour Alice avec la clef publique de Bob

Ensuite la cryptographie asymétrique garantit aussi l’authenticité de l’expéditeur :

  • C’est-à-dire que pour Bob c’est être sur le message d’Alice vient bien Alice)
  • Eh oui parce que si Bob réussit à déchiffrer le message avec la clé publique d’Alice c’est que le message a été chiffré avec la clé privée d’Alice
  • Tous ceux qui ont la clé publique peuvent déchiffrer le message d’Alice, mais seule Alice possède sa clé privé
  • Si Bob arrive a déchiffrer le message avec la clé publique d’Alice il sait que le message est bien d’Alice

Le problème va venir de la transmission de la clé publique. Notamment si une personne malveillante, qu’on va appeler M pour la suite, se positionne entre Alice et Bob, et se fait passer pour l’un d’eux et donne sa clé publique à la place. C’est l’attaque du MITM ou de l’homme du milieu en français

Il va diffuser une clé publique à Bob en se faisant passer pour ALice. Bob croit alors que c’est la clé publique d’Alice. Alice et Bob ont tous les deux la clef publique de M, en pensant qu’ils ont celle de leur interlocuteur. M intercepte et modifie l’échange de clefs entre Alice et Bob.

Du coup, lorsque Alice veut envoyer un message à Bob, elle va l’envoyer en chiffrant avec la clé publique supposé appartenir à Bob. En fait, M va intercepter le message, il va le déchiffrer avec sa clé privé et lire le message. Ensuite pour ne pas éveiller les soupçon, il va chiffrer le message avec la clé publique de bob et envoyer le message à Bob.

Comme ça Bob déchiffre avec sa clé privé pour lire le message. M est donc capable de lire les conversations entre les 2 et de récupérer des informations importantes.

Et à l’inverse, quand bob veut échanger avec alice, il utilise la clé publique de M pour chiffrer et M fait la même chose cad qu’il intercepte le message, l’ouvre, le lit et le rechiffre avec la clé publique d’alice.

Pour éviter que probleme de MITM, il faudrait pouvoir certifier l’identité du porteur de cette clé. Et ça c’est le rôle du certificat.

Un certificat  est un fichier avec ensemble de données contenant :

  • une clef publique (au minimum)
  • des informations pouvant identifier la personne : nom, e-mail, localisation…
  • des informations liées au certificat, notamment sa date de validité
  • Et une signature électronique d’une autorité de certification

La signature électronique est la preuve le certificat a bien été vérifiée par l’autorité de certification puisque qu’il y a sa signature. Elle est la garantie de son intégrité (cad la preuve que le document n’a pas subit d’altération entre l’instant où il a été signé par son auteur et celui où il a été consulté).

A noter que la signature électronique du certificat c’est la combinaison de vos information et de votre clé publique, tout ça chiffré par la clé privé de l’autorité de certification

une Autorité de Certification est l’institution responsable d’émettre ces certificats et elle garantit que les informations contenus dans ces certificats sont correctes.

Dans notre cas, si Alice veut créer son certificat, il faut qu’elle fournisse sa clé publique et des informations sur elle à l’autorité de certification et des sous (parce que ce n’est pas gratuit), qui elle vérifie tout ça, L’autorité de certification va créer un certificat pour Alice avec la signature électronique de l’AC,

Le certificat atteste donc  que la clef publique du certificat appartient bien à la personne désignée dans le certificat.

Maintenant que vous avez toutes ces notions en tête, on peut passer à l’explication du chiffrement SSL/TLS.

Imaginons que vous voulez vous connecter à votre banque, vous allez taper l’adresse de votre banque en https sur votre navigateur :

  1. Vous allez envoyer une demande de connexion sécurisée à votre banque
  2. Votre banque va alors vous envoyer son certificat avec sa clé publique
  3. Votre navigateur vérifie la signature du certificat et sa validité. Il faut savoir que le navigateur a déjà un certain nombre de clés publique d’AC dans sa base de données
  4. Ensuite le navigateur va prendre la clé publique de l’AC qui a certifié le certificat de la banque.
  5. Il va déchiffrer la signature du certificat, s’il y arrive. Cela veut dire que le certificat est de confiance car seul l’AC possède sa clé privé
  6. Si tout est OK, le client et le serveur négocie ensemble pour se mettre d’accord sur un algorithme de chiffrement ainsi qu’une clé secrète commune qu’ils vont utiliser pour cette session d’échange, connus de 2 seulement comme dans la cryptographie symétrique
  7. C’est avec cette clé que vous allez chiffrer et déchiffrer vos échanges avec votre banque et donc communiquer de façon sécurisé.

Sources: https://bit.ly/2OSGsyb

LE DNS

Sur Internet, quand vous voulez accéder à un site web via votre navigateur, on va utiliser ce que l’on appelle un nom de domaine, par exemple cookieconnecté.fr, Wikipedia.org, Youtube.com …

Bref, c’est l’adresse du site web que vous tapez sur votre navigateur.

Dans la réalité, votre navigateur, lui il va avoir besoin de l’adresse IP du serveur sur lequel est hebergé votre site web. Par exemple 194.153.205.26

L’adresse IP est un numéro d’identification qui est attribué  à chaque appareil connecté à un réseau informatique utilisant l’Internet Protocol (d’ailleurs le IP c’est pour Internet Protocol). En gros, ca veut dire que chaque ordinateur connecté à internet possède une adresse IP.

Sauf que vous l’avez compris ce serait un peu compliqué pour nous de retenir ces adresses IP. Et c’est là qu’intervient le DNS (Domain Name System) qui va “traduire” ces noms de domaines en adresses IP. La résolution de noms de domaines, c’est la corrélation entre les adresses IP et le nom de domaine associé.

Les serveur DNS sont tout simplement des serveurs qui font la correspondance entre les adresses IP et les noms de domaine associés.

Maintenant, voyons comment tout ça marche un peu plus dans le détail. Je vais vous expliquer maintenant à la notion de Hiérarchie  DNS

Le système des noms de domaine est en fait une hiérarchie dont le sommet est appelé la racine. On représente cette dernière par un point “.” pour info ce point n’apparait pas dans les addresses de site web qu’on utilise sur Internet mais c’est bien le plus haut niveau.

Les domaines se trouvant immédiatement sous la racine sont appelés domaine de premier niveau “.fr”, .com, .org, etc (ou top domain level en français)

Dans un nom de domaine, les domaines successifs sont séparés par un point, les noms de domaines supérieurs étant à droite. Le domaine wikipedia.org. est un sous-domaine de .org. et vous l’avez compris fr.wikipedia.org est un sous domaine de fr.wikipedia.org

Il est possible d’avoir plusieurs sous-domaines ainsi qu’une délégation, c’est-à-dire une indication que les informations de ce sous-domaine sont enregistrées sur un autre serveur.

On peut voir fr.wikipedia.org comme un sous domaine hébergé sur un serveur spécifique par exemple et de.wikipedia.com sur un autre serveur spécifique

La résolution des noms de domaines est réalisée en parcourant la hiérarchie depuis le sommet et en suivant les délégations successives.

Voyons maintenant comment se passe la résolution du nom de domaine avec un navigateur

Imaginez que vous entrez fr.wikipedia.org dans votre navigateur. votre navigateur doit commencer par le résoudre en une adresse IP. tous simplement Parce qu’il faut qu’il sache à quel serveur se connecter.

Ici, on va taper fr.wikipedia.org sur notre navigateur. Il va alors s’adresser à un serveur dit “récursif”.

Pour information, les fournisseurs d’accès à Internet mettent à disposition de leurs clients ces serveurs récursifs par défaut quand il se connecte à Internet. Mais Il existe également des serveurs récursifs ouverts comme ceux de Google Public DNS ou OpenDNS ou Cloudfare

Quand un serveur DNS récursif doit trouver l’adresse IP de fr.wikipedia.org, un processus itératif commence pour consulter la hiérarchie DNS du nom de domaine :

  • Ce serveur demande aux serveurs DNS de nom racine quels serveurs peuvent lui répondre pour la partie org.
  • Le serveur va indiquer quels serveurs connaissent l’information pour la zone wikipedia.org.
  • Ensuite, ce serveur donnera à son tour l’information pour avoir l’adresse IP du serveur hébergeant fr.wikipedia.org. car il connait déjà l’adresse IP du serveur hébergeant le sous domaine fr de wikipedia.org

Et une fois que vous avez l’adresse IP de ce domaine, le navigateur y accède est affiche la page demandée.

Sources: https://bit.ly/2Lmg2mr

SERVEUR WEB

Dans cette vidéo, je vous explique le rôle d’un serveur web avec l’image du restaurant

Un client passe sa commande au serveur. Le serveur prend alors en note la commande, part en cuisine et ramène au client ce qu’il a demandé. Et bien le rôle du serveur web est exactement le même que celui du serveur au restaurant

En effet, un serveur web permet de stocker et de publier des pages web (sur internet ou intranet) et généralement écrites en HTML. Le client, un navigateur web, fait une demande de page web au serveur web qui lui envoie en réponse la page demandé

Le protocole de communication HTTP permet au serveur web de communiquer avec le client,

Le serveur web peut être logiciel ou matériel ou une combinaison des 2 :

  • Au niveau matériel, un serveur web est un ordinateur qui stocke les fichiers constituant un site web (par exemple les documents HTML, les images, les feuilles de style CSS et les fichiers JavaScript)
  • Au niveau logiciel, les composants logiciels seront différents en fonction la nature du serveur web

On parle de serveur web « statique » lorsque le serveur web envoie les fichiers hébergés « tels quels » vers le client. Le serveur web statique contient un OS (comme Windows ou Linux) et un serveur http. Le serveur HTTP est le logiciel qui prend en charge les requêtes client serveur en HTTP (Les plus connus sont Apache ou IIS.

Le serveur web dynamique inclus lui en plus de l’OS et du serveur http, une BDD comme par exemple My SQL qui va stocker toute les données de l’application et un langage de script comme le php par exemple. Son rôle est d’interpreter les demandes du client et les traduire en html. On parle donc de serveur web dynamique quand les fichiers hébergés sont mis à jour avant d’être envoyé au client via HTTP.

Sources: https://bit.ly/2Yl2lcv

DHCP

DHCP (Dynamic Host Configuration Protocol) est un protocole de communication. Les administrateurs réseau l’utilisent pour gérer et automatiser de manière centralisée la configuration réseau des appareils rattachés à un réseau IP (Internet Protocol).

Le protocole DHCP permet à des appareils nécessitant une adresse IP d’en demander une lors de leur démarrage. Cette approche évite, par exemple, l’affectation préalable et la configuration manuelle de cette adresse pour chaque appareil.

DHCP permet, en outre, lorsqu’un appareil est déplacé, de lui affecter une nouvelle adresse à chaque nouvel emplacement. En effet, sans le protocole DHCP, les administrateurs réseau doivent non seulement configurer manuellement chaque appareil en lui attribuant une adresse IP valide, mais le reconfigurer avec une nouvelle adresse IP dès qu’il change d’emplacement sur le réseau. Le protocole DHCP existe pour les deux versions du protocole IP : IPv4 et IPv6

Les appareils qui se connectent au réseau local contactent tout serveur DHCP disponible et sollicitent des informations sur la configuration du réseau. Les serveurs administrent des réserves, ou « pools », d’adresses valides, et affectent des adresses selon les besoins.

Le protocole DHCP fait appel au concept de bail. L’adresse IP qu’il accorde à un appareil sera valide pour une durée définie. La durée du bail varie selon la période pendant laquelle l’utilisateur aura besoin de la connexion Internet à un emplacement spécifique. Les appareils libèrent les adresses une fois leurs baux expirés, puis demandent un renouvellement auprès du serveur DHCP s’ils doivent rester en ligne. Le serveur DHCP peut leur affecter une nouvelle adresse au lieu de renouveler l’ancienne.

Le protocole prend également en charge les adresses statiques, notamment pour les serveurs Web qui ont besoin d’une adresse IP permanente.

Si le protocole DHCP est généralement considéré comme un protocole d’automatisation de l’adressage, les administrateurs réseau s’en servent également pour véhiculer d’autres informations de configuration réseau. Par exemple, DHCP peut envoyer l’adresse d’un serveur de nom de domaine (DNS), l’adresse d’un serveur Ntwork Time, un nom d’hôte pour l’appareil qui reçoit la configuration, un nom de domaine ou une adresse de passerelle par défaut.

DHCP est l’extension d’un protocole réseau de gestion IP plus ancien appelé BOOTP. Il est plus sophistiqué, mais ses serveurs peuvent gérer les demandes de clients BOOTP encore présents sur un segment de réseau.

DHCP n’est pas un protocole routable ; il se limite à un réseau local (LAN, Local Area Network) spécifique. Si les administrateurs réseau veulent qu’un serveur DHCP donné fournisse des adresses à plusieurs sous-réseaux, ils doivent configurer des services de relais DHCP sur les routeurs par lesquels les demandes DHCP seront amenées à transiter.

DHCP n’est pas un protocole sécurisé : il n’intègre aucun mécanisme permettant une authentification entre clients et serveurs. Ces deux parties sont ainsi vulnérables en termes d’usurpation (un ordinateur se fait passer pour un autre) et d’attaque (des clients mal intentionnés peuvent épuiser le pool d’adresses d’un serveur).

Sources: https://bit.ly/2DRQJUY

La différence entre UDP et TCP

Dans ce tutoriel , nous allons découvrir la différence entre les protocoles UDP et TCP

UDP

UDP signifie User Datagram Protocol. Ce protocole de connexion envoi des packets de données indépendants. On appelle ces packets indépendants des datagrams. Ces datagrams passent d’un ordinateur à un autre. Il n’y a pas de garantie sur la réception des données. Ce n’est pas un protocole de communication fiable.

UDP est utile lorsque l’on as pas à vérifier chaque packet. Ce protocole est beaucoup plus rapide que le protocole TCP due au fait qu’il n’y a pas de vérifications à la réception.

Le meilleur exemple du protocole UDP est l’exemple de l’horloge. Imaginez un programme qui envoi l’heure à un ordinateur lorsque celui-ci le demande. Si jamais l’ordinateur ne reçois pas le packet, ça n’as pas de sens de le renvoyer puis qu’entre temps , l’heure as changée.

TCP

TCP signifie Transmission Control Protocol. C’est probablement le protocole le plus utilisé sur internet. TCP est un protocole orienté connexion qui assure une certaine sécurité au niveau de l’échange des packets. Les informations sont testées et vérifiés. Ainsi, si un ordinateur ne reçois pas correctement un packet, ce-dernier est renvoyé.

Le protocole TCP établit une communication entre un ordinateur source et un ordinateur de destination. Les ports sont reliés via un lien jusqu’à ce que la connexion soit terminée. Contrairement à UDP, les packets ne sont pas envoyés de manière indépendante, il y a une vérification à la récéption.

Un des protocole TCP les plus connu est une conversation téléphonique. En effet, il faut bien que tout les packets soit réceptionnés. Sinon, la qualité de l’appel seras médiocre.

Schéma protocol UDP et TCP

 

Schéma protocol UDP et TCP

Les différences entre UDP et TCP

TCPUDP
1 ) Le protocole est orienté connexion1) Le protocole n’est pas orienté connexion
2) Le protocole est sécurisé2) Le protocole n’est pas sécurisé
3) Le protocole TCP crée une connexion entre une source et une
destination
3)UDP envoi des packets indépendants appelés
datagrams de la source à la destination
4) Pas de perte de packets , le protocle est stable4) Les packets peuvent se perdre
5) La sécurité et la stabilité est plus importante que la vitesse5) La vitesse est plus importante que la stabilité
6) Le header de TCP est de 20 bytes6) Le header de UDP est de 8 bytes
7) TCP effectue trois vérification de récéption7) UDP n’effectue aucune vérification
8) TCP utilise des méchanismes de détéction d’erreur, on peux donc catcher sur ces
erreurs
8) UDP n’as pas de système de vérification, on ne
peux donc pas les détecter dans le code
9 ) Exemple : un appel téléphonique9 ) Exemple : un jeux vidéo en ligne
10 ) TCP est utilisé pour les protocoles HTTP , HTTPS , FTP, SMTPUDP est utilisé pour les protocoles DNS , DHCP, SNMP , RIP , VOIP , TFTP

Sources: https://bit.ly/2DVmQ69