Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée...

17
HNT PPE5 Cahier des charges Site Web HNT et Sécurisation ARASTE, CHANE SIN GUAN, COTCHE, UMEDLAL 17/10/2016 Humanist Network souhaite faire évoluer son site Web dynamique afin de faciliter la mise à jour de certaines informations (liste des membres par exemple) et surtout sécuriser son serveur Web. Votre équipe composée de développeurs et de spécialistes réseaux devra mener à bien la mission en vous répartissant les tâches.

Transcript of Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée...

Page 1: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

HNT

PPE5 Cahier des charges Site Web HNT et

Sécurisation

ARASTE, CHANE SIN GUAN, COTCHE, UMEDLAL

17/10/2016

Humanist Network souhaite faire évoluer son site Web dynamique afin de faciliter la mise à jour de certaines informations (liste des membres par exemple) et surtout sécuriser son serveur Web. Votre équipe composée de développeurs et de spécialistes réseaux devra mener à bien la mission en vous répartissant les tâches.

Page 2: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

2

Sommaire

Partie Développement ............................................................................................................................ 3

Structuration du site : .......................................................................................................................... 3

La technologie AJAX : .......................................................................................................................... 4

Partage des tâches : ............................................................................................................................ 7

Partie Réseau ........................................................................................................................................... 7

Sécurisation du client FTPFTPS ........................................................................................................ 8

Création des comptes ftp pour chaque site. ..................................................................................... 10

Sécurisation du serveur web Apache. ............................................................................................... 11

DNS .................................................................................................................................................... 11

HTTPHTTPS et affichage du bon dossier pour chaque site ........................................................... 13

Conclusion ......................................................................................................................................... 15

Estimation du projet : .................................................................................................................... 15

Partie Juridique...................................................................................................................................... 16

1. Qualifier juridiquement les informations composant votre base de données. ............................ 16

2. Cette base de données peut-elle être protégée par le droit d'auteur ? Justifier. ........................ 16

3. Présenter brièvement les principales règles applicables au traitement de ces informations. ..... 16

Page 3: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

3

Partie Développement

La nouvelle version sera toujours hébergée sur les serveurs web de la société. La solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation vous devrez présenter à l’ingénieur le planning de réalisation avec la répartition des tâches entre vos collaborateurs. Fonctionnalités attendues Il s’agit de remplacer le maximum de champs de saisie par des listes déroulantes avec un système d’auto complétion exploitant la technologie AJAX. Modifier la structure des pages Web pour incorporer la méthode MVC dans votre projet. La maquette du formulaire devra être présentée à l’ingénieur avant de le développer.

Structuration du site :

Le site a été restructurer pour incorporer la méthode MVC dans le projet.

Celui qui a réalisé cette partie du projet est : ARASTE Grégory

Avant :

Page 4: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

4

La maquette du formulaire a été à l’ingénieur avant de le développer.(ici au

professeur principal)

Après :

La technologie AJAX :

Le fonctionnement du site est resté le même, on a ajouté des listes déroulantes

avec un système d’auto complétion exploitant la technologie AJAX :

Celui qui a réalisé cette partie du projet est : COTCHE Roshan

- La liste déroulante fonctionne comme un moteur de recherche, le nom ce

trouve dans liste puis si vous sélectionnez un membre ses informations

s'affichent en dessous. (exemple : ci-dessous)

avant la sélection du membre

Page 5: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

5

après la sélection du membre

- Pareillement, une liste déroulante fonctionnant comme un moteur de

recherche, le nom du président ou la date ce trouve dans liste puis si vous

sélectionnez un président ou une date les informations en relation avec la date

ou le président s'affichent en dessous. (exemple : ci-dessous) avant la sélection d'une date ou d'un président

Page 6: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

6

après la sélection d'une date ou d'un président

Page 7: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

7

Les changements qu'on ne voit pas directement en visitant le site, c'est à dire le

code derrière les interfaces.

Partage des tâches :

La partie du site que voit le publique (un utilisateur lambda), les vues du site celui

qui les a réalisé est ARASTE Grégory.

La partie administrative du site que voit les personnes qui ont accès grâce à leurs

identifiants qui les a réalisé est COTCHE Roshan.

Après que chacun ai terminé sa partie, il y a eu une séance où l'on a regroupé ce

qu'on a fait de son coté pour avoir une même base à chaque fois et qu'on puisse

travailler avec la dernière version du site (avoir une copie du travail de son

partenaire).

Partie Réseau

