Outils pour utilisateurs

Outils du site


securite_apache

Permission apache

François Raynaud 2020/06/08 15:52

Nous allons activer les fichiers .htaccess dans /var/www/html ou accéde apache (www-data) afin de :

  1. protéger les accès aux répertoires
  2. faire (éventuellement un filtrage IP) pour l'accès au serveur web

Ensuite nous allons mettre en place le HTTPS pour protéger les connexions (mot de passe et IP de connexion)

activer htaccess sur var/www

“certaines distributions, dont Debian, et par conséquent Raspbian, ont choisi de désactiver par défaut le support des .htaccess dans les options d’Apache, et ce dans l’optique d’optimiser la vitesse du système”.

source raspberry

Changer la directive AllowOverride None en AllowOverride All dans le fichier apache.conf

nano /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All 
        Require all granted
</Directory>

Redémarrez apache.

service apache2 restart

Protection de lecture des dossiers de l'application

Les répertoires de l'application openassociation sont protégés par :

  • un fichier .htaccess qui empêche toute connexion (Deny from All)
  • un fichier index.php qui renvoie sur l'application
<?php
 header("Location: ../index.php");
 exit();) 
?>

Le dossier var est créé par l'application. Il faut :

  1. Mettre le .htacces dans le répertoire var qui ne doit pas être accessible
  2. Mettre le fichier index.php dans le répertoire var pour renvoyer sur l'application

Déplacer le filestorage

source openMairie filestorage

Il est conseiller de déplacer le filestorage pour faciliter la maintenance

Pour le déplacer, il faut paramétrer :

  1. dyn/database.inc.php
  2. dyn/filestorage.inc.php (éventuellement créer le fichier)

paramétrer dyn/database.inc.php

    null, // Paramétrage pour le serveur de mail
    "filestorage-default", // Paramétrage pour le stockage des fichiers
    "extras" => 'association',

paramétrer ou créer dyn/filestorage.inc.php (exemple mettre les fichiers dans /var/www/html/files)

<?php   
$filestorage["filestorage-default"] = array (
    "storage" => "filesystem", // l'attribut storage est obligatoire
    "path" => "../../files/openassociation", // le repertoire de stockage
    "temporary" => array(
        "storage" => "filesystem", // l'attribut storage est obligatoire
        "path" => "../tmp/", // le repertoire de stockage
    ),
);
?>

Protection du filestorage

Mode rewrite

Activer le module rewrite d'apache et redémarrer : (si le module est actif, le lien symbolique rewrite.load dans etc/apache2/mods_enabled)

a2enmod rewrite
service apache2 restart

Paramétrage du fichier .htaccess dans files

mode rewrite

Le contenu renvoie l'accès par url vers le programme intermediaire.php

#Options +FollowSymLinks
RewriteEngine On
RewriteBase / 
RewriteRule "(.*)" "intermediaire.php"

Programmation d'intermediaire.php

source

à la racine /var/www/html mettre le fichier intermediaire.php

<?php
$requested = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
if (is_file($requested)) {
	header('Content-type: application/pdf');
	readfile($requested);
} else {
	echo "HTTP/1.0 403 Forbidden";
	exit;
}

Le filtrage IP

Nous allons autoriser que certaines adresses IP Ici celles du réseau local (commençant par 192.168)

Htaccess – Restriction des adresses IP

Dans le fichier .htaccess de l'endroit ou on veut restreindre l'accès, par exemple dans le répertoire openassociation_2.0.1 :

Deny from all
Allow from 192.168
La restriction se fait sur l'adresse du client. Que l on se connecte en interne avec l'adresse externe du serveur ou son adresse interne (192.168.x.x), cela ne change rien. En externe, l'adresse interne n'est pas adressable.

le https

securite_apache.txt · Dernière modification : 2020/06/08 15:53 de fraynaud