Overblog Suivre ce blog
Editer la page Administration Créer mon blog
/ / /
Le Small Home Office

ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Cliquez pour agrandir.

 

Comme vous pouvez vous en rendre compte, le réseau est somme toute fort classique. 2 Serveurs (PRIMARY et SECONDARY) ainsi que 2 WKS (CLIENT-1 "Windows" et CLIENT-2 "Ubuntu DESKTOP") et pour finir 2 switches (VSWITCH1 et VSWITCH2). Vous remarquerez également que tout ce joli petit monde est "émulé" ou "virtualisé". Nous verrons dans un instant comment réaliser tout cela. Bien entendu libre à vous d'utiliser des machines physiques pour réaliser l'installation.

La virtualisation

Pour exécuter ce projet, vous pouvez utiliser un virtualiseur comme VMWARE ou VIRTUALBOX. Ceci dit, de grosses différences séparent ces deux virtualiseurs et donc vous obligeront à plus ou moins de manipulation afin d'obtenir le même résultat. Ceux-ci seront expliqués au fur et à mesure de l'évolution.

Primary Server

Sous cette appellation se trouve campée la clé de voute du système informatique. La plupart des services peuvent être secondés par un Secondary Server ou Backup Server. C'est d'ailleurs préférable, mais celui-ci ne vous permettra que de gagner du temps avant une chute inévitable. C'est pourquoi il est important d'apporter un maximum de soins aux scripts d'activations des services mais également à la structure même du réseau, clients compris.

Voici les fonctionnalités assumées par le Primary Server :

  • DHCP Serveur
  • DNS Serveur
  • Time Serveur
  • SAMBA DOMAIN Controleur Serveur
  • LDAP Serveur

Secondary Serveur

Le Secondary server sera utilisé pour soulager certaines fonctions du Primary Serveur en jouant le rôle de Backup mais également en proposant des fonctions inédites dans votre réseau d'entreprise.

Voici les fonctionnalités assumées par le Secondary Serveur:

  • Backup DNS Serveur
  • … (plus de détails à venir)

Les clients

L'aspect client sera ici traité indépendamment mais allant dans la même direction. Je m'explique, le but ici n'est pas d'offrir des fonctions différentes pour chaque famille d'OS, mais de démontrer l'hétérogénéité de Linux en tant que serveur offrant des fonctionnalités à des clients de tous horizons (sous certaines conditions)..


Création d'un serveur DNS

Une bonne documentation explicative sur Bind c'est par ici bind9

Installation de bind9

apt-get install bind9

Editez le fichier /etc/bind/named.conf.

zone "." {
type hint;
file "/etc/bind/db.root";
};

zone "localhost" IN {
type master;
file "/etc/bind/db.local";
allow-update { none; };
};

zone "127.in-addr.arpa" IN {
type master;
file "/etc/bind/db.127";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "/etc/bind/db.0";
allow-update { none; };
};

zone "255.in-addr.arpa" IN {
type master;
file "/etc/bind/db.255";
allow-update { none; };
};

include "/etc/bind/named.conf.local";

- Editez le fichier /etc/bind/named.conf.local

zone "yourdomain.local" IN {
type master;
file "/var/cache/bind/db.yourdomain.local";
allow-update { none; };
};

zone "2.168.192.in-addr.arpa" IN {
type master;
file "/var/cache/bind/rev.yourdomain.local";
allow-update { none; };
};

- Créez le fichier /var/cache/bind/db.yourdomain.local

$TTL 86400
@ IN SOA primary.yourdomain.local. root.yourdomain.local. (
2008012701
1w
1d
4w
1w )
@ IN NS primary.yourdomain.local.
primary IN A 192.168.2.1

- Créez le fichier /var/cache/bind/rev.yourdomain.local

$TTL 86400
@ IN SOA primary.yourdomain.local. root.yourdomain.local. (
2008012701
1w
1d
4w
1w )
@ IN NS primary.yourdomain.local.
1 IN PTR primary.yourdomain.local.

- Changez le group d'appartenance pour les fichiers

