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/14 00:04] – 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 ferions tout ça alors qu'il est si facile et possible de prendre une solution hôte peu chère et complète comme Wordpress ? | Vous pourriez vous demander pourquoi nous ferions tout ça alors qu'il est si facile et possible de prendre une solution hôte peu chère et complète comme Wordpress ? | ||
- | 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 la taille de la VM. Le plus petit format fonctionne vraiment bien. Oui, il n'y a pas beaucoup de mémoire | + | Saisissez un nom de VM et choisissez la taille de la VM. Le plus petit format fonctionne vraiment bien. Oui, il n'y a pas beaucoup de mémoire, |
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 à votre 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 root 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 indique que nous voulons bash comme shell. | + | Le commutateur -m pour useradd crée un répertoire home et le -s indique que nous voulons bash comme shell. |
**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 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 | ||
Ligne 198: | Ligne 198: | ||
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, comme s'il fallait - choisissons le mot de passe 12345 (à nouveau | + | 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 nom 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 de chiffrage Enigma utilisé par les allemands | + | Si vous connaissez le système de chiffrage Enigma utilisé par les Allemands |
- | 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 avons 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 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 425: | Ligne 425: | ||
Vous devriez avoir une demande de mot de passe pour la clé privée (c'est 12345) et vous devriez ensuite être connecté à iceberg. | 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é | + | Réglage final de la sécurité |
Revenez au fichier / | Revenez au fichier / | ||
Ligne 435: | Ligne 435: | ||
• Changez LoginGraceTime de 120 à 20 (ceci autorise 20 connexions simultanées – c'est largement assez). | • Changez LoginGraceTime de 120 à 20 (ceci autorise 20 connexions simultanées – c'est largement assez). | ||
- | Sauvegardez | + | Enregistrez, |
Essayez ssh tux@104.236.124.121 | Essayez ssh tux@104.236.124.121 | ||
- | Vous devriez recevoir Permission denied (publickey) -permission refusée (clé publique). Cela signifie que l' | + | Vous devriez recevoir Permission denied (publickey) - permission refusée (clé publique). Cela signifie que l' |
Maintenant, nous sommes complètement sécurisés. | Maintenant, nous sommes complètement sécurisés. | ||
Ligne 461: | Ligne 461: | ||
En résumé : | En résumé : | ||
• root ne peut pas se connecter. | • root ne peut pas se connecter. | ||
- | • Seules | + | • seules |
- | La prochaine fois, nous sécuriserons le serveur en utilisant les règles du pare-feu (le serveur est grans ouvert, mais quand même assez sécurisé pour aujourd' | + | 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 | + | Nous installerons apache (le serveur |
Dernière note importante | Dernière note importante | ||
Ligne 473: | Ligne 473: | ||
Avec l' | Avec l' | ||
- | Si vous utilisez un autre fournisseur de Nuage, vérifiez leur documentation pour ne pas payer quand la VM n'est pas en cours d' | + | 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.1442181895.txt.gz · Dernière modification : 2015/09/14 00:04 de d52fr