Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 2445 → Rev 2446

/web/acc/admin/lib/alcasar/freeradius/ldapconfig.php
File deleted
\ No newline at end of file
/web/acc/admin/lib/alcasar/freeradius/configreader.php
File deleted
\ No newline at end of file
/web/acc/admin/lib/alcasar/freeradius/siteconfig.php
File deleted
\ No newline at end of file
/web/acc/admin/ldap.php
1,14 → 1,11
<?php
require_once("lib/alcasar/freeradius/siteconfig.php");
require_once("lib/alcasar/freeradius/ldapconfig.php");
 
/* written by steweb57 */
/* written by steweb57 & Rexy */
/****************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*****************************************************************/
 
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-available/alcasar");
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/modules/ldap");
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-enabled/alcasar");
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/mods-available/ldap");
 
/****************************************************************
* Choice of language *
138,25 → 135,16
//par défaut : # base_filter = "(objectclass=radiusprofile)"
 
/********************************************************
* Fichier ALCASAR_RADIUS_SITE *
*Lecture Fichier de conf *
*********************************************************/
$site = new siteConfig();
$site->load(ALCASAR_RADIUS_SITE);
$ldap_on = $site->authorize->ldap;
//Lecture du fichier /usr/local/etc/alcasar.conf
//$ldap_server = $ldap->host; // others options only in alcasar 3.x ($ldap->server)
//$ldap_identity = $ldap->identity;
//$ldap_password = $ldap->password;
//$ldap_basedn = $ldap->basedn;
//$ldap_filter = $ldap->uid; // others options only in alcasar 3.x ($ldap->filter)
//$ldap_base_filter = $ldap->base_filter;
 
/********************************************************
* Fichier ALCASAR_RADIUS_MODULE_LDAP *
*********************************************************/
//Lecture du fichier /etc/raddb/modules/ldap
$ldap = new ldapConfig();
$ldap->load(ALCASAR_RADIUS_MODULE_LDAP);
$ldap_server = $ldap->host; // others options only in alcasar 3.x ($ldap->server)
$ldap_identity = $ldap->identity;
$ldap_password = $ldap->password;
$ldap_basedn = $ldap->basedn;
$ldap_filter = $ldap->uid; // others options only in alcasar 3.x ($ldap->filter)
$ldap_base_filter = $ldap->base_filter;
 
function ldap_test($f_ldap_server, $f_ldap_identity, $f_ldap_password, $f_ldap_basedn, $f_ldap_filter, $f_ldap_port = "389"){
// Test du serveur
if (!$sock = @fsockopen($f_ldap_server, $f_ldap_port, $num, $error, 2)) {
/web/acc/admin/update_ldap.php
1,17 → 1,15
<?php
/* written by steweb57 */
require_once("lib/alcasar/freeradius/siteconfig.php");
require_once("lib/alcasar/freeradius/ldapconfig.php");
/************************************************************************
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION *
*************************************************************************/
/* written by steweb57 & Rexy */
/************************************************
* CONF FILES *
*************************************************/
 
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-available/alcasar");
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/modules/ldap");
define ("ALCASAR_RADIUS_SITE", "/etc/raddb/sites-enabled/alcasar");
define ("ALCASAR_RADIUS_MODULE_LDAP", "/etc/raddb/mods-available/ldap");
define ("ALCASAR_CONF_FILE", "/usr/local/etc/alcasar.conf");
 
/****************************************************************
* FONCTION ERREUR *
* ERROR FONCTION *
*****************************************************************/
 
function erreur($er){
19,9 → 17,9
exit();
}
 
/****************************************************************
* VARIABLES DE FORMULAIRE *
*****************************************************************/
/********************************************************
* FORM VARIABLES *
*********************************************************/
 
//Récupération des variables de formulaire
if (isset($_POST['auth_enable'])) $auth_enable = $_POST['auth_enable']; else erreur('Erreur de variable auth_enable');
55,18 → 53,15
exit("Fichier de configuration du module ldap pour freeradius non présent");
}
if (!is_writable(ALCASAR_RADIUS_SITE)){
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/sites-available/alcasar");
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/sites-enabled/alcasar");
}
if (!is_writable(ALCASAR_RADIUS_MODULE_LDAP)){
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/modules/ldap");
exit("Vous n'avez pas les droits d'écriture sur le fichier /etc/raddb/mods-available/ldap");
}
 
/****************************************************************
* Fichier ALCASAR_RADIUS_SITE *
* File sites-enabled/alcasar *
*****************************************************************/
$site = new siteConfig();
$site->load(ALCASAR_RADIUS_SITE);
if ($auth_enable == "1"){ //test $auth_enable
/*
ON ACTIVE LE LDAP
*/
76,14 → 71,6
fail=1
}
*/
if ($site->authorize->ldap === false){ // always test before update
$site->authorize->addSection('ldap');
$site->authorize->ldap->addPair('fail','1');
}else{
if ($site->authorize->ldap->fail === false){ // always test before update
$site->authorize->ldap->addPair('fail','1');
}
}
/*
Configure authenticate section with
Auth-Type LDAP {
90,59 → 77,40
ldap
}
*/
if ($site->authenticate->getSectionInstance('Auth-Type','LDAP')===false){ // always test before update
$site->authenticate->addSection('Auth-Type', 'LDAP');
$site->authenticate->getSectionInstance('Auth-Type','LDAP')->addSection('ldap');
}
} else {
/*
ON DESACTIVE LE LDAP
*/
if ($site->authorize->ldap !== false){ // always test before update
$site->authorize->deleteSection("ldap");
}
if ($site->authenticate->getSectionInstance('Auth-Type','LDAP')!==false){ // always test before update
$site->authenticate->deleteSection('Auth-Type','LDAP');
}
}
//Sauvegarde du /etc/raddb/sites-available/alcasar
$site->save(ALCASAR_RADIUS_SITE);
 
