noms prénoms : point rodolphe rudiger romain 2005/06...

22
TITRE : sujet n°4 « diffusion sécurisée sur Internet. » TUTEUR : Mr BILAND Pierre NOMS Prénoms : POINT Rodolphe RUDIGER Romain MOTS CLES : Serveur, Web, Ftp, sécurisé, Authentifiés, Php, Mysql, Apache, Proftpd, Debian, Libre, GNU/Linux. 2005/06

Upload: others

Post on 11-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

TITRE : sujet n°4 « diffusion sécurisée sur Internet. »

TUTEUR : Mr BILAND Pierre

NOMS Prénoms : POINT RodolpheRUDIGER Romain

MOTS CLES : Serveur, Web, Ftp, sécurisé, Authentifiés, Php, Mysql, Apache, Proftpd, Debian, Libre, GNU/Linux.

2005/06

Page 2: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Sommaire 1.Introduction...................................................................................................................................... 3 2.Le système d'exploitation................................................................................................................. 3

2.1.Choix du système d'exploitation...............................................................................................3 2.2.Installation de Debian............................................................................................................... 3

2.2.a)Partitionnement et installation du noyau...........................................................................4 2.2.b)Installation de l'environnement ........................................................................................4 2.2.c)Configuration graphique................................................................................................... 4 2.2.d)Personnalisation de l'environnement de travail................................................................ 5

3.Le serveur HTTPS............................................................................................................................5 3.1.Choix du logiciel.......................................................................................................................5 3.2.Installation de Apache.............................................................................................................. 7 3.3.Mise en place du site et restriction d'une partie........................................................................9

4.Le serveur FTPS............................................................................................................................. 10 4.1.Le choix du logiciel................................................................................................................ 10 4.2.L'installation de Proftpd..........................................................................................................10 4.3.Sécurisation de Proftpd...........................................................................................................11 4.4.Test du serveur ftps.................................................................................................................12

5.L'authentification de documents.....................................................................................................14 5.1.Comment signer numériquement un document...................................................................... 14 5.2.Les cryptosystèmes................................................................................................................. 14

6.Conclusion......................................................................................................................................15 7.Glossaire......................................................................................................................................... 16 8.Bibliographie.................................................................................................................................. 17 9.Annexes.......................................................................................................................................... 18

9.1.Kpackage :.............................................................................................................................. 18 9.2.Alerte certificat....................................................................................................................... 19 9.3.Clé privée : .............................................................................................................................20 9.4.Index.php................................................................................................................................ 21

Page 3: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

1. IntroductionDe nos jours, Internet tient une place de plus en plus importante aussi bien dans la vie privée

que dans la vie professionnelle. C'est ainsi que sans cesse des sites Internet voient le jour sur la « toile ».Ce développement induit la mise en place de serveurs web et ftp, plusieurs problèmes se posent :

➔ Quel système d'exploitation choisir pour y implémenter les logiciels serveurs?

➔ Comment rendre sûr l'échange d'informations entre le serveur et les clients?

➔ Comment restreindre l'accès à des parties individuelles?

➔ Comment authentifier des documents mis à disposition?

Les différentes tâches de ce projet seront décomposées en quatre parties, une première partie sur le choix d'un système d'exploitation puis sa mise en place ensuite une partie sur la mise en place du serveur web, l'installation du serveur ftp puis l'authentification de documents.

2. Le système d'exploitation

2.1. Choix du système d'exploitationEn passant le fait que nous n'avions pas la liberté de choisir le système d'exploitation pour

mener notre projet, nous allons voir pourquoi utiliser Debian n'est fondamentalement pas mauvais pour mettre en place notre serveur.Tout d'abord pour la philosophie, fournir des services réseau à partir d'un système d'exploitation gratuit est très intéressant pour les entreprises. Mais aussi parce que linux est tranparent, on a donc une maîtrise totale du fonctionnement des applications.D'un point de vue serveur, linux est mieux que tout autre système d'exploitation, pourquoi ? Parce qu'il est sûr, il n'existe pas de virus connu à ce jour et le développement « open source » permet de mettre un serveur sans aucun système d'espionnage.

2.2. Installation de DebianLe développement de Debian est organisé en branches, nous utiliserons la version testing

plus couramment appelée sarge, c'est en fait la prochaine version de Debian mais celle-ci peut encore contenir quelques bugs...

L’installation de Debian Sarge s’effectue en quatre phases bien distinctes :

• Choix de la partition et installation du noyau du système d’exploitation.

• Installation des paquets nécessaires.

• Configuration de la carte graphique et de la connexion en tant qu’administrateur.

• Configuration de l’environnement de travail.

