issue100:site_web_from_scratch
                Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| issue100:site_web_from_scratch [2015/09/13 10:03] – d52fr | issue100:site_web_from_scratch [2015/09/15 11:14] (Version actuelle) – auntiee | ||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| Titre : Site Web avec infrastructure à partir de 0 | Titre : Site Web avec infrastructure à partir de 0 | ||
| - | Le but de cette série, surtout destinée aux débutants, | + | Le but de cette série, surtout destinée aux débutants, est de vous guider pas à pas dans la construction d'un site Web, avec toute l' | 
| - | Vous pourriez vous demander pourquoi nous ferons | + | Vous pourriez vous demander pourquoi nous ferions | 
| - | Je crois fortement qu'il n'y a pas de « solution universelle » - la construction à partir de zéro remplira totalement | + | Je crois fortement qu'il n'y a pas de « solution universelle », la construction à partir de zéro répondra entièrement à vos besoins, alors que la solution toute faite ne le fera probablement pas. À l' | 
| - | Mais la raison principale d'une construction intégrale est d' | + | Mais la raison principale d'une construction intégrale est d' | 
| **Enough talking – let's start! | **Enough talking – let's start! | ||
| Ligne 37: | Ligne 37: | ||
| • Choose “Create a new droplet” (“droplet” is just a VM).** | • Choose “Create a new droplet” (“droplet” is just a VM).** | ||
| - | Assez parlé - Commençons | + | Assez parlé - commençons | 
| Voici, au niveau global, ce que nous allons réaliser : | Voici, au niveau global, ce que nous allons réaliser : | ||
| - | • Premièrement, | + | • Premièrement, | 
| - | • ensuite, nous allons sécuriser cette VM Linux, | + | • Puis, nous allons sécuriser cette VM Linux, | 
| - | • suivi de l' | + | • Ensuite, nous nous occupérons | 
| - | • enfin, je vous montrerai comment enregistrer un domaine et relier ce domaine à Apache, hébergé dans la VM Linux. | + | • Enfin, je vous montrerai comment enregistrer un domaine et relier ce domaine à Apache, hébergé dans la VM Linux. | 
| Déployer Linux dans le Nuage | Déployer Linux dans le Nuage | ||
| Ligne 49: | Ligne 49: | ||
| Il y a beaucoup de solutions disponibles pour déployer une VM dans le Nuage. Juste un exemple : Amazon Web Services (service Web d' | Il y a beaucoup de solutions disponibles pour déployer une VM dans le Nuage. Juste un exemple : Amazon Web Services (service Web d' | ||
| - | Dans mon document, je vais utiliser Digital Ocean. Je n' | + | Dans mon document, je vais utiliser Digital Ocean. Je n' | 
| Faisons tourner une nouvelle VM et nous choisirons Ubuntu 14.04 : | Faisons tourner une nouvelle VM et nous choisirons Ubuntu 14.04 : | ||
| - | • Allez sur https:// | + | • allez sur https:// | 
| • choisissez « Create a new droplet » (créer une nouvelle droplet - droplet égale VM). | • choisissez « Create a new droplet » (créer une nouvelle droplet - droplet égale VM). | ||
| Ligne 74: | Ligne 74: | ||
| As convention, all commands starting with # should run as root while all starting with $ will start as regular user.** | As convention, all commands starting with # should run as root while all starting with $ will start as regular user.** | ||
| - | Saisissez un nom de VM et choisissez | + | Saisissez un nom de VM et choisissez | 
| Ensuite, choisissez la saveur de Linux - pour nous, Ubuntu 14.04 64-bits - et, enfin, utilisez le bouton « Create Droplet » (Créer la droplet) en bas de la page. | Ensuite, choisissez la saveur de Linux - pour nous, Ubuntu 14.04 64-bits - et, enfin, utilisez le bouton « Create Droplet » (Créer la droplet) en bas de la page. | ||
| - | Quelques secondes | + | Quelques secondes | 
| IMPORTANT | IMPORTANT | ||
| - | Digital Ocean facture à l' | + | Digital Ocean facture à l' | 
| - | Si vous voulez arrêter tout coût supplémentaire, | + | Si vous voulez arrêter tout coût supplémentaire, | 
| - | Prenez note, s'il vous plaît, | + | Veuillez noter que nous allons | 
| - | • Premièrement, | + | • Premièrement, | 
| - | • deuxièmement, la ligne de commande est plus rapide. | + | • Deuxièmement, la ligne de commande est plus rapide. | 
| - | Par convention, toutes les commandes commençant par # devront être lancées | + | Par convention, toutes les commandes commençant par # devront être lancées | 
| **Basic Security | **Basic Security | ||
| Ligne 118: | Ligne 118: | ||
| Sécurité minimum | Sécurité minimum | ||
| - | Maintenant que la VM est configurée et en fonctionnement, elle est accessible depuis n' | + | Maintenant que la VM est configurée et fonctionne, elle est accessible depuis n' | 
| - | Laissez-moi faire un parallèle avec l' | + | Laissez-moi faire un parallèle avec l' | 
| Etape 0 - Créer un utilisateur | Etape 0 - Créer un utilisateur | ||
| - | La première fois que vous vous connectez à VM Linux toute neuve, créez un nouvel utilisateur nommé « tux ». Ensuite, nous attribuons le mot de passe « linux » à ce nouvel utilisateur (choisissez | + | La première fois que vous vous connectez à votre VM Linux toute neuve, créez un nouvel utilisateur nommé « tux ». Ensuite, nous attribuons le mot de passe « linux » à ce nouvel utilisateur (bien entendu, il faut choisir | 
| - | Connectez-vous à la VM - nous nous connectons comme administrateur dans un premier temps. Ouvrez un terminal : | + | Connectez-vous à la VM - nous nous connectons comme root cette première fois. Ouvrez un terminal : | 
| ssh root@104.236.124.121 | ssh root@104.236.124.121 | ||
| - | Puis ajoutez un nouvel utilisateur: | + | Puis ajoutez un nouvel utilisateur : | 
| useradd -m -s /bin/bash tux | useradd -m -s /bin/bash tux | ||
| Ligne 138: | Ligne 138: | ||
| Attendez l' | Attendez l' | ||
| - | le commutateur -m pour useradd crée un répertoire home et le -s que nous voulons bash comme shell. | + | Le commutateur -m pour useradd crée un répertoire home et le -s indique | 
| **Now we must ensure that we can log in with the new user created. Open a new terminal session and let's try it out: | **Now we must ensure that we can log in with the new user created. Open a new terminal session and let's try it out: | ||
| Ligne 170: | Ligne 170: | ||
| Level 1 of security completed!** | Level 1 of security completed!** | ||
| - | Maintenant, nous devons vérifier que nous pouvons nous connecter avec le nouvel utilisateur | + | Maintenant, nous devons vérifier que nous pouvons nous connecter avec le nouvel utilisateur. Ouvrez un nouveau terminal et essayez : | 
| ssh tux@104.236.124.121 | ssh tux@104.236.124.121 | ||
| Ligne 176: | Ligne 176: | ||
| Saisissez votre mot de passe et vous devriez être connecté. Bien vérifier que cette étape fonctionne avant de poursuivre. | Saisissez votre mot de passe et vous devriez être connecté. Bien vérifier que cette étape fonctionne avant de poursuivre. | ||
| - | 1 - « pas d' | + | 1 - « pas d' | 
| - | N' | + | N' | 
| vi / | vi / | ||
| - | Et ajouter | + | Et ajoutez | 
| AllowUsers | AllowUsers | ||
| Ligne 188: | Ligne 188: | ||
| DenyUsers | DenyUsers | ||
| - | J' | + | J' | 
| - | Pour que ça prenne effet, nous devons redémarrer | + | Pour que ça prenne effet, nous devons redémarrer | 
| service ssh restart | service ssh restart | ||
| - | Maintenant, l' | + | Maintenant, l' | 
| Essayez ssh root@104.236.124.121 ; le message d' | Essayez ssh root@104.236.124.121 ; le message d' | ||
| - | Le niveau 1 est terminé. | + | Le niveau 1 sécuritaire | 
| **2 – RSA key | **2 – RSA key | ||
| Ligne 222: | Ligne 222: | ||
| 2 - Clé RSA | 2 - Clé RSA | ||
| - | Une clé RSA est une façon bien sécurisée de se connecter à un serveur SSH. La génération de la clé RSA créera deux composantes | + | Une clé RSA est une façon bien sécurisée de se connecter à un serveur SSH. La génération de la clé RSA créera deux composantes | 
| - | Laissez-moi faire un nouveau parallèle avec un billet de banque | + | Laissez-moi faire un nouveau parallèle avec un billet de banque | 
| La clé publique est stockée dans le serveur SSH (iceberg dans notre exemple), alors que tux conservera la clé privée. Quand tux essaie de se connecter à iceberg, tux doit montrer la clé privée correspondant à la clé publique. Et la taille de la clé sera si grande que la probabilité que quelqu' | La clé publique est stockée dans le serveur SSH (iceberg dans notre exemple), alors que tux conservera la clé privée. Quand tux essaie de se connecter à iceberg, tux doit montrer la clé privée correspondant à la clé publique. Et la taille de la clé sera si grande que la probabilité que quelqu' | ||
| Ligne 230: | Ligne 230: | ||
| En résumé, sans la bonne clé privée, il n'y a pas d' | En résumé, sans la bonne clé privée, il n'y a pas d' | ||
| - | IMPORTANT - Nous allons générer des clés pour tux et pas pour root (souvenez-vous | + | IMPORTANT - Nous allons générer des clés pour tux et pas pour root (souvenez-vous | 
| - | Pour la génération de la paire de clés privée/ | + | Pour la génération de la paire de clés privée/ | 
| ssh-keygen -t rsa -b 10240 | ssh-keygen -t rsa -b 10240 | ||
| Ligne 261: | Ligne 261: | ||
| As a general rule, modern encryption systems are pretty robust. However corners are sometimes cut and the entire system will be easier to defeat.** | As a general rule, modern encryption systems are pretty robust. However corners are sometimes cut and the entire system will be easier to defeat.** | ||
| - | Un peu d' | + | Un peu d' | 
| - | Je sais que certains | + | Je sais que certains | 
| - | Mais faisons-le | + | Mais faisons-le | 
| Nous devrions avoir 2 fichiers dans le répertoire / | Nous devrions avoir 2 fichiers dans le répertoire / | ||
| - | • id_rsa_iceberg pour la clé privée | + | • id_rsa_iceberg pour la clé privée. | 
| • id_rsa_iceberg.pub pour la clé publique. | • id_rsa_iceberg.pub pour la clé publique. | ||
| - | Maintenant, faites une copie de la clé publique comme suit - le mon est important car ssh cherchera spécifiquement les clés autorisées (vous pouvez changer ce comportement par défaut en ajustant / | + | Maintenant, faites une copie de la clé publique comme suit : le nom est important car ssh cherchera spécifiquement les clés autorisées (vous pouvez changer ce comportement par défaut en ajustant / | 
| cp id_rsa_iceberg.pub authorized_keys | cp id_rsa_iceberg.pub authorized_keys | ||
| - | Sécurité spéciale du mot de passe de la clé privée | + | Sécurité spéciale du mot de passe de la clé privée. | 
| - | Maintenant, avant de poursuivre, parlons un peu de la sécurité du mot de passe de la clé privée. | + | Avant de poursuivre, parlons un peu de la sécurité du mot de passe de la clé privée. | 
| - | En règle générale, les systèmes de chiffrage | + | En règle générale, les systèmes | 
| **If you are familiar with the Enigma encryption system used by Germans during World War 2 – that was a really robust encryption system. For whatever (good?) reason, the creators decided that a character could not be encrypted as itself. Well, this feature inserted a weakness because it reduced the number of combinations the cypher could produce. It's obviously not the only reason why the code was broken – my point is that a small decision (by sloppiness or not) lowered the encryption strength of a well thought system. | **If you are familiar with the Enigma encryption system used by Germans during World War 2 – that was a really robust encryption system. For whatever (good?) reason, the creators decided that a character could not be encrypted as itself. Well, this feature inserted a weakness because it reduced the number of combinations the cypher could produce. It's obviously not the only reason why the code was broken – my point is that a small decision (by sloppiness or not) lowered the encryption strength of a well thought system. | ||
| Ligne 308: | Ligne 308: | ||
| [NOTE: the above is all one line]** | [NOTE: the above is all one line]** | ||
| - | Si vous connaissez le système | + | Si vous connaissez le système | 
| - | C'est pareil pour SSH - les clés privées peuvent être protégées par mot de passe (rappel | + | C'est pareil pour SSH : les clés privées peuvent être protégées par mot de passe (rappel | 
| En résumé : | En résumé : | ||
| • Faites une copie de votre clé privée, | • Faites une copie de votre clé privée, | ||
| - | • créez 2 fichiers - file1.txt avec le mot de passe d' | + | • créez 2 fichiers - file1.txt avec le mot de passe d' | 
| • modifiez le chiffrage. | • modifiez le chiffrage. | ||
| Ligne 333: | Ligne 333: | ||
| openssl pkcs8 -topk8 -v2 des3 -in / | openssl pkcs8 -topk8 -v2 des3 -in / | ||
| - | [NOTE : Ci-dessus, il s'agit d'une seule ligne !) | + | [NOTE : Ci-dessus, il ne s' | 
| **Now the private key will be protected with the password included in file2.txt, and properly encrypted! | **Now the private key will be protected with the password included in file2.txt, and properly encrypted! | ||
| Ligne 363: | Ligne 363: | ||
| (this is read-only and expected by ssh).** | (this is read-only and expected by ssh).** | ||
| - | À partir de maintenant, | + | À partir de maintenant, la clé privée sera protégée | 
| - | De façon à se connecter à iceberg, nous aovns besoin d'une copie de la clé privée id_rsa_iceberg sur notre ordinateur. On peut le faire de différentes façons (scp par exemple | + | Pour pouvoir | 
| Faisons-le : | Faisons-le : | ||
| Ligne 371: | Ligne 371: | ||
| cat id_rsa_iceberg | cat id_rsa_iceberg | ||
| - | • Sélectionner | + | • Sélectionnez | 
| Sur votre bureau : | Sur votre bureau : | ||
| Ligne 377: | Ligne 377: | ||
| cd | cd | ||
| - | (pour revenir à votre dossier home). | + | (pour revenir à votre dossier home) | 
| cd .ssh | cd .ssh | ||
| Ligne 385: | Ligne 385: | ||
| Là, collez, enregistrez et fermez. | Là, collez, enregistrez et fermez. | ||
| - | • Changer | + | • Changez | 
| chmod 400 id_rsa_iceberg | chmod 400 id_rsa_iceberg | ||
| - | (il est en lecture seule, sauf pour ssh). | + | (il est en lecture seule et ssh s'y attend). | 
| **We should now try to connect to iceberg using our ssh key. | **We should now try to connect to iceberg using our ssh key. | ||
| Ligne 416: | Ligne 416: | ||
| Now we are fully secure!** | Now we are fully secure!** | ||
| + | |||
| + | Nous devons maintenant essayer de nous connecter à iceberg en utilisant notre clé ssh. | ||
| + | |||
| + | Sur le bureau : | ||
| + | |||
| + | ssh -i ~/ | ||
| + | |||
| + | Vous devriez avoir une demande de mot de passe pour la clé privée (c'est 12345) et vous devriez ensuite être connecté à iceberg. | ||
| + | |||
| + | Réglage final de la sécurité : nous allons maintenant interdire toutes les connexions par mot de passe à iceberg. | ||
| + | |||
| + | Revenez au fichier / | ||
| + | |||
| + | vi / | ||
| + | |||
| + | • Changez PermitRootLogin yes en PermitRootLogin no | ||
| + | • Changez # | ||
| + | • Changez LoginGraceTime de 120 à 20 (ceci autorise 20 connexions simultanées – c'est largement assez). | ||
| + | |||
| + | Enregistrez, | ||
| + | |||
| + | Essayez ssh tux@104.236.124.121 | ||
| + | |||
| + | Vous devriez recevoir Permission denied (publickey) - permission refusée (clé publique). Cela signifie que l' | ||
| + | |||
| + | Maintenant, nous sommes complètement sécurisés. | ||
| **To summarize: | **To summarize: | ||
| Ligne 432: | Ligne 458: | ||
| If you are using any other Cloud provider, make sure to check their documentation so you do not pay while the VM is not up & running.** | If you are using any other Cloud provider, make sure to check their documentation so you do not pay while the VM is not up & running.** | ||
| + | |||
| + | En résumé : | ||
| + | • root ne peut pas se connecter. | ||
| + | • seules les clés RSA sont autorisées pour l' | ||
| + | |||
| + | La prochaine fois, nous sécuriserons le serveur en utilisant les règles du pare-feu (le serveur est grand ouvert, mais quand même assez sécurisé pour aujourd' | ||
| + | |||
| + | Nous installerons apache (le serveur Web) et nous le sécuriserons. | ||
| + | |||
| + | Dernière note importante | ||
| + | |||
| + | Si vous utilisez Digital Ocean, le simple arrêt de la VM n' | ||
| + | |||
| + | Avec l' | ||
| + | |||
| + | Si vous utilisez un autre fournisseur de Nuage, vérifiez leur documentation pour vous assurer de ne pas payer quand la VM n'est pas en cours d' | ||
issue100/site_web_from_scratch.1442131411.txt.gz · Dernière modification : 2015/09/13 10:03 de d52fr
                
                