Certificats SSL pour Apache avec Let’S Encrypt

Adminstration Server Linux, Debian, Sécurité No Comments »

Petit « How-to » pour l’installation de certificats SSL Let’s Encprypt pour Apache.
On install Git pour pouvoir récupérer l’environnement Let’S Encrypt

git clone https://github.com/letsencrypt/letsencrypt

On install ensuite l’environement

git clone https://github.com/letsencrypt/letsencrypt

On coupe temporairement Apache

service apache stop

On lance ensuite la commande

cd letsencrypt
./letsencrypt-auto certonly --standalone -d www.mondomaine.be --email moi@mondomaine.be --agree-tos

Il faut ensuite reconfigurer le vhost en ajoutant/remplaçant les lignes suivante

SSLEngine on
SSLProtocol -all -SSLv3 +TLSv1.2
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

SSLCertificateFile /etc/letsencrypt/live/www.mondomaine.be/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mondomaine.be/privkey.pem

On relance finalement apache

service apache2 restart && service apache2 status

Authentification NTLM sur GLPI (Apache/Debian)

Administration des Réseaux, Adminstration Server Linux, Debian, Windows Seven No Comments »

imagesUtiliser l’authentification via LDAP/Active Directory c’est bien, mais il faut retaper son login/mot de passe à chaque fois.

Une solution est d’utiliser l’authentification NTLM au niveau d’Apache

La suite de ce tuto/mémo par du principe que votre installation de GLPI fonctionne déjà

Version:

  • Apache : 2.2.22
  • Debian 7.1

Installation des paquets nécessaire :

aptitude install libapache2-authenntlm-perl

Et ensuite on active le module apache

a2enmod authnz_ldap

Configuration:

La configuration d’apache est assez simple

vi /etc/apache2/conf.d/glpi

Ensuite on l’édite comme ceci:

Alias /glpi /usr/share/glpi
Alias /helpdesk /usr/share/glpi

PerlModule Apache2::AuthenNTLM


  DirectoryIndex index.php
  Options FollowSymLinks
  PerlAuthenHandler Apache2::AuthenNTLM
  AuthType ntlm,basic
  AuthName paipartners
  require valid-user
  PerlAddVar ntdomain "mondomaine.com dc1 dc2"
  PerlSetVar defaultdomain mondomaine.com
  PerlSetVar splitdomainprefix 1
  PerlSetVar ntlmdebug 0
  PerlSetVar ntlmauthoritative off

Dans un premier temps, il est utile de mettre ntlmdebug à 1 voir 2 pour avec des logs

Configuration du client

Sur Windows 7 il faut modifier ou créer une clé registre

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
 "LmCompatibilityLevel"=dword:00000001

Si le GLPI ne se trouve pas dans l’intranet, il faut également l’ajouter aux sites de confiances de IE

Configuration de GLPI

Il faut se rendre en super-admin dans :

Accueil >Configuration >Authentification >Autre méthode d’authentification

Et ajouter dans « Champs de stockage de l’identifiant dans la requête HTTP »

REMOTE_USER

Ensuite on termine par un reload d’Apache

apache2ctl restart

 

 

 

Script pour supprimer des snapshots sous ZFS

Adminstration Server Linux No Comments »

Récemment j’ai eu un petit bug sur un de nos serveurs de fichier NexentaStor, une des tâches de snapshot a bugué. Elle créait un snapshot toutes les 5 minutes.

Voici donc un petit script à exécuter pour supprimer l’ensemble des snapshots

#!/bin/bash
for snapshot in $(zfs list -H -t snapshot | cut -f 1)
do
zfs destroy $snapshot
done

 

Raid avec mdadm sur des disques de 3TB

Adminstration Server Linux, Debian No Comments »

Pour pouvoir utiliser l’entièreté des disques de plus de 2TB, il convient d’utiliser GPT à la place de MBR, exit donc la commande FDISK.

Préparation des disques

Pour se faire, il faut installer parted

aptitude update && aptitude safe-upgrade
aptitude install gptsync parted mdadm

On crée ensuite la table de partition GPT et la partition de 3TB sur les deux disques

parted /dev/sdb
	mklabel gpt
	mkpart primary 0 3001G
	quit
parted /dev/sdc
	mklabel gpt
	mkpart primary 0 3001G
	quit

On vérifie avec la commande :

parted -l
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17,4kB  3001GB  3001GB               primary

Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17,4kB  3001GB  3001GB               primary

Mdadm

