Compte-rendu GSB I- Configuration des différents serveurs 1. Serveur Web Tout d abord, il faut installer différents paquets : - Apache2 - PHP5 - Proftpd - Phpmyadmin Apres l'installation du service apache2 (par la commande apt-get install apache2), créer un sous-dossier nommé dst dans le répertoire www contenant les pages du site internet. Afin d'accéder directement au site web par un nom FQDN, créer un hôte virtuel en éditant le fichier nommé défault (par la commande nano /etc/apache2/sites-avaibles/default) Remarque : Pour accéder au nom FQDN sur le site, il est nécessaire de modifier le fichier host de la machine cliente, dans le répertoire C:/windows/system32 /drivers/etc en ajoutant l'adresse IP et le nom FQDN. Ce fichier nommé default se situe dans /etc/sites-available/. Il sert à indiquer la création d hôtes virtuels
Ensuite, nous devions sécuriser l accès au site web (protocole https, port 443).Pour cela, nous avons installé le module ssl (par la commande apt-get install ssl), puis créer un certificat générique dans lequel on a défini une clé RSA (= permet de crypter les clés publiques. Cryptage asymétrique) ainsi que la création d un autre certificat à partir de la clé précédemment créé. Pour cela, nous avons créé un répertoire nommé mescles dans /etc/ssl. Ensuite, nous avons généré une clé de cryptage nommé clegsb.key 1024bits (par la commande openssl genrsa out nom_clé_généré) De plus, nous créons un dossier dans /etc/ssl nommé MesCertifs à partir de la clé précédemment créer (par la commande openssl req new key../mescles/clegsb.key t GSBCertGen.csr) Nous devons ajouter les lignes d activation du ssl du chemin du certificat ainsi que de la clé RSA dans le fichier 000-default L'authentification aux pages web avec un identifiant et un mot de passe, peut se faire grâce à un fichier nommé.htaccess. Il faut créer celui-ci dans le dossier /etc/apache2/sitesavaibles/default rajouter une ligne «directory».
Remarque : Ne pas oublier de redémarrer les services après avoir modifier les fichiers de configuration (par la commande /etc/init.d/nom_service restart) Nous créons donc des utilisateurs : Pour protéger le site, il est nécessaire de créer un fichier.htaccess dans le répertoire de publication. Ce fichier ressemble au fichier ci-dessous : On ajouter un mot de passe à la connexion du site pour un utilisateur lambda (par la commande htpasswd c /etc/apache2/httputilisateurs nom_utilisateur) Il est nécessaire décommenter la ligne suivante dans le fichier /etc/apache2/mods_enables/ssl.load Sur la machine cliente, il est nécessaire de modifier un fichier de configuration afin de pouvoir accéder au site sous son nom FQDN. Ce fichier (nom du fichier hosts) se situe à l adresse suivante : Ouvrir le fichier et y ajouter l adresse IP du serveur web ainsi que son nom FQDN.
2. Serveur FTP Tout d abord, il est nécessaire de créer différents groupes d utilisateurs sur lesquels chacun auras un accès avec des droits différent sur le serveur web (pour créer un groupe, la commande est addgroup nom_groupe. Pour créer un utilisateur, la commande est useradd nom_utilisateur) Attribuer au dossier www les bons propriétaires, en indiquant le nom d utilisateur et son groupe (par la commande chown nom_utilisateur:nom_groupe -R /var/www/ ). R va permettre d appliquer les droits de propriétés aux sous dossiers. Pour l administrateur et pour le groupe nous devons leurs attribuer tous les droits sur le dossier www. (Commande chmod 750 -R /var/www/). Configurer le fichier proftpd.conf Dans le fichier proftp.conf, il faut décommenter la variable d environnement «defaultroot», lui attribuer la valeur /var/www. Cela permet, qu à chaque connexion d utilisateur quelconque, l utilisateur aura accès au dossier www. De plus il faut décommenté RequireValidShell et lui attribuer la valeur off. Cela permet que tous les utilisateurs avec un shell n aient pas accès.
3. Serveur de base de donnée Pour mettre en place le serveur SGBDR, il faut installer les modules suivants : - Php5-mysql - Mysql-server - Mysql-php5 phpmyadmin Pour se connecter sous Linux sur le serveur mysql avec l utilisateur root, la commande nécessaire est : mysql u root p. Ensuite, nous créons la base de donnée sur laquelle on importera le fichier sql dans le but de créer les tables et champs utilisé par l entreprise GSB. (La commande est la suivante : mysql -u root -p nom_base < nom_fichier.sql Nous créons la base de donnés où seront stockés les informations nécessaire au site web. (La commande est : create database nom_base). On se connecte à la base à l aide de la commande : use nom_base ; Pour afficher les tables, on utilise la commande : show tables ; Nous pouvons, à présent, grâce à la connexion root, créer des utilisateurs avec mot de passe. Pour cela, nous utilisons la commande : create user «toto»@«localhost», puis pour attribuer un mot de passe à cette utilisateur, on utilise la commande : set password «nom_utilisateur»@ «localhost» = password( mot_de_passe )
Afin d administrer ma base de donnée, je me connecte via un navigateur web à l adresse suivante : http://@ip_serveur/phpmyadmin
Test Exigences (ce qu il est possible d effectuer) E1 -- On souhaite une application en ligne accessible depuis un ordinateur E2 -- L application en ligne doit être accessible par le FQDN visite.gsb.coop E3 -- L application doit être répartie sur plusieurs serveurs. E4 -- L environnement doit être accessible aux seuls acteurs de l entreprise Mise en place d un système d authentification E5 -- Tous les échanges produits doivent être cryptés par le serveur web HTTPS Contraintes (ce qui n est pas autorisé) C1 -- Les données ne doivent pas être accessibles directement de l extérieur mais uniquement par des interrogations réalisées par le serveur web C2 -- Une authentification préalable est nécessaire pour l accès au contenu E1 Pour tester l application en ligne, j ai utilisé l adresse IP du serveur web dans le navigateur du poste client
E2 Afin que l application soit accessible via son FQDN, il est nécessaire que le poste client se situe sur le même réseau que le serveur web. Il faut également la connectivité entre le serveur web et la machine cliente. Une fois ces tests validés, nous pouvons tester le site web avec son nom FQDN E3 Mon contexte utilise deux serveurs : - Un serveur web - Un serveur SGBDR Ceux-ci doivent communiquer entre eux. Pour ce faire, nous devons effectuer des pings E4 Pour tester l authentification par utilisateur avec le «mod userdir» j ai taper : http://@ip_serveur_web/~nom_utilisateur Puisque le site est sécurité, une demande d authentification apparaît
Si l authentification n est pas bonne (c est-à-dire qu elle n existe pas dans la base de donnée ou qu il y a une erreur), nous ne pouvons pas accéder au site web. E5 Nous devons vérifier que les échanges sont bien cryptés. Pour ce faire, nous allons dans le fichier./htpasswd situé dans /etc/apache2, mes données sont cryptés