Ci-dessous, les différences entre deux révisions de la page.
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/01 23:06] jean-yves.michaud [Configuration du serveur Web Apache] |
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 ====== | ||
- | On a mis en place un proxmox sur aloliseoff avec une ip publique | + | |
- | Sur ce proxmox on a un réseau local 192.168.0.0/ | + | |
- | Les containers sont accessibles | + | ===== Présentation ===== |
- | On obtient | + | 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' | ||
+ | |||
+ | ===== Préparation de l' | ||
+ | Alolise | ||
+ | Sur ce proxmox, on a un réseau local 192.168.0.0/ | ||
+ | |||
+ | Une configuration pare-feu sur l' | ||
^machine //n// ^ port d' | ^machine //n// ^ port d' | ||
|deb10 | 2210 | 8010 | | |deb10 | 2210 | 8010 | | ||
|deb11 | 2211 | 8011 | | |deb11 | 2211 | 8011 | | ||
+ | |deb12 | 2212 | 8012 | | ||
|deb//n// | 22//n// | 80//n// | | |deb//n// | 22//n// | 80//n// | | ||
+ | <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 | ||
- pour ipv4 des ports 22xx et 80xx et 443xx | - pour ipv4 des ports 22xx et 80xx et 443xx | ||
- éventuellement des vhosts nginx pour garder 80 et 443 | - éventuellement des vhosts nginx pour garder 80 et 443 | ||
+ | </ | ||
- | ===== se connecter ===== | + | <WRAP center round info 95%> |
+ | L' | ||
+ | </ | ||
- | ==== SSH ==== | ||
- | <WRAP center round tip 80%> | + | ===== Déroulement de l' |
+ | |||
+ | ==== Connexion au serveur via SSH ==== | ||
+ | On va utiliser le [[https:// | ||
+ | |||
+ | <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** | ||
</ | </ | ||
- | + | Modifier votre fichier de configuration de vos connexions SSH (**~/ | |
- | Modifier votre fichier de configuration de vos connexions SSH (**~/ | + | Exemple pour accéder au serveur //deb10// |
<file - ~/ | <file - ~/ | ||
host alolise_demo_nginx | host alolise_demo_nginx | ||
Ligne 34: | Ligne 50: | ||
user root | user root | ||
ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p | ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p | ||
- | host alolise_demo_deb11 | + | </ |
- | hostname 192.168.0.11 | + | |
- | user root | + | <WRAP center round info 95%> |
- | ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p | + | Pour les autres serveurs, adapter le fichier de configuration en fonction |
- | host alolise_demo_deb12 | + | < |
- | hostname 192.168.0.12 | + | host alolise_demo_nginx |
- | user root | + | hostname demo.alolise.org |
- | ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p | + | port 22 |
- | (...) | + | user demolise |
host alolise_demo_debXX | host alolise_demo_debXX | ||
hostname 192.168.0.XX | hostname 192.168.0.XX | ||
- | (...) | + | user root |
- | </file> | + | ProxyCommand ssh -qAx alolise_demo_nginx -W %h:%p |
+ | </code> | ||
+ | </ | ||
- | Ensuite il suffit d' | + | Ensuite il suffit d' |
+ | Exemple pour //deb10// toujours : | ||
< | < | ||
$ ssh-copy-id alolise_demo_nginx | $ ssh-copy-id alolise_demo_nginx | ||
Ligne 54: | Ligne 75: | ||
</ | </ | ||
- | Puis de se connecter | + | Puis de se connecter |
< | < | ||
- | $ ssh alolise_demo_deb10 | + | $ ssh alolise_demo_debXX |
Linux deb10 4.2.6-1-pve #1 SMP Wed Dec 9 10:49:55 CET 2015 x86_64 | Linux deb10 4.2.6-1-pve #1 SMP Wed Dec 9 10:49:55 CET 2015 x86_64 | ||
Ligne 66: | Ligne 87: | ||
permitted by applicable law. | permitted by applicable law. | ||
Last login: Fri Apr 1 11:52:44 2016 from 192.168.0.2 | Last login: Fri Apr 1 11:52:44 2016 from 192.168.0.2 | ||
- | root@deb10:~# | + | root@debXX:~# |
</ | </ | ||
- | ==== HTTP ==== | ||
- | === Voir les containers | + | ===== Installation Owncloud |
+ | Installer les paquets qui seront nécessaires à l' | ||
+ | < | ||
+ | # aptitude install apache2 libapache2-mod-php5 php5-mysqlnd mysql-server curl php5-gd php5-curl libapache2-mod-fcgid php-http-webdav-server | ||
+ | </ | ||
- | On se connecte à cette adresse : [[https:// | ||
- | On se connecte avec son utilisateur : deb10, deb11, etc... | + | <WRAP center round important 95%> |
- | + | Lors de l' | |
- | === Se connecter à son serveur web === | + | |
- | + | ||
- | <WRAP center round todo 80%> | + | |
- | Une fois que le serveur | + | |
</ | </ | ||
- | On se connecte à cette adresse : [[http:// | ||
- | |||
- | <WRAP center round todo 80%> | ||
- | Seulement en HTTP ! | ||
- | |||
- | Si nous avons le temps nous verrons rapidement comment activer le SSL. | ||
- | </ | ||
- | |||
- | ===== Installation Owncloud ===== | ||
- | Installer les paquets : | ||
- | < | ||
- | # aptitude install apache2 libapache2-mod-php5 php5-mysqlnd mysql-server curl php5-gd php5-curl libapache2-mod-fcgid | ||
- | </ | ||
Téléchargement de la dernière version (https:// | Téléchargement de la dernière version (https:// | ||
Ligne 114: | Ligne 119: | ||
</ | </ | ||
+ | Enfin on extrait l' | ||
+ | tar xf owncloud-9.0.0.tar.bz2 | ||
+ | | ||
+ | On a maintenant tous les fichiers propres à Owncloud extraits dans le dossier **/ | ||
==== Préparation de la base de données ==== | ==== Préparation de la base de données ==== | ||
- | On créer la base MySQL **owncloud** et on ajout un utilisateur administrateur pour cette base : | + | On créer la base MySQL **owncloud** et on ajout un utilisateur administrateur |
< | < | ||
# mysql -u root -p | # mysql -u root -p | ||
Ligne 132: | Ligne 141: | ||
mysql> FLUSH PRIVILEGES; | mysql> FLUSH PRIVILEGES; | ||
Query OK, 0 rows affected (0.00 sec) | Query OK, 0 rows affected (0.00 sec) | ||
- | |||
</ | </ | ||
+ | <WRAP center round tip 95%> | ||
+ | La première commande '' | ||
+ | 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 '';'' | ||
+ | </ | ||
- | ==== Configuration du serveur Web Apache ==== | + | <WRAP center round important 95%> |
+ | Encore une fois, attention à mettre un mot de passe suffisamment fort pour une installation " | ||
+ | </ | ||
- | < | ||
- | # cp / | ||
+ | ==== Préparation du serveur Web Apache ==== | ||
+ | === Se connecter à son serveur web === | ||
+ | On se connecte à cette adresse : [[http:// | ||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Seulement en HTTP ! | ||
+ | Si nous avons le temps nous verrons rapidement comment activer le SSL. | ||
+ | </ | ||
+ | |||
+ | ==== 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' | ||
+ | < | ||
# nano / | # nano / | ||
</ | </ | ||
<file - / | <file - / | ||
< | < | ||
- | ServerName | + | ServerName |
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
Ligne 164: | Ligne 188: | ||
</ | </ | ||
- | On contrôle et on redémarre **apache** | + | |
+ | Maintenant | ||
+ | - active la nouvelle configuration | ||
+ | - désactive la configuration par défaut | ||
+ | - contrôle la configuration générale | ||
+ | - redémarre **apache** | ||
< | < | ||
- | # apachectl -t | ||
# a2ensite owncloud | # a2ensite owncloud | ||
# a2dissite 000-default | # a2dissite 000-default | ||
+ | # apachectl -t | ||
# service apache2 restart | # service apache2 restart | ||
</ | </ | ||
- | {{ : | + | ==== Connexion au site et finalisation de l' |
+ | {{ public: | ||
+ | \\ A la fin de l' | ||
- | <WRAP center round important 95%> | ||
- | Lors de la fin de l' | ||
- | <file -:/ | ||
- | <?php | ||
- | $CONFIG = array ( | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | array ( | ||
- | 0 => ' | ||
- | 1 => ' | ||
- | ), | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ); | ||
- | </ | ||
- | </ | ||
- | ===== Tuning Apache | + | ==== Tuning Apache ==== |
- | La page de paramètres de **Ownclould** [[http://deb10.demo.alolise.org:8010/ | + | La page de paramètres de **Ownclould** [[http://debXX.demo.alolise.org/ |
- | En complément, | + | En complément, |
< | < | ||
a2enmod fcgid rewrite headers | a2enmod fcgid rewrite headers | ||
Ligne 211: | Ligne 215: | ||
</ | </ | ||
- | ===== Et pour quelques commandes de plus... | + | ===== Connexion sécurisée à l' |
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' | On peu depuis quelques mois (au 01/04/2016) utiliser une implémentation du protocole ACME (Automated Certificate Management Environment) grâce à l' | ||
- | Le projet **Let' | ||
- | Le plus simple est d' | + | <WRAP center round info 95%> |
+ | Le projet **Let' | ||
+ | </ | ||
+ | |||
+ | |||
+ | Le plus simple est d' | ||
+ | |||
+ | ==== Obtention du client ==== | ||
+ | Tout d' | ||
+ | < | ||
+ | # backports | ||
+ | deb http:// | ||
+ | </ | ||
+ | |||
+ | Puis on met à jour et on install letsencrypt et les outils pour Apache : | ||
+ | < | ||
+ | # aptitude update | ||
+ | # aptitude install --jessie-backports python-cryptography python-letsencrypt python-letsencrypt-apache | ||
+ | </ | ||
+ | |||
+ | Enfin, on lance le client (toujours | ||
+ | letsencrypt --apache | ||
+ | |||
+ | {{ public: | ||
+ | |||
+ | Suivez les différents écrans, jusqu' | ||
+ | {{ public: | ||
+ | |||
+ | On valide... et c'est terminé ! | ||
+ | {{ public: | ||
+ | |||
+ | On recharge son site préféré pour profiter de notre nouvelle connexion HTTP**S** : | ||
+ | {{ public: | ||
+ | |||
+ | === Ce qui s'est passé === | ||
+ | La commande '' | ||
+ | * Connexion à LetsEncrypt pour demander un certificat signé par l' | ||
+ | * 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 - / | ||
+ | < | ||
+ | ServerName deb10.demo.alolise.org | ||
+ | |||
+ | ServerAdmin webmaster@localhost | ||
+ | DocumentRoot / | ||
+ | |||
+ | # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, | ||
+ | # error, crit, alert, emerg. | ||
+ | LogLevel warn | ||
+ | |||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | CustomLog ${APACHE_LOG_DIR}/ | ||
+ | |||
+ | < | ||
+ | Require all granted | ||
+ | AllowOverride All | ||
+ | </ | ||
+ | |||
+ | RewriteEngine on | ||
+ | RewriteCond %{SERVER_NAME} =deb10.demo.alolise.org | ||
+ | RewriteRule ^ https:// | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Le fichier pour HTTPS **owncloud-le-ssl.conf** : | ||
+ | <file - / | ||
+ | < | ||
+ | < | ||
+ | ServerName deb10.demo.alolise.org | ||
+ | |||
+ | ServerAdmin webmaster@localhost | ||
+ | DocumentRoot / | ||
+ | |||
+ | # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, | ||
+ | # error, crit, alert, emerg. | ||
+ | LogLevel warn | ||
+ | |||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | CustomLog ${APACHE_LOG_DIR}/ | ||
+ | |||
+ | < | ||
+ | Require all granted | ||
+ | AllowOverride All | ||
+ | </ | ||
+ | |||
+ | SSLCertificateFile / | ||
+ | SSLCertificateKeyFile / | ||
+ | Include / | ||
+ | </ | ||
+ | # vim: syntax=apache ts=4 sw=4 sts=4 sr noet | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Alternatives ==== | ||
+ | <WRAP center round info 95%> | ||
+ | D' | ||
+ | </ | ||
- | Un tutoriel complet sera mis en ligne sur le [[http:// | ||
===== Liens ===== | ===== Liens ===== | ||
+ | [[http:// | ||
+ | |||
+ | |||