On crée maintenant le raid, dans notre cas on crée un RAID 1 avec les partitions sdb1 et sdc1

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

On format le la partition raid1 en ext4

mkfs.ext4 /dev/md0

Et on vérifie l’état du RAID1

mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon May 30 16:33:52 2011
     Raid Level : raid1
     Array Size : 2930265390 (2794.52 GiB 3000.59 GB)
  Used Dev Size : 2930265390 (2794.52 GiB 3000.59 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon May 30 16:34:53 2011
          State : active, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 3% complete

           Name : srv-backup:0  (local to host srv-backup)
           UUID : b146a57a:fc7a409e:0627b7be:56ba0476
         Events : 1

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

Pour voir l’avancement du resync de la grappe

watch cat /proc/mdstat
Every 2,0s: cat /proc/mdstat                                 Mon May 30 17:17:46 2011

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md0 : active raid1 sdc1[1] sdb1[0]
      2930265390 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  3.9% (115722880/2930265390) finish=781.2min
speed=60042K/sec

unused devices: 

Utiliser un partage SMB avec Samba et des permissions Active Directory

Adminstration Server Linux, Adminstration Server Windows, Debian, Sécurité 1 Comment »

Avec ce mémo, vous allez mettre en place un partage SMB à l’aide de Samba tout en utilisant authentification et les permissions de votre domaine Active Directory
Le serveur Samba tourne sur Debian 6.0 et le DC sur Windows Server 2008 R2

Installation des paquets

Avant d’installer assurez-vous d’avoir un serveur à jour

aptitude update && aptitude safe-upgrade

Ensuite installez les paquets suivant

aptitude install samba winbind krb5-user libkrb53 ntpd ntpdate

Heure du serveur

Avant de commencer il est primordial de synchroniser l’heure du serveur sur le DC notament pour l’authentification kerberos

/etc/.init.d/ntp stop
vi /etc/ntp.conf

Configurez la ligne server avec l’ip de votre DC

ntpdate 
/etc/.init.d/ntp start

Configuration de Kerberos

vi /etc/krb5.conf

Attention respectez scrupuleusement les majuscules ( à adapter : DOMAINE.COM, server_dc1, domaine, DOMAINE)

[libdefaults]
	default_realm = DOMAINE.COM
	clock_skew = 300
	ticket_lifetime = 24000
	default_tkt_enctypes = des3-cbc-sha1 rc4-hmac des-cbc-md5 des-cbc-crc
	default_tgs_enctypes = des3-cbc-sha1 rc4-hmac des-cbc-md5 des-cbc-crc
	dns_lookup_realm = false
	dns_lookup_kdc = true
[realms]
	DOMAINE.COM = {
		kdc = server_dc1
		admin_server = server_dc1
		default_domain = DOMAINE.COM
	}
[domain_realm]
	.domaine = DOMAINE
	domaine = DOMAINE

Configuration de Samba

vi /etc/samba/smb.conf
[global]
	netbios name = srv-shares
	workgroup = DOMAINE
	server string = Backup Server
	realm = DOMAINE.COM
	security = ADS
	encrypt passwords = true
	password server = server_dc1.domaine.com
	idmap uid = 10000-20000
	idmap gid = 10000-20000
	winbind enum groups = yes
	winbind enum users = yes
	winbind use default domain = yes

[shares]
	path = /home/shares
	comment = shares
	writable = yes
	browseable=yes
	read only = no
	inherit acls = yes
	inherit permissions = yes
	create mask = 700
	directory mask = 700
	valid users = @"DOMAINE+Domain Users"
	admin users = @"DOMAINE+Domain Admins"

Configuration de nsswitch

Pour que Samba puisse utiliser les utilisateurs et groupes de l’AD, il faut configurer nsswitch afin de lui ajouter Winbind comme possibilité d’authentification

vi /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind
group:          compat winbind
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Redémarrage des services

/etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start

Jonction à l’Active Directory

net join -U Administrator

Ensuite pour tester

kinit administrator
klist
wbinfo -u
wbinfo -g

Vous pouvez à présent configurer les permissions avec les commandes habituelles.

chown DOMAINE\user1 repdeuser1
chgrp DOMAINE\groupe1 repdegrp1

Update : Installation de Cacti et des plugins Network Weathermap et Discovery

Adminstration Server Linux, Debian, Supervision 4 Comments »

Le tuto précédent étant dépassé, je ai refait l’installation à partir d’une debian squeeze et cacti 0.8.7g. Pour les détails et/ou explication référez vous à l’ancien tuto

Installation du serveur LAMP

aptitude update && aptitude full-upgrade
aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Installation de cacti

aptitude install cacti cacti-spine

Installation du Plugin Architecture

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql
vi include/config.php

Remplacer

$url_path = "/";

par

$url_path = "/cacti/";

Installation du Plugin Network Weathermap

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
unzip php-weathermap-0.97a.zip
vi weathermap/editor.php

Remplacer

$ENABLED=false;

par

$ENABLED=true;
chown www-data weathermap/configs -R
chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Activation du plugin

-> User Management -> admin -> cocher [Plugin Management]

-> Plugin Management

aptitude update && aptitude full-upgrade

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Les paquets suivants ont des dépendances non satisfaites :
apache2-mpm-prefork: Est en conflit avec: apache2-mpm qui est un paquet virtuel
apache2-mpm-worker: Est en conflit avec: apache2-mpm qui est un paquet virtuel
Les actions suivantes permettront de résoudre ces dépendances :

Conserver les paquets suivants dans leur version actuelle :
1)     apache2-mpm-worker [Non installé]