Projet 2005/06 page 3/22

Page 4: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

2.2.a) Partitionnement et installation du noyauAprès avoir démarré l'ordinateur à partir du CD-ROM, nous avons installé un noyau 2.6 en

saisissant linux26 à l’invité. Nous avons ensuite créé une partition de 2 GigaOctets sur chacun de nos disques durs. Enfin, dernière étape de cette première phase, lancer l'installation du programme d’amorçage Grub. Ce programme est implanté sur le secteur de boot de notre disque principal. Ce programme d’amorçage permet de choisir quel système d’exploitation démarrer, si plusieurs sont installés sur le même disque dur.

2.2.b) Installation de l'environnement Dans cette étape, nous choisissons les paquets (package) que nous voulons installer, pour

disposer ainsi, d’un environnement de travail. Les paquets sélectionnés sont décompressés et installés après leurs transferts du CD-ROM vers la partition racine. L’étape la plus délicate lors de l’installation de Debian est le choix de la carte graphique, si nous sélectionnons la mauvaise carte graphique, il faudra alors travailler en mode console. Nous choisissons donc le type « vesa » qui est compatible avec de nombreuses cartes graphiques. On choisit ensuite le mot de passe administrateur (root) qui est root, et on ajoute un utilisateur qui aura comme coordonnées :

login : choisi par l’utilisateurMot de passe : idem que le login.

A la fin de cette deuxième phase, l’interface graphique est installée et par défaut, cette dernière est « gdm » (Gnome Desktop Manager), mais dans le menu session nous choisissons une autre interface qui est « KDE ».

2.2.c) Configuration graphiqueAprès avoir installé la carte graphique pendant la deuxième phase, il faut maintenant la

configurée pour pouvoir afficher en mode 1024*768 car par défaut KDE démarre en mode 800*600. Pour changer le mode d’affichage, on lance l’application « KDE Control Center » et on va dans le menu « Peripherals-Display-Screen Size ». Cependant, on peut se rendre compte, que le mode que nous voulons choisir n’est pas disponible. On ouvre alors un terminal et on passe administrateur en tapant la commande « su » (correspondant à SuperUtilisateur), un mot de passe nous est alors demandé, on saisit donc « root » qui est le mot de passe administrateur. On effectue ensuite la commande suivante : « dpkg-reconfigure xserver-xfree86 ». Après avoir redémarré la machine, le serveur X est correctement installé et on peut alors choisir le mode d’affichage désiré.

Dans cette troisième phase, il faut aussi autoriser la connexion sous KDE en tant que root car pour l’instant nous pouvons seulement nous connecter avec l’utilisateur que nous avons créé. L’inconvénient est que nous n’avons pas les droits nécessaires pour pouvoir écrire dans des fichiers à modifier pour mener notre projet à son terme.

Tout d’abord, nous allons modifier le fichier « sources.list » qui se trouve dans /etc/apt/sources.list pour pouvoir installer l’interface de connexion « kdm » mais sans le CD-ROM. Devant la ligne correspondant au CD-ROM on met # qui permet de passer la ligne en tant que commentaire et on ajoute la ligne suivante : deb ftp://miroir-debian/debian/ sarge main Par contre, il faut définir l’adresse IP de la machine miroir-debian dans le fichier /etc/hosts qui sert à la résolution de nom local.

On met ensuite la liste des paquets Debian disponibles sur le serveur à jour avec la commande apt-get update.

On peut ensuite installer l’interface de connexion « kdm » grâce à la commande apt-get install kdm. Puis dans le répertoire /etc/kde3/kdm et on modifie le fichier « kdmrc » qui contient les

Projet 2005/06 page 4/22

Page 5: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

paramètres de configuration utilisés au démarrage de KDE. Par défaut, la ligne « AllowRootLogin » est à false et il faut donc la mettre à true pour autoriser la connexion en tant que root.

Cette dernière étape, consistant à autoriser le super utilisateur à se connecter en mode graphique, n'est pas du tout recommandé puisque si un logiciel contenant une faille est utilisé. N'importe qui pourrait exploiter cette faille et avoir ainsi tous les droits ce qui ne serait pas le cas en tant que simple utilisateur. Linux met à disposition un certain nombre de logiciels pour éviter d'être constamment en root (su, sudo, ...).

2.2.d) Personnalisation de l'environnement de travailLa dernière phase consiste à configurer l’environnement de travail pour l’administrateur. Tout

d’abord KDE n’est pas en français mais en anglais, pour le franciser il faut installer un nouveau paquet grâce à la commande suivante : apt-get install kde-il8n-fr. On va ensuite dans « KDE Control Center » et on ajoute la langue « français ». Puis il faut fermer la session et la relancer pour que KDE soit complètement en français.