Suite au changement de la machine physique, vous devez reconstituer votre serveur web HNT. Il a été décidé d'utiliser un système d'exploitation Debian. Dans un premier temps, vous devez mettre en place tous les services utilisés pour accueillir les sites d'HNT, tels qu'Apache, MySql, Php, Ftp. Il devra ainsi être possible d'accéder aux sites via leur nom comme w ww.hnt n .fr et non pas par l'adresse IP du serveur, idem pour les sites de deux associations « clientes » , w ww.msf n .fr pour Médecins Sans Frontières et www.croix-rougen.fr. De plus, les informaticiens devront pouvoir mettre à jour chaque site hébergé à tout moment via un client ftp sécurisé par un compte webhntn par exemple pour le site d'HNT, un compte webmsfn pour le site de Médecins sans Frontières, etc. Dans un second temps, vous devrez ajouter des fonctionnalités de sécurité à votre serveur web, notamment pour le transfert de pages, mais aussi pour l'hébergement lui-même pour que les développeurs puissent par la suite proposer des pages nécessitant une authentification. Dans un dernier temps, pour les équipes les plus expérimentées, vous devrez prévoir une solution de répartition de charges avec un second serveur web identique notamment. Fonctionnalités attendues

Page 8: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

8

Vous devez donc mettre en place une totale solution d'hébergement sécurisée avec une gestion des domaines des différents sites hébergés et éventuellement la répartition de charges.

Nous avons tout d’abord configuré l’hostname de notre machine par deb6 et

l’adresse IP 172.18.158.135 qui nous a été donné.

Pour accueillir les sites d’HNT nous avons mis en place plusieurs services tels

qu’Apache, MySql, Php et Proftpd.

Pour le serveur Web nous avons choisi Apache car c’est l’un des serveurs web les

plus utilisés et donc sur. La ligne de commande pour l’installer est : apt-get

install apache2.

Pour le serveur FTP nous avons choisi ProftpD puisqu’il utilise pratiquement la

même syntaxe qu’Apache et donc cela facilite sa configuration, de plus c’est un

serveur FTP libre. La ligne de commande pour l’installer est : apt-get install

proftpd.

Pour le SGBDR nous avons choisi MySql car il est facile à utiliser, de plus il

possède une interface graphique ce qui va rendre plus facile l’accès aux clients à

ses base de données. La ligne de commande est la suivante apt-get install mysql-

server, phpmyadmin.

Sécurisation du client FTPFTPS

Page 9: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

9

Après avoir installé le client ProftpD, il faut lancer la génération de la clé et du

certificat. Pour cela nous avons créé un dossier SSL dans /etc/proftpd/.

Une fois ce dossier crée on tape la ligne de commande suivante « opensslreq -

x509 -nodes -newkey rsa:1024 -keyoutproftpd.pem -out proftpd.pem -days

365 » qui va permettre de générer les clés.

Plusieurs questions vont alors apparaître, nous avons répondu de manière assez

précise puis, on obtient le certificat et la clé dans le dossier SSL.

Ensuite on a modifié quelques lignes dans le fichier /etc/proftpd/proftpd.conf

Dans un premier temps on a dé-commenté la ligne qui permet l’inclusion du

fichier tls.conf et les lignes 10 à 12 dans /etc/proftpd/tls.conf.

Dans un second temps on a dé-commenté les 27 et 28 et modifié le chemin

d’accès des certificats.

Puis on redémarre le serveur ProftpD afin que toutes les modifications soit

prises en compte : service proftpd restart. J’ai ensuite procédé à un test. On a

lancé le client FTP (FileZilla), renseigné l’adresse IP du groupe et ses

identifiants puis on arrive à la fenêtre du certificat :

TLRSACertificateFile

TLRSACertificateKeyFile

Page 10: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

10

Création des comptes ftp pour chaque site.

Nous avons créé trois utilisateurs qui permettent de mettre à jour chaque site

hébergé : hnt, msf et cr. La ligne de commande est useradd 'nom du compte' -

d var/www/dossier. La partie soulignée permet de rediriger l’utilisateur créé

vers un dossier précis.

Nous avons créé trois dossiers (hnt6, msf6, cr6) pour les trois sites dans

/var/www/

Par exemple useradd hnt –d var/www/hnt6 redirigera l’utilisateur hnt vers le

dossier hnt6.

De plus nous avons effectué la ligne de commande chmod –R 777

/var/www/hnt6, pour accorder les droits d’écriture pour ne pas avoir de