Accepter cette solution ? [Y/n/q/?]Y

aptitude install cacti cacti-spine

ATTENTION : le répertoire d’installation a changé !                                                                                                        │
libphp-adodb n’est plus installé dans /usr/share/adodb. Le nouveau chemin d’installation (« include path » pour php) est maintenant /usr/share/php/adodb.  │
Veuillez mettre à jour votre fichier php.ini. Par ailleurs, vous devrez peut-être également modifier la configuration de votre serveur web.

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/

patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql

vi include/config.php
$url_path = « /cacti/ »;

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip

vi weathermap/editor.php
$ENABLED=true;

chown www-data weathermap/configs -R

chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Configuration des dépôts dans Debian Squeeze

Adminstration Server Linux No Comments »

Après deux ans de développement, Debian publie la version 6.0 du projet de la distribution Linux au non de code Squeeze.

Quelques petits changements dans la configuration des dépôts.
Le dépôt « volatile » n’existe plus, il est remplacé par une branche squeeze-updates, il contient les mises à jour des paquets ne pouvant pas attendre une nouvelle version Debian tous les 2 ou 3 ans.

vi /etc/apt/sources.list
deb ftp://ftp.fr.debian.org/debian/ squeeze main contrib  non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb ftp://ftp.fr.debian.org/debian/ squeeze-updates main contrib  non-free
# facultatif
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

Utiliser les dépôts stable, testing et unstable en même temps sur debian

Adminstration Server Linux, Debian 4 Comments »

Si vous devez installer certain packets dans leur version la plus récent sur debian sans pour autant mettre à jour tous votre système cette manip est pour vous.

La première étape est de configurer vos dépots en ajoutant les différentes version.

vi /etc/apt/sources.list

Et le configurer comme ci-dessous :

################################################
## lenny
deb http://ftp.be.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.be.debian.org/debian/ lenny main contrib non-free

# lenny security
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

# volatile
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

################################################
## squeeze
deb http://ftp.be.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.be.debian.org/debian/ squeeze main contrib non-free

## squeeze security
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

################################################
## sid
deb http://ftp.be.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.be.debian.org/debian/ sid main contrib non-free

## sid security
deb http://security.debian.org/ sid/updates main contrib non-free
deb-src http://security.debian.org/ sid/updates main contrib non-free

On va maintenant configurer la priorité des dépôts, cela se configure dans le fichier/etc/apt/preferences

vi /etc/apt/preferences

Et le remplir de cette façon :

Package: *
Pin: release o=apt-build
Pin-Priority: 989

Package: *
Pin: release o=volatile.debian.org,a=stable,l=debian-volatile
Pin-Priority: 988

Package: *
Pin: release o=Debian,a=stable,l=Debian-Security
Pin-Priority: 987

Package: *
Pin: release o=Unofficial Multimedia Packages,a=stable,l=Unofficial Multimedia Packages
Pin-Priority: 986

Package: *
Pin: release o=Debian,a=stable,l=Debian
Pin-Priority: 985

Package: *
Pin: release o=Debian,a=testing,l=Debian-Security
Pin-Priority: 99

Package: *
Pin: release o=Unofficial Multimedia Packages,a=testing,l=Unofficial Multimedia Packages
Pin-Priority: 98

Package: *
Pin: release o=Debian,a=testing,l=Debian
Pin-Priority: 97

Package: *
Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages
Pin-Priority: 96