On peut aussi configurer la barre des tâches en y ajoutant des raccourcis vers les applications et logiciels importants, comme par exemple Kpackage, qui sert à installer des paquets, Mozilla, qui est un navigateur web ou encore un éditeur de texte comme Kate.

3. Le serveur HTTPS

3.1. Choix du logicielUn serveur web ce n'est rien d'autre qu'un logiciel capable d'interpréter les requêtes HTTP

envoyées par les clients sur son port, par défaut c'est le port 80 qui est utilisé mais dans notre cas nous désirons, pour rendre le serveur Web sécurisé, que le protocole HTTP passe dans un tunnel SSL (Secure Socket Layer). Donc, pour que le navigateur comprenne que l'on souhaite utiliser ce mélange de protocoles (le protocole HTTP à travers le protocole SSL) il faut entrer l'adresse selon la syntaxe suivante : https://nom_du_domaine/. - Le navigateur enverra alors une requête demandant au serveur de s'authentifier et la liste des cryptosystèmes qu'il supporte, triée par ordre décroissant de la longueur des clés. - A la réception de cette requête le serveur y répond en envoyant son certificat contenant la clé publique de cryptage et le cryptosystème qu'il a choisi. - Le client vérifie l'authenticité du certificat (en s'adressant à un serveur de certificat désigné comme authentique) ensuite il crée la clé de session qui est une clé générée aléatoirement puis chiffrée par la clé publique envoyée par le serveur. Le client envoie alors cette clé de session au serveur. - Le serveur est en mesure de déchiffrer cette clé, et donc de déchiffrer le message. - Maintenant les deux entités sont en posession d'une clé commune dont ils sont les seuls connaisseurs. L'échange d'informations se fait en toute confidentialité et personne ne pourra truquer ces informations. - A la fin de la communication, toutes les clés sont détruites.

Projet 2005/06 page 5/22

Page 6: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Voici un exemple sans le protocole HTTPS :

Voici un exemple avec le protocole HTTPS et la vérification du certificat par le client :

Le fait de sécuriser le protocol HTTP n'implique pas de changement à faire dans le logiciel serveur ou le navigateur client, le serveur doit crypter ses réponses avant de les envoyer et le client n'a plus qu'à les décrypter pour les comprendre. Ce cryptage et décryptage se font au niveau de la couche transport :

Projet 2005/06 page 6/22

Page 7: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Le choix du logiciel serveur n'est donc pas très important, il faut juste s'assurer qu'il est compatible avec SSL et qu'il gère les certificats. Nous utiliserons Apache car c'est le serveur le plus répandu sur internet, par ailleurs, cette application est parfaitement adaptée pour Linux puisqu'elle a été écrite pour Unix. Apache à la particularité de pouvoir définir une configuration à chaque répertoire ou fichier partagé, ce qui sera pratique pour définir la partie en libre accès et celle restreint par un mot de passe.

3.2. Installation de ApacheL'installation n'est pas difficile surtout puisque nous utilisons Kpackage, cette outil

graphique permet d'installer ou de désinstaller des programmes disponible sur internet sous forme de paquetage. Ces paquetages sont en réalité des programmes déjà compilés, pour nous Kpackage utilise la liste des paquetages disponibles aux emplacements définis par le fichier sources.list :

La première ligne correspond à la source utilisée lors de l'installation (ici le lecteur cdrom), cette ligne est bien entendu commentée puisque nous utiliserons le miroir de free, qui est défini sur les trois dernières lignes : les programmes compilés, leurs sources puis les paquetages de sécurité directement sur le serveur ftp Debian.

Voici l'interface de Kpackage avec une recherche de paquet, ici c'est le programme apache avec ssl :

Le volet de gauche permet de voir les paquetages installés, mis à jour, nouveaux ou tous. A droite nous avons un descriptif du paquet sélectionné ici c'est apache avec le module SSL. L'utilité de Kpackage est qu'il est capable de calculer les dépendances de chaque paquet en fonction de ce qu'il y a d'installé et des paquetages disponibles.

Projet 2005/06 page 7/22

#deb file:///cdrom/ sarge maindeb ftp://ftp.proxad.net/mirrors/ftp.debian.org/ stable maindeb-src ftp://ftp.proxad.net/mirrors/ftp.debian.org/ stable maindeb http://security.debian.org/ stable/updates main

