on migre de nouvelles sections
This commit is contained in:
parent
03aaeb0bbb
commit
3c45e7e71c
119
HowtoApache.md
119
HowtoApache.md
|
@ -130,7 +130,7 @@ Exemple d'un VirtualHost basé sur un nom de domaine via `/etc/apache2/sites-ava
|
|||
|
||||
## Gestion des droits
|
||||
|
||||
### Séparation complèe des différents VirtualHosts
|
||||
### Séparation complète des VirtualHosts
|
||||
|
||||
L'utilisation d'Apache-ITK nous permet d'utiliser des utilisateurs/groupes Unix distincts pour chaque VirtualHost.
|
||||
Il est donc impossible pour un utilisateur d'accéder en lecture à des fichiers d'un autre site, même si un langage dynamique comme PHP est utilisé.
|
||||
|
@ -196,6 +196,50 @@ Pour une configuration avancées des paramètres SSL : <http://trac.evolix.net/i
|
|||
|
||||
La compression des fichiers texte/Javascript/CSS/RSS en GZIP se fait désormais par défault car le module mod_deflate est activé dès l'installation.
|
||||
|
||||
### mod_proxy_http
|
||||
|
||||
<https://httpd.apache.org/docs/2.4/mod/mod_proxy.html>
|
||||
|
||||
~~~
|
||||
# a2enmod proxy_http
|
||||
~~~
|
||||
|
||||
Exemple avec un service HTTP local :
|
||||
|
||||
~~~{.apache}
|
||||
ProxyPreserveHost On
|
||||
ProxyPass /foo http://127.0.0.1:8080/bar
|
||||
ProxyPassReverse /foo http://127.0.0.1:8080/bar
|
||||
~~~
|
||||
|
||||
Exemple avec renvoi vers un service HTTP externe (utile pour une migration) :
|
||||
|
||||
~~~
|
||||
TODO
|
||||
~~~
|
||||
|
||||
### mod_rpaf / mod_remoteip
|
||||
|
||||
En Jessie, on utilisera mod_remoteip
|
||||
|
||||
En Wheezy, pour éviter d'avoir l'IP d'un reverse-proxy dans les logs et utiliser les directives mod_access (Allow/Deny From), on installe mod_rpaf
|
||||
|
||||
~~~
|
||||
# aptitude install libapache2-mod-rpaf
|
||||
# cat /etc/apache2/mods-enabled/rpaf.conf
|
||||
<IfModule mod_rpaf-2.0.c>
|
||||
RPAFenable On
|
||||
RPAFsethostname On
|
||||
#RPAFheader X-Forwarded-For
|
||||
RPAFproxy_ips 127.0.0.1 192.0.2.10
|
||||
</IfModule>
|
||||
~~~
|
||||
|
||||
Note : Attention, bien modifier la directive IfModule? qui est incorrecte dans le paquet : IfModule? mod_rpaf.c -> IfModule? mod_rpaf-2.0.c
|
||||
|
||||
Note 2 : bien mettre l'IP du reverse-proxy dans RPAFproxy_ips
|
||||
|
||||
|
||||
### mod_xsendfile
|
||||
|
||||
Le module xsendfile permet de rediriger l'envoi d'un fichier vers Apache via un Header HTTP, notamment utilisé pour servir des fichiers via Apache tout en permettant de gérer le contrôle d'accès via une application web.
|
||||
|
@ -277,6 +321,16 @@ Note : pour utiliser *ldaps* avec un certificat non reconnu par le système, il
|
|||
|
||||
## Rewrite Rules
|
||||
|
||||
<http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html>
|
||||
|
||||
Voici quelques motifs classiques de redirection vers un nouveau domaine (HTTP 302) ...du plus simple au plus compliqué :
|
||||
|
||||
- RedirectPermanent / http://new.example.com
|
||||
- RedirectMatch ^/(.*)$ http://new.example.com/$1
|
||||
- RewriteRule ^/(.*) http://new.example.com/$1 [L,R=permanent]
|
||||
|
||||
Pour supprimer un Query String avec une Rewrite Rule : <https://www.philipphoffmann.de/blog/2012/08/16/how-to-discard-the-query-string-in-a-rewriterule-apache-mod_rewrite/>
|
||||
|
||||
## Attaques DOS (Denial Of Service) ou XSS
|
||||
|
||||
### mod_evasive
|
||||
|
@ -356,3 +410,66 @@ SetEnv AWSTATS_FORCE_CONFIG example
|
|||
|
||||
## Monitoring
|
||||
|
||||
### log2mail
|
||||
|
||||
Pour être alerté en cas de *Segmentation fault*, on ajoute la configuration suivante au logiciel [log2mail]() :
|
||||
|
||||
~~~
|
||||
file = /var/log/apache2/error.log
|
||||
pattern = "Segmentation fault"
|
||||
mailto = security@example.com
|
||||
template = /etc/log2mail/template.apache
|
||||
~~~
|
||||
|
||||
~~~
|
||||
# adduser log2mail adm
|
||||
# servicectl restart log2mail
|
||||
~~~
|
||||
|
||||
### apachetop
|
||||
|
||||
~~~
|
||||
$ apachetop -f access.log -T 3600
|
||||
~~~
|
||||
|
||||
### server-status
|
||||
|
||||
L'activation du server-status est utile pour une observation manuelle ou automatique.
|
||||
|
||||
~~~
|
||||
<IfModule mod_status.c>
|
||||
ExtendedStatus On
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Deny from all
|
||||
Include ...
|
||||
Allow from 192.0.2.43
|
||||
</Location>
|
||||
</IfModule>
|
||||
~~~
|
||||
|
||||
### Munin
|
||||
|
||||
Enfin, un autre outil indispensable pour surveiller et optimiser Apache : Munin.
|
||||
|
||||
Pour cela, on édite le fichier etc/munin/plugin-conf.d/munin-node en ajoutant :
|
||||
|
||||
[apache_*]
|
||||
env.url http://127.0.0.1:%d/server-status-jesUgNads2?auto
|
||||
env.port 80
|
||||
|
||||
En parallèle, on s'assure que les plugins pour Apache sont bien activés. Si non, on fera :
|
||||
|
||||
# cd /etc/munin/plugins
|
||||
# ln -s /usr/share/munin/plugins/apache_accesses
|
||||
# ln -s /usr/share/munin/plugins/apache_processes
|
||||
# ln -s /usr/share/munin/plugins/apache_volume
|
||||
|
||||
Une fois Munin et Apache redémarrés, les graphes devraient commencer à se tracer. On pourra tester sans attendre le bon fonctionnement via la commande :
|
||||
|
||||
# sudo -u munin munin-run apache_accesses
|
||||
|
||||
Ceci doit vous renvoyer une valeur du type accesses80.value 19372070. Si la commande vous renvoie U, vous avez un soucis d'accès à la page, vérifiez alors que vous avez bien ouvert les ports sur votre serveur Web en local.
|
||||
|
||||
## FAQ
|
||||
|
||||
|
|
Loading…
Reference in a new issue