Package: *
Pin: release o=Debian,a=unstable,l=Debian
Pin-Priority: 95

Package: *
Pin: release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages
Pin-Priority: 94

Package: *
Pin: release o=Debian,a=experimental,l=Debian
Pin-Priority: 93

Ensuite vous faites une mise à jour de la liste des packets disponible dans les dépôts

aptitude update

Voilà vous pouvez mnt installer vos packets dans la version que vous voulez, par défaut il utilisera la version stable. Pour utiliser une autre version il faut procéder de la façon suivante

aptitude install apache2 php5/testing

Aptitude installera apache en version stable et php5 en version testing, aptitude se chargera de régler le problème de dépendance mais également de version entre les dépendances

Installation de Cacti et des plugins Network Weathermap et Discovery

Administration des Réseaux, Adminstration Server Linux, Debian, Supervision 33 Comments »

Introduction

Cacti est un logiciel libre de supervision serveur basé sur la puissance de stockage de données de RRDTool. Il fonctionne grâce à un serveur web équipé d’une base de données et du langage PHP. Il peut-être considéré comme le successeur de MRTG et également comme une interface d’utilisation de RRDTool.

Il permet de représenter graphiquement divers statuts de périphériques réseau utilisant SNMP ou encore grâce à des scripts (Bash, PHP, Perl, VBs…) pour avoir par exemple l’espace disque restant ou bien la mémoire utilisée, la charge processeur ou le ping d’un élément actif. Les données sont récoltées auprès des différents agents SNMP (ou auprès des scripts locaux) grâce à un script php.

L’intérêt de ce logiciel réside principalement dans son principe de modèles (Templates) qui permet de créer de manière générique les graphiques afin de pouvoir les réutiliser. De manière générale, tout est modèle sous Cacti. Cela est avantageux lorsque de nombreuses données identiques doivent être observées, mais cela peut se révéler fastidieux à configurer lorsque les données sont hétérogènes.

Version des logiciels utilisés

Debian : Net Install Squeeze
Cacti : 0.8.7e-1.1
Plugin Architecture : 2.6

Installation du server LAMP

Une fois la distribution installée et la configuration réseau faites, on met à jour les dépôts et on met tous a jour, même si normalement tous doit être déjà à jour

aptitude update && aptitude full-upgrade

On installe maintenant le server apache2 avec php5 et mysql-server, plus d’autre outil nécessaire a cacti

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear

Réponse aux questions durant l’installation :
Nouveau mot de passe du superutilisateur de MySQL : superpass
Confirmation du mot de passe du superutilisateur de MySQL : superpass
Serveur web à reconfigurer automatiquement: Apache2
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour phpmyadmin : laisser vide, il sera générer aléatoirement

Votre server web est fonctionnel, vous pouvez tester en allant sur http://ip-du-server/phpmyadmin

Installation de Cacti

aptitude install cacti cacti-spine

Réponse aux questions durant l’installation :
Faut-il configurer la base de données de cacti avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour cacti : laisser vide, il sera générer aléatoirement
Type de serveur web: Apache2

Si tous c’est bien dérouler vous devriez avoir accès à l’interface de Cacti via cette adresse http://ip-du-server/cacti
Le login:password par défaut est admin:admin, il vous sera demandé de le changer immédiatement au premier login.
C’est terminer pour la partie installation de cacti

Installation du Plugin Architecture

Une grande force de Cacti est sa faculté d’utiliser des autres outils dans des plugins intégrés à son interface. L’avantage sera alors de pouvoir gérer plusieurs logiciels avec une seule plate-forme.

On le trouve sur le site http://cactiusers.org/downloads/

On commence par installer de quoi dézip et ensuite on télécharge l’archive

aptitude install unzip
cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
unzip cacti-plugin-0.8.7e-PA-v2.6.zip

On copie les fichiers pré modifié dans cacti

cd /tmp/cacti-plugin-arch/files-0.8.7e
cp -r * /usr/share/cacti/site/

On met à jour la base de données

mysql -u root -p cacti < pa.sql

On va maintenant configurer et corriger quelque bug dans la configuration

cd /usr/share/cacti/site/
vi include/global.php

À la ligne 56 remplacer

$config['url_path'] = '/';

Par

$config['url_path'] = '/cacti/';

À la ligne 202 remplacer

include($config["library_path"] . "/adodb/adodb.inc.php");

Par

include("/usr/share/php/adodb/adodb.inc.php");