Page 8: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Il suffit alors de lancer l'installation, le programme nous demande évidemment le mot de passe du super utilisateur (root) puis calcule les dépendances, une fois l'installation lancée on voit le processus de téléchargement, d'extraction puis de configuration de chaque processus dans le volet de droite (voir annexe page 18). Au total 6 paquets sont installés : apache-common, apache-ssl, apache2-utils, libapr0, openssl, ssl-cert. Apache est le serveur HTTP, apache-ssl est en fait la configuration à appliquer au serveur apache pour qu'il soit capable de crypter et décrypter les informations mais aussi de prendre en compte le certificat. Openssl et ssl-sert permettent respectivement le chiffrement/déchiffrement des données et ssl-cert permet lui de créer un certificat pour notre serveur web. D'ailleurs, lors de la configuration du paquet apache-ssl, une demande de création de certificat est faite, on doit rentrer : pay, région, ville, l'organisme, la division puis le nom de la machine serveur :

Nous avons fait ici un certificat nous même, ce certificat n'ayant pas été signé par un fournisseur de certificats le navigateur client affichera une alerte pour prévenir l'utilisateur qu'aucun fournisseur de certificat a vérifié l'identité de l'organisation qui met en ligne ce site (voir annexe page 19).

Projet 2005/06 page 8/22

Configure an SSL Certificate.-----------------------------

The two letter code for your Country. (e.g. GB) (countryName)

Country Name FR

Your state, county or province. (stateOrProvinceName)

State or Province Name Centre

The name of the city or town that you live in. (localityName)

Locality Name BLOIS

The name of the company or organisation the certificate is for. (organisationName)

Organisme IUT-BLOIS

The Division or section of the organisation the certificate is for. (organisationalUnitName)

Division GTR

The host name of the server the certificate is for. This must be filled in. (commonName)

Host Name projet_GTR

The email address that should be associated with the certificate.

Email Address root@projet

Page 9: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Une fois l'installation finie, on sait que tout c'est bien passé si « RESULT=0 ».On peut vérifier que le serveur est en écoute sur le port 443 avec la commande nmap :

3.3. Mise en place du site et restriction d'une partieUne fois l'installation finie, il ne reste plus qu'à mettre le site en place. Nous avons

implémenter une base de donnée Mysql avec un l'utilitaire phpmyadmin pour faciliter son administrattion, et le support du language php4 au serveur apache avec Kpackage. Pour que l'installation de ces trois composants se fasse d'une traite il suffit de demander l'installation de phpmyadmin, ainsi avec la dépendance des paquets Kpackage installe la base Mysql et php4.Voici la page d'accueil du site créée avec le logiciel libre Screem (code page 21-22) :

Comment restreindre une partie ? Le problème n'est pas difficile à résoudre puisque apache intégre un système bien rodé au niveau des autorisations : les « .htaccess ».Il faut tout d'abord modifier le fichier de configuration d'apache pour qu'il tienne compte des fichier .htaccess. Puis créer ce fichier dans le répertoire a restreindre, ici ce sera le répertoire casi :

Projet 2005/06 page 9/22

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-01-29 17:01 CETInteresting ports on localhost.localdomain (127.0.0.1):(The 1654 ports scanned but not shown below are in state: closed)PORT STATE SERVICE22/tcp open ssh25/tcp open smtp111/tcp open rpcbind113/tcp open auth139/tcp open netbios-ssn443/tcp open https445/tcp open microsoft-ds776/tcp open wpages786/tcp open concertNmap finished: 1 IP address (1 host up) scanned in 0.635 seconds

On note la présence du cadenasindiquant que les données sont cryptées

AuthFile casi/pass/.htpasswdAuthName "Acces restreint..."AuthType Basicrequire valid-user

Page 10: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Ce fichier contient l'emplacement d'un fichier contenant les noms d'utilisateur et leur mot de passe crypté à l'aide de la commande « htpasswd -c /var/www/casi/pass/.htpasswd casi » où casi est le nom d'uilisateur. Voici le contenu du fichier .htpasswd :

Par défaut, pour des raisons de sécurité, le serveur n'affichera jamais les fichiers commençant par « .ht » ; voilà le dossier casi et ses sous-dosiers sécurisés, si on tente d'y accéder voici le message qui apparaît :

Le fichier .htaccess a d'autres utilisations comme l'affectation d'une page d'erreur personnalisée ou la restriction à certains types de fichiers.

4. Le serveur FTPS

4.1. Le choix du logicielLe choix du logiciel serveur ftp n'était pas à prendre à la légère puisqu'il devait être capable

d'utiliser SSL mais aussi d'être facilement configurable. Le premier logiciel testé fut VSFTPD : Very Secure File Transfer Protocol Daemon, puisqu'il est connu pour être l'un des plus sécurisés mais aussi très configurable. Nous l'avons utilisé un certain temps avant de nous rendre compte d'un étrange problème de compatibilité avec un client ftp sécurisé sous Windows : FlashFXP. Du coup nous avons essayé Proftpd...