/****************************************************************
* Fichier ALCASAR_RADIUS_MODULE_LDAP *
* File mods/available/ldap *
*****************************************************************/
//on ne modifie ALCASAR_RADIUS_MODULE_LDAP uniquement si l'authentification ldap est active
if ($auth_enable == "1"){ //test $auth_enable
// chargement de la configuration courante
$ldap = new ldapConfig();
$ldap->load(ALCASAR_RADIUS_MODULE_LDAP);
// mise à jours des données
//$ldap->server = $ldap_server;
$ldap->host = $ldap_server;
$ldap->identity = $ldap_user;
$ldap->password = $ldap_password;
$ldap->basedn = $ldap_base_dn;
//$ldap->host = $ldap_server;
//$ldap->identity = $ldap_user;
//$ldap->password = $ldap_password;
//$ldap->basedn = $ldap_base_dn;
//$ldap->filter = $ldap_filter;
$ldap->uid = $ldap_filter;
$ldap->base_filter = $ldap_base_filter;
//sauvegarde du fichier /etc/raddb/modules/ldap
$ldap->save(ALCASAR_RADIUS_MODULE_LDAP);
} //test $auth_enable
//$ldap->uid = $ldap_filter;
//$ldap->base_filter = $ldap_base_filter;
 
/********************************************************
* Redémarage des service *
* File modification & services restart *
*********************************************************/
 
//test d'accès au serveur
//si réussite
// - écriture config ldap complète dans alcasar.conf
// - appel script-shell (alcasar-ldap.sh)
// - modif des 2 fichier ci-dessus
// - actions si dessous
if ($auth_enable == "1") {
file_put_contents(ALCASAR_CONF_FILE, str_replace('LDAP=off', 'LDAP=on', file_get_contents(ALCASAR_CONF_FILE)));
exec("sed -i \"s/^LDAP_IP=.*/LDAP_IP=$ldap_server/g\" ".ALCASAR_CONF_FILE);
exec("ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap");
}
else {
file_put_contents(ALCASAR_CONF_FILE, str_replace('LDAP=on', 'LDAP=off', file_get_contents(ALCASAR_CONF_FILE)));
exec("sed -i \"s/^LDAP_IP=.*/LDAP_IP=0.0.0.0/g\" ".ALCASAR_CONF_FILE);
exec("rm -f /etc/raddb/mods-enabled/ldap");
}
exec("sudo /usr/local/bin/alcasar-iptables.sh");
exec("sudo /usr/bin/systemctl restart radiusd");
#exec("sudo /usr/local/bin/alcasar-iptables.sh");
#exec("sudo /usr/bin/systemctl restart radiusd");
 
/****************************************************************
* Redirection vers la page de configuration LDAP *