Le Plugin Architecture est installé et configuré, vous pouvez l’activé dans les permissions des utilisateurs
utilites -> user management -> admin -> Realm Permissions
Cochez Plugin Management

Ajout de plugins

On se place dans le dossier plugins de Cacti

cd  /usr/share/cacti/site/plugins

Network Weathermap

PHP Weathermap est un outil particulièrement utile qui génère des cartes graphiques pour mesurer les bandes passantes (en pourcentage ou en absolu) de vos liens réseaux.
Les cartes vont vous montrer s’il existe des goulots d’étranglements (bottlenecks) sur votre réseau et ainsi vous permettre de mettre à jour le bon lien réseau au lieu de les mettre à jour au hasard et à grand frais.

wget http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
unzip php-weathermap-0.96a.zip
rm php-weathermap-0.96a.zip

Petite correction d’un bug connu

vi /usr/share/cacti/site/plugins/weathermap/setup.php

À la ligne 146 remplacer

if($_REQUEST["action"] == 'viewmapcycle')

Par

if (isset( $_REQUEST["action"] ) && $_REQUEST["action"] == 'viewmapcycle')

Discovery

Ce plugin ajoute la possibilité de découvrir automatiquement tous les périphériques d’un sous-réseau qui ne sont pas surveillées par Cacti et vous indique si SNMP est activé.
Disponible sur cactiusers.org

mkdir discovery
cd discovery/
wget http://cactiusers.org/downloads/discovery.zip
unzip discovery-0.8.5.zip
rm discovery-0.8.5.zip

Activation des plugins

Pour activer les plugins il suffit de remplir un tableau dans le fichier de configuration global

cd  /usr/share/cacti/site/
vi include/global.php

À la ligne 44 on remplace

$plugins = array();
//$plugins[] = 'thold';

Par

$plugins = array(
	'weathermap',
	'disco’
	) ;

Et enfin dans utilites -> user management -> admin -> Realm Permissions
Cochez:
Plugin -> Weathermap: Configure/Manage
Plugin -> Weathermap: View
View Host Auto-Discovery

Finalisation

On termine l’installation par créer le dossier rra si il n’a pas été créé automatiquement et on change le propriétaire des fichiers pour que tous fonctionne bien

mkdir  /usr/share/cacti/site/rra
chown www-data: -R usr/share/cacti/site

C’est fini, il ne vous reste plus cas ajouter vos devices et créer votre carte réseau.

Liens additionnels

Installation du mod deflate pour apache2

Adminstration Server Linux, Debian No Comments »

Le module mod_deflate est un module du serveur web Apache qui fournit les filtres DEFLATE permettant à la sortie du serveur d’être compressée avant d’être envoyée au navigateur sur le réseau. Ce qui apporte une économie de bande passante pouvant aller parfois jusqu’à 80%, une légère consommation en plus du processeur ainsi que de la mémoire est à prévoir.

Quelques informations en plus ce module :

Installation

Deflate est installé par défaut avec Apache mais il n’est pas lancé, de plus même une fois lancé il sera nécessaire de le configurer.

Paramétrage

Dans /etc/apache2/conf.d/mod_deflate, ajoutez :

# Mod Deflate


 DeflateCompressionLevel 3



 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE image/svg+xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/atom_xml
 AddOutputFilterByType DEFLATE application/x-javascript
 AddOutputFilterByType DEFLATE application/x-httpd-php
 AddOutputFilterByType DEFLATE application/x-httpd-fastphp
 AddOutputFilterByType DEFLATE application/x-httpd-eruby

 SetOutputFilter DEFLATE

 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

 # Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary

Explications

DeflateCompressionLevel 3
Détermine le niveau de compression, les valeurs vont de 1 à 9, de base le choix est à 1.

AddOutputFilterByType DEFLATE text/html
Indique que les pages .html seront compressées.

SetOutputFilter DEFLATE
Active la compression.

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Ne compresse pas les fichiers de type .gif .jpg .jpeg .png car ils possèdent déjà une compression.

BrowserMatch ^Mozilla/4 gzip-only-text/html
Active que la compression des pages HTML pour Netscape 4.

Header append Vary User-Agent env=!dont-vary
Assurez-vous que les proxy ne livrent pas les mauvais contenus

Mise en production

Activez les deux modules suivants :

a2enmod headers
a2enmod deflate

Relancez Apache

/etc/init.d/apache2 restart

Pour vérifier que la compression soit fonctionnelle, vous pouvez aller sur ce site : www.gidnetwork.com

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion
ipv6 ready