INTRODUCTION Le monde a été bouleversé par l avènement de I Internet, qui est un réseau informatique mondial constitué d un ensemble de réseaux nationaux, régionaux et privés qui sont reliés par le protocole de communication TCP/IP et qui coopèrent dans le but d offrir une interface unique à leurs utilisateurs. Jusqu aujourd hui, son extension et son développement affecte la majeure partie des utilisateurs mais surtout des concepteurs. Son évolution a donc entraîné la création de différents modèles tels que OSI, TCP/IP, de différents serveurs : DNS, IIS, APACHE, ainsi que la création des services réseaux comme la messagerie, le transfert de données, la communication a distance, l accès distant sécurisé, publication/hébergement. Notre étude portera ainsi sur l un de ces concepts : publication/hébergement afin de faciliter la tâche aux concepteurs afin de leur permettre d être en phase avec les exigences de ce nouvel outil de communication. Sur ce fait, notre travail sera structuré comme suit : nous parlerons d abord de la publication, ensuite de l hébergement et enfin de la mise en œuvre de l hébergement. I. LA PUBLICATION : Le web est un réseau de documents reliés les uns aux autres. Ces documents sont appelés pages web et sont généralement regroupés en ensembles cohérents que l on appelle sites web. Chaque page accessible sur le web se présente toujours de la même manière. 1. Les étapes de la conception d un site web a. Historique TIM BERNERS-Lee, l'inventeur du World Wide Web, a mis en place le tout premier site internet en août 1991, faisant de lui le tout premier concepteur de site (Web designer). Ainsi les sites internet étaient écrits en HTML basique, un langage qui leur donne une structure de base, ainsi que la possibilité d'utiliser des liens hypertexteset un lien vers une adresse électronique. C'était une nouveauté et c'était fondamentalement différent des formes de communications préalables. ~ 1 ~
De ce fait une simple page au format HTML ou des milliers de pages proposant des animations, des services programmés en JAVA, PHP ou autres langages serveur, des formulaires supposant un traitement en JavaScript ou AJAX reposait sur des technologies de bases de données Au fur et à mesure que l'internet et la conception de site progressèrent, le langage qui formait les pages, le "HyperText Mark-up Langage" ou HTML, devint plus fourni et flexible avec l'apparition du CSS et des feuilles de styles ; la mise en page avec les tableaux fut vite considérée comme obsolète. Les technologies modernes qui utilisaient des bases de données ou le codage côté serveur ( CGI, PHP, ASP.NET, ASP, JSP, et Cold Fusion), ainsi que les normes de conception comme le CSS se sont davantage améliorées et ont diversifié les outils de conception de site. L'apparition de Flash, développé par Macro media, qui permet de réaliser des animations ainsi que de diffuser du son et de la vidéo a également changé l'apparence d'internet en offrant de nouvelles cartes aux concepteurs de site.toutefois, Flash est beaucoup plus restrictif que le HTML car c'est un format protégé par Macro media, et il nécessite un plug-in pour être affiché. Une technique assez récente appelée le codage à distance a permis une utilisation d'internet de façon plus dynamique, sans nécessiter d'applications spécialisées. b. Les étapes de la création La conception d'un site Web est un processus qui implique quelques étapes simples au départ, mais pouvant mettre en œuvre des moyens et des compétences très importants. En fonction donc du type de site, du contexte et des moyens disponibles pour le mettre en œuvre, certaines de ces étapes sont optionnelles voire inutiles. À chacune de ces étapes correspondent des compétences spécialisées (ergonomie, architecture de l'information, rédaction Web, etc.). Pour ce faire, il faut d abord élaborer un projet bien défini pour mieux réfléchir sur : l'objectif du site, la cible, la rentabilité, les moyens financiers à engager, l'autonomie souhaitée et le type de moyens humains pour faire la mise à jour, le contenu des pages, services attendus et principes de navigation. ~ 2 ~
Concernant la mise en œuvre il faut : le dépôt d'un domaine, le choix d un hébergeur, le choix et installationd un système de gestion de contenu(spip, wiki, Wordpress, Joomla,Drupal...) ou d'un éditeur de site Web de type WYSIWYG (exemples: NVU, Macro mediadreamweaver, Microsoft FrontPage, Web self) ou texte (exemple: Bluefish, Emacs,...). Pour la conception : L établissementd une structure de pages HTML ou XHTML, Définition d une arborescence, La Mise au point d'une charte graphique et éditoriale. La réalisation nécessite : La création de pages via le Système de gestion de contenu, La mise en place de la charte graphique via les feuilles de styles CSS D éventuels développements dynamiques (formulaire, services, etc.). Pour un bon suivi il faut : La recette du site une fois prêt, Le lancement du site (mise en ligne), L annonce par plusieurs leviers (publicité, inscription dans des annuaires...). La Maintenance (nouveaux contenus, corrections, amélioration continue de la qualité) L'accessibilité du site est une donnée à prendre en compte à chaque étape à partir de la mise au point et de la structure des pages. Il en est de même du référencement dont la stratégie peut-être mise en place dès la conception. Des principes du référencement sont également à prendre en compte lors de la création des gabarits, l'intégration des pages, la rédaction des contenus, le lancement du site, la maintenance. c. La Programmation web ~ 3 ~
La Programmation web peut prendre différentes formes : de la simple page statique à la page dynamique avec connexion à une base de données. Nous allons tracer ici un bref aperçu de différentes technologies possibles dans la programmation côté client et côté serveur La programmation web côté client Les objets ne fournissent pas toutes les solutions aux besoins d'interactivité et de dynamisme des sites ou sont parfois lourds à mettre en place. Il est possible alors de passer à de la programmation permettant une meilleure interaction avec la page HTML. Principe Quand le visiteur demande une simple page HTML (avec ou sans objets) en tapant une adresse ou URL, le serveur web lui renvoie simplement le contenu de la page demandée, c'est le navigateur web qui interprète le contenu HTML et les plug-ins qui interprètent les objets, en demandant à leur tour le contenu des objets au serveur web. Si le code, côté client, est inséré dans la page, le serveur web renverra également la page au client, y compris le code. C'est donc, à nouveau le navigateur web qui doit interpréter le code et faire ce que le code demande. Utilisation La programmation côté client sera utilisée essentiellement dans le cas de validation de formulaires (champs obligatoires, petits calculs,...) et dans la création de petites animations (menus déroulants...). La programmation web côté serveur Principe Lors de l'insertion de programmation côté serveur dans une page, lorsque le visiteur demande la page, le serveur va d'abord lire celle-ci, il va interpréter le code serveur et encapsuler le résultat dans la page HTML. Cette dernière sera expédiée au visiteur sans aucune trace du ~ 4 ~
code serveur. Le visiteur reçoit donc une pure page HTML (avec éventuellement encore le code client). Avec ce processus, on gagne énormément en sécurisation du code. On a aussi un grand nombre de possibilité d'interactions avec d'autres systèmes ou applications comme les bases de données. Les fichiers des pages "côté serveur" ont généralement une extension autre que HTM ou HTML. L'extension dépendra des différentes technologies utilisées parmi lesquelles : ASP (Active Server Pages): Technologie développée par Microsoft à partir de 1996 dans le but de créer des pages dynamiques. ASP permet d'ajouter le code dans la page HTML qui sera interprétée par le serveur. La partie ADO (ActiveX Data Object) d ASP permet de se connecter à une base de données. ASP.Net: Technologie développée par Microsoft sur la base du Framework.Net. L'évolution est importante par rapport à ASP et les possibilités deviennent quasi infinies. ASP.Net a le gros avantage, par rapport à d'autres technologies, de bien séparer le contenu de la page web, sa mise en forme et la programmation des aspects dynamiques (travail en Code Behind). PHP :(HypertextPreprocessor):est un langage de script interprété côté serveur. Le code PHP est inscrit directement dans la page HTML, sera lu par le serveur et interprété pour produire une page HTML à chaque fois que la page sera demandée. Ce langage a été créé dans le cadre des logiciels Open Source. d. Le Référencement La position sur les moteurs de recherche est une des principales sources de création de trafic sur un site aujourd'hui. En effet, il permet aux internautes d'accéder à un site sans connaître son adresse. L'afflux principal provient des moteurs de recherche, mais le nombre de visiteurs passent également par des annuaires. On trouve également de plus en plus des sites de bookmarks (marque-pages) qui permettent aux internautes de conserver les adresses de leurs sites préférés, commerciaux ou non. ~ 5 ~
Le Référencement naturel Comme précédemment deux phases se distinguent : l'inscription dans les outils de recherche et l'amélioration du positionnement d'un site. Or les outils de recherche sont classés en deux catégories : les annuaires et les moteurs. Inscription sur les annuaires Un annuaire Web est un site qui classe de façon thématique les autres sites qu il sélectionne lui même ou qui lui sont soumis. Des éditeurs analysent alors le contenu des pages et créent leurs résumés dans le but d orienter les visiteurs. Les annuaires proposent une recherche par catégories et sous-catégories. Il existe des milliers d annuaires dits spécialisés ou généralistes (exemple :Yahoo! Directory). Pour améliorer le positionnement de son site sur les annuaires, il n existe qu une technique : la soumission manuelle de son URL aux différents annuaires qui se laissent par la suite (ou pas) le droit de valider ou non la soumission. Les critères d acceptation d un site sur un annuaire sont larges, parmi eux nous pouvons citer: Le contenu du site : il doit correspondre à une thématique entrant dans une catégorie de l annuaire. La qualité du site : est-ce un site ayant suffisamment de contenu? Ce contenu est-il régulièrement mis à jour? Il y a-t-il beaucoup de visiteurs? mise à jour des contenus, qualité des liens référents (c est-à-dire niveau de Page Rank des sites vers lesquels pointe «notre» site), absence d erreurs 404 et de redirections. Il est bien sûr «recommandé» de soumettre son site sur des annuaires à fort ou moyen Page Rank afin qu il apparaisse plus souvent sur les résultats de Google. Il s agit donc de positionner, ou tenter de positionner son site sur tous les sites contenant un lien référent (appelé aussi backlinks) vers un concurrent. Pour cela, il existe des recherches spécifiques comme link:http://nomdusite.fr sur Google capable de repérer les back links d un concurrent donné. ~ 6 ~
Ces "soumissions" n'entraînent pas systématiquement "inscriptions". Les inscriptions dans les annuaires doivent être visibles dans les moteurs de recherche pour être utiles. Les acceptations des sites peuvent prendre de 2 à 12 semaines pour être validées dans Google. Cette démarche de soumissions peut être sous-traités à des sociétés de "net linking" à condition de vérifier que les liens restent déposés de manière "manuelle"dans des annuaires "pertinents". Enfin, les inscriptions doivent être réalisées à un rythme et un volume régulier. Toutes ces techniques contribuent si elles sont bien menées à accroître le nombre de visiteurs mais aussi la Page Rank de «notre» site ce qui revient à améliorer son positionnement sur les moteurs de recherche. Inscription sur les moteurs de recherches Il s'agit d'ajouter des pages web à l'index d'un moteur de recherche. Ce dernier est capable de détecter les nouveaux documents sur le web (et les nouveaux sites). Cette phase n'est donc plus aussi demandeuse de ressources qu'auparavant, bien qu'il soit toujours conseillé de se soumettre aux outils de recherche via des formulaires qu'il propose. Le positionnement dans les résultats des moteurs de recherche Le positionnement d'une ressource (et donc sa visibilité) dans les résultats de recherche est la conséquence d'un contenu qui, selon le moteur, répond à la recherche d'un internaute et est considéré par ses tiers comme la référence sur son domaine.cela nécessite au préalable ; d'identifier ce que recherchent les internautes (= quels sont les mots clés utilisés) d'adapter sa ligne éditoriale en fonction du lexique utilisé par les internautes et donc d'organiser les contenus d'un site en fonction des besoins/recherches des internautes de rédiger habilement les URL de ces contenus, de les transférer efficacement (HTTP) et de formater (HTML) correctement l'information. La visibilité d'un document sera ainsi naturelle et dépend directement de la qualité du contenu apporté. En effet, un contenu de qualité est souvent référencé par d'autres sites : le contenu, considéré comme la référence sur son domaine, sera ainsi positionné en tant que tel (comme la référence/en première position) dans les résultats de recherches.c'est le principe même du référencement naturel. ~ 7 ~
Les mots clés utilisés doivent être sélectionnés en fonction de l activité du site, du positionnement de ses concurrents directs (il est primordial que «notre» site figure là où figurent ses concurrents dans les résultats de Google),du volume de recherche des mots clés choisis (classement sur une échelle de 1 à 10), du Web Focus Group ou l'analyse d'un marché potentiel grâce aux requêtes effectuées par les internautes dans les moteurs de recherche. Il existe des Techniques visant à se positionner dans les premiers résultats, généralement les deux premières pages, lors de recherches sur certains mots clés : Créer des contenus en totale adéquation avec une qualité qui respecte les chartes des moteurs de recherches, Créer des liens externes sur des sites traitant du sujet en incluant le mot-clé dans le lien (backlink). Et des Techniques interdites (par exemple par Google) : Afficher un contenu différent aux moteurs de recherches à l'aide d'un script en JavaScript (technique appelée cloaking), avec une page masquée (Technique qui est réprimandée par les moteurs de recherches. Le site sera placé sur une liste noire s'il est repéré, comme l'affaire BMW en Allemagne) Textes masqués ou liens Mots clés répétés Inadéquation entre le contenu de la page et sa description Redirection trompeuse Site ou page répété(e) (duplication du contenu) Page satellite Référencement payant Il consiste en l achat de liens sponsorisés, de mots clés comme sur l interface Google Adwords. Le site en question achète par exemple 100 mots clés qu il aura jugés pertinents. D ailleurs, les statistiques montrent que les internautes cliquent en premier sur les liens dits naturels plutôt que les liens payant. e. La maintenance : Afin d'assurer la pérennité du site, il est nécessaire de suivre son évolution, d'enrichir son contenu et de corriger les éventuelles erreurs : c'est la tâche du webmaster (qui peut aussi ~ 8 ~
avoir réalisé le site). Afin d'anticiper sur les modifications à apporter et de vérifier l'audience du site, nous aurons recours à des outils statistiques. En effet, il est utile voir indispensable de quantifier et qualifier le trafic du site. Ces outils sont soit fournis par l'hébergeur, ou bien disponibles (même gratuitement) sur Internet. Il nous renseigne notamment sur : la provenance des visiteurs (pays, site référant, moteur de recherche), les pages consultées, pendant combien de temps et à quelle heure, le nombre de visites, visiteurs et pages vues. Autant d'outils indispensables pour recadrer la maintenance et l'évolution du site tout en palliant les imperfections. Par ailleurs on ne peut parler de maintenance de site web sans noter au passage le rôle du webmaster (de l'anglais Web et du français mestre, qui a donné master en anglais), qui est une personne responsable d'un site Web, de sa conception à sa maintenance. Ainsi le terme webmestre désigne communément celui qui est en charge d'un site web.il gère tout ou une partie des domaines de la conception du site, sa mise en place technique (parfois la mission éditoriale) est comprise dans ses fonctions, il gère au jour le jour la technique et met à jour le contenu. Il prend en charge l'analyse de la fréquentation avec des outils de mesure d'audience. Il développe l'audience du site en l optimisant pour favoriser un meilleur référencement des moteurs de recherche SEO (SearchEngin Optimisation).Compte tenu du fait que les internautes considèrent qu'un site Internet présentant des fautes de grammaire ou d'orthographe décrédibilisent l'entreprise éditrice, le webmestre a une fonction importante de correction grammaticale et orthographique. 2. Système de Publication pour l'internet SPIP (Système de publication pour l'internet) est un logiciel libre destiné à la production de sites Web. Il se démarque d'un système de gestion de contenu classique par le soin apporté aux standards de l'édition (respect des règles typographiques, organisation des rôles des participants).ce logiciel privilégie la simplicité d'installation, d'usage et de maintenance, et il est largement utilisé par des réseaux de personnes, des institutions publiques ou privées.spip est un acronyme signifiant «Système de publication pour l'internet» le dernier «P» est laissé à la libre interprétation de chacun et est souvent complété par «partagé» ou «participatif», dans la mesure où ce logiciel permet surtout d'éditer collectivement un site. ~ 9 ~
Présentation SPIP est l'un des logiciels libres de gestion de contenu parmi les plus utilisés en France (environ 25 000 sites). Son langage de «squelettes» permet de produire des sites Internet aux fonctionnalités élaborées, tout en restant simple à manipuler avec un niveau modeste en informatique.les utilisateurs peuvent s'identifier sur le site public. Ils disposent alors de droits d'édition différents selon qu'ils ont le statut d'«administrateurs», de «rédacteurs» ou de «visiteurs». Les «administrateurs» et les «rédacteurs» ont accès à l'espace de rédaction du site. Les «visiteurs» peuvent s'identifier sur le site public lorsque c'est nécessaire. Technologie SPIP est un logiciel écrit en PHP qui s'appuie sur la base de données MySQL, mais aussi sur SQL ite et PostgreSQL. Il peut être utilisé comme requêter «Web multi-bases» (y compris avec des bases de données distantes).les pages du site sont générées «à la volée» : les contenus sont stockés dans la base de données et sont mis en forme au moyen de «squelettes» de présentation.ces squelettes permettent de produire les fonctionnalités qu'on peut attendre d'un site internet moderne grâce à un langage de balisage léger qui mêle le HTML a un ensemble de «boucles», de «balises» et de «filtres» documentés dans plusieurs langues.un système de cache permet doncà SPIP d'éviter des calculs redondants pour générer les pages : quand une page est demandée par un client web, SPIP vérifie d'abord si elle n'est pas déjà dans son cache avant de l'afficher. La durée de vie d'une page dans le cache est paramétrable dans son squelette de présentation. 3. Protocole de publication web : Nous avons deux protocoles de publication : la publication statique et la publication dynamique. a. Publication statique Un site web statique se présente sous la forme d une arborescence de page web situé sur un serveur Web. Ce serveur étant constamment relié au réseau Internet, le site est accessible en ~ 10 ~
permanence. Ainsi nous allons voir comment se passent les échanges et communications lors de la consultation d une page Web statique : Le client et le serveur sont raccordés via Internet. Le client exécute un navigateur Internet Le serveur est un serveur Web, il héberge un site : Il a donc à sa disposition une arborescence de pages Web. Lorsque l utilisateur désire naviguer sur le site hébergé, sur le serveur, il entre l adresse d une page dans la barre d adresse du navigateur Internet. L explorateur Internet contacte le serveur désigné par l URL en lui envoyant une requête http. Le serveur cherche dans son arborescence le fichier demandé dans la requête c est à dire (/chemin/page.html). Le fichier page HTML est ensuite envoyé au client, ainsi qu à toutes les ressources associées à la page. Une fois la page et les ressources associées sont reçues par le client, celui-ci peut interpréter le code HTML et affiche la page. Le travail du serveur Web est donc de distribuer les pages au fur et à mesure que les clients les demandent. a. Publication dynamique Dans le cas du Web dynamique, les choses sont légèrement différentes : il n'existe pas de pages HTML sur le serveur. En effet celles-ci sont générées (ou fabriquées) dynamiquement, c'est à dire, uniquement lorsque le client les demande. Dans l'arborescence du serveur Web, en lieu et place des pages Web, on trouve des scripts. Lorsque le client demande une page Web, le script est interprété par le serveur. Celui-ci contient la "recette" pour fabriquer la page avant de l'envoyer au client. ~ 11 ~
La fabrication dynamique des pages est effectuée sur le serveur par un script Pour le client, toutes ces opérations sont invisibles puisque, lorsque celui-ci demande une page en envoyant au serveur une requête HTTP, ce dernier lui renvoie bien une page Web. Dès lors, peu lui importe de savoir si cette page a été fabriquée dynamiquement ou non. Les ressources ne sont bien évidemment pas fabriquées dynamiquement. Que l'on se place dans le cadre d'un site statique ou d'un site dynamique, les images, sons et vidéos doivent être présents dans l'arborescence des fichiers du serveur. Le langage de script le plus utilisé actuellement sur le Web est le PHP (pour HyperText Processor). Il s'agit d'un langage très simple à aborder, d'où son succès croissant. On peut savoir facilement si le site sur le lequel on navigue est statique ou dynamique en regardant l'url affichée dans le navigateur. Si l'extension du fichier affiché est HTML ou HTM alors il s'agit d'un fichier HTML et donc d'une page statique. Si l'extension est différente, comme par exemple PHP ou ASP ou bien qu'elle est absente, il s'agit alors d'un site dynamique. 4. Sécurité sur la publication Un site web est une application, au même titre qu'une application lourde (un programme qui tourne sur un OS). Sauf qu'elle se situe sur le web, et interagit donc avec un ~ 12 ~
environnement très vaste et très complet. Votre application reçoit des données et renvoie des données, c'est tout. Que ce soit un navigateur, un service, un serveur, une base de données, un annuaire, ou autre [...]; votre application reste une boite noire, qu'il faut maintenir noire. Elle fournit un "service" (le site en lui même), à quelqu'un qu'elle ne connait pas, qui va lui envoyer des données, et elle va en réponse ressortir d'autres données. Ainsi la sécurité affecte tous les niveaux : l'application elle-même, mais aussi le réseau de manière plus globale et croyez bien qu'aussi minime soit-elle : si une porte est entre-ouverte, le pirate la trouvera à coup sûr. Ce qu il faut pour la sécurité Le réseau n'est pas imperméable : Une entreprise ne peut plus de nos jours fermer hermétiquement son réseau. Des millions de personnes à travers le monde utilisent Internet pour consulter la banque, effectuer des transferts de fonds, des achats, des recherches... Dans chacun des cas, des informations privées transitent sur le réseau et sont enregistrées dans un tas d'équipements différents. Pour pouvoir effectuer ces transferts d'informations, "surfer sur le web", les entreprises ont nécessairement dû ouvrir leurs firewalls et routeurs. Il y a nécessairement au minimum un endroit via lequel ces informations transitent, les firewalls constituant la défense ultime d'un réseau ne sont donc pas imperméables, et des informations fuient. On peut en déduire donc que des millions d'informations diverses, concernant des millions de personnes, sont accessibles, sur Internet. Point de vue sécurité, les firewalls, ou SSL, n'assurent qu'une petite partie. Des attaques de type XSS ou SQL injections passent à travers cela. SSL ne sert qu'à crypter le transit des informations, mais pas à s'assurer de la destination de ces informations. Et les firewalls comme déjà dit sont nécessairement ouverts, via le port 80 en général, pour assurer le service. Les grandes entreprises embauchent des spécialistes de la sécurité, pour auditer, analyser le code, mais aussi l'environnement de l'application, pour s'assurer que les bonnes données sont toujours acheminées aux bons endroits. Les failles de sécurité ~ 13 ~
Plus de 80% des sites contiennent des failles de sécurité : 8 sites sur 10, parmi ceux visités quotidiennement, contiennent une faille de sécurité mettant en danger les données des utilisateurs, et/ou de l'entreprise le maintenant. Les sociétés de sécurités travaillent pour tout un tas de comptes et en sont arrivées à cette conclusion. Les vulnérabilités permettent à un pirate d'exploiter des données personnelles, d'exécuter des commandes administrateur, de modifier la logique applicative, de planter le site. ; un sérieux impact pour les sociétés et les professionnels du web. Les failles de sécurité du web peuvent être classées en 24 familles, nous n'en survolerons que quelques unes. Quoi qu'il arrive, chaque site web vulnérable possède sa propre carte de sécurité, et n'est concerné que par certaines attaques. La non validation des données d'entrées est la cause majeure de faille : Les données reçues de l'extérieur, par l'application, d'où qu'elles viennent, ne doivent jamais être considérées comme sûres. Ceci inclut les données GET, POST, les en-têtes HTTP, les cookies... C'est un point essentiel que le développeur doit toujours garder en tête lorsqu'il travaille. Si l'information provient de quelque part, extérieur au site, il faut alors dans tous les cas, la valider, et s'assurer qu'elle convient à ce qu'on attend. Par exemple, n'accepter que les données dans un jeu de caractères attendu. Si un entier est attendu, n'accepter que les chiffres, convertir et typer systématiquement toutes les données. N'accepter une date que dans un format attendu, une adresse email doit être épurée des symboles qu'elle ne peut contenir, et s'assurer qu'elle contient ceux qu'elle doit contenir. De même, si 15 caractères sont attendus, n en attendre pas plus... Les données doivent être débarrassées des caractères qui peuvent avoir une signification spéciale dans un environnement traité : tags HTML, code JavaScript ou PHP... La base de données doit être considérée comme un support "extérieur". Si on lui fait entièrement confiance et qu'un pirate réussi à la détourner alors l application va se faire assommer. La liaison serveur SQL / serveur web (ou applicatif) doit être scrutée soigneusement. Défendez à tous les niveaux : Des grands comptes comme Google, Yahoo, Face Book ou Twitter ont été victimes d'attaques, parfois très ingénieuses. Alors que penser d'entreprises plus "moyennes"? Il faut ~ 14 ~
sécuriser tous les étages de l'application web : Validation des données d'entrées, base de données, configuration du serveur web, proxy, firewalls, cryptage de données, administration du système d'exploitation...il est nécessaire aussi de tester fréquemment la sécurité de chaque couche, ceci réduit fortement les risques Beaucoup de vulnérabilités ne viennent pas du code source : L'analyse seule du code ne révèle pas tout. Le système est généralement branché via de multiples endroits, à de multiples services, tels qu'une base de données, des services web, des annuaires, des sources de données diverses. Plus la complexité de l'architecture est élevée, plus il est difficile d'imposer un développement sécurisé, et une qualité de service. Des codes de débogages qui trainent en commentaires, des fichiers non utilisés mais gardés en version finale, diminuent la sécurité générale d'un projet. Une application en version de production doit être auditée à part des versions de développement, et après que le service de qualité soit passé. Un pirate est malin, rapide et a du flaire, s'il veut et qu'il peut vous trouver : il vous trouvera. Une mise à jour de code doit entrainer une revérification de la sécurité : Les applications actuelles des grandes entreprises sont constamment en développement, et sont souvent mises à jour. Parfois la logique change profondément, ainsi que l'environnement général du site. Les développeurs sous pression ont tendance alors à aller vite et bâcler certains passages, alors qu'un tout petit bout de code peu faire brutalement chuter la sécurité. Des processus d'analyse de code et d'audit doivent être planifiés avec des professionnels. Le Cross Site Scripting est une attaque qui revient très souvent, car très vicieuse et pouvant provoquer de gros dégâts. Elles constituent une nouvelle forme de virus informatique. Myspace a du fermer en 2006 pendant 24heures à cause d'une attaque XSS, alors qu ils hébergeaient 32 millions de comptes utilisateurs... Le patch d'une faille nécessite une mise à jour du code : On ne s'en rend pas bien compte sur les applications clients lourds. Un patch est téléchargé puis "bêtement" appliqué. Mais pour une application web, la résolution d'un problème de ~ 15 ~
sécurité entraine la réécriture de certaines, voire beaucoup de parties du code. Cette réécriture pouvant elle-même être source de nouvelles failles. Une bonne sécurité repose sur des logiciels et des personnes professionnelles : Un logiciel tel qu'un scanner va faire apparaitre des failles techniques. Mais seule une analyse manuelle d'un expert peut faire remonter des failles de types logique, qui nécessitent qu'un certain contexte soit crée (faux compte utilisateur, vol d identité). Les entreprises doivent exigées la certification des compétences des développeurs. En effet, combien trouve-t-on de développeurs qui ne savent même pas ce qu'est le modèle réseau OSI, alors qu'ils développent des applications réseau? Un développeur web doit connaitre le fonctionnement d'internet et des réseaux afin de maitriser clairement chaque ligne de code qu'il va produire. II. HEBERGEMENT Un hébergeur Internet (ou hébergeur Web) est une entité ayant pour vocation de mettre à la disposition des internautes des sites web conçus et gérés par des tiers. Il donne ainsi accès à tous les internautes au contenu déposé dans leurs comptes par les webmestres souvent via un logiciel FTP ou un gestionnaire de fichiers. Pour cela, il maintient des ordinateurs connectés 24 heures sur 24 à Internet (des serveurs web par exemple) par une connexion à très haut débit (plusieurs centaines de mbps), sur lesquels sont installés des logiciels : serveur HTTP (souvent Apache), serveur de messagerie, de base de données... 1. Les différents types d hébergement La plupart des offres d'hébergement sont regroupées en quatre grandes catégories : a. Hébergements par site principal Pour héberger un site il faut être capable de répondre à la question suivante : Dans quel répertoire doit-on mettre le contenu du site à publier? Ce répertoire est appelé root. Par exemple le répertoire root pour apache sur ubuntu est /var/www/html ~ 16 ~
Le fichier par défaut dont le contenu est affiché est directory index. Pour accéder à ce principal il faut directement taper l adresse du serveur web. b. Hébergement par dossier C'est-à-dire on crée un dossier dans le répertoire root du serveur et on met le contenu du sitepour y accéder il faut saisir l adresse suivante : http:\\ adresse IP nom du dossier. c. Hébergements par site virtuel Les sites virtuels sont comme des sites principaux avec leur répertoire root, leur fichier index, leurs numéros de port d écoute et leur nom d accès Exemple : Site1 http:\\ poste1.nom complet du domaine Site2 http:\\www.nom complet du domaine d. Hébergement site personnel Pour accéder au site personnel il faut saisir l adresse suivante: Http:\\ adresse IP\ nom utilisateur L Algorithme : Créer un dossier dans le répertoire de base ayant droit 755 et y copier le contenu du site. Le répertoire de base doit avoir les droits 711. 2. Types d architectures a. Architecture un tiers : ~ 17 ~
Ce type d architecture (dite monolithique) est l un des plus anciens, il remonte à l âge d or des mainframes12. Dans ce type de configuration, la présentation est conçue dans le mainframe et visualisée sur le terminal passif. Cette approche est de type centralisée et ne répond pas à nos besoins (voir figure). Tiers est à prendre au sens anglais, c'est-à-dire niveau ou couche Les 3 couches (présentation, traitement, stockage) sont réunies sur un même poste. C'est le cas par exemple d'un SI qui utilise une application pour gérer les factures, les produits, les clients, cette application étant hébergée uniquement sur le poste du chef d'entreprise. ~ 18 ~
b. Architecture 2 tiers L architecture 2-tiers (tiers signifiant étage en anglais) caractérise les systèmes clients/serveurs dans lesquels le client demande une ressource et le serveur la lui fournit directement. Cela signifie que le serveur ne fait pas appel à une autre application afin de fournir le service.ce type d architecture est apparu au même moment que les ordinateurs personnels (Personal Computer - PC). Cette construction est très populaire pour les architectures client/serveur et constitue actuellement le minimum quand on veut travailler avec les bases de données. (Voir figure) ~ 19 ~
Dans cette approche, le client est responsable de la couche de présentation, et le serveur prend en charge la couche logique de l application et la gestion des ressources. Les avantages principaux de cette architecture sont : Le développement d'une architecture 2-tierspeut être réalisé rapidement dans la plupart des cas, mais cela dépend de la complexité du projet. Du moment que les couches logique de l application et gestion des ressources sont au même niveau, la communication entre elle, est très efficace. Les inconvénients sont : Le fait que les couches logiques d application et la gestion des ressources soient au même niveau, nécessiterait une machine plus puissante pour les héberger, ce qui implique un coût matériel nécessaire plus élevé. Dans la mesure où le logiciel client est généralement spécifique au serveur, cette architecture doit faire face aux problèmes de contrôle des évolutions, ce qui implique que toute modification au niveau serveur peut avoir un impact sur la logique de fonctionnement de l'application client, ce qui nécessiterait des changements dans cette application, et donc sur tous les postes sur lesquels elle serait installée. ~ 20 ~
III. La mise en œuvre d un hébergeur 1. Sous Windows : Dans ce cas nous allons prendre comme exemple le serveur IIS Première étape : Atteindre les composants de Windows et installer IIS. Déroulez le menu "Démarrer", en bas et à gauche dans la barre de tâches, puis cliquez sur "Panneau de configuration" Ou bien, en déroulant ce menu Démarrer, vous cliquerez sur "Exécuter", pour faire apparaître la commande correspondante, dans laquelle vous taperez "appwiz.cpl" Dans la fenêtre du panneau de configuration, cliquez sur le lien "Ajouter ou supprimer des programmes". Cliquez sur "Ajouter ou supprimer des composants Windows" Cochez la case qui se trouve à gauche de "Services Internet (IIS)", puis cliquer sur "Suivant", puis suivez les instructions qui vont se succéder. ~ 21 ~
Pour aller plus loin, et avant de commencer, cliquez d abord sur "Détails...", afin de connaître tous les sous composants de "IIS" En général, les sous composants de "IIS", proposés dans cette fenêtre, peuvent parfaitement convenir pour une utilisation courante de ce service. ~ 22 ~
Si vous êtes expérimentés, vous n installerez que les composants, lesquels vous seront utiles, puis cliquerez sur "OK". Si vous hésitez, vous laisserez en place les composants par défaut, et cliquerez sur "Annuler" pour revenir à l interface précédente, et poursuivre normalement l installation de IIS Cliquez sur "Suivant" pour poursuivre l installation. Patientez pendant la copie des fichiers d installation. ~ 23 ~
Préparez le CD-ROM contenant la copie originale de votre système d exploitation Windows XP. En cliquant sur "OK", Vous déclencherez l apparition de la fenêtre ci-dessous, laquelle vous offre deux possibilités pour copier les fichiers nécessaires à l installation : "OK", en haut et à gauche de la fenêtre tout en ayant, au préalable, pris la précaution il s agit d une toute première installation du composant "IIS" : dans ce cas cliquez sur d installer le CD-ROM original contenant votre version de Windows XP, dans votre lecteur de CD, CD- ROM et/ou DVD-ROM. Il s agit d une réinstallation du composant "IIS" : dans ce cas, cliquez sur "Parcourir", pour indiquer à Windows, le répertoire à partir duquel il doit copier les fichiers nécessaires à l installation de votre composant. Pour mémoire : Ces fichiers se trouvent dans le répertoire i386 du CD-ROM de Windows. Si vous êtes amenés à réinstaller souvent ce composant, il vous sera utile de le copier d emblée dans un répertoire de votre disque dur, afin de ne pas avoir recours au CD-ROM de votre système d exploitation, pour le réinstaller de nouveau. Cependant, si vous copiez le répertoire i386 sur votre disque dur, prévoyez beaucoup de place, car il vous faudra au moins 500 Mo d espace disque libre. Dans l image ci-dessous le répertoire indiqué est le lecteur de CD-ROM, représenté par la lettre "D", et le système d exploitation s apprête donc à copier les fichiers contenus dans le dossier i386, lequel se trouve à la racine du CD-ROM original contenant la version originale de Windows XP Professionnel. ~ 24 ~
Pour mémoire, l image ci-dessous, montre l emplacement du répertoire i386, à la racine de votre lecteur de CD-ROM (dans cet exemple, le lecteur de CD-ROM est désigné par la lettre D. Si vous procédez à une première installation du composant "IIS", l introduction de votre CD- ROM contenant votre version originale de Windows XP, fera apparaître le fenêtre suivante, illustrée dans l image ci-dessous ~ 25 ~
Pour poursuivre votre installation du composant "IIS", vous devez quitter cette fenêtre qui apparaît systématiquement et automatiquement à chaque introduction de votre CD-ROM en cliquant sur la commande de fermeture représentée par une croix, en haut et à droite de cette fenêtre. Avant de quitter cette fenêtre, vous aurez sans doute remarqué, que vous pouviez également installer le composant "IIS" à partir de cette fenêtre, et donc directement à partir du CD-ROM contenant votre version originale de Windows XP. A la fin de l installation, cliquez sur le bouton "Terminer" pour quitter l assistant "Composants de Windows". Deuxième étape : structure et configuration du serveur web virtuel sous IIS Dans cette deuxième étape, vous allez : Vérifier : Que l installation de votre serveur IIS, a automatiquement installé à la racine de votre disque local "C", un dossier nommé "Inetpub", lequel est le dossier racine de votre serveur "ISS". Que ce dossier racine "Inetpub", contient bien plusieurs dossiers de fichiers, dont un dossier nommé "wwwroot" Que le chemin du dossier ou répertoire nommé "wwwroot" est bien Inetpub\wwwroot\ À créer votre premier répertoire web virtuel dans votre serveur IIS. Localisez le dossier racine "Inetpub", installé automatiquement à la racine de votre disque local "C" par l installation de IIS. ~ 26 ~
Ouvrez le dossier "Inetpub" et remarquez la présence obligatoire de cinq dossiers, dont le dossier "wwwroot", celui qui va tout particulièrement nous intéresser. ~ 27 ~
Ouvrez le dossier "wwwroot" qui contient déjà par défaut, plusieurs fichiers, dont certains portent l extension ASP (de : Active Server Page). La page dynamique localstart.asp est une page de démarrage, pour ce dossier "wwwroot" Sélectionnez le fichier "localstart.asp ", contenu dans le répertoire racine,"wwwroot", et ouvrez-le. La page que vous afficherez, comporte des éléments vous indiquant très grossièrement le fonctionnement du serveur IIS que vous venez d installer. Cependant, et avant de refermer cette page, notez bien la structure de son chemin complet dans la zone de liste déroulante de votre navigateur Internet: C : \Inetpub\wwwroot\localstart.asp ~ 28 ~
Cette structure de chemin, vous aidera à comprendre la signification précise de la syntaxe du répertoire racine, lorsque vous créerez vos premières pages web dynamiques avec leurs extensions spécifiques ASP et/ou ASPX. Dans le panneau "Exécuter", tapez la commande "inetmgr" pour ouvrir et accéder à votre serveur IIS. Déroulez, dans la fenêtre de votre serveur IIS, le nœud du dossier "Sites web", pour faire apparaître la dépendance "Site Web par défaut", sur laquelle vous appliquerez un clic droit, puis un clic gauche, successivement sur la commande "Nouveau", et "Répertoire virtuel..." ~ 29 ~
Désignez un alias pour votre répertoire virtuel, lequel va représenter le nom de votre dossier de site racine, qui sera en vérité, le même que celui que portera le nom de votre répertoire de site web virtuel. Pour cet exemple, le nom du répertoire web virtuel, choisi au hasard, est Local-Site-A. Cliquer sur "Suivant", pour continuer. Cliquez sur le bouton "Parcourir" afin de créer votre répertoire de site web virtuel, et le placer à la racine de votre disque C. ~ 30 ~
Localisez le dossier "inetpub", à la racine du disque local «C», et mettez-le en surbrillance. Localisez le dossier "wwwroot", enfant du dossier "Inetpub", et mettez-le en surbrillance. Tout en laissant le dossier "wwwroot" en surbrillance, comme le montre l image cidessus, cliquez en bas et à gauche de la fenêtre représentée par l image ci-dessous, sur le bouton "Créer un nouveau dossier", afin de créer un dossier, auquel vous attribuerez le nom de "Local-Site-A". ~ 31 ~
Quittez cet assistant afin d afficher la structure de votre nouveau répertoire virtuel. Remarquez, notez, et explorez la structure du répertoire virtuel nommé Local-Site-A, que Vous venez de créer. Structurer et configurer un serveur web virtuel sous IIS ~ 32 ~
Troisième étape : Configurer, et tester vos pages dynamiques ; observer quelques règles de sécurité. Cette dernière étape comprend deux sous-étapes : La configuration et le test des pages dynamiques, laquelle reposera entièrement sur l utilisation du Bloc-notes de Windows, pour vous montrer un exemple de procédure basique de création. Et d affichage de page dynamique avec utilisation de la technologie ASP.NET. L énumération de quelques règles basiques de sécurité concernant votre serveur IIS Configuration et test des pages dynamiques Copier, dans son intégralité, et dans le Bloc-notes de Windows, le code ci-dessous. ~ 33 ~
Cliquez sur "Enregistrer sous...", du menu "Fichier", localisez et placez le dossier "Local-Site- A", créé à la racine du dossier "wwwroot", enfant du dossier "Inetpub", à la racine du disque local C, devant la zone de texte "Enregistrer dans", puis nommez votre fichier du Bloc-notes "index.asp", puis cliquez sur le bouton "Enregistrer" Maintenant, ouvrez votre navigateur Internet et tapez l adresse suivante : http://localhost/local-site-a/index.asp pour obtenir l affichage de votre page index.asp, comme l illustre bien l image ci-dessous. Note : Localhost est le nom de votre machine locale.local-site-a est le nom de votre répertoire virtuel.index. asp. est la page que vous venez de créer et qui vient d être traitée par le serveur IIS, que vous venez d installer. ~ 34 ~
Vous allez maintenant créer véritablement en la programmant, votre première page dynamique avec la technologie ASP.NET, afin de l afficher à l aide de votre navigateur, et tout en utilisant la méthode basique de la programmation simple à partir du Bloc-notes de Windows. Copiez ou coller l intégralité de ce code dans le Bloc-notes de Windows Ouvrez votre navigateur Internet et tapez dans la barre d adresse ceci : http://localhost/local-site-a/index.aspx et observez le résultat produit, tel que l illustre l image ci-dessous. ~ 35 ~
Vous remarquerez que l affichage de cette page a nécessité beaucoup moins de code que celui qui a été nécessaire à l affichage de votre page ASP simple (qui est en somme, et dans l exemple précédent, une page HTML simple, ne comportant pas encore d éléments dynamiques). Internet Explorer, doit compiler le code nécessaire à l exécution de votre page, aussi ne vous étonnez pas, si votre page ne s affiche pas instantanément. Afficher, par curiosité, la source de cette page par un clic droit à un endroit vide de cette page, afin d observer le code source de la page affichée, tel qu il a été renvoyé par votre serveur IIS vers votre navigateur, et remarquez la différence de contenu de ce code avec celui que vous avez initialement écrit dans le Bloc-notes de Windows. ~ 36 ~
Ajouter un peu de fantaisie à votre page et à peu de "frais", en copiant ce code dans le Blocnotes Enregistrer ce fichier sous le nom de index.aspx dans le dossier Local-Site-A, puis lancez de nouveau votre navigateur Internet, et tapez l adresse : http://localhost/local-site-a/index.aspx, pour observer le résultat produit. ~ 37 ~
Le code ASP.NET, qui a permis de centrer votre texte et de lui donner un certain attrait visuel, n a nécessité que l ajout d un couple de balises par rapport au code précédent : la balise d ouverture <center>, et la balise de fermeture correspondante </center>. Appliquez un clic droit à un endroit vide de cette page, puis cliquez sur la commande "Afficher la source" du menu contextuel, pour observer le code HTML produit, et donc renvoyé par votre serveur IIS, vers votre navigateur Internet, et remarquez qu il est beaucoup plus long, que celui qui a nécessité l affichage de la même page, par programmation ASP.NET Les quelques règles de sécurité Cette toute dernière partie de cette étape vous indiquera très rapidement quels sont les moyens à mettre en œuvre afin de suspendre pour une raison quelconque, de manière prolongée ou brève, l affichage de vos pages web, en agissant directement sur votre serveur web IIS. Dans la fenêtre "Exécuter" du menu "Démarrer", tapez : services.msc, puis cliquez sur le bouton "OK" Cliquez à droite sur le libellé «Administration IIS», puis cliquez à gauche sur l action souhaitée pour ce service : «Arrêter» «Mettre en pause» «Redémarrer» ~ 38 ~
Cliquez sur bouton "Oui" quelle que soit l action précédente, que vous avez réalisée. Il existe aussi une autre façon de suspendre l activité de votre service IIS : Si vous souhaitez cette fois arrêter votre service IIS, de manière durable, taper dans la commande "Exécuter" du menu "Démarrer" l instruction suivante : msconfig, puis cliquez sur "OK" Dans l onglet "Services" de l utilitaire de configuration système de Windows, décochez la case correspondante au Service "Administration IIS", puis cliquez sur "OK" ~ 39 ~
Cliquez sur le bouton "Redémarrer", car en effet, il est toujours recommandé de redémarrer, afin que vos modifications prennent immédiatement effet. Bien entendu, vous pouvez toujours remettre ce service IIS en fonctionnement, en procédant exactement à l inverse de ce que vous venez de faire pour le désactiver. Si tel est votre cas, en ne souhaitant plus redémarrer automatiquement votre service IIS, et pour un intervalle de temps indéterminé, cochez la case correspondante à ce message, puis validez votre choix en cliquant sur le bouton "OK" pour quitter cette fenêtre ~ 40 ~
2. Sous Linux Dans ce cas nous allons prendre comme exemple APACHE Installation et configuration du serveur DNS (BIND) L installation du DNS (BIND) sur Ubuntu se fait avec la commande suivante : apt-get install bind9 Haut du formulaire Bas du formulaire Configuration de BIND Considérons les aspects suivants : Le réseau local est 192.168.251.* et se nomme estm.sn. La machine serveur DNS est aussi le serveur de mail et porte l'ip 192.168.251.202; elle se nomme poste La configuration principale de BIND se fait dans le fichier /etc/bind/named.conf. Si vous voulez ajouter vos propres zones, il faut le faire dans le fichier /etc/bind/named.conf.local Dans ce fichier, on définit un certain nombre de zones. Une zone correspond soit à une plage IP d'un réseau ou à un nom de domaine. ~ 41 ~
On définit deux zones pour avoir la résolution de nom dans les deux sens. C'est-à-dire que l'on peut obtenir une adresse IP à partir d'un nom d'hôte mais également, que l'on peut obtenir un nom d'hôte à partir d'une adresse IP. Une zone avec un nom de domaine se définit comme ceci : zone "estm.sn" IN { type master; file "poto.sn"; }; Attention à ne pas oublier le ; à la fin On indique tout d'abord le nom de la zone que l'on connaît avec le mot clé zone suivi du nom de domaine (dans notre cas, «estm.sn". On indique que c'est le DNS maître (en effet, on peut avoir un ou des DNS de backups qui sont aussi appelés des DNS secondaires) en indiquant type master. Et enfin, on indique dans quel fichier se trouvent les informations de résolution concernant cette zone. En général, on place ces fichiers dans /etc/bind/ et on préfixe le nom de la zone par db. Nous définissons également la zone de plage IP pour la résolution inverse. Pour se faire, nous utilisons les mêmes paramètres. Cependant, le nom de la zone s'écrit avec la plage réseau inversée suivi de.in-addr.arpa. L'entrée de zone pour notre réseau 192.168.251.* s'écrit comme ceci : zone "251.168.192.in-addr.arpa" IN { type master; file "invpoto.sn"; }; Nous en avons fini avec le fichier de configuration générale. Voyons maintenant comment définir les noms des machines présentes dans une zone. Les fichiers zones : On va créer le fichier poto.sn et invpoto.sn dans le repertoire /var/cache/bind. ~ 42 ~
On se déplace dans cd /var/cache/bind/ On copie le fichier direct cp /etc/bind/db.localestm.sn On édite estm.sn nano poto.sn On ajoute dans ce fichier zone : On enregistre et on sort. On copie le fichier cp /etc/bind/db.127 invpoto.sn On édite le fichier inverse : ~ 43 ~
nano invpoto.sn et on ajoute Apres on édite le fichier resolvconf: nano /etc/resolv.con On enregistre on sort Après on redémarre BIND: /etc/init.d/bind9 restart Les valeurs qui suivent sont respectivement : le numéro de série (souvent on met la date courante suivie d'un numéro d'ordre); AAAAMMJJxx. le temps de rafraichissement (refresh; ici, 8 heures); la valeur recommandée est de 24 heures. le temps entre deux essais (retry; ici, 2 heures); la valeur recommandée est de 2 heures. le temps d'expiration (expire; ici, 1 semaine); la valeur recommandée est de 1000 heures. la valeur TTL minimum (minimum; ici, 1 jour); la valeur recommandée est de 2 jours. En utilisant les valeurs stipulées ci-dessus, tout devrait fonctionner. Installation et configuration du serveur Apache L installation d Apache2 sur Ubuntu se fait avec la commande suivante : apt-get install apache2 ~ 44 ~
apt-get install apache2.2-common Configuration d apache2 LE fichier de configuration de apache c est : /etc/apache2.conf Le serveur root nous renseigne sur le répertoire contenant les fichiers de configuration /etc/apache2 (répertoire par défaut). Les fonctionnalités disponibles et possibles d apache sont sous forme de fichier.load et.conf dans le répertoire : /etc/apache2/mods-availabled/*.load /etc/apache2/mods-availabled/*.conf Alors tous les fonctionnalités utilises actuellement se trouvent dans le répertoire modsenabled. /etc/apache2/mods-enabled/*.load /etc/apache2/mods-enabled/*.conf ~ 45 ~
Exemple: si onveut faire apache comme serveur proxy On se déplace dans: cd /etc/apache2/mods-availabled On copie les fichiers proxy.load et proxy.conf : cpproxy.loadproxy.conf /etc/apache2/mods-enabled On se déplace dans le mode enabled : cd /etc/apahe2/mods-enabled On édite le fichier port.conf : nano /etc/apache2/ports.conf On définit le port listen 80 et listen 8080 On se déplace dans : /etc/apache2/sites-enabled/ ~ 46 ~
Les sites pouvant être hébergé par notre serveur web sont déclarés dans un fichier se trouvant dans ce répertoire ci-dessous. Cd /etc/apache2/sites-enabled/ Nano 000-default Le document root : /var/www/ Il nous renseigne sur le répertoire qui contient mes pages web Directory index : Nous renseigne sur le fichier qui sera affiché par défaut Exemple : si on cherchait estm.sn Serevernamewww.poto.sn Nous renseigne sur le nom d hôte Hébergement par sous répertoire Cd /var/www On crée un répertoire : mkdir site On copie : cp index.html site/ On édite : nano site/index.html Pour afficher le site on démarre notre navigateur on met : ~ 47 ~
www.poto.sn/site Hébergement multiple Cd /etc/apache2/sites-enabled/ Nano 000-default Pour hôte virtuel Namevirtualhost 192.168.1.10 <virtualhost 192.168.1.10> Document root /var/www Serveurname www.poto.sn </virtualhost> Apres on enregistre et on sort Cd /var/www Cp index.html Nano index.html on met le contenu de notre site. On enregistre et on redémarre /etc/init.d/apache2 restart Installation et configuration du serveur FTP Le service est un service de transfert de fichier qui utilise le port 20 pour les données et port 21 pour les requêtes il y a des manières de se connecter sur les serveurs ftp. Installation du serveur FTP Pour installer le serveur FTP, tapez : apt-get install vsftpd Configuration du serveur FTP Par anonyme : Anonymes (login) Mot de passe : vide Utilisateur authentifié : Une fois connecté on est dans son répertoire de base ~ 48 ~
comment se connecter à un serveur ftp # ftp IP serveur > ftp ip serveur get nom du fichier (obtenir => sur le fichier ) put nom du fichier (mettre= >sur le fichier) m get nom fichier (obtenir tout un fichier ) m put nom fichier (mettre tout un fichier) si on a des choses a envoyé sur le serveur qui se trouve dans un dossier il est important avant de faire la commande ftp d aller dans le dossier NB: comme les utilisateurs d un serveur ftp peuvent être à la fois des prisonniers ou des hommes libres les commandes ftp peuvent être des commandes DOS ou des commandes LUNIX. Quelques implémentations de ftp. Plusieurs serveurs ftp uw- ftpd,protfpd,voftpd # apt-get install vsftpd (verrouille secury ftp) avec vsftpd on peut : Mettre un banner (mettre un bienvenue) / etc/vsftp.conf ftp-banner= (bienvenue sur le fichier ftp ) confirme les users dans leurs répertoires de base chroot_ local_user= yes La configuration du serveur FTP se fait en éditant le fichier /etc/vsftpd.conf Pour éditer ce fichier, faites : nano /etc/vsftpd.conf Interdire le FTP anonyme changez la ligne : anonymous_enable=yes anonymous_enable=no Autoriser les utilisateurs locaux à se connecter ajoutez : local_enable=yes Cela permettra aux utilisateurs déclarés dans Ubuntu d'utiliser le même login/mot de passe pour accéder au serveur FTP. ~ 49 ~
Autoriser les utilisateurs à uploader des fichiers ajoutez : write_enable=yes Par défaut le serveur FTP sera en écoute sur toutes les interfaces. Redémarrez le serveur FTP pour qu'il prenne en compte la configuration que nous venons de modifier, tapez : /etc/init.d/vsftpd restart CONCLUSION : La publication et l hébergement sont des services très importants dans la conception et le développement d un site web. Aussi pour atteindre l objectif qui est de réaliser celui ci, il a fallu passer par différentes étapes incontournables pour le succès de ce dernier. Par ailleurs les coûts pour sa réalisation restent à être évalués tout en sachant tout de même qu il faut plus ou moins de grands moyens financiers. Néanmoins il faut souligner au passage que les grands points de ce projet ont été traités. ~ 50 ~