Configuration des services sous Linux. Yann-Érick proy yeproy@quartz.fr Quartz Informatique (Argonay)



Documents pareils
SERVEUR HTTP Administration d apache

Dans l'épisode précédent

Module 7 : Configuration du serveur WEB Apache

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

TP Service HTTP Serveur Apache Linux Debian

Les serveurs WEBUne introduction

CYBERGATE -TP-APACHE_2.DOC

Titre: Version: Dernière modification: Auteur: Statut: Licence:

2011 Hakim Benameurlaine 1

Installation d un hébergement Web à domicile

UE5A Administration Réseaux LP SIRI

Serveur Subversion Debian GNU/Linux

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Apache 2.4 Installation et configuration

Le serveur web Apache

REPARTITION DE CHARGE LINUX

Différentes installations sur un serveur Windows 2000 ou 2003.

Préparation d un serveur Apache pour Zend Framework

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Hébergement de site web Damien Nouvel

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Configuration du serveur Web Apache. Master 1 STIC-Informatique 1

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

Table des matières Hakim Benameurlaine 1

Architectures web/bases de données

Procédure d'installation

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Procédure d'installation du serveur Apache HTTPD pour Windows

Installation et configuration d Apache sous Linux RedHat 7.1. Pascal AUBRY Ambroise DIASCORN IFSIC Université de Rennes 1

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Réaliser un inventaire Documentation utilisateur

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE:

L3 informatique TP n o 2 : Les applications réseau

Maîtriser Apache. Benjamin Drieu. version

Le serveur Web : Apache

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Tutoriel compte-rendu Mission 1

Mandataires, caches et filtres

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

Serveurs de noms Protocoles HTTP et FTP

Apache en tant que reverse proxy

Installation et présentation du serveur Apache

Installation Installation. Windows. Tout-en-un. Un livre de Wikilivres.

Administration Linux - Apache

Serveur d application WebDev

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Internet. Web Sécurité Optimisation

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

CDS Invenio Installation et configuration de base

APACHE 2.4. Installation et configuration. Nicolas MARTINEZ

Serveurs et environnements de développement. Serveur Web

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

BTS SIO Dossier BTS. PURCHLA Romain

Hébergement de sites Web

Protection des protocoles

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Aubert Coralie, Ruzand Brice GTR 2002 Bonvarlet Manuel, Desroches Alexandre, Magnin Cyril DRT Notice technique 1

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

DOCUMENTATION ADMINISTRATEUR

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Appropriation d'un serveur Apache

Présentation Serveur Apache et pour RePeGlio

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Application Web et J2EE

ADF Reverse Proxy. Thierry DOSTES

Gérer ses environnements de développement avec Vagrant RMLL 2012

Programmation Internet Cours 4

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

Administration réseau sous Linux

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Mac OS X Server Administration des technologies Web. Pour la version 10.3 ou ultérieure

Séquence 8 - Bases des réseaux - suite Jean.Saquet@info.unicaen.fr, Gaetan.Richard@info.unicaen.fr

Outils de traitements de logs Apache

Installation et configuration de Vulture Lundi 2 février 2009

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

1. La plate-forme LAMP

Petit guide pour l installation de CVW sous Linux

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

Services d impression, Partie 2 : CUPS

Linux sécurité des réseaux

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

Systèmes en réseau : Linux 1ère partie : Introduction

Simple Database Monitoring - SDBM Guide de l'usager

Vulnérabilités et sécurisation des applications Web

Protection d'un serveur Apache

Transcription:

Configuration des services sous Linux Yann-Érick proy yeproy@quartz.fr Quartz Informatique (Argonay)

Configuration des services sous Linux Quels réseaux? Service web : Apache Présention Configuration Sécurisation Extension

Quels réseaux? Service serveur Où le placer? sur le LAN services internes, privés (Intranet) accès éventuel via un VPN sur l'internet services publics (authentification éventuelle)

Quels réseaux? Sur l'internet Quelle connectivité? Sur site : connexion ADSL - IP dynamique (dyndns?) - IP fixe en option (Orange) ou systématique (Nerim) liée au dégroupage, ou au triple-play Points faibles : fiabilité, débit, upload

Quels réseaux? Sur l'internet Sur site : connexion xdsl - débit garanti (tout ou partie) - GTR (H+4, 24h/24, 7j/7) - débit symétrique (SDSL, upload 1024, 2048) - opérateurs Nerim, Easynet, Completel,... Points faibles : prix, ligne, salle

Quels réseaux?

Quels réseaux? Chez un hébergeur technique - hébergement mutualisé - serveur dédié (loué) - baies ou demi-baies (traffic en sus) - opérateurs : OVH, Sivit, Amen, Ikoula,... Points faibles : accès physique, compétences nécessaires

