on migre de nouvelles sections

This commit is contained in:
gcolpart 2016-10-05 03:57:46 +02:00
parent 03aaeb0bbb
commit 3c45e7e71c

View file

@ -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