Installation complete
Sommaire
- 1 Installation EPN sur Debian Lenny
- 2 Système
- 3 Installer Apache
- 4 Installer MySQL
- 5 Installer OpenLDAP
- 6 Installer SaMBa
- 7 Installer EPNadmin
- 8 Gestion LDAP cliente
- 9 Configuration SaMBa
- 10 Appliquer les smbldap-tools
- 11 sudo
- 12 phpldapadmin
- 13 Configuration EPNadmin
- 14 Créer un système client (ici Ubuntu 9.04.)
- 15 Reste à faire
Installation EPN sur Debian Lenny
Cette documentation décrit l'installation d'EPNadmin pour une utilisation avec LDAP-SAMBA. La machine serveur Debian et cliente Ubuntu est dans mon cas une machine virtuelle Virtualbox.
Pré-requis
- Installer le système Debian (Debian 5.0 Lenny).
- Configurer la carte réseau virtuelle pour pouvoir accéder facilement à la machine virtuelle depuis la machine hôte.
- Installer Un système client Ubuntu (9.04).
Système
vim /root/.bashrc
alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' alias vi='vim'
source /root/.bashrc
Désactiver les lignes concernant le CD-ROM dans les sources d'apt-get.
vi /etc/apt/sources.list
Mettre à jour le système.
apt-get update apt-get upgrade
Installer SSH pou prendre la VM en SSH avec un terminal.
apt-get install ssh
Installer Apache
Installer les outils Web nécessaires.
apt-get install apache2 php5 libapache2-mod-php5 php-pear xml-core php5-gd php5-ldap php5-mcrypt php5-mhash
Démarrer le serveur Web Apache.
/etc/init.d/apache2 start
Test avec un navigateur d'un poste du même réseau.
http://192.168.1.22
Réponse qu'on doit rencontrer.
It works!
Configurer le nom du serveur Web.
vi /etc/apache2/apache2.conf
ServerName www.sitedebase.fr:80
Redémarrer Apache.
/etc/init.d/apache2 restart
Ajouter un fichier de test.
vi /var/www/phpinfo.php
<?php phpinfo(); ?>
Tester.
http://192.168.1.22/phpinfo.php
Installer MySQL
apt-get install mysql-server php5-mysql
Sécuriser MySQL de manière basique.
mysql_secure_installation Enter ( pas de mot de passe actuel pour root ) " change the root password ? " taper y et tapez un mot de passe . " remove anonymous users " taper y " disallow root login remotly ? " taper n " remove test database and access to it " taper y " reload privilege tables now " taper y
Se connecter pour tester.
mysql -u root -p
Installer OpenLDAP
apt-get install slapd ldap-utils migrationtools Mot de passe à enter (pour l'exemple) : adm1nepn
Sauvegarder la configuration originale.
cd /etc/ldap/ cp ldap.conf ldap.conf.orig cp slapd.conf slapd.conf.orig
Installer SaMBa
apt-get install samba smbldap-tools smbclient samba-doc
Répondre aux questions posées.
SaMBa domaine ou groupe de travail : epnadmin installation du paquet dhcp pour réceptionner la conf IP et le serveur WINS du réseau : modifier smb.conf pour utiliser cette fonctionnalité : non
Sauvegarde de la configuration orignale.
cd /etc/samba/ cp smb.conf smb.conf.orig
Installer EPNadmin
Ajouter un compte de base pour epnadmin.
groupadd epnadmin useradd -g epnadmin epnadmin passwd epnadmin mdp : epnadm1n
Utilisation de la version epnadmin-scm-latest.tar.gz (développement) du 14 juillet 2009.
# cd / # mkdir /www # chown epnadmin:epnadmin /www % cp /cheminversarchive/epnadmin-0.8beta21.tgz /www % cd /www % tar xzvf epnadmin-0.8beta21.tgz mv epnadmin-scm-2009-07-14/epnadmin # cd epnadmin # cp includes/config.inc.php includes/config_local.inc.php # chown -R .www-data images includes/config_local.inc.php resources sql # chmod -R g+w images includes/config_local.inc.php resources sql # chmod +x share/createntlm.pl
Configuration Apache
cd /etc/apache2/sites-available/ cp default epnadmin cd /etc/apache2/sites-enabled/ ln -s /etc/apache2/sites-available/epnadmin ./001-epnadmin
Ajout de la déclaration du virtualhost.
vi 001-epnadmin
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName epnadmin DocumentRoot /www/epnadmin <Directory /www/epnadmin> Options Indexes Includes # quelles directives possibles dans un . htaccess AllowOverride none Order allow, deny Allow from all </Directory> </VirtualHost>
Pour accéder à l'interface Web, renseigner le fichier hosts.
Sur un poste de travail Linux.
vi /etc/hosts
192.168.1.22 epnadmin
Ou sur un windows dans C:\Windows\System32\drivers\etc\hosts
http://epnadmin/config.php
On doit avoir accès à epnadmin.
vi /etc/hosts 127.0.0.1 debian debian.epnadmin.net
Configuration LDAP
Relancer l'assistant de slapd.
dpkg-reconfigure slapd
Redémarrer slapd et vérifier le log.
/etc/init.d/slapd restart tail -100f /var/log/syslog
Récupération du schéma samba.
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema gzip -d /etc/ldap/schema/samba.schema.gz
Prise en compte du schéma. vi /etc/ldap/slapd.conf
include /etc/ldap/schema/samba.schema include /etc/ldap/schema/misc.schema
Changer la ligne
access to attribute=userPassword
par
access to attrs=userPassword,sambaNTPassword,sambaLMPassword by dn="cn=admin,dc=epnadmin,dc=net" write suffix "dc=epnadmin,dc=net"
Ajouter un mot de passe à l'admin ldap (rootpw).
slappasswd Mot de passe : adm1nepn
Renseigner le rootdn et rootpw.
vi /etc/ldap/slapd.conf
rootdn "cn=admin,dc=epnadmin,dc=net" rootpw {SSHA}dFjx0KaAS8zVcAzLfrUnRuEzmCQ6sKza loglevel 1 2
Gestion LDAP cliente
Installation de la gestion Ldap cliente.
apt-get install libnss-ldap libpam-ldap nscd
Informations demandées auxquelles il faut répondre.
- Le serveur ldap est positionnée sur la même machine que la partie cliente
qu’on est en train d’installer donc : ldap://127.0.0.1
- Nom distinctif (DN) de la base de recherche : dc=epnadmin,dc=net
- Ldap version 3
- Compte Ldap pour le superutilisateur root : cn=admin,dc=epnadmin,dc=
net
- Mot de passe : adm1nepn
- Message d’info au sujet d’nsswitch.conf qu’il faudra configurer tout de suite
après.
- Le superutilisateur local doit-il être un administrateur de la base LDAP ? non
- La basee LDAP demande-t-elle une identification : non
Configuration des fichiers manuellement car le paquet auth-client-config n'existe pas sur Debian mais uniquement sous Ubuntu.
cp /etc/nsswitch.conf /etc/nsswitch.conf.orig
vi /etc/nsswitch.conf
Remplacer 3 fois "compat" par "compat files ldap".
Configuration cliente d'OpenLDAP. vi /etc/ldap/ldap.conf
host 127.0.0.1 base dc=epnadmin,dc=net
reboot
Configuration SaMBa
cd /etc/samba/
Configurer SaMBa comme suit.
vi/etc/samba/smb.conf
[global] workgroup = EPNADMIN netbios name = epnadmin server string = %h server SaMBa LDAP wins support = no dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d use sendfile = no security = user encrypt passwords = true passdb backend = ldapsam:ldap://localhost/ #obey pam restrictions = yes obey pam restrictions = no # ############################################################# # COPY AND PASTE THE FOLLOWING UNDERNEATH " OBEY PAM RESTRICTIONS = NO " ############################################################## # # Begin : Custom LDAP Entries # ldap admin dn = cn=admin,dc=epnadmin,dc=net ldap suffix = dc=epnadmin,dc=net ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Users ldap passwd sync = Yes unix password sync = No ldap ssl = no passwd program = /usr/sbin/smbldap-passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated* add user script = /usr/sbin/smbldap-useradd -m "%u" ldap delete dn = Yes delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u admin users = @Admin,@Manager,adm_smb add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" # # End : Custom LDAP Entries # # # # ## # # ## # ## # # ## # # # # # ## # ## # # ## # ## # # ## # ## # # ## # # # # STOP COPYING HERE ! # # # ## # # ## # ## # # ## # # # # # ## # ## # # ## # ## # # ## # ## # # ## # # # strict allocate = yes invalid users = root #unix charset = iso8859-1 domain logons = yes os level = 85 preferred master = yes domain master = yes local master = yes nt acl support = no logon path = \\%L\profiles\%U load printers = yes printing = cups printcap name = /etc/printcap.cups printer admin = adm_smb include = /etc/samba/smb.epnadmin.conf socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 [homes] comment = Repertoire de l'utilisateur read only = no browseable = no writable = yes create mask = 0600 directory mask = 0700 write list = %U [netlogon] comment = Network Logon Service path = /home/samba/netlogon read only = yes write list = @Admin public = no writable = no browseable = no create mask = 0644 [printers] comment = All Printers path = /var/spool/samba browseable = yes public = yes guest ok = yes writable = no printable = yes create mode = 0777 use client driver = yes [print$] comment = Printer Drivers path = /etc/samba/drivers browseable = yes guest ok = no read only = yes write list = root, @Manager [profiles] comment = Home privé pour windows path = /home/samba/profiles writeable = yes create mask = 0600 directory mask = 0700 browseable = No [partage] comment = Répertoire d'échange de la cyberbase path = /home/partage public = yes writable = yes create mask = 0666 directory mask = 0777 write list = @Manager, @Facilitator, @User
Redémarrer SaMBa.
/etc/init.d/samba restart
Normalement on doit tomber sur les logs suivants. tail -100f /var/log/samba/log.smbd
[2009/01/29 15:09:02,1] lib/smbldap.c: another_ldap_try (1150) Connection to LDAP server failed for the 13 try ! [2009/01/29 15:09:03,1] lib/smbldap.c: another_ldap_try (1150) Connection to LDAP server failed for the 14 try ! [2009/01/29 15:09:04,1] lib/smbldap.c: another_ldap_try (1150) Connection to LDAP server failed for the 15 try !
Création du mot de passe de l'admin samba.
smbpasswd -w adm1nepn
Redémarrer samba et vérifier que rien ne s'affiche dans le log (plus les message précédents).
/etc/init.d/samba restart tail -100f /var/log/samba/log.smbd
Appliquer les smbldap-tools
cd /usr/share/doc/smbldap-tools/examples/ cp smbldap_bind.conf /etc/smbldap-tools/ cp smbldap.conf.gz /etc/smbldap-tools/ gzip -d /etc/smbldap-tools/smbldap.conf.gz cd /etc/smbldap-tools/
Récupérer le SID.
net getlocalsid SID for domain EPNADMIN is : S-1-5-21-3322798494-236864778-3628066822
Le positionner dans la configuration.
vi smbldap.conf
SID = "S-1-5-21-3322798494-236864778-3628066822" sambaDomain="EPNADMIN" ldapTLS="0" suffix="dc=epnadmin,dc=net" sambaUnixIdPooldn="sambaDomainName=EPNADMIN,${suffix}" userSmbHome= userProfile= userHomeDrive= userScript= mailDomain="epnadmin.net"
Configurer smbldap
vi smbldap_bind.conf
slaveDN="cn=admin,dc=epnadmin,dc=net" slavePw="adm1nepn" masterDN="cn=admin,dc=epnadmin,dc=net" masterPw="adm1nepn"
Appliquer les droits sur les fichiers.
chmod 0644 /etc/smbldap-tools/smbldap.conf chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
Peupler la base LDAP des enregistrements types présents dans le schéma livré. Cela créé toute une arborescence complète pour fonctionner normalement.
smbldap-populate -u 30000 -g 30000
Requête d'interrogation pour tester.
ldapsearch -x -b dc=epnadmin,dc=net | less <pre> Requête d'interrogation pour tester. <pre> ldapsearch -h localhost -p 389 -D "cn=admin,dc=epnadmin,dc=net" -x -w adm1nepn -s base -b "cn=subschema" "(objectclass=*)" objectclasses <pre> <pre> smbldap-usershow root
Pour utiliser la création de partages pour les groupes, vi /etc/samba/smb.conf
include=/etc/samba/smb.epnadmin.conf
touch /etc/samba/smb.epnadmin.conf chown .www-data /etc/samba/smb.epnadmin.conf chmod g+rw /etc/samba/smb.epnadmin.conf
/etc/init.d/samba restart
Vérification du log.
tail -f /var/log/samba/log.smbd
Création des dossiers utilisés par samba.
mkdir /home/partage mkdir -p /home/samba/netlogon mkdir -p /home/samba/profiles
sudo
Installation de sudo nécessaires pour autoriser apache à exécuter des commandes définies.
apt-get install sudo cp /etc/sudoers /etc/sudoers.orig
chmod u+w /etc/sudoers
Editer le fichier comme suit.
vi /etc/sudoers
## SUDO EPNADMIN ## # Host alias specification Host_Alias HOSTS = localhost, debian, debian.epnadmin.net # User alias specification User_Alias USERS = www-data User_Alias WEBSERVERUSER = www-data Runas_Alias RUNAS = root # Cmnd alias specification Cmnd_Alias CMNDUSERS = /usr/sbin/useradd, /usr/bin/smbpasswd, /usr/sbin/chpasswd, /usr/sbin/userdel, /bin/cp, / bin/chmod, /bin/chown, /bin/mkdir, /bin/rm # User privilege specification USERS HOSTS = (RUNAS) NOPASSWD : CMNDUSERS
chmod u-w /etc/sudoers
phpldapadmin
Installer PhpLdapAdmin
apt-get install phpldapadmin
cp /etc/phpldapadmin/config.php /etc/phpldapadmin/config.php.orig
Configurer le logiciel comme suit.
vi /etc/phpldapadmin/config.php
$ldapservers->SetValue($i,’server’,’host’,’127.0.0.1’); $ldapservers->SetValue($i,’server’,’base’,array(’dc=epnadmin,dc=net’)); $ldapservers->SetValue($i,’server’,’auth_type’,’session’); $ldapservers->SetValue($i,’login’,’string’,’cn=admin,dc=epnadmin,dc=net’); $ldapservers->SetValue($i,’login’,’attr’,’string’);
http://@IP/phpldapadmin/
Configuration EPNadmin
http://epnadmin/config.php
Cf.documentation pour element à entrer durant la première connexion : screenshots à mettre.
bd créée : epnadmin avec compte epnadmin/epnadmin
Méthode d'authentification
Aller dans Administration -> Configuration puis : 3 Méthode d'authentification.
Sélectionner config OpenLdap+SaMBa
LDAP Server
127.0.0.1 cn=admin,dc=epnadmin,dc=net adm1nepn dc=epnadmin,dc=net Users Groups Computers
Windows administration
EPNADMIN S-1-5-21-670349887-1101585168-1661952462 1000 \\\\%L\\profiles\\%U logon_manager.bat logon_facilitator.bat logon_user.bat \\\\%L\\%U H: admin adm1nepn
Unix administration
1000 1001 1002 1004 admin managers facilitators users 1029:audio, 1024:cdrom, 1020:dialout, 1030:dip, 1025:floppy, 1106:lpadmin, 1046:plugdev, 1110:scanner, 1044:video 1000 11000 12000 20000 /home/ /etc/skel /home/groups/
Notice: Undefined variable: valeur in /www/epnadmin/includes/config.functions.inc.php on line 77 Notice: Undefined variable: NEW_LDAP_GID_MANAGERS in /www/epnadmin/includes/config.auth.inc.php on line 220 Notice: Undefined variable: LDAP_GID_MANAGERS in /www/epnadmin/includes/config.auth.inc.php on line 220 Notice: Undefined variable: NEW_LDAP_GID_FACILITATORS in /www/epnadmin/includes/config.auth.inc.php on line 220 Notice: Undefined variable: LDAP_GID_FACILITATORS in /www/epnadmin/includes/config.auth.inc.php on line 220 Notice: Undefined variable: NEW_LDAP_GID_USERS in /www/epnadmin/includes/config.auth.inc.php on line 220 Notice: Undefined variable: LDAP_GID_USERS in /www/epnadmin/includes/config.auth.inc.php on line 220
Création de valeurs réelles
Structure
Ajouter une structure struc1
Directeur
Ajouter un directeur.
Henri Dupont login : hdupont mdp : hdupont
Salle
Ajouter une salle salle1 membre de la structure struc1.
Fonctionnalités à ajouter
Administration -> Réglages
Usager
Création d'un usager membre d'une structure.
Vérifier si les comptes sont bien créés dans openldap.
Vérifier dans /home du serveur si les répertoires sont présents.
getent passwd <compteldap> doit renvoyer les informations du comptes ldap.
Créer un système client (ici Ubuntu 9.04.)
vi /etc/security/group.conf
*;*;*;Al0000-2400;floppy,audio,cdrom,dialout,dip,disk,video,plugdev,scanner
vi /etc/hosts
192.168.1.23 debian
Un ping debian, doit fonctionner. De même, la commande : telnet debian 389 doit ouvrir une connexion sur le port ldap du serveur Debian.
Ensuite, installer les paquets suivants nécessaires à l’authentification ldap.
sudo apt-get install auth-client-config libpam-ldap libnss-ldap nscd
Voici ce qui va vous être demandé par l’outil debconf. Répondre comme suit.
ldap://debian dc=epnadmin,dc=net Version ldap 3 Make local root database admin : no Does the ldap database require login ? : no
Voici la commande qui configure nsswitch, pam.d/common-*.conf...
sudo auth-client-config -a -p lac_ldap
Reste à faire
Faire fonctionner parfaitement la connexion et la déconnexion de multiples utilisateurs et cela en fonction des heures déterminées dans l'EPN.
Authentification du client avec la gestion du répertoire de base de l'utilisateur avec pam_mount. Cet outil permet normalement de réaliser cette opération mais lors de la déconnexion de l'utilisateur, le répertoire utilisateur (ex : /home/user) ne se démonte pas.