-
Notifications
You must be signed in to change notification settings - Fork 0
Installation et paramétrage de Winlog
Télécharger l'archive https://github.com/jbousquie/winlog/archive/master.zip et la dézipper dans le répertoire de publication Web du serveur, exemple /var/www/html
Note préalable : on utilise ici MySQL, mais n'importe quel autre SGBD peut être utilisé.
Créer dans MySQL une base nommée winlog
et un compte ayant tous les droits sur cette base.
mysql -h host -u user -ppass winlog < winlog.sql
Copier la fichier admin/winlog_conf_admin.php.example
en admin/winlog_conf_admin.php
et éditer ce dernier.
Hormis des paramètres externes (configuration CAS, par exemple), toute la configuration générale de Winlog se trouve dans cet unique fichier.
Fichier admin/winlog_conf_admin.php
:
- Déclaration de l'URL de l'interface d'administration :
// URL administration de Winlog
$winlog_url = "https://winlog.iut-rodez.fr/admin/";
On peut par exemple choisir une URL qui sera aussi exposée depuis le Web afin de pouvoir suivre l'activité depuis n'importe où.
- Déclaration de l'URL de la partie frontale :
// URL serveur Winlog : URL sur laquelle les requêtes des PC clients arrivent
$server_url = "https://winlog.iut.rdz/";
On peut ici choisir de n'exposer cette URL que depuis le réseau des PC clients.
- Déclaration du code partagé entre les clients et le serveur :
// Code partagé entre client et serveur
$server_code = "salt"; // ne pas mettre les caractères "&" ou "=", ni la chaîne "##serverwinlog##"
Il s'agît d'une petite chaîne de caractères connue uniquement du serveur et de ses clients pour limiter le risque de requêtes usurpantes.
- Déclaration du mode d'authentification :
// mode d'authentification : "CAS", "simple", "LDAP"
$auth_mode = "CAS";
Pour l'instant, seuls les modes "simple"
et "CAS"
sont implémentés. Choisir initialement le mode "simple" pour vérifier le fonctionnement de Winlog après installation.
- Nom du serveur Active Directory
// Paramètres LDAP pour Active Directory
$ldap_host = "ldap_hostname_or_ip";
$ldap_port = 389;
Mettre entre double-quotes le nom du serveur AD ou son adresse IP : "mon.serveur.ad"
ou "192.168.200.200"
.
Ce serveur doit impérativement être accessible sur le port 389 depuis le serveur Winlog, ce qui peut être testé par un simple telnet mon.serveur.ad 389
.
- Compte ayant accès en lecture sur AD
$ldap_rdn = "CN=ldapview,CN=Users,DC=iut,DC=local";
$ldap_passwd ="password";
Le canonical name, ou CN, ainsi que son mot de passe d'un compte ayant accès en lecture aux branches déclarées ci-dessous est saisi.
Dans cet exemple, le compte se nom ldapview
et est rangé dans les Users
du domaine iut.local
.
- Bases de recherche AD
Deux types de recherche sont réalisés dans AD : la recherche des machines et la recherches des comptes utilisateurs.
$base_salles = "OU=Salles,DC=iut,DC=local";
$base_salles_personnel = "OU=Salles Admin,DC=iut,DC=local";
...
$base_enseignants = "OU=Enseignants,DC=iut,DC=local";
$base_etudiants = "OU=Etudiants,DC=iut,DC=local";
Une variable $var_whatever
est déclarée par branche de recherche aussi bien pour les machines que pour les comptes.
Il est nécessaire d'avoir au moins une branche de recherche des comptes et une branche de recherche des machines.
Dans cet exemple, deux branches de recherche sont déclarées pour les machines $base_salles
et $base_salles_personnel
, les machines des personnels et des étudiants étant rangées dans des "salles" (OU Salles ou OU Salles Admin).
Deux branches de recherche sont aussi déclarées pour les comptes : $base_enseignants
et $base_étudiants
.
Ces variables ne sont pas requises en tant que telles. Elles ne servent qu'à rendre plus lisible la déclaration des tableaux de branches de recherche :
-
$ldap_personnes
: tableau des branches de recherche sur les comptes. -
$ldap_machines
: tableau des branches de recherche sur les machines.
Exemple :
// tableaux de configuration requis : $ldap_personnes et $ldap_machines, utilisés par recup_salles.php
$lib_personnel = "Enseignant"; // libellé par défaut
$ldap_personnes = array(
array("base" => $base_enseignants, "filtre" => $filtre_enseignants, "attr" => $attr_enseignants, "type" => $lib_personnel),
array("base" => $base_etudiants, "filtre" => $filtre_etudiants, "attr" => $attr_etudiants, "type" => NULL)
);
$ldap_machines = array(
array("base" => $base_salles, "filtre" => $filtre_salles, "attr" => $attr_salles),
array("base" => $base_salles_personnel, "filtre" => $filtre_salles, "attr" => $attr_salles)
);
NOTE : le tableau $ldap_personnes
contient une clé nommée "type"
.
Si "type"
est NULL
, les comptes récupérés de cette branche seront rangés dans Winlog dans des groupes nommés comme l'OU
contenant chaque compte.
Si "type"
a une valeur (string), les comptes récupérés seront rangés dans Winlog dans un groupe nommé comme la valeur de "type"
.
NOTE 2 : Si on n'a qu'une seule branche de recherche, on ne met qu'un seul array
dans le tableau général :
// une seule branche machines
$ldap_machines = array(
array("base" => $base_salles, "filtre" => $filtre_salles, "attr" => $attr_salles)
);
// une seule branche personnes
$ldap_personnes = array(
array("base" => $base_enseignants, "filtre" => $filtre_enseignants, "attr" => $attr_enseignants, "type" => $lib_personnel)
);
- Tableau des exclusions
On peut vouloir ne pas récupérer certainesOU
des résultats des recherches sur les machines ou sur les compte précédents.
Dans ce cas, on déclare explicitement les noms desOU
à exclure de chaque type de recherche :
// Liste des OU (dn) à ne pas récupérer dans les tableaux précédents
$OU_machines_exclusion = array( "TEST" );
$OU_personnes_exclusion = array( "TEST" );
Laisser des tableaux vides si pas d'exclusion souhaitée : array();
Note importante : Par défaut, un serveur Active Directory ne retourne au maximum que 1000 lignes de résultats .
Si dans l'une de vos branches personnels ou machines, vous avez plus de 1000 occurrences à récupérer, il faudra alors soit modifier la valeur maximale de retour sur le serveur AD (https://msdn.microsoft.com/en-us/library/aa746414(v=vs.85).aspx ), soit modifier le code de Winlog (recup_salles.php
ou recup_comptes.php
) pour prendre en compte les résultats paginés : http://php.net/manual/fr/function.ldap-control-paged-result.php
// Paramètres MySQL
$db_server = "p:localhost"; // "p:host" pour des connexions persistantes
$db_dbname ="winlog";
$db_user = "db_user";
$db_passwd = "db_password";
Si la base est située sur un autre serveur, mettre le nom ou l'adresse IP du serveur dans $db_server
et s'assurer que les droits d'accès dans la base sont bien donnés pour ce nom d'hôte.
- Délai de rafraichissement du rendu des données :
// Délai de rafraichissement en secondes
$delay = 15;
15 secondes est un bon compromis entre la réactivité ("temps réel") et le nombre de requêtes sur la base.
Winlog peut néanmoins fonctionner avec des délais beaucoup plus rapides si nécessaire.
- Seuils de couleur pour la non-utilisation des machines :
// Seuils de couleur, durée en jours sans connexion
$j10 = 10; // jaune : au moins 10 jours sans connexion
$j20 = 20; // orange : au moins 20 jours sans connexion
$j30 = 30; // rouge : plus de 30 jours sans connexion
Les nombres de jours avant changement de couleurs sont modifiables. ex : $j10 = 7;
pour 7 jours avant de passer en jaune.
- Liste des salles à ne pas afficher :
Une salle est en fait un groupe de machines.
Certaines groupes de machines, pourtant récupérés depuis AD mais non pertinents pour le suivi, peuvent ne pas être affichés.
Les noms saisis n'ont pas nécessairement besoin d'exister dans AD. On peut exclure d'office une salle "TEST" qu'elle existe ou pas dans AD.
// Salles à ne pas afficher
$salles_invisibles = array("STOCK","TEST", "SOUK"); // liste des salles à ne pas afficher
Laisser un tableau vide si aucune salle invisible : $salles_invisibles = array();
- Déclaration des comptes administrateurs et superviseurs :
Les administrateurs ont accès à toutes les fonctionnalités alors que les superviseurs sont parfois restreints en lecture/vision uiquement, en particulier sur des fonctionnalités de chargement de la base ou de reboot des machines du parc.
// Utilisateurs autorisés : les superviseurs peuvent tout voir, les administrateurs peuvent modifier
$administrateurs = array("admin1", "admin2", "adminN");
$superviseurs = array("user1", "user2", "userN");
// exemple si un seul utilisateur :
$administrateurs = array("adminUnique");
Note : il existe un troisième profil de compte, les utilisateurs autorisés. Les utilisateurs autorisés appartiennent au groupe ayant pour valeur la variable $lib_personnel
.
$lib_personnel = "Enseignant"; // libellé par défaut
Ces utilisateurs autorisés peuvent voir les connexions en cours depuis la salle où ils sont eux-même connectés.
Tous les autres utilisateurs n'ont aucun accès à l'interface d'administration de Winlog.
- Vue des connexions par défaut : les salles doivent-elles être "enroulées" ou "déroulées" par défaut
// Comportement par défaut des listes de connexions : enroulé/déroulé
// défaut : $deroule = true;
$deroule = true;
- Message par défaut pour les utilisateurs autorisés non reconnus
// Messages
// ma_salle_live.php : non connecté depuis une salle
$msg_salle_live_non_autorise = "Vous n'êtes actuellement pas authentifié comme enseignant dans une salle informatique de l'IUT.<br/>";
Ce message ne concerne que l'affichage de l'URL admin/ma_salle_live.php
- Autres paramètres
Tous les autres paramètres concernent les fonctionnalités "externes" de Winlog comme l'affichage de la liste des processus d'un PC, le reboot d'une machine ou le blocage Web d'une salle. Ils sont détaillés dans la documentation relative à ces fonctionnalités.