LemonLDAP::NG : Renforcement de la sécurité

Authentification SSO Crowdsec Open source LemonLDAP::NG LL::NG

Dernier article sur LemonLDAP::NG avec la mise en place de quelques options de sécurités intégrées.

Le principe du bouncer est d'agir en préventif en bloquant des IP réputées comme malveillantes en les récupérant depuis une blacklist collaborative fournie par Crowdsec et vos agents Crowdsec tournant sur d'autres serveurs.

Sur votre serveur Crowdsec, créez le bouncer suivant :

root@srvcs:~# cscli bouncers add SRV-SSO-LLNG
API key for 'SRV-SSO-LLNG':

   CLÉ_GÉNÉRÉE_XXXXXXXXXXXXX

Please keep this key since you will not be able to retrieve it!

Copiez la clé générée.

Rendez-vous dans Paramètres généraux > Paramètres avancés > Sécurité > Crowdsec Bouncer et remplir les champs comme ceci :

secu01

Cependant malgré l'existence d'une collection pour Crowdsec et son installation, l'agent ne semble pas détecter les simulations d'attaques sur les tentatives échouées d'authentification. Je me contente donc de prévenir avec le bouncer pour le moment.

On peut limiter les accès aux aux backends d'authentification. Ici nous limitons l'accès à l'auth Kerberos/ADDC ou ADDC en se basant sur l'IP publique de la structure avec cette règle :

if($env->{REMOTE_ADDR} =~ /^W\.X\.Y\.Z/) then [Kerberos,ADDC] or [ADDC] else [LLDAP]

Cette règle est configurée dans Paramètres généraux > Paramètres d'authentification > Combinaison.

Mais attention, il y a un revers à cette sécurité. On ne pourra pas se connecter avec un utilisateur présent dans l'annuaire LLDAP. À étudier donc suivant le contexte. Il existe peut-être une autre façon de rédiger cette règle.

captcha01

Il faut se rendre sur Paramètres généraux > Paramètres avancés > Sécurité > Protection contre les attaques par force brute.

La règle est ici : au bout de 3 tentatives, blocage pendant 30 secondes de l'authentification.

brute01

Wikipédia :

HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé pour HTTP, permettant à un serveur web de déclarer à un agent utilisateur (comme un navigateur web), compatible, qu'il doit interagir avec lui en utilisant une connexion sécurisée (comme HTTPS). La politique est donc communiquée à l'agent utilisateur par le serveur via la réponse HTTP, dans le champ d'en-tête nommé « Strict-Transport-Security ». La politique spécifie une période de temps durant laquelle l'agent utilisateur doit accéder au serveur informatique uniquement de façon sécurisée.

Il faut se rendre sur Paramètres généraux > Paramètres avancés > Sécurité > Age maximum Strict-Transport-Security puis saisissez comme valeur "31536000".

Ce qui est génial avec LemonLDAP::NG c'est la sécurité de base de l'application web. Par défaut vous n'avez quasi rien à faire à part renseigner le point précédent.

Voici ce que donne un scan de Mozilla Observatory :

auth-aplus

Et voilà. C'est terminé pour cette série d'articles. J'espère que cela vous aidera si vous vous lancez dans l'aventure de LemonLDAP::NG.

Article précédent Article suivant