lundi 7 décembre 2015

Installation d’ownCloud sous Debian

I. Présentation d’OwnCloud

OwnCloud est une application OpenSource de stockage en ligne et de gestion de fichiers, on l’apparente généralement au très connu Dropbox car ownCloud permet de stocker et de synchroniser des fichiers entre un ou plusieurs postes/serveurs et le serveur OwnCloud, remplissant ainsi le rôle de serveur de sauvegarde pour mettre en sécurité les fichiers et de serveur synchronisation. Pour mettre en place ce service vous devez disposer d’un serveur web utilisant PHP et MySQL ou SQLite. Voyons cela ensemble
Parmi les fonctionnalités, on y trouve évidemment la possibilité de partager des fichiers, mais également de lire de la musique directement en ligne grâce au lecteur intégré, un calendrier, une gestion de contacts, la visualisation et l’édition de documents en ligne, la visualisation et le classement de photos dans des galeries, etc. De plus, de nombreux plug-ins sont disponibles afin de greffer de nouvelles fonctionnalités à ownCloud. Vous trouverez plus d’information sur les nouveautés apportées par OwnCloud 8 dans notre article sur les nouveautés d’OwnCloud 8
Dans ce tutoriel, nous allons voir ensemble comment installer OwnCloud sur une machine Debian, avec Apache pour le serveur web couplé à PHP et SQLite.

II. Préparation du serveur web

Avant d’installer l’application ownCloud, le serveur web doit être préparé si vous ne l’avez pas déjà fait. Pour se faire, nous allons installer le serveur web Apache ainsi que PHP et différentes librairies dont OwnCloud a besoin, nous allons saisir les commandes suivantes :

Pour information, on installe apache2, php5 et SQLite ainsi que plusieurs modules PHP. Toutefois, pour information, MySQL s’installe automatiquement avec ownCloud lors de l’installation via apt-get.

III. Installation d’ownCloud

