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 14:35] – andre_domenech | 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, déployer | + | • Premièrement, déployer |
- | • 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 : | ||
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, mais, souvenez-vous que nous allons faire tourner Linux ; aussi, c'est largement suffisant pour une paire de sites. | + | 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, mais souvenez-vous que nous allons faire tourner Linux ; aussi, c'est largement suffisant pour une paire de sites. |
- | 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 |
- | 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 continuer la préparation du serveur en utilisant uniquement la ligne de commande. |
• Premièrement, | • Premièrement, | ||
• Deuxièmement, | • Deuxièmement, | ||
- | 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 | ||
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 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é privée et une clé publique. En français ordinaire, une clé privée, c'est un petit fichier. Une clé publique est un autre petit fichier. Pour accéder au système avec les clés RSA (ce que nous appellerons « l’authentification RSA »), SSH vérifiera que les deux fichiers se correspondent, | + | 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é privée et une clé publique. En français ordinaire, une clé privée, c'est un petit fichier. Une clé publique est un autre petit fichier. Pour accéder au système avec les clés RSA (ce que nous appellerons « l’authentification RSA »), SSH vérifiera que les deux fichiers se correspondent |
Laissez-moi faire un nouveau parallèle avec un billet de banque : imaginez que nous coupions aléatoirement le billet en deux. Seules ces deux parties vont ensemble. C'est pareil pour les clés RSA. | Laissez-moi faire un nouveau parallèle avec un billet de banque : imaginez que nous coupions aléatoirement le billet en deux. Seules ces deux parties vont ensemble. C'est pareil pour les clés RSA. | ||
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 d' | + | Je sais que certains d' |
- | 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 / | ||
Ligne 277: | Ligne 277: | ||
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 modernes de chiffrage sont plutôt robustes. Cependant, | + | En règle générale, les systèmes modernes de chiffrage sont plutôt robustes. Cependant, |
**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 pendant la Seconde Guerre mondiale, c' | + | Si vous connaissez le système de chiffrage Enigma utilisé par les Allemands pendant la Seconde Guerre mondiale, c' |
- | C'est pareil pour SSH : les clés privées peuvent être protégées par mot de passe (rappel : 12345 dans notre exemple), cependant, le chiffrage n'est pas aussi fort que vous pourriez le penser. Grâce à l'Open Source, quelqu' | + | C'est pareil pour SSH : les clés privées peuvent être protégées par mot de passe (rappel : 12345 dans notre exemple), cependant, le chiffrage n'est pas aussi fort que vous pourriez le penser. Grâce à l'Open Source, quelqu' |
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, la clé privée sera protégée par le mot de passe inclus dans file2.txt, et proprement | + | À partir de maintenant, la clé privée sera protégée par le mot de passe inclus dans file2.txt, et chiffré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, ou une copie sécurisée) ; cependant, pourquoi pas un simple copier/ | + | Pour pouvoir |
Faisons-le : | Faisons-le : | ||
Ligne 389: | Ligne 389: | ||
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é : nous allons maintenant interdire toutes les connexions à iceberg. | + | Réglage final de la sécurité : nous allons maintenant interdire toutes les connexions |
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 grand 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' | ||
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.1442234141.txt.gz · Dernière modification : 2015/09/14 14:35 de andre_domenech