Faire passer un serveur Linux pour un serveur MacOS X
Voici les résultats d'un projet que j'ai commencé chez moi en début de semaine. L'idée était bien simple, j'ai maintenant 2 Macs, dont un portable, et je voulais que les répertoires maison soient synchronisés entre les Macs. Sachant que Mac OS X Server utilise OpenLDAP et des partages de fichiers, j'ai entrepris de transformer mon serveur Linux pour fournir ce service à mes Macs.
Premièrement, laissez-moi remercier Sam Ricchio, qui m'a fourni des profils LDAP en exemple pour me permettre de construire mon serveur LDAP.
Voici les sites web où j'ai trouvé un peu d'information :
Mac OS X with central home directories on Linux Server
Apple OS X Intergration with Open LDAP
Il faut premièrement installer le service OpenLDAP. Par exemple, sur RedHat, il faut lancer la commande up2date openldap openldap-servers openldap-clients. Assurez-vous que le service est bien activé au démarrage de la machine. Ensuite, installez NetAtalk. La raison est simple, le fonctionnement est bien meilleur qu'avec Samba, et je n'ai pas réussi à faire fonctionner le tout en NFS. Sur votre machine d'administration, je vous conseille d'installer LDAP Browser ainsi que les outils d'administrations d'Apple. LDAP Browser vous permettra de voir ce qui se passe, ainsi que de récupérer certaines petites erreurs sans avoir à réimporter un fichier LDIF. Des connaissances de LDAP vous seront très utiles, puisque vous n'avez pas Mac OS X Server pour faire tout le travail pour vous. Par exemple, Linux LDAP How-To est une bonne lecture.
Configurez un compte master temporaire pour LDAP. Ceci peut être fait en spécifiant rootdn et rootpw dans /etc/openldap/slap.conf, tel qu'indiqué dans cette page du How-To. Instanciez votre base. Vous pouvez utiliser ce fichier LDIF, en modifiant les noms pour vous accommoder, et en l'important avec la commande ldapadd -f base.ldif -x -c -D "cn=manager, dc=exemple, dc=com" -W.
Félicitation! Vous venez de passer à travers ma soirée de recherche de lundi soir!
On a une base LDAP, c'est bien.. Mais on veut plus! Ce serait bien d'avoir un compte administrateur valide, pour pouvoir aller jouer avec les outils d'Apple.. Téléchargez ce fichier, adaptez-le. Maintenant, pour lui spécifier un mot de passe, exécutez la commande slappasswd -h "{SMD5}". Ceci vous donnera un string qui commande par {SMD5}, copiez-le, collez-le dans l'attribut userPassword du fichier LDIF puis importez-le. Maintenant, dans /etc/openldap/slap.conf, modifiez le rootdn pour le dn de votre nouvel utilisateur administrateur (par exemple : uid=admin,ou=People,dc=exemple,dc=com), et modifiez le rootpw pour le mot de passe SMD5 que vous lui avez créé. Redémarrez le service LDAP. Vous pouvez maintenant, en ouvrant l'utilitaire Workgroup Manager d'Apple voir votre serveur LDAP en cliquant sur Cancel lorsque vous lancez le programme, et en choisissant View Directories dans le menu Server.
Pour faire des modifications, vous devrez cliquer sur le cadenas dans le haut à droite, et en vous authentifiant avec votre compte administrateur nouvellement créé! Faites attention par contre, vous ne pouvez pas créer de nouveau contenu, seulement modifier ce qui existe déjà.
On a un administrateur, il faudrait bien avoir des utilisateurs maintenant! Téléchargez ce fichier, puis modifiez le pour correspondre à votre utilisateur. Faites attention au uidNumber, si votre serveur Linux ne s'authentifie pas auprès du serveur LDAP, vous devez le faire correspondre avec le UID d'un compte déjà existant sur le serveur, aussi non vous allez avoir des problèmes avec NetAtalk plus tard. N'oubliez pas de modifier le userPassword, que vous créerez de la même méthode qu'avec l'administrateur. Si vous devez entrer plusieurs utilisateurs, je vous conseillerais de développer un script qui créera un gros fichier LDIF à importer. Maintenant, importez-le. Attention! Il faut modifier la commande d'importation! Il faut maintenant utiliser ldapadd -f utilisateurs.ldif -x -c -D "uid=admin,ou=people, dc=exemple, dc=com" -W ainsi que le mot de passe de l'utilisateur admin!
Maintenant il faut des groupes! Recréez les quelques groupes les plus importants, en synchronisant avec les groupes existants sur la machine, et en vous basant sur ce fichier LDIF. N'oubliez pas de les importer!
Vos utilisateurs et vos groupes sont créés? Good! Maintenant le reste se passe dans WorkGroup Manager. Retournez voir votre Directory. Vous pouvez maintenant modifier les attributs de vos utilisateurs. Ce qui est important de modifier, c'est le répertoire maison. Dans l'onglet Home, vous pouvez cliquer sur le "+" et ajouter ceci :
À partir de maintenant, vos utilisateurs peuvent ouvrir une session en ayant leur répertoire maison sur le serveur. Par contre, il faut modifier le binding des clients avec le serveur LDAP. Sur les clients Mac, ouvrez l'application Directory Access située dans /Applications/Utilities. Authentifiez-vous avec un compte ayant des droits d'administrateur sur la machine en cliquant sur le cadenas dans le bas, ensuite cliquez sur LDAPv3, puis sur Configure. Cliquez sur New..., puis sur le bouton Manual. Vous aurez alors une entrée vide. Cliquez sur cette configuration, puis sur Edit.... Dans Configuration Name entrez ce que vous voulez, dans Server name or IP entrez le nom du serveur LDAP, ou son IP. Passez maintenant dans l'onglet Search & Mappings. Dans le menu Access this LDAPv3 Server using, choisissez Open Directory Server. Une fenêtre apparaîtra demandant le search base, entrez votre dc=exemple,dc=com. Cliquez maintenant sur Users, dans Search Base, entrez ou=people, dc=exemple,dc=com. Faites de même pour Groups et Mounts, en changeant le ou pour group et mounts. Faites apparaître les attributs de Users en cliquant sur le petit triangle, et choisissez NFSHomeDirectory. Supprimez l'entrée associée, et ajoutez apple-user-homeDirectory. Cliquez ensuite sur HomeDirectory, supprimez ce qui est affiché, entrez apple-user-homeurl. Fermez le tout, redémarrez le poste, ça devrait fonctionner!
Dernière modification le 27/03/2006 @ 19:15 par Drizzt
Écrit le: 24/03/2006 @ 19:36
C'est la première fois que ça me prend plus d'1h pour faire un blog, j'ai eu peur de me flusher!