Installation complete

De EPNadmin
Aller à : navigation, rechercher

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.