problème lors de la mise en ligne d’une photo par exemple.

Enfin, dans le fichier /etc/proftpd/proftpd.conf, on a dé-commenté la ligne

DefaultRoot, l’utilisateur aura donc accès uniquement à son dossier.

Le FTPS est donc configuré et est

fonctionnel.

Page 11: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

11

Sécurisation du serveur web Apache.

De la même façon que pour la sécurisation du client ftp, on doit générer la clé et

le certificat. Pour ce faire on crée un dossier SSL dans /etc/apache2 puis on

entre la ligne de commande suivante :

« openssl req –x509 –nodes –days 365 –newkey rsa :2048 –keyout

/etc/apache2/ssl/apache.key –out /etc/apache2/ssl/apache.crt »

Une fois appuyé sur entrer une série de questions apparaissent. La question la

plus importante est :

Common Name (e.g. server FQDN or YOUR name) []:deb6.hnt6.fr

On constate que le certificat et la clé sont bien dans le dossier ssl.

DNS

Il devait être possible d’accéder aux sites via leur nom et non pas par l’adresse

IP. On a donc créé trois zones : www.hnt6.fr, www.msf6.fr et www.croix-

rouge6.fr

Nous expliquerons dans cette partie uniquement la configuration pour

www.hnt6.fr .

En ce qui concerne www.msf6.fr et www.croix-rouge6.fr il suffira juste de

remplacer hnt6 par msf6 ou croix-rouge6 .

Nous avons utilisé le logiciel Bind9 pour configurer le dns.

Tout d’abord nous avons modifié les fichiers hosts et resolv.conf

Page 12: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

12

Ensuite on a déclaré la zone d’hnt6 dans /etc/bind/named.conf.local

Cela signifie au chemin

d’accès de la configuration, celui-ci se trouve dans

/var/cache/bind/deb6.hnt6.fr

Voici le fichier :

La ligne deb6 IN A 172.18.158.135 signifie que deb6 a pour adresse de

serveur 172.18.158.135

Page 13: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

13

Du côté du serveur après avoir configuré ces fichiers et redémarrer le service

Bind service bind9 restart on effectue un dig pour voir si notre nom de

domaine répond bien par rapport au serveur.

root@deb6:~# dig www.hnt6.fr

; <<>> DiG 9.8.4-rpzZ+r1005.1Z-P1 <<>> www.hnt6.fr

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64570

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:

;www.hnt6.fr. IN A

;; ANSWER SECTION:

www.hnt6.fr. 86400 IN A 172.18.158.135

;; AUTHORITY SECTION:

hnt6.fr. 86400 IN NS deb6.hnt6.fr.

;; ADDITIONAL SECTION:

deb6.hnt6.fr 86400 IN A 172.18.158.135

;; Query time: 3 msec

;; SERVER: 172.18.158.135#53(172.18.158.135)

;; WHEN: Tue Sept 27 15:14:39 CEST 2016

;; MSG SIZE rcvd: 80

Du côté du client il faut modifier l’adresse DNS du poste avec lequel on veut accéder aux sites et

enlever le proxy.

HTTPHTTPS et affichage du bon dossier pour chaque site

Comme pour le dns nous allons voir la configuration pour le site hnt6. Pour msf6 et

croix-rouge6.fr il suffit de remplacer hnt6 par msf6 ou cr6.

Pour basculer http en https il faut aller dans le fichier /etc/apache2/sites-available

puis copier le fichier « default » et le renommer en hnt6. Voici le fichier :

Page 14: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

14

La ligne RedirectPermanent permet de rediriger http://www.hnt6.fr en

https://www.hnt6.fr

Nous avons ensuite une configuration du port 443, où on renseigne le ServerAdmin, le

ServerName, le ServerAlias (*. Signifie que tout est pris en charge) et DocumentRoot,

c’est ici que l’on indique le chemin du dossier que l’on veut afficher.

A la fin du fichier on indique qu’on active le protocole SSL, puis le chemin de la clé et du

certificat que l’on a vu précédemment dans la sécurisation du serveur apache2.

Il faut activer ce fichier pour cela on utilise la commande a2ensite hnt6.

On effectue un service apache2 restart, puis on test lorsque l’on tape www.hnt6.fr on

obtient ceci :

Page 15: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

15

Conclusion

Partie Développement

Nous avons rencontré des difficultés au niveau de la compatibilité c'est à dire

qu'il fallait revoir les différentes interactions des pages entre elles. Être