chgrp bind /var/cache/bind/*

- Editez le fichier /etc/hosts

127.0.0.1 localhost
192.168.2.1 primary.yourdomain.local

définition loopback IPV6 à garder
...
..
.

- Modifiez le fichier /etc/resolv.conf

search yourdomain.local
nameserver 192.168.2.1
nameserver 192.168.254.10

- Editez le fichier /etc/bind/named.conf.options

options {
directory "/var/cache/bind";
forward only;
forwarders { 192.168.254.2; };
auth-nxdomain no;
allow-recursion { localnets; };
};

- Editez le fichier /etc/default/bind9

RESOLVCONF=yes

- Reboot

Vérification de la configuration

- Vérifiez les fichiers de configuration

named-checkconf (si ok rien n'est retourné)
cd /var/cache/bind/
named-checkzone -d yourdomain.local db.yourdomain.local
named-checkzone -d 192.168.2.1 rev.yourdomain.local

- Démarrez une seconde console ALT+F2 et tapez

tail -f /var/log/syslog

- Revenez sur la première console et redémarrez le service bind9

service bind9 restart

- Passez sur la seconde console et analysez les messages d'erreur s'il y en a.

- Si tout est OK passez sur la première console

ping primary.yourdomain.local
Cela devrait vous retourner l'adresse 192.168.2.1

- Si il y a une erreur, re-vérifiez les log du système, les scripts, …

Création d'un serveur DHCP

Une bonne documentation explicative sur dhcp3-server c'est par ici dhcp3-server

- Installation de dhcp3-server

apt-get install dhcp3-server
Cela installera le paquet et le configurera, mais génèrera également une erreur à l'activation. C'est normal nous allons corriger cela.

- Editez le fichier /etc/dhcp3/dhcpd.conf

ddns-update-style none;
option domain-name "yourdomain.local"
option domain-name-servers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
range 192.168.2.150 192.168.2.200;
}

- Editez le fichier /etc/syslog.conf et ajoutez la ligne suivante sous les autres du même type

local7.*       -/var/log/dhcp.log

- Relancez le service "sysklogd"

service sysklogd restart
Cela affichera une erreur d'accès au fichier dhcpd.log. C'est normal

Vérification de la configuration

Vous pouvez connecter une machine virtuelle, un Windows 2000 par exemple (plus rapide que XP et moins gourmand). La carte réseau de cette machine virtuelle doit être connectée sur VMNET2. Configurez cette machine virtuelle pour accepter le DHCP et dans une console tapez "ipconfig". Normalement vous devriez recevoir une adresse IP entre 192.168.2.150 et 192.168.2.200

Vérifiez le DNS par la même occasion en faisant un ping primary.yourdomain.local

Vérifiez pour finir le routage pour l'extérieur avec un ping www.google.be

Inscription DHCP et DNS dynamique

- Editez le fichier /etc/bind/named.conf.local et remplacez les lignes:

allow-update { none; }; -> allow-update { 127.0.0.1; };

- Editez le fichier /etc/dhcp3/dhcpd.conf et ajoutez ou modifiez ces quelques lignes au début du fichier.

ddns-update-style interim;
ddns-updates on;
ignore client-updates;
update-static-leases on;
allow-unknow-clients;

- Ajoutez ces lignes à la fin du même fichier

zone yourdomain.local. { primary 127.0.0.1; }
zone 2.168.192.in-addr.arpa. { primary 127.0.0.1; }

Vérification de la configuration

- Redémarrez les services DHCP et DNS

service bind9 restart
service dhcp3-server restart

- Sur le client Windows 2000

ipconfig /release
ipconfig /renew

ping www.google.be

- Sur primary serveur vérifiez la présence des fichiers:

/var/cache/bind/db.yourdomain.local.jnl
/var/cache/bind/rev.yourdomain.local.jnl

Un client Linux

- Editez le fichier du client linux /etc/dhcp3/dhclient.conf et ajoutez cette ligne.

send host-name "[client name]";

 

Il est bon de ne pas s'énerver si une résolution de nom avec ping sur primary ou www.google.be ne fonctionne pas. La première chose à faire est de connecter une console sur primary et d'utiliser la commande "tail -f /var/log/syslog" afin de voir les messages d'erreurs et les messages d'inscriptions. Il existe également des outils pour vérifier le bon fonctionnement d'un DNS et d'un DHCP "host -v primary.yourdomain.local" et "dig SOA yourdomain.local". Pour plus d'information sur ces commandes, Google est ton ami

 

Le nom du client doit être unique dans votre réseau, sinon vous aurez des conflits DNS

 

A ce stade, vous devriez pouvoir accéder au monde extérieur au départ de n'importe quelle machine de votre réseau. Vous devriez pouvoir utiliser la dénomination unique de chacune de vos machine pour résoudre une adresse servie par DNS "ping primary, ping [client name], …" Si tel n'est pas le cas, il y a probablement une explication dans les logs serveur ou client. Bon débugging

Limiter le champ d'action du DNS au réseau local

Pour que votre DNS ne résolve que les adresses local à yourdomain.local vous devez encore réaliser ces quelques modifications

Éditez le fichier /etc/resolv.conf et supprimez la ligne de référence à l'adresse menant à l'extérieur. Vous ne devriez plus avoir que deux lignes dans votre fichier.

search yourdomain.local
nameserver 192.168.2.1

Editez le fichier /etc/bind/named.conf et commentez toutes les lignes de la zone « . » attention, les commentaires sont précédés de « // » et non de « # ».

Editez le fichier /etc/bind/named.conf.options et adaptez le en fonction.

options {
directory "var/cache/bind";
forward only;
forwarders { 192.168.254.2; };
auth-nxdomain no;
allow-recursion { localnets; };
};

Editez enfin le fichier /etc/default/bind9

RESOLVCONF = no

Création d'un time serveur NTP

Pour vérifiez l'heure UTC actuelle en Belgique, vous pouvez vous rendre à cette adresse http://www.astro.oma.be/D1/TIME/national_fr.htm Redémarrez votre serveur et modifiez si nécessaire l'heure incluse dans le bios de votre vmware.

- Editez le fichier /etc/default/rcS

UTC=yes

- Installez les applications suivantes

apt-get install ntp-server ntp-doc

Configuration du serveur NTP

- Editez le fichier /etc/ntp.conf

logfile /var/log/ntpd

driftfile /var/lib/ntp/drift

statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

#Pour la france
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org
server 127.127.1.0
fudge 127.127.1.0 stratum 10

restrict default kod notrap nomodify nopeer noquery
restrict 127.0.0.1 nomodify
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

 

Vous trouverez plus d'information sur ntp1.oma et ntp2.oma à cette adresse http://www.astro.oma.be/D1/TIME/description_fr.htm

- Stoppez le service

service ntp stop

- Editez le fichier /etc/default/ntpdate et modifiez le

NTPSERVERS ="fr.poll.ntp.org"

- Pour vérifier une bonne synchronisation, vous pouvez exécuter cette commande.

ntpdate -dv ntp.obspm.fr
La sortie est relativement longue

- Relancez le serveur NTP

service ntp start

Client linux

- Editez le fichier /etc/default/ntpdate

NTPSERVERS="192.168.2.1"

Client Windows

- Pour WinXP la gestion de l'heure possède un onglet Temps Internet ou vous pouvez renseigner l'adresse 192.168.2.1

- Pour Win2K, il a le service Windows Time.

Changez le mode de démarrage du service sur auto

Dans une console:
net time /setsntp:192.168.2.1
net stop w32time
net start w32time

Création du serveur LDAP

- Installation du serveur LDAP et de quelques outils

apt-get install slapd db4.2-util ldap-utils

- Répondez aux questions ncursus avec le password de root - Reconfigurez slapd avec dpkg-reconfigure

dpkg-reconfigure slapd
Le nom du domaine : yourdomain.local 
Nom de votre organisation: yourdomain
Mot de passe de l'administrateur : [root password]
Module de base de données à utiliser : BDB
Faut-il supprimer la base de données à la purge du paquet ? NON
Faut-il déplacer l'ancienne base de données ? NON
Faut-il autoriser le protocole LDAPv2 ? NON

- Installez les schema LDAP inclus dans un paquet samba

aptitude install samba-doc

- Décompression et copie dans la bonne directory

gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

- Dans une seconde console, cryptez le password de l'administrateur avec la commande slappasswd

slappasswd
New password:
Re-enter new password:
{SSHA} ............

- Éditez le fichier /etc/ldap/slapd.conf

ajoutez cette ligne en dessous des autres include:
include /etc/ldap/schema/samba.schema

cherchez la ligne rootdn et supprimez le #
ajoutez juste en dessous de rootdn la ligne suivante
rootpw {SSHA} ..........

- Redémarrez le serveur LDAP. Normalement cela doit aller très rapidement:

invoke-rc.d slapd restart

Si vous trouvez une erreur vous pouvez en connaître les causes en utilisant la commande suivante.

slapd -d 16383

Interpid Ibex (8.04) et superieur

d'après la doc : http://doc.ubuntu-fr.org/slapd ça à un peu changé. on n'utilise plus de fichier /etc/ldap/slapd.conf En suivant le document https://help.ubuntu.com/8.10/serverguide/C/openldap-server.html, je propose la methode suivante

- Installation du serveur LDAP et de quelques outils

apt-get install slapd db4.2-util ldap-utils

- Répondez aux questions ncursus avec le password de root - Reconfigurez slapd avec dpkg-reconfigure

dpkg-reconfigure slapd
Le nom du domaine : yourdomain.local 
Nom de votre organisation: yourdomain
Mot de passe de l'administrateur : [root password]
Module de base de données à utiliser : HDB
Faut-il supprimer la base de données à la purge du paquet ? NON
Faut-il déplacer l'ancienne base de données ? NON
Faut-il autoriser le protocole LDAPv2 ? NON

- Installez les schemas LDAP inclus dans un paquet samba

aptitude install samba-doc

- Décompression et copie dans la bonne directory

gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

- Dans une seconde console, cryptez le password de l'administrateur avec la commande slappasswd

slappasswd
New password:
Re-enter new password:
{SSHA} ............

- créer le répertoire temporaire :

mkdir /tmp/ldif_output

- On crèe un fichier de conversion schema_convert.conf avec les lignes :

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/samba.schema

- On utilise la commande slaptest pour créer les fichiers LDIF : slaptest -f schema_convert.conf -F /tmp/ldif_output - On édit le fichier /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{4\}samba.ldif et on modifie les lignes comme suit :

dn: cn={4}samba

devient :

dn: cn=samba,cn=schema,cn=config

Et :

cn: {4}samba

devient :

cn: samba

- On supprime toute les dernières lignes à partir de et inclus structuralObjectClass

structuralObjectClass: olcSchemaConfig
entryUUID: 69111144-6367-102e-950a-c54deb20c32c
creatorsName: cn=config
createTimestamp: 20091111234059Z
entryCSN: 20091111234059.910631Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20091111234059Z

- On copie le nouveau LDIF dans /etc/ldap/schema pour pouvoir l'avoir sous la main en cas de besoin

cp /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{4\}samba.ldif /etc/ldap/schema/samba.ldif

- On applique cette modification à la base LDAP

ldapadd -x -D cn=admin,cn=config -W -f /etc/ldap/schema/samba.ldif

- On fait le nettoyage :

rm -rf /tmp/ldif_output

- On Relance le serveur LDAP par acquis de conscience (normalement c'est dynamique) :

invoke-rc.d slapd restart

Création du serveur SAMBA

- Installation du serveur SAMBA

aptitude install samba smbclient smbfs

- Éditez le fichier /etc/samba/smb.conf et supprimez l'intégralitée du contenu du fichier

#======================= Global Settings =======================

[global]

workgroup = <Your DOMAIN name>
netbios name = primary
server string = Samba-LDAP PDC Server
domain master = Yes
local master = Yes
domain logons = Yes
os level = 40
#passwd program = /usr/sbin/smbldap-passwd ?u %u
ldap passwd sync = Yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=admin,dc=yourdomain,dc=local
ldap suffix = dc=yourdomain,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
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/smbldap-useradd -w "%u"
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"
logon path = \\%L\profile\%U
logon drive = H:
logon home = \\%L\%U
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
case sensitive = No
default case = lower
preserve case = yes
short preserve case = Yes
#character set = iso8859-1
#domain admin group = @admin
dns proxy = No
wins support = Yes
hosts allow = 192.168.2. 127.
### A changer 192.168.2
winbind use default domain = Yes
nt acl support = Yes
msdfs root = Yes
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
### FIN DE LA PARTIE GLOBALE #####

#======================= Share Settings =======================
[netlogon]
path = /home/netlogon
writable = No
browseable = No
write list = Administrateur

[profile]
path = /home/export/profile
browseable = No
writeable = Yes
profile acls = yes
create mask = 0700
directory mask = 0700

[homes]
comment = Repertoire Personnel
browseable = No
writeable = Yes

[partage]
comment = Repertoire commun
browseable = Yes
writeable = Yes
public = No
path = /home/partage

 

en Interpid Ibex (8.04) et supérieur, il faut rajouter la ligne ldap ssl = off dans la section global. C'est moins sécurisé mais plus simple a mettre en œuvre. Si on veux plus de sécurité il faut mettre en place TLS avec le paramètre ldap ssl = tls, générer des certificats et modifier le ldap (cf https://help.ubuntu.com/8.10/serverguide/C/openldap-server.html)

Création des partages SAMBA

Le fichier smb.conf défini quelques share SAMBA

/home/netlogon 
Contient les éventuels scripts qui sont exécutés à chaque connexion d'un utilisateur (.bat)
/home/export/profile 
Contient les profils windows de chaque utilisateur, ils sont créés automatiquement pour les nouveaux
/home/partage 
Partage commun à tous les utilisateurs du domaine
/home/lenomdelutilisateur 
Les répertoires personnels linux sont aussi partagés

- Créez les répertoires

mkdir -p /home/netlogon
mkdir -p /home/export/profile
mkdir -p /home/partage

- Installez les sécuritées

chmod a+w /home/export
chmod a+w /home/export/profile
chmod a+w /home/partage

Liaison SAMBA et LDAP

- Installez les smbldap-tools

apt-get install smbldap-tools

- Créez le fichier /etc/smbldap-tools/smbldap_bind.conf et copiez / modifiez ces lignes

slaveDN="cn=admin,dc=yourdomain,dc=local"
slavePw=[votre mot de passe en clair]
masterDN="cn=admin,dc=yourdomain,dc=local"
masterPw=[votre mot de passe en clair]

- Votre mot de passe étant en clair dans le fichier, il faut modifier la sécurité

chmod 600 /etc/smbldap-tools/smbldap_bind.conf

- Créez le fichier /etc/smbldap-tools/smbldap.conf et copiez / modifiez ces lignes

slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="require"
suffix="dc=youdomaine,dc=local"
### A changer : yourdomain
usersdn="ou=Users,${suffix}"
computersdn="ou=Machines,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
# sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=YOUR_DOMAIN,${suffix}"
### A changer : yourdomain
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"

userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
#Nom d'affichage - utiliser smbldap-useradd -c
userGecos="User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
#Les mots de passe expirent dans 10ans
defaultMaxPasswordAge="3650"

with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

- Stopez le serveur SAMBA

service samba stop

- Ajoutez dans SAMBA le mot de passe de l'administrateur [root]

smbpasswd -w votremotdepasseroot

Setting stored password for "cn=admin,dc=olituks,dc=local" in secrets.tdb

- Redémarrez le serveur SAMBA

service samba start

Vérifiez l'installation

- Avec la commade net getlocalsid vous allez obtenir le SID du PDC SAMBA

net getlocalsid
SID for domain PRIMARY is: S-1-5-21-.......

Peuplez le directory LDAP

smbldap-populate
smbldap-populate
Populating LDAP directory for domain olituks (S-1-5-21-1103990800-3677365298-610989769)
(using builtin directory structure)

entry dc=olituks,dc=local already exist.
adding new entry: ou=Users,dc=yourdomain,dc=local
adding new entry: ou=Groups,dc=yourdomain,dc=local
adding new entry: ou=Machines,dc=yourdomain,dc=local
adding new entry: ou=Idmap,dc=yourdomain,dc=local
adding new entry: uid=root,ou=Users,dc=yourdomain,dc=local
adding new entry: uid=nobody,ou=Users,dc=yourdomain,dc=local
adding new entry: cn=Domain Admins,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Domain Users,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Domain Guests,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Domain Computers,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Administrators,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Account Operators,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Print Operators,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Backup Operators,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=Replicators,ou=Groups,dc=yourdomain,dc=local
adding new entry: cn=NextFreeUnixId,dc=yourdomain,dc=local

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:

Cette commande crée: Les différentes OU (Organisation Unit) qui contiendront vos Machines, Users et Groups Deux UID : root et nobody qui seront dans OU = Users Plusieurs CN (Common Name): Les groupes qui seront dans OU = Groups

Test de LDAP

- Création du premier utilisateur test de LDAP

smbldap-useradd -a -c "Test Test" -m -P test
Changing UNIX and samba passwords for test
New password:
Retype new password:
  • -a : désigne un utilisateur
  • -c : Information Gecos : Le nom entier
  • -m : Créé le répertoire personnel
  • -P : création du mot de passe

Pour plus d'aide smbldap-useradd -?

- Vérifiez que les utilisateurs test et root sont bien dans LDAP

smbldap-usershow test

dn: uid=test,ou=Users,dc=yourdomain,dc=local
objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
cn: test
sn: test
givenName: test
uid: test
uidNumber: 1000
gidNumber: 513
homeDirectory: /home/test
loginShell: /bin/bash
gecos: Test Test
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: Test Test
sambaSID: S-1-5-21-573247406-3271121105-2462534053-3000
sambaPrimaryGroupSID: S-1-5-21-573247406-3271121105-2462534053-513
sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: 0CB6948805F797BF2A82807973B89537
sambaPwdLastSet: 1203761173
sambaPwdMustChange: 1519121173
userPassword: {SSHA}4AxHgHKTY3axTAMx02Zu22k4jeJVbGN3
smbldap-usershow root

dn: uid=root,ou=Users,dc=olituks,dc=local
cn: root
sn: root
objectClass: top,person,organizationalPerson,inetOrgPerson,sambaSamAccount,posixAccount,shadowAccount
gidNumber: 0
uid: root
uidNumber: 0
homeDirectory: /home/root
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPrimaryGroupSID: S-1-5-21-1103990800-3677365298-610989769-512
sambaSID: S-1-5-21-1103990800-3677365298-610989769-500
loginShell: /bin/false
gecos: Netbios Domain Administrator
sambaLMPassword: 69C840086777BE8372D82CC5E4DD778E
sambaAcctFlags: [U]
sambaNTPassword: 98748519A0FAAEC727B0A34CA66C3358
sambaPwdLastSet: 1202326380
sambaPwdMustChange: 1517686380
userPassword: {SSHA}..................

Modification du système d'authentification sur primary

- Installation des paquets nécessaires

apt-get install auth-client-config libpam-ldap libnss-ldap libpam-mount smbfs

- Répondez aux questions qui vous sont posées comme suit.

Should debconf manage LDAP configuration?: Yes
LDAP server Uniform Resource Identifier: ldapi://192.168.2.1/
Distinguished name of the search base: dc=yourdomain,dc=local
LDAP version to use: 3
Make local root Database admin: Yes
Does the LDAP database require login? No
LDAP account for root: cn=admin,dc=yourdomain,dc=local
LDAP root account password: [root password]

 

Étant donné qu'il n'y a pas de mots de passe dans ce fichier nous pouvons nous permettre de ne pas limiter l'accès uniquement à root et permettre ainsi à tous le monde de pouvoir voir l'annuaire

- Editez le fichier /etc/ldap.conf et modifiez le

base dc=yourdomain,dc=local
uri ldap://192.168.2.1/
rootbinddn cn=admin,dc=yourdomain,dc=local
bind_policy soft
pam_password md5

- Copiez ensuite le fichier /etc/ldap.conf dans /etc/ldap/ldap.conf

cp /etc/ldap.conf /etc/ldap/ldap.conf

- Éditez le fichier /etc/nsswitch.conf et modifiez le comme suit.

passwd:         compat ldap
group: compat ldap
shadow: compat ldap

 

Il est préférable de garder une console en réserve avec un compte root activé car si ici il y a un problème, vous ne pourrez plus vous authentifier !!!!

- Éditez le fichier /etc/pam.d/common-pammount

auth          optional pam_mount.so use_first_pass
session optional pam_mount.so use_first_pass

- Créez un nouveau fichier /etc/auth-client-config/profile.d/open_ldap et copiez / collez la suite.

[open_ldap]
nss_passwd=passwd: compat ldap
nss_group=group: compat ldap
nss_shadow=shadow: compat ldap
nss_netgroup=netgroup: compat ldap
pam_auth=auth sufficient pam_unix.so
auth required pam_group.so use_first_pass
auth required pam_mount.so use_first_pass
auth required pam_ldap.so use_first_pass
pam_account=account sufficient pam_unix.so
account required pam_ldap.so use_first_pass
account required pam_mount.so use_first_pass
pam_password=password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password required pam_mount.so use_first_pass
password required pam_ldap.so use_first_pass
pam_session=session sufficient pam_unix.so
session optional pam_mkhomedir.so skel=/etc/skel/
session optional pam_mount.so use_first_pass

 

Il est important pour ce fichier de garder la même ventilation que celle introduite. Si tel n'est pas le cas, vous pourriez avoir des problèmes avec la commande qui activera l'authentification LDAP pour le client.

- Créez un backup du fichier nsswitch.conf

cp /etc/nsswitch.conf /etc/nsswitch.conf.bak

- Créez un backup des fichiers de configuration de pam

cd /etc/pam.d/
mkdir pam.d.bak
cp * pam.d.bak/

- Activez l'authentification LDAP pour votre client

auth-client-config -a -p open_ldap

Si tout se passe bien avec cette commande, vous devriez pouvoir au prochain reboot vous connecter avec un login LDAP et ou local.

Ajout du client Windows

- Démarrez votre client Windows 2000

Ouvrez une session en local admin
Clickez droit sur My Computer -> Properties
Cochez la case DOMAIN NAME et insérer YOURDOMAIN
Introduisez le password pour root.
Attendez d'avoir le message de bien venue.
Redémarez.

 

Il est possible que juste après le premier démarrage de votre Windows2000 il ne vous permettent pas de vous connecter au DOMAIN. Il faut dans ce cas attendre une ou deux minutes le temps que le client retrouve ses jeunes avec le domain controleur SAMBA. Le message qui vous est indiqué, est qu'il ne trouve pas l'utilisateur ROOT.

- Connectez vous au logon avec le compte test que vous aviez créé lors de la configuration validation de LDAP. Cet utilisateur n'est pas connu de linux. Il se trouve configuré uniquement dans l'annulaire LDAP. Si la connexion fonctionne, c'est la preuve par 9 que tout est fonctionnel.

- Vérifiez les mapping automatique dans votre client Windows.

Vous devriez avoir un drive P:\

- Faite un logoff du client windows et passez sur le serveur primary

- Ouvrez la directory /home/export/profile/test vous devriez avoir des fichiers windows dans ce folder qui sont en réalité les fichiers du profil utilisateur test.

- Vous trouverez également une directory test dans la root de home qui est en réalité le mapping sur la directory P:\ du windows client. Mais également la directory home d'un logon sur linux. De cette manière, vous pouvez partager vos fichiers privés (réservé à l'utilisateur test par exemple)

Configuration du client linux

 

Le client linux à ce stade doit être capable de se connecter à la session et d'avoir une configuration réseau fournie par le DHCP / DNS. Il doit être à jour et avoir un accès au monde extérieur. Si ce n'est pas le cas, allez voir plus haut ce qu'il faut faire pour que cela fonctionne.

Exécutez les même modifications du système d'authentification que celles exécutées sur le serveur PRIMARY avant d'ajouter celle-ci !

- Éditez le fichier /etc/pam.d/gdm et remplacez son contenu

#%PAM-1.0

auth required pam_mount.so
auth required pam_group.so use_first_pass
auth sufficient pam_ldap.so use_first_pass
auth required pam_unix.so use_first_pass
auth required pam_env.so

account sufficient pam_ldap.so
account sufficient pam_unix.so

password required pam_unix.so nullok obscure min=4 max=8 md5

session required pam_unix.so
session optional pam_mkhomedir.so skel=/etc/skel/
session optional pam_mount.so

- Éditez le fichier /etc/pam.d/gdm-autologin et remplacez son contenu (le contenu est le même que pour le fichier précédent)

#%PAM-1.0

auth required pam_mount.so
auth required pam_group.so use_first_pass
auth sufficient pam_ldap.so use_first_pass
auth required pam_unix.so use_first_pass
auth required pam_env.so

account sufficient pam_ldap.so
account sufficient pam_unix.so

password required pam_unix.so nullok obscure min=4 max=8 md5

session required pam_unix.so
session optional pam_mkhomedir.so skel=/etc/skel/
session optional pam_mount.so

Automount des directory partagées sur le client linux

- Editez le fichier /etc/security/pam_mount.conf et à la ligne 173 ajoutez ces lignes.

volume * smbfs 192.168.2.1 & /media/&' sur primary' uid=&,gid=&,dmask=777,fmask=777 - -
volume * smbfs IP_MonServeur profscommun /media/profscommun' sur MonServeur' uid=&,gid=&,dmask=777,fmask=777 - -
volume * smbfs IP_MonServeur classes /media/classes' sur MonServeur' uid=&,gid=&,dmask=777,fmask=777 - -
volume * smbfs IP_MonServeur public /media/public' sur sur MonServeur' uid=&,gid=&,dmask=777,fmask=777 - -
volume * smbfs IP_MonServeur install /media/install' sur sur MonServeur' uid=&,gid=&,dmask=777,fmask=777 - -

Utilisation de la carte son, USB, lecteur amovible, ...

- Editez le fichier /etc/security/group.conf et ajoutez ces lignes

**;*;*;Al00002400;floppy,audio,cdrom,video,plugdev,scanner

Les test avant le grand saut

- Utilisez la commande suivante pour lister le contenu de l'annuaire LDAP

getent passwd

Si vous voyez l'utilisateur test créé précédemment et connu uniquement de LDAP c'est gagné. Vous devriez être en mesure de vous authentifier. Si non, il y a un problème. Le mieux comme toujours est de regarder les logs et de vérifier les fichier de customisation. - redémarrez la machine et connectez vous avec l'utilisateur test de l'annuaire LDAP.

Cela devrait vous montrer dans GDM un petit panneau indiquant la création de la directory home pour votre nouvel utilisateur et vous donnez accès après quelques échanges réseau avec le serveur au bureau linux en tant que simple utilisateur.

Problèmes rencontrés pendant la configuration du server et des clients

 

Lors de mes tests en VMWARE Serveur j'ai constaté deux phénomènes très étranges.
  • Le premier étant sur le serveur primary, un blocage régulier au démarrage de bind oblige de redémarrer le serveur une ou deux fois avant de pouvoir l'utiliser.
  • Le second c'est avec le client linux. (l'étape ou vous devriez être arrivé maintenant). UDEV m'a créé une mauvaise règle dans /etc/udev/rules.d/70-persistent-net.rules. La règle n'était pas bonne car l'adresse MAC de la carte réseau virtuel avait changé, sans doute, suite à l'installation des vmware tools. Donc, au démarrage de la machine client linux, le nom de l'interface était passé à eth2 plus tôt que eth0. J'ai modifié le fichier 70-persistent-net.rules en indiquant à eth0 que l'adresse mac avait changé et tout est rentré dans l'ordre. Ce problème-ci était important, car il m'empêchait de me connecter à LDAP serveur, de joindre les adresses extérieures tout en me permettant de me connecter dans mon subnet et donc de voir le client windows et primary via uniquement leur adresse IP ! de quoi y perdre son latin quoi …

Là aussi, si vous avez des idées, je suis preneur.

Installation de Webmin sur primary

Ajoutez le dépôt suivant à vos sources de mises à jour puis installez le paquet webmin.

deb http://download.webmin.com/download/repository sarge contrib

Contributeurs : olituks.


tutoriel/network_tpme.txt · Dernière modification: Le 12/11/2009, 01:36 par 213.95.41.13
Le contenu de ce wiki est sous licence : CC BY-SA v3.0

Partager cette page

Repost 0
Published by