Gestion de LetsEncrypt sous FreeBSD avec nginx et une jail

LetsEncypt est une autorité de certification utilisant une API basée sur des appels HTTP et un client côté serveur qui va générer des tokens lus par les serveurs LetsEncrypt.

Nous allons ici voir une architecture LetsEncrypt typique dans laquelle nous allons utiliser le client acme-client d’OpenBSD disponible dans les ports et les packages FreeBSD.

Installation

Dans un premier temps installez le client sur votre machine hôte (et pas votre jail web):

Continuer à lire

Apache: obtenir l’IP source depuis un en-tête conditionel dans les logs

Dans le cadre d’un environnement web haute disponibilité il y a généralement des répartiteurs de charge HTTP comme HAproxy ou des reverse proxies comme Apache ou Nginx en frontal qui vont s’occuper de répartir la charge et/ou filtrer une partie des requêtes pour ménager les serveurs d’application de backend.

Le principal problème rencontré dans ce type d’architecture est que, généralement, le service web de frontend va masquer l’IP source du client, réduisant la tracabilité de celui-ci sur les backends. Nous allons ici partir du principe que le service web de frontend retransmet l’IP au backend via un en-tête HTTP nommé X-Real-IP. Continuer à lire

Apache: authentification par certificats

L’authentification par certificats permet de remplacer le traditionnel couple login/password dans un environnement doté de PKI.

Le certificat doit être reconnu par le serveur web, que ce soit par le biais du fait que le CA authentifie côté serveur et qu’on peut également filtrer les utilisateurs par données présentes dans le certificat.

Entre autres, cela permet également d’utiliser des supports externes au clavier pour reconnaître les utilisateurs, comme des lecteurs de carte à puce.

Nous allons voir ici comment activer l’authentification par certificat sous Apache.

Continuer à lire

Shibboleth (IdP): installation et retour d’expérience

Shibboleth est un système de fédération d’identités. Il permet d’authentifier des utilisateurs faisant partie d’établissements/entreprises différentes sur des applications mutualisées.

Peu présent et utile dans le secteur privé, Shibboleth est une référence en terme d’authentification dans le secteur public, au sein du ministère de l’enseignement supérieur et de la recherche. Renater, fournisseur d’accès à Internet réservé aux établissement d’enseignement supérieur et de recherche, est l’un des organismes qui l’utilise le plus.

Shibboleth est composé de plusieurs briques, notamment le Service Provider (SP, fournisseur de services) et dans notre cas le fournisseur d’identité (Identity Provider, IdP)

Continuer à lire

Mettre en place un cluster Apache avec FreeBSD et DragonFlyBSD

Nous allons étudier dans cet article un type d’architecture redondée pour vos serveurs Web Apache. Dans ce type d’architecture, les bases de données sont dissociées du modèle, et ne seront pas étudiées ici. De même nous ne configurerons ni Apache ni le WordPress de test qui seront installés, d’autres articles seront référencés.

Cluster de données

Dans un premier temps nous allons installer le cluster de données. Nous nous basons sur DragonFlyBSD pour son très bon système de fichiers (HAMMER), qui offre d’excellentes performances avec NFS (limité à la version 3). Continuer à lire

Activer la maintenance sur un Vhost


Introduction

Maintenir ses services est essentiel. Si vous n’êtes pas dans une configuration de load balancing ou de haute disponibilité, il convient parfois de mettre des services en maintenance. Il faut savoir que le protocole HTTP intègre un code de retour qui définit un service temporairement indisponible ou en maintenance (503).

Prérequis

Il est essentiel d’avoir le mod_rewrite activé

Configuration

Ouvrez le fichier de configuration de votre VirtualHost et ajoutez simplement les lignes suivantes:

Voilà, avec ces lignes actives votre serveur est définit en maintenance. Vous pouvez créer une page web down.html afin de personnaliser l’alerte.

Il est bien entendu possible d’utiliser ces lignes pour générer d’autres codes d’erreur. Continuer à lire

Reverse Proxy


Introduction

Depuis la version 2.2 d’Apache, une fonctionnalité très intéressante est apparue. Il s’agit du module de reverse proxy. Celui-ci permet de définir un serveur Apache comme forwardant des requêtes HTTP vers un autre serveur, par exemple local. Ceci permet notamment de cacher vos sites derrière un ou plusieurs serveurs web frontaux, répondant à une problématique de sécurité. Nous allons ici voir comment se configure le reverse proxy.

Cette manière de fonctionner permet ainsi de pouvoir changer de serveur à chaud par exemple dans le cas d’une maintenance ou d’un upgrade de site (avec deux machines différentes). Ceci permet également dans le cas d’une attaque web de protéger le transit de données en protégeant le contenu derrière plusieurs passerelles et pare-feu (seul le serveur web peut aller sur le site proxifié). Continuer à lire

Authentification .htaccess


Introduction

Généralement certaines parties de votre site sont sensibles, comme la partie administration. Afin de pouvoir sécuriser de façon plus stricte l’accès au fichiers de ces répertoires, il peut être judicieux de cacher derrière une autre sécurité celui-ci. Le fichier .htaccess permet de mettre des ACL d’accès sur un répertoire ou un fichier.

Prérequis

Vous devez avoir installé le serveur Apache2

Configuration d’Apache

Les .htaccess sont redoutablement efficaces pour permettre d’interdire l’accès à un répertoire. Continuer à lire

mod_authnz_ldap

Introduction

Apache permet de s’authentifier via des fichiers .htaccess. Il peut s’avérer utile, notamment dans le cas d’un intranet, d’incorporer une couche d’authentification simple pour filtrer les utilisateurs ayant accès à une application Web. Nous allons voir comment mettre en oeuvre l’authentification LDAP sur un serveur Apache. Continuer à lire

mod_evasive

Introduction

Apache est un serveur Web. Dans le cas de grosses entreprise il convient de définir une politique de répartition des charges (Load Balancing) afin de pouvoir supporter le nombre de clients et limiter les attaques de grande ampleur sur le service.

Nous allons étudier le paquet mod-evasive (anciennement appelé mod-dosevasive) qui permettra de limiter la charge de votre serveur et permettre ainsi de parer aux attaques de type Denial Of Service Continuer à lire

Introduction à Apache2

Introduction

Apache est libre et gratuit. Néanmoins la liberté n’accorde pas le privilège de sécurité.

Apache souffre de lacunes au niveau sécurités élémentaires, et la variété des modules que l’on peut installer dessus ne permet pas d’obtenir la parfaite garantie de la fiabilité du système. Je vais vous exposer diverses techniques de sécurité permettant à votre Apache de devenir moins sensibles aux attaques Web. Continuer à lire