organisé lors de la conception du site et anticipé les soucis par rapport à la

connexion, la gestion de celle-ci était plus complexe qu'auparavant.

L'ajax n'était pas un problème à part entière, cependant elle ne fonctionnait pas

correctement au départ à cause des variables utilisé (il y avait un conflit entres

elles) cela nous a pris un moment avant de découvrir pourquoi le code avait ce

défaults.

Partie réseau

Nous avons rencontré des difficultés au niveau de la configuration des fichiers

default d’apache (site available). En effet nous avions activé le fichier par

défaut et non les fichiers respectifs des sites. C’est pourquoi les sites ne

s’affichaient pas.

Aussi pour la mise en ligne des images nous avions oublié de faire la commande

chmod –R 777 ce qui empêchait donc l’écriture sur les dossiers des sites.

En ce qui concerne la sécurisation du client FTP et la sécurisation du serveur web

nous avons suivi des tutoriels sur internet qui étaient très bien expliqués.

Enfin pour le DNS nous avons eu quelques difficultés au début avec les

différents fichiers à configurer, mais grâce au TP vu en SISR nous sommes

parvenus à le faire fonctionner.

Estimation du projet :

Nous sommes 4 personnes dans le projet, depuis le août 2016 les 4h des séances

de PPE on été réserver au développement de l'application ainsi qu'au bon

fonctionnement du serveur. Depuis le commencement du projet nous avons passé

24h (6 * 4) chacun sur le projet. Le coût mensuel normalement et de 1 500€ pour

les 35h/semaine avec 11€/h mais dans notre situation ici le montant total sera de

[(11*24 = 264)*4 = 1056] 1056€.

Page 16: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

16

Partie Juridique

1. Qualifier juridiquement les informations composant votre base de

données.

Une base de données se définit comme "un recueil d'œuvres, de données ou

d'autres éléments indépendants, disposés de manière systématique ou

méthodique, et individuellement accessibles par des moyens électroniques ou par

tout autre moyen" conformément à l'article L. 112-3 du C.P.I.

La base de donnée est composée de données personnelle tel que : le numéro de

téléphone des membres, les noms, les prénoms, etc. Cependant, les données tel

que les news (articles) sont des données "communes", les news écrites sur le site

relève de la responsabilité de l'auteur.

Chaque données doit être sécuriser, leurs accès se doit d'être protégée, plus

particulièrement les données personnelles et sensibles.

2. Cette base de données peut-elle être protégée par le droit d'auteur ?

Justifier.

La base de donnée peut être protégée par le droit d'auteur pour ce qui concerne

la forme car le fruit de la prestation intellectuelle de présentation et

d'ordonnancement de données peut constituer une œuvre de l'esprit originale,

empreinte de la personnalité de son auteur, et être protégé à ce titre. Le droit

d'auteur protège, la structure de la base de données mais non son contenu.

Son contenu quant à lui est protégé par le droit du producteur, c'est à dire celui

qui a investi des moyens humains ou financiers pour remplir la base de données.

3. Présenter brièvement les principales règles applicables au traitement de

ces informations.

Les principales règles applicables au traitement de ces informations sont :

Article L342-1 : Le producteur de bases de données a le droit d'interdire :

Page 17: Cahier des charges Site Web HNT et Sécurisation...2018/05/01  · solution devra être développée avec PHP, MySQL , Ajax et utiliser la méthode MVC. Après deux heures de concertation

PPE5 2016

17

- L'extraction, par transfert permanent ou temporaire de la totalité ou d'une

partie qualitativement ou quantitativement substantielle du contenu d'une base

de données sur un autre support, par tout moyen et sous toute forme que ce soit.

- La réutilisation, par la mise à la disposition du public de la totalité ou d'une

partie qualitativement ou quantitativement substantielle du contenu de la base,

quelle qu'en soit la forme.

Ces droits peuvent être transmis ou cédés ou faire l'objet d'une licence.

Article L342-2 : Le producteur peut également interdire l'extraction ou la

réutilisation répétée et systématique de parties qualitativement ou

quantitativement non substantielles du contenu de la base lorsque ces opérations

excèdent manifestement les conditions d'utilisation normale de la base de

données.

Article L342-3 : Lorsqu'une base de données est mise à la disposition du public

par le titulaire des droits, celui-ci ne peut interdire l'extraction ou la

réutilisation d'une partie non substantielle, appréciée de façon qualitative ou

quantitative, du contenu de la base, par la personne qui y a licitement accès