Outils pour utilisateurs

Outils du site


public:avec_un_peu_d_huile_de_cloud

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:avec_un_peu_d_huile_de_cloud [2016/04/09 11:40]
jean-yves.michaud
public:avec_un_peu_d_huile_de_cloud [2016/05/23 12:28] (Version actuelle)
jean-yves.michaud ↷ Liens modifiés en raison d'un déplacement.
Ligne 1: Ligne 1:
 ====== Avec un peu d huile de cloud  ====== ====== Avec un peu d huile de cloud  ======
 +
 +
  
 ===== Présentation ===== ===== Présentation =====
-Dans le cadre des JDLL 2016, Alolise a encadré un atelier d'une heure consistant à installer un service Owncloud, en utilisant la dernière version stable téléchargée depuis le site officiel.+Dans le cadre des JDLL 2016, Alolise a encadré un atelier d'une heure consistant à installer un service Owncloud, en utilisant la dernière version stable téléchargée depuis le site officiel. \\ 
 +Ce wiki a servi de procédure à dérouler lors de l'atelier. Depuis il a été remanié afin de prendre en compte les remarques des participants. Nous avons également ajouté la partie sur la création d'un certificat TLS via LetsEncrypt.
  
 ===== Préparation de l'atelier ===== ===== Préparation de l'atelier =====
Ligne 15: Ligne 18:
 |deb//n// | 22//n// | 80//n// | |deb//n// | 22//n// | 80//n// |
  
-<WRAP center round todo 80%>+<WRAP center round todo 95%>
 Pour mettre ça en place dans le cluster alolise il faudrait : Pour mettre ça en place dans le cluster alolise il faudrait :
 - Mettre en place IPv6 - Mettre en place IPv6
Ligne 22: Ligne 25:
 </WRAP> </WRAP>
  
-<WRAP center round info 80%>+<WRAP center round info 95%>
 L'accès à proxmox pour voir la configuration des conteneurs de démonstration est possible en se connectant à [[https://demo.alolise.org]] avec l'utilisateur/ le nom du conteneur  : //deb10//, //deb11//, etc... L'accès à proxmox pour voir la configuration des conteneurs de démonstration est possible en se connectant à [[https://demo.alolise.org]] avec l'utilisateur/ le nom du conteneur  : //deb10//, //deb11//, etc...
 </WRAP> </WRAP>
