Romain Tiennot

Technicien Superieur en Informatique

Aller au contenu | Aller au menu | Aller à la recherche

Keyword - Debian

Fil des billets

Configuration Raid1 Logiciel Debian

Nous allons voir comment configurer un Raid1 Logiciel pour une Debian 5. Cette manipulation est exactement là même que pour une Debian 6.
Cette manipulation est effectué lors du partitionnement avant l'installation de la distribution. Il existe d'autre méthode après installation. Ca sera le sujet d'un autre de mes articles.

Avec cette demontration, vous pouvez l'utiliser pour configurer de la distribution en RAID0, RAID5, RAID6 ou encore RAID10.

Dans un premier temps, il faut deux disque dur de même capacité pour le RAID0 et RAID1puis 4 pour le RAID5,RAID6 et RAID10.

1. Lors du partitionement, les deux disques dur devront etre en "Espace libre" : debian_raid1_1.jpg

2. Ensuite, dans le champ "Utiliser comme", il faut choisir "volume physique pour RAID" : debian_raid1_2.jpg

3. Les deux disques dur configuré, le champ "Configurer le RAID logiciel" doit s'afficher vous devez le sélectionner : debian_raid1_3.jpg

4. Selectionner le type de Raid que vous voulez installer : debian_raid1_4.jpg

5. Choisisez les peripheriques pour construire le Raid : debian_raid1_5.jpg

6. Le récapitulatif du partitionage affiche "Peripherique RAIDX n°X". Il ne reste plus qu'a indiquer pour le "Peripherique RAID" le type de fichier et le point de montage : debian_raid1_7.jpg

7. Il ne reste qu'a choisir de terminer le partitionnement : debian_raid1_8.jpg

Hélas, ce n'est pas terminé. Le Raid fonctionne mais le GRUB n'est installé que sur le "hd0". Il faut donc aussi l'installer sur le "hd1" en cas de crache du premier disque. Pour cela, il faut rentrer dans le mode de configuration du grub avec la commande :

grub


Ensuite selection la premiere partition du premier disque :

root (hd0,0)


Puis lancer l'installation du grub sur celle-ci :

setup (hd0)


Repeter cette manipulation pour le deuxieme disque :

root (hd1,0)
setup (hd1)


Félicitation, le Raid est configuré sur votre Debian.

Authentification LDAP pour PHP (Linux - Debian)

php_ldap.jpg Cette article va montrer comment activer et utiliser l'authentification LDAP pour un intranet par exemple.

Dans un premier temps, nous avons besoin :

  • Un domaine Windows avec une Active Directory
  • D'une machine Linux intégré au domaine
  • Un serveur LAMP (Linux Apache MySQL PHP) ou au minimum Apache et PHP.


Une fois votre linux intégré dans le domaine (Voir Article précedent) et votre serveur LAMP installé, vous devez télécharger et activer le module LDAP.

Télécharger et installer le module LDAP :

apt-get install php5-ldap

Activer le module :

a2enmod ldap

Puis relancer le serveur :

/etc/init.d/apache2 restart



Félicitation, vous pouvez utiliser l'authentification LDAP via PHP. Il ne vous reste plus qu'a coder quelque ligne en PHP. Vu que je suis gentil, voici un petit exemple d'authentification.

Dans mon cas, nous avons 5 services :

  • Administration
  • Direction
  • Production 1
  • Production 2
  • Technique


