logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
utilisateurs:lagrenouille:tutos:le-serveur-apache2 [05/11/2019 20:20]
lagrenouille [Utilisation]
utilisateurs:lagrenouille:tutos:le-serveur-apache2 [06/11/2019 10:26]
lagrenouille [Utilisation]
Ligne 1: Ligne 1:
 ====== le serveur apache ====== ====== le serveur apache ======
  
-    ==== En travaux==== 
-    ​ 
-    ​ 
   * Objet : du tuto : une approche du serveur apache2   * Objet : du tuto : une approche du serveur apache2
-  * Auteur : Lagrenouille +  * Création par [[user>​lagrenouille]] le 04/11/2019 
-  * Niveau requis : {{tag>​débutant avisé}}+  * Niveau requis : FIXME {{tag>​débutant avisé}}
   * Commentaires : //Contexte d'​utilisation du sujet du tuto. //    * Commentaires : //Contexte d'​utilisation du sujet du tuto. // 
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
Ligne 62: Ligne 59:
  
 Les serveurs : ce sont les ordinateurs qui délivrent les sites Web aux internautes (aux clients) Les serveurs : ce sont les ordinateurs qui délivrent les sites Web aux internautes (aux clients)
 +
 +**DNS**
 +lorsque l’on saisit l’adresse (URL) d’un site dans un navigateur, une requête "​DNS"​transforme cette adresse textuelle (FQDN) en adresse IP numérique. Cette adresse IP est celle de votre machine où réside votre serveur web Apache
 +
 +FQDN (Fully Qualified Domain Name )ou (nom de domaine réservé) peut s’appliquer à autant de virtualhost,​( d’hôtes virtuels), que vous aurez configuré sous la même ip
 +
 +Dans les grandes lignes, lorsque l’on saisit l’adresse (URL) d’un site dans un navigateur, une requête DNS transforme cette adresse textuelle (appelée FQDN, pour Fully Qualified Domain Name) en adresse IP numérique. Cette adresse IP est celle de votre machine où réside le serveur Apache (votre serveur web)
 +
 +Cette association FQDN/​adresse IP n’est pas nécessairement exclusive :
 +
 +un nombre illimité de FQDN peuvent être associés à une seule et même adresse IP. à partir de là, lorsque votre navigateur web interroge un serveur, il précise le FQDN qu’il recherche et le serveur HTTP - Apache en l’occurrence - est capable de desservir des données différentes selon le serveur demandé. L’hôte physique est le même, mais il s’agit virtuellement,​ pour les navigateurs (clients) qui s’y connectent, de serveurs différents : dans la terminologie ’Apache, on parle alors
 +d’« hôtes virtuels»
 +
 +Dans le cas de figure le plus courant, on souhaite donc héberger plusieurs sites web ou plus, ayant des adresses (URL) différentes,​ mais avec une seule interface réseau et une seule adresse IP....."​
 +
 +
  
  
Ligne 138: Ligne 151:
  
 **le fichier php.ini** **le fichier php.ini**