Service Web Apache, serveur HTTP

Présentation d'apache Rappel chronologique 1989, Tim Berners-Lee propose les premières bases d'http (Hypertext Transfer Protocol) au CERN 1991, il publie le premier navigateur, "WorldWideWeb", avec le serveur correspondant 1993, NCSA Mosaic 1.0, 1er navigateur populaire (icônes, signets, etc), co-écrit par Marc Andreessen, 1994, Marc Andreessen fonde Netscape, avec Jim Clark, ex de Silicon Graphics 1994, RFC 1738 (URL) 1995, Apache Group 1996, RFC 1945 (HTTP/1.0) 1998, Netscape, définitivement battu par Microsoft dans sa guerre des navigateurs web, délivre les sources de Netscape Navigator et fonde le groupe de développement Mozilla 1999, Apache Software Foundation 1999, RFC 2616 (HTTP/1.1)

Présentation d'apache Leader : environ 60% des serveurs web (serveurs MS, IIS etc : 30%)

Présentation d'apache Apache vs Microsoft IIS gros effort depuis 1 an de MS afin de remonter la pente passé de 20 à 30% en 1 an, pris sur Apache prix sacrifiés des licenses Windows 2003 Serveur Web Edition chez les hébergeurs

Présentation d'apache Apache Software Foundation Organisation à but non lucratif US, créée en 1999 Fondateurs : Apache Group, depuis 1995 développeurs du serveur Apache sur la base du serveur HTTPD de NCSA Comité de direction ASF : chercheurs, développeurs influents, venant de l'université ou de grands noms de l'industrie (IBM, Google, Covalent, etc)

Présentation d'apache Apache Software Foundation Ken Coar Greg Stein

Présentation d'apache Apache Software Foundation Donations : matériels et autres par Apple, HP, IBM, Sun Autres projets : Tomcat (serveur Java), SpamAssassin (anti-spam), mod_perl (module perl pour Apache), etc

Configuration d'apache Open-source = diversité Versions : Apache 1.3 ou 2.0 (2.2) (version 2.0 disponible depuis 2000!) Emplacements : installation par défaut depuis les sources : /usr/local/apache/conf Debian stable : /etc/apache2 RedHat, Fedora et Mandriva : /etc/httpd/conf et /etc/httpd/conf.d Idem noms des fichiers, emplacement des sites.