Ligne 32: Ligne 35:
 On va utiliser le [[https://doc.ubuntu-fr.org/ssh|protocole SSH]] pour se connecter de manière sécurisée au serveur distant. On va utiliser le [[https://doc.ubuntu-fr.org/ssh|protocole SSH]] pour se connecter de manière sécurisée au serveur distant.
  
-<WRAP center round tip 80%>+<WRAP center round tip 95%>
 Le mot de passe nécessaire pour toute les connexions : **demolise** Le mot de passe nécessaire pour toute les connexions : **demolise**
 </WRAP> </WRAP>
Ligne 49: Ligne 52:
 </file> </file>
  
-<WRAP center round info 80%>+<WRAP center round info 95%>
 Pour les autres serveurs, adapter le fichier de configuration en fonction : Pour les autres serveurs, adapter le fichier de configuration en fonction :
 <code> <code>
Ligne 62: Ligne 65:
  ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p  ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p
 </code> </code>
-</WRAP+</WRAP>
  
  
Ligne 95: Ligne 98:
  
  
-<WRAP center round important 80%>+<WRAP center round important 95%>
 Lors de l'installation du paquet **mysql-server**, le mot de passe du compte administrateur de MySQL vous sera demandé. Donner un mot de passe suffisamment complexe et conservez-le, le compte **root** de MySQL permet d'accéder à toutes les bases de données du serveur. Lors de l'installation du paquet **mysql-server**, le mot de passe du compte administrateur de MySQL vous sera demandé. Donner un mot de passe suffisamment complexe et conservez-le, le compte **root** de MySQL permet d'accéder à toutes les bases de données du serveur.
 </WRAP> </WRAP>
Ligne 139: Ligne 142:
 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec)
 </code> </code>
-<WRAP center round tip 80%>+<WRAP center round tip 95%>
 La première commande ''mysql -u root -p'' est exécutée depuis le SHELL en tant que root ; le prompt est un **#** (réservé à l'utilisateur **root**) et non un **$**. \\ La première commande ''mysql -u root -p'' est exécutée depuis le SHELL en tant que root ; le prompt est un **#** (réservé à l'utilisateur **root**) et non un **$**. \\
 Le prompt **mysql> ** nous indique que l'on est bien connecté au serveur MySQL. Les commandes sont donc écrites en langage **SQL**. Attention à ne pas oublier le '';'' qui marque la fin de chaque requête SQL. Le prompt **mysql> ** nous indique que l'on est bien connecté au serveur MySQL. Les commandes sont donc écrites en langage **SQL**. Attention à ne pas oublier le '';'' qui marque la fin de chaque requête SQL.
 </WRAP> </WRAP>
  
-<WRAP center round important 80%>+<WRAP center round important 95%>
 Encore une fois, attention à mettre un mot de passe suffisamment fort pour une installation "réelle". Ici, demolise est utilisé pour simplifier le déroulement de l'atelier. Encore une fois, attention à mettre un mot de passe suffisamment fort pour une installation "réelle". Ici, demolise est utilisé pour simplifier le déroulement de l'atelier.
 </WRAP> </WRAP>
Ligne 159: Ligne 162:
  
 ==== Configuration du serveur Web Apache ==== ==== Configuration du serveur Web Apache ====
-Toujours en utilisateur **root**, on créer le fichier de configuration qui va dire à Apache vers quel dossier pointer lorsqu'il reçoit des requêtes à destination de debXX.demo.alolise.org. Le fichier contient la configuration suivante (adapter le **ServerName** en fonction de votre domaine.+Toujours en utilisateur **root**, on créer le fichier de configuration qui va dire à Apache vers quel dossier pointer lorsqu'il reçoit des requêtes à destination de debXX.demo.alolise.org. Le fichier contient la configuration suivante (adapter le **ServerName** en fonction de votre domaine).
 <code> <code>
 # nano /etc/apache2/sites-available/owncloud.conf # nano /etc/apache2/sites-available/owncloud.conf
Ligne 199: Ligne 202:
  
 ==== Connexion au site et finalisation de l'installation ==== ==== Connexion au site et finalisation de l'installation ====
-{{ :owncloud_install.png?direct&140|}}On se connecte à [[http://deb10.demo.alolise.org]], et on entre les infos demandées puis on valide.+{{ public:owncloud_install.png?direct&140|}}On se connecte à [[http://deb10.demo.alolise.org]], et on entre les infos demandées puis on valide.
 \\ A la fin de l'installation, on arrive sur l'interface utilisateur d'Owncloud (avec l'utilisateur //admin//). \\ A la fin de l'installation, on arrive sur l'interface utilisateur d'Owncloud (avec l'utilisateur //admin//).
  
Ligne 206: Ligne 209:
 La page de paramètres de **Ownclould** [[http://debXX.demo.alolise.org/index.php/settings/admin]] permet de contrôler que tout va bien. Normalement avec la configuration précédente permettant l'utilisation du **.htaccess** seuls l'HTTPS et le cache devraient être en //Warning//. La page de paramètres de **Ownclould** [[http://debXX.demo.alolise.org/index.php/settings/admin]] permet de contrôler que tout va bien. Normalement avec la configuration précédente permettant l'utilisation du **.htaccess** seuls l'HTTPS et le cache devraient être en //Warning//.
  
-En complément, on peut activer certains modules pour utiliser les paramètres définis dans le fichier ''.htaccess'' (cela ne règlera pas les //Warnings// mentionnés ci-dessus :+En complément, on peut activer certains modules pour utiliser les paramètres définis dans le fichier ''.htaccess'' (cela ne règlera pas les //Warnings// mentionnés ci-dessus:
 <code> <code>
 a2enmod fcgid rewrite headers a2enmod fcgid rewrite headers
Ligne 212: Ligne 215:
 </code> </code>
  
-===== Et pour quelques commandes de plus... =====+===== Connexion sécurisée à l'interface Web par HTTPS =====
 Il ne reste plus qu'à mettre en place une connexion sécurisée au serveur Web, notamment afin de ne pas envoyer le mot de passe de notre utilisateur en clair sur Internet... Il ne reste plus qu'à mettre en place une connexion sécurisée au serveur Web, notamment afin de ne pas envoyer le mot de passe de notre utilisateur en clair sur Internet...
  
 On peu depuis quelques mois (au 01/04/2016) utiliser une implémentation du protocole ACME (Automated Certificate Management Environment) grâce à l'aboutissement du projet [[https://letsencrypt.org/ |Let's Encrypt]]. \\ On peu depuis quelques mois (au 01/04/2016) utiliser une implémentation du protocole ACME (Automated Certificate Management Environment) grâce à l'aboutissement du projet [[https://letsencrypt.org/ |Let's Encrypt]]. \\
  
 +<WRAP center round info 95%>
 Le projet **Let's Encrypt** est le chaînon manquant à une adoption massive de la version sécurisée du protocole HTTP. Nous avons maintenant la possibilité de mettre en place **simplement** et de maintenir **automatiquement** HTTPS sur l'ensemble de nos site Web, avec des certificats **reconnus pas les navigateurs**. \\ Le projet **Let's Encrypt** est le chaînon manquant à une adoption massive de la version sécurisée du protocole HTTP. Nous avons maintenant la possibilité de mettre en place **simplement** et de maintenir **automatiquement** HTTPS sur l'ensemble de nos site Web, avec des certificats **reconnus pas les navigateurs**. \\
 +</WRAP>
  
-Le plus simple est d'utiliser le [[https://github.com/letsencrypt/letsencrypt|client officiel]], mais comme toujours dans le monde du libre il existe [[https://www.metachris.com/2015/12/comparison-of-10-acme-lets-encrypt-clients/#client-lets-encrypt|plusieurs alternatives]]. Notamment [[https://github.com/diafygi/acme-tiny|acme-tiny]], qui a été testé avec succès (Client ACME léger semi-automatique, possibilité d'automatiser le renouvellement une fois le premier certificat généré). 
  
-Un tutoriel complet sera mis en ligne sur le [[http://alolise.org|site d'Alolise]] dans les semaines à venir.+Le plus simple est d'utiliser le [[https://github.com/letsencrypt/letsencrypt|client officiel]]. Nous avons suivi le [[https://letsencrypt.org/getting-started/|tutoriel du site officiel]] en remettant chaque étape ci-dessous. 
 + 
 +==== Obtention du client ==== 
 +Tout d'abord on active les dépôts **backports** de Jessie en ajoutant dans **etc/apt/sources.list** : 
 +<code> 
 +# backports 
 +deb http://ftp.debian.org/debian jessie-backports main contrib 
 +</code> 
 + 
 +Puis on met à jour et on install letsencrypt et les outils pour Apache : 
 +<code> 
 +# aptitude update 
 +# aptitude install --jessie-backports python-cryptography python-letsencrypt python-letsencrypt-apache 
 +</code> 
 + 
 +Enfin, on lance le client (toujours en **root**), qui nous détecte et met en place tout ce qu'il faut : 
 +  letsencrypt --apache 
 +   
 +{{ public:selection_052.png?direct&300 |}} 
 + 
 +Suivez les différents écrans, jusqu'à choisir entre un accès HTTP et HTTPS ou une redirection systématique vers HTTPS (recommandé) : 
 +{{ public:selection_053.png?direct&300 |}} 
 + 
 +On valide... et c'est terminé ! 
 +{{ public:selection_054.png?direct&300 |}} 
 + 
 +On recharge son site préféré pour profiter de notre nouvelle connexion HTTP**S** : 
 +{{ public:selection_055.png?direct |}} 
 + 
 +=== Ce qui s'est passé === 
 +La commande ''letsencrypt --apache'' a eu pour effet deux actions principales : 
 +  * Connexion à LetsEncrypt pour demander un certificat signé par l'autorité de certification de LetsEncrypt. Pour se faire, le programme s'enregistre automatique et demande le certificat pour le(s) domaine(s) que l'on a sélectionné en console. LetsEncrypt demande alors à notre serveur Apache de prouver qu'il est bien //détenteur du domaine// en affichant un code de confirmation lisible par LetsEncrypt. Une fois que l'on a montré patte blanche, LetsEncrypt envoi le certificat et notre client le récupère. C'est le protocole ACME. 
 +  * Modification de la configuration et redémarrage du serveur Apache. Dans notre cas on a demandé à ce que soit redirigé les requêtes HTTP vers HTTPS. On obtient au final deux fichiers pour la configuration Apache : 
 +Le fichier pour HTTP, qui intègre maintenant une redirection : 
 +<file - /etc/apache/sites-enabled/owncloud.conf> 
 +<VirtualHost *:80> 
 +        ServerName deb10.demo.alolise.org 
 + 
 +        ServerAdmin webmaster@localhost 
 +        DocumentRoot /opt/owncloud/owncloud 
 + 
 +        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
 +        # error, crit, alert, emerg. 
 +        LogLevel warn 
 + 
 +        ErrorLog ${APACHE_LOG_DIR}/error.log 
 +        CustomLog ${APACHE_LOG_DIR}/access.log combined 
 + 
 +        <Directory /opt/owncloud/owncloud> 
 +            Require all granted 
 +            AllowOverride All 
 +        </Directory> 
 + 
 +RewriteEngine on 
 +RewriteCond %{SERVER_NAME} =deb10.demo.alolise.org 
 +RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 
 +</VirtualHost> 
 +</file> 
 + 
 +Le fichier pour HTTPS **owncloud-le-ssl.conf** : 
 +<file - /etc/apache2/sites-enabled/owncloud-le-ssl.conf> 
 +<IfModule mod_ssl.c> 
 +<VirtualHost *:443> 
 +        ServerName deb10.demo.alolise.org 
 + 
 +        ServerAdmin webmaster@localhost 
 +        DocumentRoot /opt/owncloud/owncloud 
 + 
 +        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
 +        # error, crit, alert, emerg. 
 +        LogLevel warn 
 + 
 +        ErrorLog ${APACHE_LOG_DIR}/error.log 
 +        CustomLog ${APACHE_LOG_DIR}/access.log combined 
 + 
 +        <Directory /opt/owncloud/owncloud> 
 +            Require all granted 
 +            AllowOverride All 
 +        </Directory> 
 + 
 +SSLCertificateFile /etc/letsencrypt/live/deb10.demo.alolise.org/fullchain.pem 
 +SSLCertificateKeyFile /etc/letsencrypt/live/deb10.demo.alolise.org/privkey.pem 
 +Include /etc/letsencrypt/options-ssl-apache.conf 
 +</VirtualHost> 
 +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 
 +</IfModule> 
 +</file> 
 + 
 +==== Alternatives ==== 
 +<WRAP center round info 95%> 
 +D'autres [[https://www.metachris.com/2015/12/comparison-of-10-acme-lets-encrypt-clients/#client-lets-encrypt|implémentations alternatives]] exitent, notamment [[https://github.com/diafygi/acme-tiny|acme-tiny]], qui a été testé avec succès (Client ACME léger semi-automatique, possibilité d'automatiser le renouvellement une fois le premier certificat généré). 
 +</WRAP> 
  
 ===== Liens ===== ===== Liens =====
 +[[http://alolise.org|site de l'association Alolise]]
 +
 +
  
public/avec_un_peu_d_huile_de_cloud.1460194855.txt.gz · Dernière modification: 2016/04/09 11:40 de jean-yves.michaud