Chaque service à une OU (Unité d'organisation) à son nom et deux sous OU nommé "Ordinateur" et "Utilisateur". Seul les utilisateurs présent dans les OU's "Utilisateur" pourront se connecter via le LDAP et les autres se veront rejeté. Les utilisateurs présent dans l'OU "Technique","Utilisateur" auront des droits supplémentaire.

Pour cela, nous devons avoir deux Pages :

  • Une page d'authentification (index.php)
  • Une page qui se connecte au LDAP avec les identifiants (autorise.php)


La page "autorise.php" va récupérer les identifiants saisie (par exemple : "romain.tiennot"). Pour la connexion LDAP, on doit utiliser le "Nom" et non "identifiant de connexion" donc j'ai fait un "str_replace" pour remplacer le "." par " ". Avec les identifiants, il va essayer de vérifier si l'utilisateur est bien présent dans les OU et si son mot de passe est correcte.

Voici la page index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>Intranet</title>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
		<meta http-equiv="content-language" content="fr" />
	</head>
	<body>
		<FORM METHOD="POST" ACTION="autorise.php">
			<TABLE WIDTH="100%">
				<TR ALIGN="CENTER">
					<TD>Login</TD>
					<TD><input type="texte" value="" name="login"/></TD>
				</TR>
				<TR ALIGN="CENTER">
					<TD>Mot de passe</TD>
					<TD><input type="password" value="" name="password"/></TD>
				</TR>
				<TR ALIGN="CENTER">
					<TD></TD>
					<TD><BR/><input type="submit" name="connection" value="Connection"</TD>
				</TR>
			</TABLE>
		</FORM>
	</body>
</html>

Voici la page autorise.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
	<title>Intranet</title>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
	<meta http-equiv="content-language" content="fr" />
</head>
<body>
	<?php
		// on récupère le login et le pass
		$user=$_POST['login'];
		$passwd=$_POST['password'];
		// Je remplace le "." (point) par " " (espace) car pour la verification LDAP il n'utilise pas les identifiants de connexion mais le "nom de connexion"
		$user = str_replace('.',' ',$user);
		// le nom de domaine facon : DC=DOMAIN,DC=LAN
		$ldap_base = 'dc=drinkevol,dc=lan';
		// le nom de domaine facon : DOMAIN.LAN
		$ldap_server = 'drinkevol.lan';
		// Le chemin de l'OU des utilsateurs de la direction avec la variable "$ldap_base" créé plus haut
		$ldap_direction = ",ou=Utilisateurs,ou=Service Direction,".$ldap_base;
		// Le chemin de l'OU des utilsateurs de la production1 avec la variable "$ldap_base" créé plus haut
		$ldap_production1 = ",ou=Utilisateurs,ou=Production 1,ou=Service Production,".$ldap_base;
		// Le chemin de l'OU des utilsateurs de la production2 avec la variable "$ldap_base" créé plus haut
		$ldap_production2 = ",ou=Utilisateurs,ou=Production 2,ou=Service Production,".$ldap_base;
		// Le chemin de l'OU des utilsateurs de l'informatique avec la variable "$ldap_base" créé plus haut
		$ldap_informatique = ",ou=Utilisateurs,ou=Service Informatique,".$ldap_base;
		// Le chemin de l'OU des utilsateurs de l'administration avec la variable "$ldap_base" créé plus haut
		$ldap_administratif = ",ou=Utilisateurs,ou=Service Administratif,".$ldap_base;
		// le port pour la connexion LDAP (par defaut 389)
		$ldap_port = '389';
 
		// Création de la variable "$connexion_serveur" ou l'on indique les informations pour questionner la base
		$connexion_serveur = @ldap_connect($ldap_server, $ldap_port);
		// Si la connexion au LDAP fonctionne avec les identifiants saisie et que l'utilisateur se trouve dans l'OU "Utilisateur","Technique" alors on l'authorise avec les droits administrateurs
		if ($connexion_user=@ldap_bind($connexion_serveur, 'cn='.$user.$ldap_informatique, $passwd))
		{
			?>
				<div class='news'>
					<H1>Bienvenue, <? echo ucwords($user)."."; ?><BR> Vous êtes administrateur</H1>
				</div>
			<?php
			$_SESSION['admin']=1;
		}
 
		// Sinon SI la connexion LDAP fonctionne avec les identifiants saisie et que l'utilisateur se trouve dans l'OU "Utilisateur", "Direction" ou "Utilisateur","Production2" etc... Alors on l'autorise avec les droits "Utilisateur"
		elseif (((($connexion_user=@ldap_bind($connexion_serveur, 'cn='.$user.$ldap_production1, $passwd)) or ($connexion_user=@ldap_bind($connexion_serveur, 'cn='.$user.$ldap_production2, $passwd))) or ($connexion_user=@ldap_bind($connexion_serveur, 'cn='.$user.$ldap_direction, $passwd))) or ($connexion_user=@ldap_bind($connexion_serveur, 'cn='.$user.$ldap_administratif, $passwd)))
		{
			?>
				<div class='news'>
					<H1>Bienvenue, <? echo ucwords($user)."."; ?>
				</div>
			<?php
			$_SESSION['admin']=2;
		}
 
		// Sinon, les identifiants sont peut etre mal saisie ou que l'utilisateur n'existe pas ou qu'il n'est pas dans la bonne OU. L'utilisateur se voit rejeter la connexion.
		else 			
		{	
			?>
				<div class='news'>
					<H1><? echo ucwords($user); ?>, vous n'etes pas authorisé</H1>
					<BR/><BR/><form><input type='button' value='Retour' onclick="self.location.href='index.php'"></form>
				</div>
			<?php
			$_SESSION['admin']=0;
		}
	?>		
</body>
</html>

Voici une petite démonstration :

A bientôt