Configuration d'apache Configuration d'apache = directives Fichier principal : httpd.conf, apache2.conf, etc Directive Include : diviser en plusieurs fichiers Include /etc/apache2/ports.conf Include /etc/apache2/conf.d/[^.#]* Une directive par ligne. Caractère «\» en fin : poursuite sur la ligne suivante. Caractère «#» en début : commentaire.

Configuration d'apache Portée des directives Certaines directives définissent une portée : <Directory>... </Directory> <Files>... </Files> <Location>... </Location> <VirtualHost>... </VirtualHost> Directive hors de toute portée : tout le serveur. Pour chaque directive : contexte d'emploi

Configuration d'apache Au lancement du serveur. Relecture : Lecture de la configuration /etc/init.d/httpd restart /etc/init.d/httpd reload killall -HUP httpd Mais : privilèges nécéssaires, affecte tout le serveur

Configuration d'apache Fichiers.htaccess Configuration à la volée Pas de signal à envoyer au serveur. Nouvelle portée : répertoire contenant.htaccess Nouveau contexte d'emploi : quelques directives Faculté limitée par une directive : AllowOverride Exemple : None AuthConfig Indexes

Configuration d'apache Principales directives Répertoire de base pour la configuration : ServerRoot Mention de l'administrateur (messages d'erreur) : ServerAdmin Adresses et ports écoutés : Listen (adresse:port, *:port possible)

Configuration d'apache Principales directives Fichiers admissibles pour l'index d'un répertoire : DirectoryIndex Exemple classique : DirectoryIndex index.html index.htm index.php Gestionnaires pour les fichiers qui ne sont pas à renvoyer tels quels : AddHandler Exemple pour les CGI : AddHandler cgi-script.cgi

Configuration d'apache «Scripts» CGI Common Gateway Interface : interface permettant de passer le contrôle à un programme tiers. Suivant la méthode de l'appel (get ou post) les éventuels paramètres sont fournis via la variable d'environnement QUERY_STRING ou via l'entrée standard. Le serveur HTTP reçoit le résultat sur la sortie standard et l'envoie au navigateur.

Configuration d'apache «Scripts» CGI Le serveur appelle le programme dans les conditions de l'os. Sous UNIX (Linux en particulier) : fichier exécutable binaire : exécuté tel quel fichier texte : on cherche un interpréteur en première ligne, s'il existe il est exécuté sur le fichier

Exemples : Configuration d'apache «Scripts» CGI scripts bash (shell) : #!/bin/bash scripts perl : #!/usr/bin/perl scripts php : #!/usr/local/bin/php Un exécutable binaire peut avoir été programmé en C, C++, etc : «script CGI» est un abus de langage!

Configuration d'apache Principales directives Fonctionnalités particulières : Options [+] [-]Indexes [+] [-]FollowSymLinks [+] [-]ExecCGI [+] [-]Includes... Il n'est pas toujours souhaitable d'autoriser le listage d'un répertoire, le suivi des liens symboliques, l'exécution des CGI ou les macros SSI (Server Side Includes).

Configuration d'apache Journal global des erreurs : ErrorLog Principales directives Journal des accès : CustomLog (+ format) Format = «combined» (standard) ou détaillé

Configuration d'apache Journal des accès "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" 74.6.73.52 - - [20/Feb/2007:14:04:42 +0100] "GET /quartz_info/n02/quartzinfo2.pdf HTTP/1.0" 200 3069953 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" 80.11.66.3 - - [20/Feb/2007:14:08:25 +0100] "GET / HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322;.NET CLR 2.0.50727)" 80.11.66.3 - - [20/Feb/2007:14:08:25 +0100] "GET /styles.css HTTP/1.1" 304 - "http://www.quartz.fr/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322;.NET CLR 2.0.50727)"

Configuration d'apache Serveur virtuels Un serveur = un site : gaspillage des ressources Hébergement : plusieurs sites sur le même serveur Problème : connexion TCP/IP sur l'ip, pas le nom Solution : un serveur, plusieurs IP pas plusieurs interfaces réseau : ip alias (eth0:0, eth0:1,...)

Configuration d'apache Directive VirtualHost : Serveurs virtuels <VirtualHost 1.2.3.4> ServerAdmin webmaster@mail.exemple.com DocumentRoot /home/exemple/www ServerName www.exemple.com ErrorLog /var/log/exemple-error_log TransferLog /var/log/exemple-access_log </VirtualHost> Ici, ServerName est presque inutile. (En cas de reverse DNS impossible sur son IP, Apache peut l'utiliser pour certaines pages qu'il génère)

Configuration d'apache Problème : les IP sont rares Serveur virtuels Solution : plusieurs sites sur la même IP Contrepartie : modification importante du protocole Il faut pouvoir indiquer le nom du serveur dans l'en-tête de la requête HTTP d'où HTTP/1.1 : Host

Configuration d'apache Directive VirtualHost : NameVirtualHost 1.2.3.4 Serveurs virtuels <VirtualHost 1.2.3.4> ServerAdmin webmaster@mail.exemple.com DocumentRoot /home/exemple/www ServerName www.exemple.com ErrorLog /var/log/exemple-error_log TransferLog /var/log/exemple-access_log </VirtualHost> Ne pas oublier Listen...

Sécurisation d'apache Retarder l'identification du serveur Telnet sur port 80 : get / HTTP/1.1 HTTP/1.1 400 Bad Request Date: Mon, 19 Feb 2007 19:19:05 GMT Server: Apache-AdvancedExtranetServer/1.3.22 (Mandrake Linux/10.1mdk) Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 Directive VirtualHost : Informations importantes facilement gagnées!

Sécurisation d'apache Retarder l'identification du serveur Directive ServerTokens : ServerTokens Prod[uctOnly] Server: Apache ServerTokens Major Server: Apache/2 ServerTokens Minor Server: Apache/2.0 ServerTokens Min[imal] Server: Apache/2.0.41 ServerTokens OS Server: Apache/2.0.41 (Unix) ServerTokens Full (or not specified) Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

Sécurisation d'apache Retarder l'identification du serveur Directive ServerSignature : ServerTokens On Off Email Avec On : Not Found The requested URL /absent.html was not found on this server. Apache/1.3.33 Server at www.example.com Port 80

Sécurisation d'apache Verrouiller l'accès aux répertoires Directives <Directory> <Directory /> Options -Indexes -FollowSymLinks -ExecCGI AllowOverride None Order deny,allow Deny from all </Directory> Cas particulier de la racine du système de fichiers : ce qui n'est pas autorisé est interdit!

Sécurisation d'apache Verrouiller l'accès aux répertoires Directives <Directory> <Directory /home/exemple/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> Accès à tous, possibilité d'exécution CGI limitée (on l'a interdit ailleurs). Gestion des droits draconienne sur ce répertoire!

Sécurisation d'apache Directives <Location> Verrouiller l'accès aux URL <Location /admin> Order deny,allow Deny from all Allow from 1.2.3.4 AuthName "Accès protégé" AuthType Basic AuthUserFile /home/exemple/admin_passwd Require user Admin1 Admin2 </Location> Accès limité à une IP et deux utilisateurs (login et mot de passe requis).

Sécurisation d'apache Directives <Location> Verrouiller l'accès aux URL <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.0. </Location> Accès réservé à l'hôte et au réseau local. (URL spécifique, nécessitant un module)

Sécurisation d'apache Verrouiller l'accès aux URL Server Version: Apache-AdvancedExtranetServer Server Built: Mar 30 2005 12:41:28 Current Time: Monday, 19-Feb-2007 20:27:11 CET Restart Time: Thursday, 01-Feb-2007 04:02:03 CET Parent Server Generation: 1 Server uptime: 19 days 16 hours 25 minutes 7 seconds Total accesses: 712555 - Total Traffic: 402.4 MB CPU Usage: u187.36 s20.06 cu.19 cs0 -.00951% CPU load.326 requests/sec - 193 B/second - 592 B/request 7 requests currently being processed, 10 idle workers KW KK_K K K_...............

Sécurisation d'apache Directive <Files> Verrouiller l'accès aux fichiers <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> Expression régulière : faire précéder de ~ Tout fichier commençant par «.ht» est interdit. Protège les fichiers.htaccess.

Sécurisation d'apache Verrouiller l'accès aux fichiers Problème :.htaccess peut être une cible privilégiée. Exemples : détourner un script (par injection) pour lui faire dévoiler le contenu de.htaccess. détourner un script (par injection) pour lui faire écrire dans.htaccess, en ayant supprimé l'authentification, et/ou l'interdiction de lister le répertoire (-Indexes). Solution : renommer les fichiers.htaccess AccessFileName.myhtaccess

Sécurisation d'apache Verrouiller l'accès aux fichiers Problème : les fichiers CGI des sites hébergés sur le même serveur sont exécutés par le même utilisateur : celui exécutant Apache. Exemple : un script d'un site voisin peut consulter ou écraser des fichiers d'un autre. Solution : faire exécuter les CGI par un utilisateur différent par serveur virtuel. Mécanisme optionnel «suexec» (voir dans /usr/sbin, actif si bit SUID : chmod u+s)

Sécurisation d'apache Verrouiller l'accès aux fichiers <Directory /home/exemple/www/> AllowOverride All Options -ExecCGI </Directory> <Directory /home/exemple/cgi-bin> AllowOverride None Options ExecCGI </Directory> <VirtualHost 1.2.3.4> DocumentRoot /home/exemple/www ServerName www.exemple.com ScriptAlias /cgi-bin/ /home/exemple/cgi-bin User exemple Group exemple </VirtualHost> L'utilisateur exemple seul peut écrire dans ses répertoires (avec chmod adéquat).

Sécurisation d'apache Verrouiller l'accès aux fichiers Problème : les liens symboliques peuvent permettre d'accéder à des fichiers sensibles. Exemple : un utilisateur ayant un compte FTP pour déposer les fichiers de son site peut créer un lien symbolique vers /etc/passwd et récupérer la liste des comptes dans son navigateur. idem pour une attaque par injection. Solution : interdire à Apache de suivre les liens (-FollowSymLinks) ou ne l'autoriser que sur un même propriétaire SymLinksIfOwnerMatch).

Extension d'apache Conception modulaire API publiques et documentées Compilation statique ou dynamique (DSO, Dynamic Shared Object) Compilation des modules : simultanée à celle d'apache ou différée (apxs, Apache Extension Tool)

Extension d'apache Appels des modules dans le fichier de configuration LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so ##LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule proxy_module modules/mod_proxy.so LoadModule mime_module modules/mod_mime.so LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so LoadModule cgi_module modules/mod_cgi.so...

Extension d'apache Appels des modules dans le fichier de configuration LoadModule access_module modules/mod_access.so LoadModule status_module modules/mod_status.so <IfModule mod_status.c> <Location /server-status> SetHandler server-status <IfModule mod_access.c> Order deny,allow Deny from all allow from 127.0.0.1 Allow from 192.168.5. </IfModule> </Location> ExtendedStatus On </IfModule>

Extension d'apache Exemples de modules Interpréteurs de langages : mod_php, mod_perl Authentification : mod_auth_basic, mod_auth_digest (MD5) Réécriture d'url : mod_rewrite Gestion de la charge : mod_bandwidth, mod_throttle Proxy HTTP : mod_proxy