-Réglage maximale la taille de vos fichiers uploadés sur vos sites+Réglage maximale la taille de vos fichiers uploadés sur vos sites, dans /​etc/​php/​7.3/​apache2/​php.ini 
 +<​code>​upload_max_filesize = 20000M</​code>​ 
 +<​code>​max_file_uploads = 70M</​code>​ 
 + 
 +Cette valeur peut être défini dans apache2.conf. 
 + 
 + 
 +Vous aurez parfois ce message: 
 + 
 +La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo. 
 +<​code>​memory_limit = 512M</​code>​ 
 + 
 + 
 +**les fichiers .htaccess** 
 + 
 +permettent également de définir des contextes. 
 + 
 +Avant d’aller plus loin:dans votre conf apache. 
 +Lorsque la directive AllowOverrideList est définie à None, les fichiers .htaccess sont totalement ignorés. Dans ce cas, le serveur n’essaiera même pas de lire les ichiers .htaccess du système de fichiers. 
 +<​code>​AllowOverride None</​code>​ 
 + 
 +Lorsque cette directive est définie à All, toute directive valable dans le Contexte .htaccess sera autorisée dans les fichiers .htaccess. 
 + 
 +si il est spécifié AllowOverrideList Redirect RedirectMatch seules les directives Redirect et RedirectMatch sont autorisées. Toutes les autresprovoqueront une erreur interne du serveur. 
 + 
 +voir pour les les redirections ici 
 +[[https://​httpd.apache.org/​docs/​2.4/​fr/​rewrite/​remapping.html]] 
 + 
 +ces fichiers permettent de modifier certains aspects de la configuration d’Apache sans avoir accès aux fichiers de configuration ; c’est très utile sur des serveurs où les webmestres n’ont pas accès au serveur en tant que root : ils peuvent alors définir certains points de configuration de manière indépendante. 
 + 
 +Cependant les fichiers .htacces sons sensible à la casse et parfois il vaut mieux mettre certaines configurations directement dans le fichier apache. 
 + 
 +Les fichiers .htaccess ne doivent être utilisés que si vous n’avez pas accès au fichier de configuration du serveur principal. L’utilisation des fichiers .htaccess ralentit le fonctionnement de votre serveur . 
 + 
 +* Il est toujours préférable de définir les directives que vous pouvez inclure dans un fichier .htaccess dans une section Directory, car elles produiront le même effet avec de meilleures performances. 
 + 
 +Les fichiers .htaccess fournissent une méthode pour modifier la configuration du serveur au niveau d’un répertoire. Un fichier, contenant une ou plusieurs directives de configuration,​ est placé dans un répertoire de documents particulier,​ et ses directives s’appliquent à ce répertoire et à tous ses sous-répertoires. 
 + 
 +* Si je regarde les" .htaccess "de mon installation "​galette"​ en local, seul localhost est autorisé.(127.0.0.1),​ le module mod_authz_host. restreint l’accès à certaines parties de votre site web en fonction de l’adresse de l’hôte de vos visiteurs. 
 + 
 + 
 +En général, les fichiers .htaccess utilisent la même syntaxe que les fichiers de configuration principaux. Ce que vous pouvez mettre dans ces fichier est déterminé par la directive AllowOverride. 
 + 
 +Lire les descriptions des options de vos htaccess 
 + 
 +-AllowOverride AuthConfig,​ 
 +-AllowOverride FileInfo 
 +-AllowOverride Indexes 
 +-AllowOverride Limit 
 + 
 +le fichier /​etc/​apache2/​ports.conf définit les ports en écoute. 
 + 
 +on retrouve les directives Listen et NameVirtualHost 
 + 
 +* Comme éxpliqué dans la doc d’apache, la directive Listen spécifiée dans le fichier de configuration est à sa valeur par défaut de 80 (ou tout autre port inférieur à 1024), il est nécessaire de posséder les privilèges root pour pouvoir démarrer apache, et lui permettre d’être associé à ce port privilégié. 
 + 
 +* Lorsque le serveur est démarré, il effectue quelques opérations préliminaires comme ouvrir ses fichiers de log, puis il lance plusieurs processus enfants qui ont pour rôle d’écouter et de répondre aux requêtes des clients. Le processus httpd principal continue à s’exécuter sous l’utilisateur root, tandis que les processus enfants s’exécutent sous un utilisateur aux privilèges restreints. Ceci s’effectue par la voie du Module Multi-Processus (MPM) 
 + 
 +**les processus d'​apache,​ sont visible avec la commande.
 ** **
-les fichiers .htaccess**+<code root>ps -edf | grep apache</​code>​
  
 +**Pour voir tous les modules apache chargés, faites la commande :**
 +<code root>​apachectl -t -D DUMP_MODULES</​code>​
 +ou
 +<code root>​apache2ctl -M</​code>​
  
 +Pour qu'​apache puisse ecrire sur mes confs, il faut activer le module rewrite.
  
 +On active le module rewrite en ajoutant ces lignes dans le fichier /​etc/​apache2/​apache2.conf
  
 +<​code><​ifModule mod_rewrite.c>​
 +RewriteEngine On
 +</​ifModule></​code>​
  
 +Puis il faut l'​activé.
 +<code root>​a2enmod rewrite</​code>​
 +<code root>​systemctl restart apache2</​code>​
  
 +Pour vérifier la bonne écriture dans la conf de votre vhost
  
 +<code root>​apachectl configtest</​code>​
 +ou
 +<code root>​apache2ctl -t</​code>​
  
 +Pour vérifier et analyser la configuration de vos serveurs virtuels, vous pouvez utiliser
 +<code root>
 +apachectl -S</​code>​
 +
 +Pour savoir à quelle date le serveur a était installé.
 +<code root>ls -lct /etc | tail -1 | awk '​{print $6, $7,​$8}'</​code>​
 +
 +Pour relancer apache2 :
 +<code root>​systemctl restart apache2</​code>​
 +Pour recharger la configuration d'​apache2 :
 +<code root>​systemctl reload apache2</​code>​
 +
 +|virtualhost| extrait court des directives de configuration|
 +|NameVirtualHost | indique au serveur web apache que sur le port 1280 on a l'ip 192.168.1.12 |
 +| soit :| Name Virtualhost 192.168.1.12:​1280 |
 +|ServerName | indique l'URL du site hébergé, ServerName localhost|
 +|ServerAdmin|webmaster@localhost|
 +|DocumentRoot| permet de signaler à Apache où il doit chercher les fichiers à desservir, En d’autres termes, c’est le répertoire racine du serveur, le répertoire de référence|
 +|ServerAlias| permet de donner un ou plusieurs noms complémentaires,​par lesquels les visiteurs pourront également accéder au site concerné|
 +|Timeout 120|c’est,​ en secondes le temps mort maximal requis entre une émission et une réception, ici 120s.|
 +
 +**
 +Les autorisations d’accès**
 +
 +Les directives Order , Allow et Deny permettent de définir les autorisations d’accès, selon les éléments fournis par les requêtes (adresses IP,nom d’hôte,​user-agent...) :
 +
 +{{Allow}} définit les clients autorisés ​
 +
 +{{Deny}} Définit quels hôtes ne sont pas autorisés à accéder au serveur
 +
 +{{Order}} Définit le statut d'​accès par défaut et l'​ordre dans lequel les directives Allow et Deny sont évaluées.
 +
 +[[https://​httpd.apache.org/​docs/​2.4/​fr/​mod/​mod_alias.html]]
 +
 +-La doc apache dit:
 +
 +
 +
 +- Les directives Allow et Deny permettent de spécifier quels clients sont ou ne sont pas autorisés à accéder au serveur, alors que la directive Order définit le statut ​           d'​accès par défaut, et détermine la manière dont les directives Allow et Deny interagissent entre elles.
 +
 +====Quels outils pour la surveillance d’apache et les logs d’apache ?====
 +
 +Tous les services réseau peuvent faire l’objet d’attaques de type: "Déni de service"​ (Denial of Service - DoS)
 +* Pour empêcher aux services réseaux de répondre correctement aux demandes, les pirates saturent leurs ressource par l’envoie d’énormes envoies de données, difficile de se prémunir de ces attaques, sinon par des pare-feu qui limitent les connexions d’ip ou de réseaux. (voir iptables et ntables)
 +
 +Des outils de surveillances et d’audit peuvent faciliter la.source des attaques, ainsi qu des configurations propres au système d’exploitation.
 +
 +La directive RequestReadTimeout permet de limiter le temps que met le client pour envoyer sa requête, ce qui peut être à double tranchant.
 +
 +Voir dans les nombreux modules d’apache sil existe des conf qui peuvent minimiser les problèmes de DoS.
 +
 +Assurez vous que les utilisateurs n’ait aucun droit pour modifier les configurations,​ apache c’est à root et à lui seul.
 +
 +Apache est démarré par l’utilisateur root, puis il devient la propriété de l’utilisateur défini par la directive User afin de répondre aux demandes.
 +
 +-Enfin, maintenez votre serveur à jour, et lisez la doc ici :
 +[[
 +https://​httpd.apache.org/​docs/​2.4/​fr/​misc/​security_tips.html]]
 +
 +-Surveillez vos journaux, même si les fichiers journaux ne consignent que des évènements qui se sont déjà produits, ils vous informeront sur la nature des attaques qui sont lancées contre le serveur et vous permettront de vérifier si le niveau de sécurité nécessaire est atteint.
 +
 +contrôler le fonctionnement du démon Apache avec l'​interface de contrôle du serveur HTTP Apache: **apachectl**
 +
 +<code root>​apachectl status</​code>​
 +
 +D' autres options
 +start: démarre apache
 +stop: arrête apache
 +restart redémarre apache
 +
 +**apachetop**
 +Outil de surveillance de Apache en temps réel, apache top est un utilitaire en temps réel basé sur curses qui affiche des informations à propos d’une copie d’Apache en cours d’exécution.
 +
 +Il est conçu sur le modèle de l’utilitaire standard « top » et affiche des informations telles que le nombre de requêtes par seconde, le nombre d’octets par seconde et les adresses les plus souvent demandées.
 +
 +Il doit être lancé à partir d’une machine exécutant Apache car il fonctionne en traitant les fichiers de journaux situés dans /​var/​log/​apache
 +
 +**c'​est loin, loin d’être complet, reportez vous à la doc d'​apache,​ très complète et volumineuse.
 +**
  
-   ​C'​EST PAS FINI .O)) 
  
utilisateurs/lagrenouille/tutos/le-serveur-apache2.txt · Dernière modification: 01/10/2023 11:42 (modification externe)

Pied de page des forums

Propulsé par FluxBB