1

sécuriser l’accès à ZoneMinder via le protocole https

Par défaut, ZoneMinder est accessible via un navigateur web sur le port 80, ce qui se traduit: login/mdp passe en clair sur le réseau.
Si on accède à Zm sur son réseau privé, ce n’est pas trop grave mais si on accède à Zm via internet là ça devient très critque.

Cet article décrit la procédure pour accéder à Zoneminder via le protocole https sur le port 443 du serveur web.

Configuration du serveur web Apache

  • Vérification du port 443 en écoute
  • Ouvrir le fichier /etc/apache2/ports.conf et vérifier si Listen 443 est bien présent et sans le # devant:

    <IfModule mod_ssl.c>
        Listen 443
    </IfModule>
    
  • Activer le mod ssl pour Apache:
  • a2enmod ssl
    
  • Création du certificat auto-signé
  • Voir l’article: https://memo-linux.com/openssl/

  • Modification du fichier configuration de ZM
    editer le fichier de configuration

    nano /etc/apache2/site-enabled/zoneminder.conf
    

    Remplacer le contenu comme suit:

    NameVirtualHost  *:443
    <virtualhost *:443>
            ServerName serverweb.dom
            Alias /zm /usr/share/zoneminder
            DocumentRoot /usr/share/zoneminder
            SSLEngine on
            SSLCertificateFile /etc/apache2/ssl/apache.crt
            SSLCertificateKeyFile /etc/apache2/ssl/apache.key
            php_flag register_globals off
            Options Indexes FollowSymLinks
      <IfModule mod_dir.c>
        DirectoryIndex index.php
      </IfModule>
    </virtualhost>
    
  • Redémarrage d’Apache:
  • service apache2 restart
    

Test de connexion dans un navigateur web

Saisir l’adresse du serveur: http://url_server/zm/
Normalement, il n’est plus possible d’y accéder.

Saisir de nouveau l’url mais en spécifiant https://url_server/zm/
zm_https01

Cliquer sur « I Understabnd the Risks » ensuite sur « Add Exception… » une nouvelle fenêtre s’ouvre:
zm_https02
Et cliquer sur « Confirm Security exception ».

On arrive sur l’écran de connexionn de ZM:
zm_https03

Ajouter une étape d’authentification à l’accès de ZoneMinder via .htaccess

Il est possible d’ajouter une étape d’authentification avant d’arriver à la page de connexion de ZM.
Pour se faire, on va ajouter un login et un mot de passe de connexion via le fichier .htacess et .htpasswd.

  • Création du fichier .htapasswd
  • Se rendre dans un répertoire de votre choix pour la création du fichier .htpasswd, exemple:

    cd /home/fred/zm/
    

    Saisir la commande suivante pour créer le couple login/mdp

    htpasswd -c .htpasswd fred
    
  • Création du fichier .htaccess
  • Se rendre dans le répertoire courant de ZM:

    cd /usr/share/zoneminder/
    

    Créer le fichier .htaccess

    nano .htaccess
    

    Coller ce qui suit:

    AuthUserFile /home/fred/zm/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Identification obligatoire!"
    AuthType Basic
    
    <Limit GET POST>
    require valid-user
    </Limit>
    
  • Recharger Apache pour la prise en compte
  • service apache2 reload
    

    Actualiser la page du navigateur, et dorénavant une fenêtre d’authentification demmandera le couple login/Mdp:
    zm_https05

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Un commentaire

  1. Bonjour,
    J’ai fait la configuration d’apache selon ce topo, mais je ne parviens pas à me connecter en https. A priori tout s’est bien passé. J’ai le certificat. J’ai créé le fichier /etc/apache2/site-enabled/zoneminder.conf qui n’existait pas par copier-coller le texte ci dessus. Après redémarrage d’Apache l’essai de connexion est négatif, pourquoi ? Je pense qu’il faut modifier la ligne ‘ServerName serverweb.dom’ , mais comment ? Zoneminder n’utilise t il pas un serveur nommé simplement ZM ?
    Un commentaire sur ce point serait bienvenu.
    Merci d’avance.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *