Too Cool for Internet Explorer

Frozen Pizza

lundi 11 septembre 2006

Installation d'ubuntu, quatrième étape: installation et configuration d'un annuaire LDAP

Tout ceci n'est plus très frais dans ma mémoire vu que je m'y prends vraiment tard pour blogguer ceci. La configuration d'un annuaire LDAP n'a pas été une sinecure...

Le tuto qui m'a le plus aidé est celui-ci. Celui-ci ayant aussi été une inspiration.

Mais il faut bien avouer que tels quels, aucun de ces deux tutos ne fonctionnent... Il faut chipoter, et parfois faire des concessions. Mon fichier de config LDAP n'est donc pas aussi clean que ceux que l'on peut trouver dans ces deux tutos, les permissions des différentes "tables" (qui sont en fait des 'ou') ne sont pas si claires et il est parfois nécessaire de donner aux utilisateurs plus de permissions qu'on aurait voulu pour que ça fonctionne. Pour ma part, j'y ai vraiment été à la bourrin, et une fois que j'ai vu que certains trucs dégueus marchaient, je m'en suis plus ou moins satifait.

Voici donc mon fichier de config /etc/ldap/slapd.conf, débarassé de ses commentaires pour le rendre plus lisible.

allow bind_v2

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

schemacheck     on

pidfile         /var/run/slapd/slapd.pid

argsfile        /var/run/slapd.args

loglevel        0

modulepath      /usr/lib/ldap
moduleload      back_bdb

backend         bdb
checkpoint 512 30

database        bdb

suffix          "dc=frozen-pizza,dc=be"

directory       "/var/lib/ldap"

index           objectClass eq

lastmod         on

access to attrs=userPassword
        by dn="cn=admin,dc=frozen-pizza,dc=be" write
        by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
        by dn="uid=beto,ou=people,dc=frozen-pizza,dc=be" read
        by dn="uid=thom,ou=people,dc=frozen-pizza,dc=be" read
        by anonymous auth
        by self write
        by * none

access to dn.base="dc=frozen-pizza,dc=be" by * read

access to *
        by dn="cn=admin,dc=frozen-pizza,dc=be" write
        by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write
        by dn="uid=beto,ou=people,dc=frozen-pizza,dc=be" write
        by dn="uid=thom,ou=people,dc=frozen-pizza,dc=be" write
        by * read

access to dn="ou=AddressBook,dc=frozen-pizza,dc=be"
        by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write

access to dn="ou=people,dc=frozen-pizza,dc=be"
        by dn="uid=iceman,ou=people,dc=frozen-pizza,dc=be" write

# Acces a l'annuaire
access to dn.regex="ou=([^,]+),ou=AddressBook,dc=frozen-pizza,dc=be"
        by dn.regex="uid=$1,ou=people,dc=frozen-pizza,dc=be" write
        by dn="cn=admin,dc=frozen-pizza,dc=be" write
        by self write
        by anonymous none
        by users none

J'ai aussi utilisé l'interface web phpldapadmin. Il est vrai que le tuto fonctionne plutôt en changeant les fichiers de conf, mais phpldapadmin m'a permis de faire quelques tests quand je n'étais pas sûr des permissions à accorder aux utilisateurs. (Se logguer en tant qu'untel, essayer de créer une entrée dans son carnet d'adresses, etc.)

Le paramétrage d'evolution ne se fait pas non plus sans peine, et j'ai dû plusieurs fois fermer evolution et tuer evolution-data-server pour que ça fonctionne bien...

Quand au paramétrage d'outlook (chez mon frère), il faut dire que je n'y ai pas vraiment mis du coeur: j'ai abandonné après 5 minutes, dégouté par toutes les difficultés que j'avais déjà rencontrées jusque là.

J'ai aussi configuré squirrelmail pour qu'il utilise le LDAP, pour arriver à ce qui est quand même un peu le but d'avoir un annuaire LDAP pour les contacts: pouvoir accéder à ses contacts de partout dans le monde!

Malheureusement, j'étais tellement las du LDAP à ce moment, que je n'ai pas vraiment cherché à faire dans la finesse. J'ai cependant l'impression que squirrelmail ne peut accepter qu'une seule 'ou' comme carnet d'adresses, ce qui m'a conduit à mettre la racine de tous mes carnets d'adresses comme carnet d'adresses. Cela a pour effet qu'on ne peut rajouter des contacts via squirrelmail, et que squirrelmail, (donc tous les utilisateurs) peut accéder en lecture aux contacts de tous les utilisateurs.

Pour clarifier le paragraphe précédent, il semble que squirrelmail ne gère pas plusieurs utilisateurs d'un annuaire LDAP, mais se contente de se connecter sur l'annuaire en utilisant le meme utilisateur pour tout le monde, ce qui est assez gênant dans certains cas. Il faut donc aussi donner les permissions en lecture sur toutes les tables à tout le monde. (Pour moi, ça va.)

dimanche 3 septembre 2006

Installation d'ubuntu, troisième étape: installation du serveur mail

Je vous passe l'installation d'ubuntu-desktop sur le pc de mon père, tout s'étant bien passé[1]. Le seul problème rencontré a été la carte graphique, une ATI, qui a obstinément refusé de fonctionner, que ce soit avec le pilote vesa, ati, et l'autre pilote dont le nom m'échappe pour le moment (flx???). Mon père a cependant consenti à acheter une carte nvidia pour ne pas avoir de problème et que tout fonctionne bien.

Passons maintenant à l'étape principale: l'installation du serveur.

Ce serveur a pour vocation d'être un serveur mail, LDAP pour les contacts, calendrier, web, ftp, serveur de fichiers. Il doit évidemment être accessible en ssh pour que je puisse faire toute mes bidouilles à partir de ma chambre et qu'il puisse se passer d'un clavier et d'un écran.

Après avoir essayé infructueusement de faire fonctionner Hula pour les mails et le calendrier[2], je me suis tourné vers une configuration que je connais pour l'avoir utilisée depuis longtemps en local: courier-imap.

La configuration du serveur mail s'est donc opérée facilement avec les programmes suivants:

  1. fetchmail pour rappatrier les mails
  2. procmail pour les trier au format Maildir et appeller spamassassin
  3. spamassassin pour détecter les spams
  4. postfix pour faire le facteur localement
  5. courier-imap pour consulter les mails avec mon bloatware client mail favorit
  6. squirrelmail pour pouvoir consulter mes mails depuis n'importe où dans le monde sans devoir configurer un client mail pour imap

Il existe plein de tutos pour configurer tout ça, et je ne voudrais pas être redondant, surtout que la plupart de ces trucs n'ont même pas besoin d'être configurés ou ont une configuration triviale.

Pour parachever le tout, un petit script pour que mon père n'aie pas à faire apprendre lui-même à spamassassin. Il suffit de déplacer les spams dans le dossier "spam", et quand on voit des faux positifs, de les mettre dans l'inbox. On ajoute ensuite cette ligne au crontab de l'utilisateur[3]:

@monthly /chemin/vers/script_spam.sh

Voici le contenu de ce script tout simple:

#!/bin/bash
sa-learn --ham Maildir/cur/
sa-learn --spam Maildir/.spam/cur/
rm Maildir/.spam/cur/*

Comme vous vous en apercevez, il faut que les spams soient lus pour qu'ils puissent êtres effacés par le script. Ainsi, pas de risque que des faux positifs soient effacés avant que l'utilisateur n'ait eu le temps de les lire.

Notes

[1] oui il faut aussi le dire quand ça se passe sans encombres

[2] je n'ai pas encore abandonné la partie calendrier, je dois encore des trucs

[3] sans oublier de donner les permissions d'exécution à l'utilisateur

Installation d'ubuntu, deuxième étape: transfert de la home de mon père

Quelle affaire pour transférer cette home! Le but était en fait de transférer tous les fichiers de son ancien pc vers son nouveau, pour qu'il récupère tout (préférences, fichiers), les disques durs de l'ancien pc devant être formatés et repartitionnés par la suite pour accueillir le serveur.

J'ai tout essayé: d'abord simplement bouger le repertoire en ssh via nautilus a partir du liveCD ubuntu. Nautilus m'a plusieurs fois planté à la gueule, interrompant le transfert. J'ai ensuite installé un serveur ftp (vsftpd), et j'ai essayé de transférer les dossiers tels quels en ftp. D'abord via nautilus, ensuite via gftp, toujours sans succès (plantages pour nautilus, erreurs de transfert via gftp).

Finalement, la solution était conne, et je m'en veux de ne pas y avoir pensé avant. Je mets ça sur le compte de l'inexpérience.

Note pour moi-même: pour transférer plein de fichiers en un coup, faire un .tar, puis transférer par ssh ou ftp.

Cette méthode a plusieurs avantages:

  1. ça va plus vite de transférer un gros fichier que plein de petits
  2. le protocole ne risque pas de faire chier quand il y a des noms de fichiers bizarres[1]
  3. nautilus risque moins de planter
  4. j'avais pensé à d'autres avantages sur le coup, mais là ça ne me revient pas...

Notes

[1] Comme des fichiers de mails au format Maildir. Ces fichiers ne peuvent par exemple pas être stockés sur une partition windows.

samedi 2 septembre 2006

Installation d'ubuntu, première étape: partitionnement du disque dur

Mon père utilise encore occasionnellement windows pour quelques programmes qui n'ont pas encore d'équivalent sous ubuntu (ce qui est de plus en plus rare) et aussi pour pouvoir utiliser son scanner [1].

Quoi qu'il en soit, il faut garder windows et installer ubuntu en dual boot. Rien de plus simple en théorie. En théorie, oui...

Je boote sur le liveCD de dapper (6.06-1), je lance gparted, et je commence a repartitionner le disque dur: une petite partoche en NTFS pour windows, une partoche swap, une partoche pour ubuntu en ext3, et une énorme partoche ext2 qui fait /home.

Pourquoi ext2? Pour ca! Hé oui, j'ai découvert ca il n'y a pas longtemps[2]: il existe un driver ext2 pour windows. Adieu les partitions FAT32 pour que win et linux puissent tous les 2 lire et écrire dessus!

Je valide le partitionnement, et j'attends...

J'attends longtemps... Longtemps...

Avant de me rendre compte[3] qu'une fenêtre d'erreur est apparue derrière la fenêtre en cours, sans s'afficher dans la barre des tâches...

gparted de m'avait rien dit, mais il ne sait pas modifier des partitions NTFS. Il ne pouvait donc effectuer aucune des opération que je lui avais demandées!

Reboot sous win, installation de partition magic, installation du driver pour l'ext2, reboot. Partition magic fait tout sans aucun problèmes.

Note pour moi-même: Ne plus essayer de toucher à du NTFS avec gparted! Y a-t-il moyen sous linux?

Notes

[1] qui refuse mystérieusement de fonctionner depuis breezy avec sane alors que ca fonctionnait avant et que ca fonctionne en ligne de commande. Ne me demandez pas pourquoi, j'ai reporté le bug

[2] merci Staz

[3] merci Staz

Installation d'ubuntu sur le nouveau Dell de mon père et configuration d'un serveur ubuntu

J'ai récemment installé ubuntu sur le nouveau PC de mon père, et j'ai ensuite récupéré son ancien pc pour en faire un serveur. Comme vous pouvez vous en douter, ces installations ne se sont pas faites sans accrocs, sans sueur, pleurs et sang. (Fin sang peut-etre pas finalement.)

J'ai donc décidé de blogger mes mésaventures pour en faire profiter la communauté. Je vais essayer d'être modulaire et d'écrire un billet par problème, quand cela sera possible, c'est pourquoi je commence un nouveau billet pour parler de la première étape: le partitionnement du disque dur.

Valid XHTML 1.0 Strict