Navigation
Pages dans la catégorie :
Nouveautés
Pages dans la catégorie :
vi /etc/apache/apache.conf
<Location /> Options -Indexes </Location>
ServerSignature Off ServerTokens Prod
Afin d'obtenir différents sites sur votre serveur Web (hébergement mutualisé),
plusieurs techniques s'offre à nous.
vi /etc/apache2/sites-available/test
<VirtualHost *:81> ServerAdmin admin@test.local # adresse mail postmaster DocumentRoot /var/www/test/ # emplacement des sources DirectoryIndex index.html # page par défaut CustomLog /var/log/apache2/www.test.local-access.log combined # log d'accès ErrorLog /var/log/apache2/www.test.local-error.log # log d'erreur </VirtualHost>
vi /etc/apache2/ports.conf
NameVirtualHost *:80 NameVirtualHost *:81 Listen 80 Listen 81
a2ensite test apache2ctl configtest apache2ctl graceful
Cette technique est peu utilisée du fait que le protocole HTTP est définit par défaut sur le 80.
Il faut attaquer le nom ou l'ip en précisant le port :
vi /etc/apache2/sites-available/test
<VirtualHost 192.168.1.100:80> ServerAdmin admin@test.local # adresse mail postmaster DocumentRoot /var/www/test/ # emplacement des sources DirectoryIndex index.html # page par défaut CustomLog /var/log/apache2/www.test.local-access.log combined # log d'accès ErrorLog /var/log/apache2/www.test.local-error.log # log d'erreur </VirtualHost>
vi /etc/network/interfaces
# INTERFACE VIRTUELLE auto eth0:0 iface eth0:0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254
a2ensite test apache2ctl configtest apache2ctl graceful
Cette technique repose donc sur l'interface d'écoute. Cette option peut s'avérer utile pour des restrictions d'accès comme un intranet.
vi /etc/apache2/sites-available/test
<VirtualHost *:80> ServerAdmin admin@test.local # adresse mail postmaster ServerName www.test.local # résolution interne ServerAlias www.test.com # résolution externe DocumentRoot /var/www/test/ # emplacement des sources DirectoryIndex index.html # page par défaut CustomLog /var/log/apache2/www.test.local-access.log combined # log d'accès ErrorLog /var/log/apache2/www.test.local-error.log # log d'erreur </VirtualHost>
vi /var/cache/bind/test.local.db
srv-web IN A 192.168.1.1 www IN CNAME srv-web.test.local.
a2ensite test apache2ctl configtest apache2ctl graceful
Cette technique est basé sur la résolution DNS. Vous faites pointer les alias (souvent www) vers le site web qui les héberge.
apache2ctl -V
a2enmod suphp /etc/init.d/apache2 reload
a2dismod rewrite /etc/init.d/apache2 reload
a2ensite www.truc.fr service apache2 reload
a2dissite www.machin.com service apache2 reload
apache2ctl configtest
apache2ctl graceful
apache2ctl -t -D DUMP_MODULESou
apache2ctl -M
apache2ctl -S
php -m
Le module auth_basic permet d'utiliser l'authentification basique HTTP pour restreindre l'accès en recherchant les utilisateurs dans les fournisseurs d'authentification spécifiés.
<Directory /var/www/site/public/> AuthUserFile /etc/apache2/users.pwd AuthName "Authentification requise" AuthType Basic Require user admin Order Deny,Allow Deny from all Allow from 172.10.1 172.20.1 Satisfy any </Directory>
Le module Rewrite est un mécanisme de manipulation d'URL particulièrement souple et puissant en supportant un nombre illimité de règles et de conditions attachées à chaque règle. Les manipulations d'URLs peuvent dépendre de tests variés : les URLs peuvent être finement caractérisées en fonction de variables du serveur, de variables d'environnement, d'en-têtes HTTP, de repères temporels, de recherches dans des bases de données externes, ou même de requêtes vers des bases de données externes et de différents gestionnaires ou programmes externes.
a2enmod rewrite
echo "Rewrite Engine On" >> /etc/apache2/apache.conf
RewriteEngine on RewriteCond %{REMOTE_ADDR} ^84\.7\.10\.124 RewriteRule ^.*$ - [R=403]
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.artduweb\.com$ [NC] RewriteRule ^(.*) http://www.artduweb.com$1 [R=301;L]
# Redirections des domaines optionnels vers la page specifique RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.newdomaine\.com$ [NC] RewriteRule ^/(.*) http://www.existdomaine.fr/truc/machin.html [R=301,L]
# Redirections si flv ou swp de https vers http RewriteEngine On RewriteCond %{REQUEST_URI} \.(?:flv|swf)$ RewriteCond %{SERVER_PORT} ^443$ RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]
RedirectMatch ^/admin https://www.domain.com/admin
Mod_ssl permet l'hébergement http avec le support SSL. Ce protocole permet à deux machines de communiquer de manière sécurisée. Les informations échangées entre les deux machines sont de ce fait inviolables. Le protocole SSL se traduit par la combinaison de deux protocoles bien distincts (Handshake et Record) qui permettent la négociation entre les deux machines et le chiffrement des données échangées.
a2enmod ssl /etc/init.d/apache2 reload
aptitude install openssl
(Détails)
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt mkdir /etc/apache2/certficate cp server.crt server.key /etc/apache2/certificate
<VirtualHost *:80 *:443> ServerAdmin root@artduweb.com ServerName test.artduweb.com DocumentRoot /var/www/test/ ErrorLog /var/logs/apache2/test.artduweb.com-error_log TransferLog /var/logs/apache2/test.artduweb.com-access_log SSLEngine on SSLCertificateFile /etc/apache2/certificate/server.crt SSLCertificateKeyFile /etc/apache2/certificate/server.key SSLProxyEngine On RewriteEngine On RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R=301] </VirtualHost>
apache2ctl configtest apache2ctl graceful
Mod_evasive est un module pour contrer les attaques DOS. Il est capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur un site web, sur un délai de temps très court. Il blackliste par IP en renvoyant une erreur 403 et peut-être couplé à IPTABLES.
aptitude install libapache2-mod-evasive
vi /etc/apache2/mods-available/mod-evasive.conf
<IfModule mod_evasive20.c> # taille de la table de surveillance, a augmenter pour les DDoS DOSHashTableSize 2048 # Pas plus de 5 pages par seconde # Nb max de refresh d'une uri par periode DOSPageCount 5 # Duree de la periode pour la uri (en secondes) DOSPageInterval 1 # Nb max de requetes sur le site par periode DOSSiteCount 150 # Duree de la periode pour le site (en secondes) DOSSiteInterval 1 # Duree du blacklistage de l'IP en secondes (sans iptables) DOSBlockingPeriod 10 # envoi de mail quand une IP est bloquee DOSEmailNotify admin@exemple.com # Execute une action quand une IP est bloquee DOSSystemCommand "su - root -c /sbin/iptables -I INPUT -s %s -j DROP" # repertoire des logs DOSLogDir "/var/log/apache2/lock/" # Whitelist non surveillee DOSWhiteList 127.0.0.1 DOSWhitelist 192.168.1.* </IfModule>
aptitude install postfix ln -s /usr/bin/mail /bin/mail chmod 755 /bin/mail mkdir /var/log/apache2/lock/ chown -R www-data:www-data /var/log/apache2/lock/
a2enmod mod-evasive
/etc/init.d/apache2 restart
ab -n 1000 -c 100 http://$IP_SERVER_WEB/
<VirtualHost _default_:80> ServerAdmin root@domaine.fr ServerName hostname.domaine.fr <IfModule mod_status.c> <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 192.168.1 </Location> </IfModule> <IfModule mod_info.c> <Location /server-info> SetHandler server-info Order deny,allow Deny from all Allow from 192.168.1 </Location> </IfModule> </VirtualHost>
Liens utiles :
./configure --prefix=/usr/local/apache2/ \ --enable-module=so \ --enable-cgi