Maintenant, continuons avec l’installation d’ownCloud et la fin de la configuration de notre serveur Linux. Voici les commandes que vous devez saisir :
Ici, nous venons d’insérer une nouvelle ligne vers le dépôt contenant OwnCloud adans notre fichier sources.list puis nous avons mis à jour nos dépôts et installé OwnCloud. Lors de l’installation d’OwnCloud, le service de base de données MySQL s’installe également, il va alors falloir indiquer deux fois  un mot de passe pour l’utilisateur “root” de MySQL :
Note : Pour information, les paquets PHP5 permettant à PHP de communiquer avec MySQL s’installent également automatiquement lors de l’installation d’OwnCloud. Cela nous facilite donc la tâche :)
Nous allons ensuite définir le groupe “www-data” contenant l’utilisateur du même nom utilisé par Apache en tant que groupe propriétaire sur les répertoires utiles au fonctionnement d’ownCloud, nous saisirons pour cela les commandes suivantes :
Ensuite, nous allons passer à la modification des permissions sur ces mêmes répertoires, l’option “-R” permet d’avoir une récursivité, c’est-à-dire que les changements de droits vont s’appliquer à tous les sous-répertoires également :
Pour qu’OwnCloud fonctionne correctement dans Apache, il faut activer les modules rewrite et headers d’Apache. Rewrite permet la réécriture d’URL, et, headers permet de gérer les en-têtes des requêtes et réponses HTTP :
Pour des questions de sécurité, il faut empêcher l’accès au répertoire « data » d’ownCloud. Pour cela, un fichier.htaccess est déjà présent et préconfiguré dans OwnCloud. Il contient une directive permettant de refuser l’accès à tout le monde et une seconde permettant d’empêcher le listing de tout le contenu du répertoire :
Note : « data » est le répertoire des données d’ownCloud
Afin que le fichier .htaccess soit pris en compte, la directive AllowOverride de votre serveur web doit être définie sur «All » et non sur « None » sinon les fichiers .htaccess sont ignorés. Modifiez le fichier « default » situé dans «/etc/apache2/sites-enabled » afin d’obtenir ceci :
Puis, pour finir, nous pourrons redémarrer le serveur Apache :
L’accès depuis le navigateur sur les données du dossier data devrait être interdit (pour vérifier, aller surhttp://IP_du_serveur/owncloud/data, à la fin de l’installation).

IV. Finalisation de la mise en place

Pour finir, accédez à ownCloud depuis l’interface web pour finir l’installation et créer l’utilisateur « admin ». Puis, allez sur le navigateur web et saisissez l’URL « http://IP_du_serveur/owncloud », voici ce que vous pourrez voir :
installation-owncloud-debian-102
Comme vous pouvez le voir, OwnCloud nous indique que le système de base de données SQLLite sera suffisant pour les installations standards. Si vous ne pensez pas avoir besoin d’un très grand volume pour votre OwnCloud, saisissez simplement l’identifiant et le mot de passe de votre utilisateur administrateur puis cliquez sur “Terminer l’installation”.
En revanche si vous savez que votre OwnCloud sera amené à gérer une certaine charge (ce qui sera le cas si vous être dans une entreprise par exemple), cliquez sur “Stockage & base de données” pour accéder à la possibilité d’utiliser d’autres systèmes de base de données. On sélectionnera alors “MySQL/MariaDB”.
Si vous utilisez MySQL, il faudra se rendre en ligne de commande sur votre interface MySQL pour y saisir les lignes de commande qui permettront de créer une base de données et un utilisateur dédié à OwnCloud.  On crée l’utilisateur et la base de données :
Note : Pensez à remplacer “password” par un mot de passe fort.
On donne tous les droits à l’utilisateur sur la base de données :
Il faudra ensuite renseigner les champs correspondants (user, password, nom de la base de données ..) :
installation-owncloud-debian-103
N’oubliez pas de saisir les identifiants de votre administrateur principal puis cliquer sur “Terminer l’installation”.
OwnCloud est fin prêt, tout est fonctionnel. Vous pouvez vous connecter avec l’utilisateur « admin » en allant sur l’URL ” http://IP_du_serveur/owncloud” :
installation-owncloud-debian-10

Il ne reste plus qu’à vous amuser avec OwnCloud ! Pour rappel, nous avons une catégorie dédiée à OwnCloud qui vous permettra d’aller plus loin dans sa configuration : tutoriels OwnCloud

Présentation et mise en place de FreeNAS

I. Présentation

FreeNAS est une distribution Linux basée sur FreeBSD dont le but est de créer un serveur de stockage réseau NAS.
Cette distribution propose les méthodes de partage CIFS (Windows), NFS (Linux) et AFP (MAC), mais aussi et bien sûr le FTP, TFTP. Le stockage réseau avec le protocole iSCSI est lui aussi intégré.
En ce qui concerne le stockage, vous pouvez mettre en place un RAID logiciel ou un RAID matériel, l’intégralité des méthodes RAID sont supportées.
Pour la gestion des utilisateurs et des groupes, FreeNAS supporte les utilisateurs locaux mais vous pouvez aussi faire une liaison avec votre annuaire Active Directory pour utiliser les utilisateurs de celui-ci.
Système de fichiers Linux prit en compte : ZFS, UFS (utilisé par FreeBDS), ext2 et ext3
Système de fichiers Windows prit en compte : NTFS et FAT32
De nombreuses autres choses sont supportées, telles que la surveillance des disques avec S.M.A.R.T, la synchronisation de fichiers avec rsync, le chiffrement de volume, le support de VLAN, de l’agrégation de liens, le support des onduleurs UPS, etc…
Site officiel : http://www.freenas.org/

II. Installation

A. Choix du type de démarrage

Lorsque vous démarrez sur l’image ISO de Freenas vous arrivez sur ce menu. Pour une installation normale et complète, saisissez 1.

B. Lancement de l’installation

Positionnez vous sur la première entrée du menu puis appuyez sur Entrée. Cela permet soit d’installer le système FreeNAS, soit de le mettre à jour dans le cas où une version est déjà installée.

C. Choix du volume d’installation

Vous devez sélectionnez le volume sur lequel vous souhaitez installer FreeNAS. Il est à noter que le volume utilisé pour l’installation de FreeNAS ne pourra pas être utilisé pour la mise en place d’un système RAID.
Si vous souhaitez ne pas sacrifier un volume pour l’installation de FreeNAS vous pouvez l’installer sur une clé USB.

D. Confirmation de l’installation sur le volume sélectionnez

Confirmez que vous souhaitez bien installer FreeNAS sur le volume indiqué précédemment.

III. Configurez l’accès à l’interface web

Si vous n’avez pas de serveur DHCP sur votre réseau FreeNAS ne pourra pas obtenir une adresse IP automatiquement, donc il faut configurer manuellement les paramètres réseau.

A. Accès au paramètre réseau via le menu

Une fois que le serveur est redémarré, vous avez accès au menu comme sur l’image. Saisissez 1 pour accéder aux paramètres réseau.

B. Configuration de l’interface réseau

Configurez l’interface réseau en suivant l’exemple que nous avons réalisé dans l’exemple ci-dessous.

C. Redémarrage du système

Il ne vous reste plus qu’à redémarrer le système pour que la nouvelle configuration réseau soit prise en compte.

D. Accès à l’interface web

A l’aide de votre navigateur internet vous pouvez accédez à l’interface web de FreeNAS en indiquant l’adresse IP de votre serveur dans la barre d’adresse.



Créer un partage CIFS avec FreeNAS

I. Présentation

Un partage CIFS est un partage Windows, CIFS correspondant au protocole utilisé pour partager les ressources et CIFS correspond au protocole SMB.
Nous allons voir dans ce tutoriel comment créer un partage CIFS avec FreeNAS puis nous tenterons d’y accéder à partir d’un ordinateur client fonctionnant sous Windows. Le but étant de faire de notre serveur FreeNAS un serveur de partage de fichiers utilisant le protocole CIFS.
Nous ne traiterons pas la mise en place d’un serveur FreeNAS dans ce tutoriel étant donné que je l’ai déjà fait dans le tutoriel suivant : Mise en place FreeNAS. Nous allons directement attaquer la mise en place du partage CIFS.
Le groupe « informatique » contenant l’utilisateur « flo » sera propriétaire du volume et seuls les utilisateurs de ce groupe pourront donc accéder au partage CIFS. Tout d’abord, connectez-vous à l’interface web de FreeNAS.
Remarque : vous pouvez mettre l’interface en français en allant dans « Système » dans le menu supérieur puis dans l’onglet « Général ».

II. Activer le service CIFS

Nous devons démarrer le service CIFS sur le serveur FreeNAS puisque par défaut tous les services sont éteints. Dans le menu supérieur, cliquez sur « Services » puis dans les services cherchez « CIFS » et cliquez sur le bouton « OFF » pour passer à l’état « ON ».

III. Création d’un volume

Nous allons désormais créer le volume que nous souhaitons partager. Ce volume correspondra à un disque dur alloué entièrement au partage des données via le protocole CIFS.
Sur le menu latéral, cliquez sur « Storage » puis « Volumes ». Ensuite cliquez sur « View volumes » et sur l’icône «Volume Manager ». Le fait de cliquer sur « Volume Manager » va nous permettre de créer un nouveau volume.

Un formulaire apparaît… Donnez un nom à votre volume puis dans « Member disks » sélectionnez le disque dur devant former le volume.
Pour le système de fichiers, choisissez « UFS » qui est un système de fichiers Linux. Nous n’indiquerons pas de chemin personnalisé pour le volume, on utilisera le chemin par défaut. On laisse donc le champ « Path » vide et la case « Specify custom path » décochée.
Cliquez sur « Add Volume » pour lancer la création du volume.
Remarque : s’il y a des données sur le disque dur, elles seront effacées.


IV. Création du partage CIFS

Le service CIFS est actif, le volume est créé, il faut désormais créer notre partage CIFS. Pour cela, toujours dans le menu latéral, cliquez sur « Sharing » puis « Windows (CIFS) Shares » pour accéder à la section des partages CIFS.
Ensuite, cliquez sur « Add Windows (CIFS) Shares » pour ouvrir la fenêtre permettant de configurer un partage CIFS. Voici la signification des options (dans l’ordre) :

– Name : nom du partage.
– Comment : une description sur le partage.
– Path : Répertoire du partage, cliquez sur « Browse » et indiquez le chemin vers le volume créé précédemment en parcourant l’arborescene.
– Export Read Only : interdire l’accès en écriture si la case est cochée (-> lecture seule).
– Browsable to Network Clients : Si la case est cochée, cela permet aux clients Windows de pouvoir naviguer dans le partage directement avec l’exploreur (il faut donc cocher cette case).
– Inherit Owner : Si vous cochez cette case, le propriétaire des fichiers et dossiers créés sera correspondra à celui du dossier parent et non au nom de l’utilisateur qui l’a créé.
– Inherit Permissions : Si vous cochez cette case, les permissions des nouveaux fichiers et dossiers sont héritées du dossier parent.
– Export Recycle Bin : Si vous activez cette option, lorsque vous allez supprimer un fichier, il ne sera pas supprimé du volume mais il sera placé dans un répertoire qui sert de corbeille.
– Show Hidden Files : Afficher ou non les fichiers cachés.
– Allow Guest Access : Autoriser l’accès aux « invités » c’est-à-dire aux utilisateurs sans mot de passe.
– Only Allow Guest Access : Oblige la connexion en tant qu’invité. Pour activer cette option, vous devez logiquement activer la précédente.

Si vous cliquez sur « Advanced Mode » des options supplémentaires seront disponibles. Elles permettent de faire un filtrage au niveau des hôtes autorisées et des hôtes non autorisées à accéder au partage.
Note : les adresses IP ou les noms d’hôtes doivent être séparés par un espace ou une tabulation.


V. Création du groupe « informatique »

Comme je l’ai dit en début de tutoriel, le groupe « informatique » sera propriétaire du volume, nous allons donc le créer. Dans le menu latéral, cliquez sur « Compte », « Groupes » puis sur « Ajouter groupe ».
Comme « Nom de groupe » indiquez « informatique » (ou autre chose bien entendu) et cliquez sur « OK »

VI. Création de l’utilisateur « flo »

Toujours dans « Compte » mais dans « Utilisateurs » cette fois-ci, cliquez sur « Ajouter Utilisateur »
Plusieurs modifications sont à effectuer pour la création de l’utilisateur. Tout d’abord, décochez « Créer un nouveau groupe primaire pour l’utilisateur » étant donné qu’on lui met « informatique » comme groupe primaire ce n’est pas utile. Comme nom d’utilisateur, entrez le nom que vous souhaitez.
Pour le répertoire personnel, indiquez le chemin vers le partage CIFS et pour les permissions c’est à vous de voir. Toutefois, vous pouvez mettre les mêmes permissions que moi.
Remplissez les champs « Nom complet » et « Mot de passe » sinon vous ne pourrez pas créer l’utilisateur.

VII. Modifier les permissions du volume

Il faut modifier les permissions du volume pour indiquer que le groupe « informatique » est le groupe propriétaire du volume. Dans le menu latéral, allez dans « Stockage », « Volumes », cliquez sur le volume concerné puis sur «Modifier les permissions ».

Indiquez « informatique » en groupe propriétaire et modifiez les permissions à votre guise. Dans mon cas, j’autorise tout à l’utilisateur propriétaire et aux utilisateurs du groupe propriétaire et je refuse tout aux autres utilisateurs (c’est-à-dire pas d’accès du tout).
Cochez la case « Appliquer les permissions de manière récursive » pour que ces permissions s’appliquent aux sous-répertoires et aux fichiers qui seront créés dans le partage CIFS.

VIII. Redémarrer le service CIFS

Pour que les nouveaux paramètres soient prit en compte, il faut redémarrer le service. Passez le service en « OFF » puis en « ON » comme nous l’avons fait lors de la première étape.

IX. Tester l’accès au partage CIFS

Grâce à l’explorateur Windows tentez d’accéder au partage CIFS que nous venons de créer en utilisant un utilisateur du groupe « informatique ». Si vous avez bien suivit le tutoriel, l’accès devrait fonctionner.

Load-Balancing et Fail-Over Web avec Pfsense

I. Présentation

Les serveurs web se doivent aujourd’hui d’avoir une haute disponibilité et de supporter une haute charge au vue de l’importance qu’ils ont pour les entreprises. Il est souvent conseillé pour accroitre cette disponibilité de mettre en place plusieurs serveurs ayant le même rôle avec la possibilité de répartir la charge entre ceux-ci (ce que l’on appelle leLoad-Balancing) mais également de prendre toute la charge sur un serveur si l’autre vient à être indisponible (ce que l’on appelle le Fail-Over).
Dans ce tutoriel, nous allons apprendre à mettre en place du Load-Balancing et du Fail-Over entre deux serveurs web avec la plate-forme libre et open-source Pfsense.

II. Architecture globale

Nous allons donc travailler sur l’architecture suivante :

Celle-ci est plutôt basique pour un soucis de clarté du tutoriel. Il faut savoir qu’au lieu de mettre des serveurs web en place, on pourrait utiliser n’importe quel autre service. Le service web est ici pris car il correspond à la majorité des contextes de mise en place. Nous allons travailler avec une Pfsense version 2.1.
Note : Les deux serveurs web seront quant à eux des serveurs Apache 2.2 sous Linux. Nous y mettrons volontairement deux pages web différentes sur l’un et l’autre pour illustrer le fonctionnement du Load-Balancing ainsi que du Fail-Over. Nous partons du principe que le réseau au niveau IP et les serveurs web sont déjà configurés.

III. Création du Pool de load Balancing

On va commencer par créer un pool, c’est à dire un groupe, dans lequel nous mettrons ensuite nos serveurs. La gestion par pool permet de travailler avec des groupes ce qui est plus simple et plus efficace lors de configurations complexes. On se rend donc dans  “Services” puis dans “Load Balancer” :

On se retrouve ensuite face à un tableau qui est le tableau de gestion des Pools. On cliquera sur le “+” à droite de ce tableau pour en créer un nouveau :
On arrivera sur un formulaire sur lequel on pourra créer notre pool de serveur :
Dans ce nouveau formulaire nous allons remplir le premier cadre dans lequel nous saisirons le nom de notre Pool, le mode (ici Load-Balance), éventuellement une description et le port sur lequel il agira. Etant donné que nous mettons deux serveurs web derrière, on mettra 80. On saisi ensuite la valeur “Retry” qui permet d’indiquer combien de fois un serveur va être vérifié avant d’être déclaré hors service. Ici “3” signifie qu’au bout de 3 réponses de suite invalides de la part d’un serveur, celui-ci sera considéré comme hors service et s’appliquera alors le Fail-over, le seul serveur restant prendra toute la charge. En seconde partie de se formulaire nous indiquerons sur quel protocole le Pfsensedoit faire ses vérifications, attention le choix est limité  :

Puis on ajoutera les différentes IP de nos serveurs web. Ici j’en ai deux, je les saisis puis cliquer sur “Add to pool”.On cliquera ensuite sur “Save” puis sur “Apply Change” sur la page suivante. On pourra alors voir un récapitulatif de notre pool dans le tableau des Pools :
Il faut également savoir que l’on peut voir et modifier les métriques de base qui gèrent le load-balancing et le fail-over dans l’onglet “Settings” :
On voit ici donc trois métriques :
  • timeout : Permet de fixer en milliseconde le délai toléré pour la réponse à une vérification. Cela signifie qu’un service qui répond en plus de XX milliseconde sera considéré comme hors-service après un nombre défini auparavant de réponse “négative”. Par défaut ce délai est de 1000ms, soit 1 seconde.
  • interval : Permet de fixer le délai entre chaque vérification d’hôte, on indique le délai en seconde et il est par défaut de 10 secondes.
  • prefork : Permet de fixer le nombre de processus utilisé par relayd, l’agent de load balancing. Par défaut, 5 processus lui sont dédiés.

IV. Le serveur virtuel

Maintenant que notre pool est créé, nous allons faire ce que l’on appelle un serveur virtuel. C’est un serveur qui va représenter notre pool sur l’interface WAN sur lequel les requêtes web client arrivons. On va se rendre dans le tableau “Virtual Server” puis cliquer sur le “+” à droite du tableau pour arriver sur ce formulaire :
Ici nous allons indiquer le nom du serveur virtuel qui n’est qu’à titre indicatif, aucun rapport avec le nom DNS, une description puis l’adresse IP sur laquelle les requêtes clients arriveront. Ici , il s’agit de l’adresse IP WAN de mon serveur. On va ensuite lier notre pool web à ce serveur virtuel et indiquer le protocole de transport qui est ici TCP. Une fois de plus nous cliquerons sur “Submit” puis sur “Apply Change”.
Dans notre cas, les requêtes arrivent de l’extérieur, il faut donc créer une règle qui permettra aux requêtes d’arriver et d’être acceptées. Nous allons donc dans “Firewall” puis “Rules” on cliquera sur le “+” à droite du tableau pour ajouter une règle :
La seule à modifier par rapport à ce qui est donné par défaut est le port de destination que l’on doit mettre en HTTP. On s’assurera que la règle est bien en “Pass” et on pourra ajouter des conditions supplémentaires si besoin est.

V. Test du Load-Balancing et du Fail-Over

Pfsense met en place différents outils permettant de voir l’état du Pool de serveur. On peut aller dans “Status” puis dans “Load Balancer :

Ici on verra l’état des serveurs du pools ainsi que leur disponibilité actuelle et cumulée. Le pourcentage présent représente le temps global de disponibilité de chacun des serveurs par rapport au protocole de vérification indiqué.

Nous verrons plus globalement dans l’onglet “Virtual Servers” l’état actuelle du ou des serveurs virtuels :
On peut également aller “Status” puis “System Logs” et aller dans l’onglet “Load Balancer” pour voir les logs concernant le Load balancing :
Enfin pour tester notre serveur virtuel et notre load-balancing, il suffit d’aller plusieurs fois sur l’IP WAN de notre serveur Pfsense (celle configurée dans notre serveur web virtuel) et voir que l’on arrive parfois sur un serveur, parfois sur un autre. Il faut bien sûr pour cela avoir mis en place une différence sur les pages web des deux serveurs pour pouvoir s’en apercevoir, ce qui n’est pas forcément le but final.
Comme test final, on pourra tout simple arrêter un serveur ou le service monitoré par Pfsense (ici le service web) et voir que cela ne cause aucune perturbation car tout le flux va sur l’autre serveur toujours opérationnel.

VI. Aller plus loin : Fail-Over des frontaux Pfsense

Dans cette architecture, nous pouvons identifier un SPOF (Single Point of Failure), c’est à dire un point unique et donc critique qui pourrait mettre à mal nos efforts pour la haute disponibilité. Il s’agit de l’unique serveur Pfsense, en effet, celui-ci étant l’unique passage pour aller vers les serveurs web qui sont eux redondés. Pour cela, je vous invite à mettre en place une redondance Pfsense en amont de vos serveurs web, ceux-ci partageront une IP coté “WAN” et permettra la mise en place d’une redondance des serveurs web mais également des serveurs Pfsense. Je vous invite à suivre ce tutoriel pour apprendre à mettre deux serveurs Pfsense en redondance .
On pourra alors avoir quelque chose qui ressemble à ce schéma au niveau fonctionnel :

 Ici on voit bien les deux couches (Pfsense & Web) qui sont chacune redondées pour prévoir la panne d’un des éléments des deux blocs de façon simultanée.