Archives de catégorie : Apache

Géolocalisation avec Apache

world-regions-300px

Voici comment mettre en place une redirection vers un site internet en utilisant la géolocalisation directement dans un VirtualHost avec Apache.

1 – Installation des paquets :

Nous faisons cette manipulation sous Debian avec Apache 2.4 déjà installé. Il faut donc rajouter les modules permettant de gérer GeoIP :

# apt-get install libapache2-mod-geoip geoip-database-contrib
  • libapache2-mod-geoip permet de rendre apache compatible avec la géolocalisation
  • geoip-database-contrib permet de mettre à jour la base de correspondance IP <-> Pays

2 – Activation des modules :

L’activation des modules est simple et ne prend qu’une seule ligne :

# a2enmod rewrite geoip

Nous pouvons également mettre à jour la base d’IP comme ceci :

# geoip-database-contrib_update
Downloading: http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
Downloading: http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
Downloading: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Downloading: http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
Downloading: http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
Downloading: http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz

Il faut savoir que le paquet installe également une tâche cron qui permet de maintenir la base à jour régulièrement. A savoir : 0 4 10 * *, soit à 4h00 du matin chaque 10 du mois.

3 – Configuration :

Nous réglons ensuite le module GeoIP pour qu’il aille chercher la bonne base d’IP en éditant le fichier de configuration du module pour Apache :

# vim /etc/apache2/mods-enabled/geoip.conf

Il suffit de dé-commenter la ligne avec le paramètre GeoIPDBFile pour lui indiquer le nouveau chemin :

<IfModule mod_geoip.c>
 GeoIPEnable On
 GeoIPDBFile /var/lib/geoip-database-contrib/GeoIP.dat
</IfModule>

Nous terminons par le vhost que l’on souhaite modifier en intégrant ces règles qui permettent de rediriger les IP Françaises vers un site Français et celles qui ne sont pas françaises vers le reste du monde :

RewriteEngine on
 RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(FR)$
 RewriteRule ^(.*)$ http://world.site.com/ [L]
 RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FR)$
 RewriteRule ^(.*)$ http://france.site.fr/ [L]

Et pour finir, ne pas oublier un contrôle de configuration apache, puis un redémarrage du service qui va activer les modules et appliquer la nouvelle configuration :

# service apache2 restart

Let’s Encrypt sous Debian – Apache

Parlons rapidement de Let’s Encrypt avant de passer à l’action.

149e86cd7f135095e9c92f4e67a4b6a7b80a60c0

Let’s Encrypt est une autorité de certification qui a pour but de proposer des certificats SSL, ou plutôt TLS pour ne pas faire d’abus de langage totalement gratuit. C’est un projet rassemblant des acteurs importants dans le monde du web comme Gandi, OVH, Mozilla, Cisco, Facebook, etc … ( https://letsencrypt.org/sponsors/ )

La volonté première est de rendre l’httpS accessible à tous et de la manière la plus simple possible, avec une installation quasi automatique des certificats sur le serveur.

Sorti tout récemment de la phase de beta-test depuis le 3 décembre, le service est ouvert à tous et le code du client est disponible sur GitHub à cette adresse :

https://github.com/letsencrypt/letsencrypt

lets

1- Installations du client Let’s Encrypt

Cet article décrit la procédure d’installation et de configuration sur une Debian 8.2 à jour.

Continuer la lecture de Let’s Encrypt sous Debian – Apache

Reverse proxy avec Apache

Après Nginx voici un autre exemple de reverse proxy, cette fois-ci nous utiliserons Apache avec Redmine.

Si vous utilisez un serveur avec Redmine, voici l’url d’accès à l’application :

http://redmine.myserver.com:3000

De même que pour l’exemple de Kibana, cette URL n’est ni pratique ni jolie, ni même utilisable à travers certains réseaux qui limitent l’utilisation de certains port. Cela donne un avantage de plus quand à l’utilisation d’un reverse proxy.

Nous commençons par installer apache :

httpd_logo_wide_new

Sous Gentoo (en ayant ajouter les variables USE proxy et proxy_http :

# emerge -avq apache

Sous Debian :

# apt-get install apache2

Nous configurons ensuite le vhost correspondant à Redmine et dans le bloc <VirtualHost *:80> nous ajoutons ces lignes :

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

ProxyPass permet d’indiquer que nous relayons les requêtes envoyées sur la racine vers notre Redmine sur le port 3000.

ProxyPassReverse permet de retransmettre les informations entre les deux parties.Voilà, votre Redmine est joignable directement sur une URL sur le port 80 :

http://redmine.myserver.com

VirtualHost sur Apache 2.4

Apache 2.4 apporte de nombreuses nouveautés mais change également la syntaxe de ses fichiers de configurations. Vous trouverez tous les changements ici.

En ce qui concerne les VirtualHosts, voici la configuration d’un vhost simple pour Apache 2.2 :

 <VirtualHost *:80>
    ServerName waccabac.com
    Serveralias www.waccabac.com
    DocumentRoot /home/sites/waccabac.com/
    DirectoryIndex index.htm index.php index.html
    ErrorLog /var/log/apache2/www-waccabac.com-error
    CustomLog /var/log/apache2/www-waccabac.com-access combined
    <Directory /home/sites/waccabac.com/>
        Options -Indexes FollowSymLinks
        Allow from all
        AllowOverride all
    </Directory>
</VirtualHost>

Voici l’équivalent en version 2.4

<VirtualHost *:80>
    ServerName waccabac.com
    Serveralias www.waccabac.com
    DocumentRoot /home/sites/waccabac.com/
    DirectoryIndex index.htm index.php index.html
    ErrorLog /var/log/apache2/www-waccabac.com-error
    CustomLog /var/log/apache2/www-waccabac.com-access combined
    <Directory /home/sites/waccabac.com/>
        Options -Indexes +FollowSymLinks
        Require all granted
        AllowOverride all
     </Directory>
 </VirtualHost>

Le paramètre Allow from all devient Require all granted.

A l’inverse, le paramètre Deny from all devient Require all denied.

Il faut également toujours préciser les options « Options » par les signes « – » ou « + ». En effet avec Apache 2.2 aucun signe signifiait l’activation de l’option équivalent au « + ».