4.2. L'installation de ProftpdL'installation se fait encore une fois avec Kpackage et cela sans problème, tout le logiciel se

configure par son fichier /etc/proftpd.conf. Par défaut seul les utilisateurs créés sur le serveur peuvent se connecter à leur répertoire.

Exemple de connection avec l'utilisateur casi :

Projet 2005/06 page 10/22

--> Ouverture de la connexion sur le port TCP 21<-- 220 ProFTPD 1.3.0 Server (projet)--> USER casi<-- 331 Password required for foo.--> PASS casi<-- 230 User casi logged in.<-- 227 Entering Passive Mode (127,0,0,1,81,49).<-- Connecting data socket to (127.0.0.1) port 20785--> LIST /home/casi<-- 150 Opening ASCII mode data connection for file list<-- 226 Transfer complete.

casi:$1$Bu5bG2ko$iDGAd7ZpxxUPmhlPDh2tQ1

Page 11: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

4.3. Sécurisation de ProftpdIl faut, pour créer un nouveau certificat, dans un premier temps générer la clé privée (voir un

exemple sur l'annexe page 20) avec cette commande :

Maintenant il faut créer un certificat autosigné avec :

Cette commande nous permet de remplir les champs d'un certificat et de le créer. Voici la sortie a l'écran :

Maintenant que nous avons notre certificat il faut reconfigurer Proftpd en ajoutant les lignes suivantes :

La première ligne active la gestion des certificats, la seconde définit l'emplacement du fichier de log, TLSProtocol définit le protocol SSL à utiliser. Les deux dernières correspondent à l'emplacement du certificat et de la clé privée. Pourquoi TLS alors que l'on parle de SSL, TLS signifie simplement que lorsqu'un client se connecte sur le port 21, il n'est pas obligé de protéger les données. Normalement le port ftps est le 990 mais depuis les nouvelles certifications, voir la RFC4217, les deux méthodes de connection sécurisées soit TLS et SSL utilisent le port ftp classique : 21.

On relance maintenant proftpd avec la commande « /etc/init.d/proftpd restart ».

Projet 2005/06 page 11/22

/usr/bin/openssl genrsa 1024 > /etc/proftpd.key

You are about to be asked to enter information that will be incorporated into your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:CentreLocality Name (eg, city) []:BloisOrganization Name (eg, company) [Internet Widgits]:IUTOrganizational Unit Name (eg, section) []:GTRCommon Name (your name or server's hostname) []:projetEmail Address []:root@projet

#certification ssl en localTLSEngine onTLSLog /var/log/tls.logTLSProtocol SSLv23TLSRSACertificateFile /etc/proftpd.certTLSRSACertificateKeyFile /etc/proftpd.key

openssl req -new -key /etc/proftpd.key > /etc/proftpd.cert

Page 12: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

4.4. Test du serveur ftpsLa liste des clients compatibles TLS et/ou SSL est disponible ici1. Voici l'avertissement lors

d'une connection sécurisée sur notre serveur à cause du certificat auto signé :

Voici maintenant la partie du log concernant l'authentification au serveur :

Dans une première partie, le client indique que l'on s'authentifie avec le protocole TLS, le serveur donne sont accord. C'est à ce point la que le serveur et le client négocie le cryptage, ensuite le nom d'utilisateur et le mot de passe sont envoyés, casi est connecté !

1 : http://www.ford-hutchinson.com/~fh-1-pfh/ftps-ext.html

Projet 2005/06 page 12/22

[14:20:45] WinSock 2.0 -- OpenSSL 0.9.7e 25 Oct 2004[14:20:50] [L] Connecting to projet -> IP=192.168.0.65 PORT=21[14:20:51] [L] Connected to projet[14:20:51] [L] 220 Bienvenue sur le server sécurié des GTRs[14:20:51] [L] AUTH TLS[14:20:51] [L] 234 AUTH TLS successful[14:20:51] [L] Connected. Negotiating TLSv1 session..[14:20:52] [L] TLSv1 negotiation successful...[14:20:52] [L] TLSv1 encrypted session using cipher DHE-DSS-AES256-SHA (256 bits)[14:20:53] [L] PBSZ 0[14:20:53] [L] 200 Command okay[14:20:53] [L] USER casi[14:20:53] [L] 331 Password required for Praeto.[14:20:53] [L] PASS (hidden)[14:20:54] [L] 230 casi logged in successfully.

Page 13: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Une fois connecté, voici ce qui se passe :

Le serveur envoie les commandes qu'il connait, le client s'identifie avec la commande CLNT FlashFXP 3.0.1045. Ensuite le serveur envoie la liste des fichiers présents à la racine du ftp et cela de façon chiffrée sur 256 bits avec le protocole TLS version 1. Nous avons utilisé un logiciel client propriétaire car c'est le seul qui nous a permis d'obtenir un log aussi détaillé.

Projet 2005/06 page 13/22

[14:20:54] [L] SYST[14:20:54] [L] 215 UNIX system type.[14:20:54] [L] FEAT[14:20:54] [L] 211-Extensions supported:[14:20:54] [L] CLNT[14:20:54] [L] NOOP[14:20:54] [L] PRET[14:20:54] [L] AUTH SSL[14:20:54] [L] PBSZ[14:20:54] [L] CPSV[14:20:54] [L] SSCN[14:20:54] [L] 211 End[14:20:54] [L] CLNT FlashFXP 3.0.1045[14:20:54] [L] 200 Command okay[14:20:54] [L] CWD /[14:20:54] [L] 250 Directory changed to /[14:20:54] [L] PWD[14:20:55] [L] 257 "/" is current directory[14:20:55] [L] TYPE A[14:20:55] [L] 200 Command okay[14:20:55] [L] PROT P[14:20:55] [L] 200 Command okay[14:20:55] [L] PRET LIST[14:20:55] [L] 200 OK, will use master for upcoming transfer[14:20:55] [L] PASV[14:20:55] [L] 227 Entering Passive Mode (165,29,214,88,17,181).[14:20:55] [L] Opening data connection IP: 165.29.214.88 PORT: 4533[14:20:56] [L] LIST -al[14:20:56] [L] Connected. Negotiating TLSv1 session..[14:20:56] [L] 150 File status okay; about to open data connection.[14:20:56] [L] TLSv1 negotiation successful...[14:20:56] [L] TLSv1 encrypted session using cipher DHE-DSS-AES256-SHA (256 bits)[14:20:56] [L] 226 Closing data connection[14:20:56] [L] List Complete: 967 bytes in 1,67 seconds (0,6 KB/s)[14:20:57] [L] QUIT[02:20:57] [L] 221 Goodbye![02:20:57] [L] Logged off: projet

Page 14: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

5. L'authentification de documents

5.1. Comment signer numériquement un documentPour garantir l'authenticité et l'intégrité d'un document (données, audio...) il faut générer une

signature numérique, cette signature doit donc être unique. Il faut pour cela « hacher » le document pour en obtenir sa signature. Pour notre utilisation, il nous suffit de mettre le document à disposition sur le site web et/ou ftp accompagné de sa clé numérique. Si une personne veut vérifier que le document téléchargé correspond, il lui faudra à son tour hacher le document et comprarer les signatures numériques.

Voici un diagramme pour mieux comprendre :

5.2. Les cryptosystèmesLes deux grands algorithmes les plus utilisés sont : MD5 et SHA, nous utiliserons MD5 car

c'est celui que l'on a rencontré le plus sur internet (téléchargement de paquet débian par exemple). Sous linux il faut installer le logiciel md5sum, une fois ceci fait il faut juste entrer une

commande du type : « md5sum nom_du_fichier », voici un exemple avec une image :

Pour créer un fichier contenant la signature, il faut rediriger la sortie standard (l'écran) vers un fichier comme par exemple :

le fichier contient alors la signature suivie du nom du fichier haché.

Projet 2005/06 page 14/22

$md5sum /home/casi/linux1.jpg7FA8B54E45AD6459ABCDE389FB0BDBDD /home/casi/linux1.jpg

$md5sum /home/casi/linux1.jpg > /home/casi/linux1.md5

Page 15: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

6. ConclusionL’intégralité du contenu de ce rapport a été testé grandeur nature , il n’y a donc pas une ligne

qui ait été écrite au hasard. Il était impossible de décrire chaque manipulations dans leurs moindre détail et cela n'aurait été d'aucune utilité. Le but de ce compte rendu est de montrer par quels moyens logiciels nous sommes parvenus à atteindre nos objectifs.

Ce projet tutoré nous a permis d'apprendre tout seul à remplir un cahier des charges sans forcément avoir de bonnes connaissances sur le sujet. Internet a bien sûr été notre outil favori mais parfois une recherche indiduelle dans les logs... aboutit plus vite.

Projet 2005/06 page 15/22

Page 16: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

7. Glossaire

Apache C’est un serveur HTTP fondé par Apache Software Foundation. Il est open source, c'est-à-dire en distribution libre, et il est le plus souvent utilisé sous linux.

FTP File Transfert Protocol ou en Français, protocole de transfert de fichier. Ce protocole définit les règles de transfert de fichier entre deux ordinateurs connectés à Internet. Lorsque l’internaute transfert des données stockées sur le serveur FTP, il utilise sur sa machine un logiciel appelé client FTP (gFTP sous linux par exemple).

FTPs C’est le protocole de transfert de fichiers FTP mais doté du protocole de sécurité SSL

HTTP HyperText Transfert Protocol. Protocole de communication client – serveur. C’est un protocole utilisé pour transférer des documents WEB via Internet

HTTPs HyperText Transfert Protocol over SSL. Protocole de transfert de fichier hypertexte mais avec le protocole SSL.

PHP Hypertext Preprocessor. Ce langage permet de développer des scripts et est utilisé pour être exécuté par un serveur HTTP.

SHA Secure Hach Algorithm. C’est une fonction de hachage cryptographique. Le résultat produit est un « hach » de 256 bits pour sha-256.

SSL Secure Socket Layer. C’est une surcouche de sécurisation. C’est un protocole de sécurisation des échanges sur Internet, qui permet d’obtenir les serveurs FTP et web sécurisé. C’est en ce moment le standard le plus communément utilisé pour protéger les transactions sur Internet.

Projet 2005/06 page 16/22

Page 17: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

8. Bibliographie

Comment ça marche Pour mieux comprendre les protocoles : http://www.commentcamarche.net

MD5Le fonctionnement de l'algorithme MD5 et ses programmes : http://www.fourmilab.ch/md5/

ixus.netLe forum ixus.net pour tout connaître et avoir de l'aide sur la sécurité des réseaux et de linux : http://forums.fr.ixus.net

Paul Ford-Hutchinson Tout sur le FTPS :http://www.ford-hutchinson.com/~fh-1-pfh/ftps-ext.html

Léa linux Pour des tutoriels complets :http://lea-linux.org

The Linux Documentation Project Pour tout savoir sur linux : http://www.tldp.org/

Castaglia Les détails de Proftpd et de OpenSSL : http://www.castaglia.org/proftpd/

e.Linux-Kheops Beaucoup de documentations et d'aides sur Linux : http://www.linux-kheops.com/

Linux-France Linux france et ses projets liés à l'enseignement :http://www.linux-france.org

CASES Luxembourg Portail de la sécurité de l'information : http://www.cases.public.lu/

Ecole Supérieure d'Informatique Beaucoup de projets très bien fais :http://www.supinfo-projects.com/

OVH Plusieurs guides de configuration sur :http://guides.ovh.com

Sebsauvage Des explications simples pour mieux comprendre : http://sebsauvage.net/

Projet 2005/06 page 17/22

Page 18: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

9. Annexes

9.1. Kpackage :

Projet 2005/06 page 18/22

Page 19: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

9.2. Alerte certificat

Projet 2005/06 page 19/22

Page 20: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

9.3. Clé privée :

Projet 2005/06 page 20/22

-----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQDPonCfmQkZukae7eQh8bnuutGpWbWJ5Nu7G6ab+VwF4t7PZ8gmzPXj6iL38dt0yq3NsBaQqH5pIz6fGpR2Y1yawtN8fzTlu1Fv26pPONPqwfYYbfiFBhS9aJ1V4qAwPHifp3G3eAFEp09GMITG/JDdRBiPgPVeP18xk2CsVvktfQIDAQABAoGBALdJcZmxAfOQF98bqJK+S5+Nkp6n7jT3rXASDJULHkyj5IO53VlC/JxghtXQziTe9WXo10KDOnOdBR513DBVrdvm+C8OM7vjtMjq6jN08GOmkqo/OeUlKYR+e/ZKVePMjR7CyYZ6J/crXtlLawpFcT5dBhUlbYJxzeVtfmg+RBQBAkEA/KhrzNS7Skddwqvsz6VQO0p3c7dRbHDzIVGXX2XdH6uKWbf2/0TBnFeIUQQkfQVynTCc62Dsz8aLMMMyebpVQQJBANJhjjwW8quWzabZHV2bUQVpjMFiBC9j/aUWhA5Q+L3RKEdeshmxRCyW5nMsx+ETWyd2LYvZwhlyfc0Q0krKnT0CQGvJkkvNSaWTsq1VWW7wkLzqtPE5+NOxkBfbzh9VvrM/JIPIFuiqNYr0UOR3RvXLOC1VSuyj6gNuKX2BGOyTkMECQAD6pT/QV4bG5+Qb5JAX9fORfy8zNpPF4ltPVIQAinfPrmFOpoOKGKggd6gXkEKS5Xy0hxe8hrO5na5DosboVH0CQGevOWOu7Zuhz0PSa0PPWwkznF13JlAg59iN1l1Mi/djrwubvf39yGSs75huXhRECuYHNBkx2sXE92/fyxQntAk=-----END RSA PRIVATE KEY-----

Page 21: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

9.4. Index.php

Projet 2005/06 page 21/22

<head><style type="text/css"><!--body {font-size: 100%;margin: 0;padding: 0;background-color: #fff; }div#navbar{

margin: 0 0 0 0; padding: 0px; width: 100%; background-color: #eeeeee;border-right: 1px solid #ccc; border-bottom: 1px solid #ccc;

}

div#navbar {font-size: 100%;background-color: #fff; }

div#navbar h1 {margin-top: 0;margin-bottom: 5px;border-bottom: 1px #b0b1ba solid;text-align: right;font-size: 100%;color: #fff;background-color: #ff5800;text-shadow: none;font-weight: normal;padding-top: 6px;padding-bottom: 6px;padding-right: 15px; }

div#navbar h1 a:link, div#navbar h1 a:visited {color: #fff;display: block;text-decoration: none; }

div#navbar h1 a:hover {color: #091c5a; }

div#navbar ul {padding: 0;margin: 0; }

.navbar ul li {list-style-type: none; margin-top: 4px; margin-bottom: 4px; color: #fb5701; }

div#navbar ul li a:link, div#navbar ul li a:visited {text-decoration: none;padding-left: 2px; border-left: 10px #fff solid; color: #091c5a; }

div#navbar ul li a:link.youarehere, div#navbar ul li a:visited.youarehere, div#navbar ul li a:hover {border-left: 10px #ff5800 solid; color: #fb5701; }

div#navbar ul li a:link.youarehere, div#navbar ul li a:visited.youarehere {font-weight: bold; }

div#navbar ul li ul li a:link, div#navbar ul li ul li a:visited {padding-left: 10px; }

div#navbar ul li ul li ul li a:link, div#navbar ul li ul li ul li a:visited {padding-left: 20px; font-size: 85%; }

div#navbar ul li ul li ul li ul li a:link, div#navbar ul li ul li ul li ul li a:visited {padding-left: 30px; font-size: 85%; }

div#navbar ul li ul li ul li ul li, div#navbar ul li ul li ul li {margin-top: 0; margin-bottom: 0; }

div#navbar ul li.current-section a:link, div#navbar ul li.current-section a:visited {color: #ff5800; }.Style13 {

font-size: xx-large;font-weight: bold;color: #FFFFFF;

}.Style15 {

color: #FFFFFF;font-size: large;

}--></style></head>

Page 22: NOMS Prénoms : POINT Rodolphe RUDIGER Romain 2005/06 ...casimir266.free.fr/cours/GTR2/projet/rapport_v2.pdf · sur le choix d'un système d'exploitation puis sa mise en place ensuite

Projet 2005/06 page 22/22

<body><table width="750" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable--> <tr bgcolor="#000066">

<td height="90" colspan="2" valign="top"><div align="center"><span class="Style13">PROJET GTR 2005-2006</span><br> <span class="Style15">Diffusion s&eacute;curis&eacute;e sur Internet </span><br>

</div></td> </tr>

<tr> <td width="179" height="398" valign="top" bgcolor="#EBEBEB">

<br> <div id="navbar">

<h1><a href="/">ACCUEIL PROJET</a></h1> <ul> <li><a href="/">Choix de Linux </a> <ul> <li><a href="/">Installation</a></li> <li><a href="/"> Configuration</a></li> </ul> </li> </ul> <ul> <li><a href="/">Serveur web </a> <ul> <li><a href="/">Installation</a></li> <li><a href="/"> Configuration</a></li> <ul> <li><a href="/"> Impl&eacute;mentation PHP</a></li> <li><a href="/"> Impl&eacute;mentation Mysql</a></li> </ul> <li><a href="/"> S&eacute;curisation</a>

</li> </ul> </li> </ul> </div> <br>

<div id="navbar"> <h1><a href="/">ACCUEIL SITE </a></h1> <ul> <li><a href="/">Espaces Web utilisateurs </a></li> </ul> <ul> <li><a href="/">Espace FTP</a> <ul> <li><a href="/">Anonyme</a></li> <li><a href="/">Utilisateurs</a></li> </ul> </li> </ul>

</div> <p>&nbsp;</p></td> <td width="571" valign="top" bgcolor="#EBEBEB"><!--DWLayoutEmptyCell--

>&nbsp;</td> </tr></table></body>