Installation de ldap.
j'ai finalement mis la version 2.2 de openldap, plus exactement le port openldap22-server.
dn: dc=ovpf,dc=ipgp,dc=jussieu,dc=fr *
|
__________|___________
dn: ou=personnes,... * * dn: cn=Manager,...
|
|
__________|_____ ...
dn: cn=Core Guillaume,ou=... *
Ajouter un nouveau carnet d'adresses en choississant LDAP.
server : 195.83.188.20
prefixe de recherche : ou=personnes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr
-- CoreGuillaume? - 17 Jul 2006
dn: cn=Core Guillaume,ou=personnes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr cn: Core Guillaume sn: Core objectClass: top objectClass: person objectClass: organizationalPerson objectClass: posixAccount objectClass: inetOrgPerson uid: fridim uidNumber: 1555 gidNumber: 1555 homeDirectory: /home/fridim mail: fridim-nlp@neuf.fr homePhone: 0262 26 63 70 homePhone: 04 91 76 56 25
Victoire \o/
J'ai réussi à faire fonctionner une connexion sécurisée depuis un client vers le serveur openldap 2.2. Il faut pour ça lancer slapd comme il suit : /usr/local/libexec/slapd -u ldap -g ldap -h "ldaps:/// ldap:///". Thunderbird gère bien la connexion (choisir SSL).
Le ssl se lance sur le port 636
Il semblerait que cette version 2.2 d'openldap soit une bénédiction, ou plutot que l'autre sent la truite pourrie. Donc ici, j'ai fait les même manips qu'avec la version 2.3, et ça a marché :-P
Le TLS se lance sur le même port qu'à la normale : 389
Pour les programmes consoles clients ldap et beaucoup d'autres il faut un fichier ldap.conf qui peut se trouver un peu partout : /etc/ldap.conf ou /etc/openldap/ldap.conf ou /usr/local/etc/openldap/ldap.conf (pour freebsd)
Voilà ce que ce ldap.conf doit contenir :
HOST celimene.ipgp.jussieu.fr TLS_CACERT /etc/ssl/cacert.pem BASE dc=ovpf,dc=ipgp,dc=jussieu,dc=fr
Il faut bien entendu copier le cacert.pem se trouvant sur le serveur celimene à /usr/local/etc/ssl/ldap/cacert.pem dans le repertoire /etc/ssl/cacert.pem du client.
*Faire bien attention à pas se gourer de ldap.conf* (je le dis, ça peut faire gagner du temps)
Voilà.
Les aliases sont opérationnels (en local en tous cas) comme visible ici:
Received: from sp604001av ([84.96.92.125]) by sp604001mt.gpm.neuf.ld (Sun Java System Messaging Server 6.2-5.05 (built Feb 16 2006)) with ESMTP id <0J2Q00J5FIEHNU00@sp604001mt.gpm.neuf.ld> for fridim-nlp@neuf.fr; Fri, 21 Jul 2006 06:40:56 +0200 (CEST) Received: from celimene.ipgp.jussieu.fr ([195.83.188.20]) by sp604001av with neuf telecom id 04gm1V00H0Sqb8r0000000 for fridim-nlp@neuf.fr; Fri, 21 Jul 2006 06:40:56 +0200 Received: by celimene.ipgp.jussieu.fr (Postfix) id 7B6033E2FA7; Fri, 21 Jul 2006 04:43:53 +0000 (UTC) ################################################################## # Received: by celimene.ipgp.jussieu.fr (Postfix, from userid 0) # # id 77D3A3E2FA8; Fri, 21 Jul 2006 04:43:53 +0000 (UTC) # ################################################################## Date: Fri, 21 Jul 2006 04:43:53 +0000 (UTC) From: root@celimene.ipgp.jussieu.fr (Charlie Root) Subject: test To: fridim@localhost.ipgp.jussieu.fr Message-id: <20060721044353.77D3A3E2FA8@celimene.ipgp.jussieu.fr> Delivered-to: fridim@localhost.ipgp.jussieu.fr X-IMP2: RBL MAPS_ORDB: 0.00,RBL SPAMCOP: 0.00,RBL SORBS: 0.00,RBL SBL+XBL: 0.00,AV NONE,URL RHS: 0.00,URL SURBL: 0.00,GBAYES: 0.09 ceci est un test
config postfix :
mydomain = ipgp.jussieu.fr myhostname = celimene mydestination = celimene, celimene.ipgp.jussieu.fr, localhost alias_maps = ldap:ldapalias ldapalias_server_host = localhost ldapalias_search_base = ou=personnes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr ldapalias_query_filter = (uid=%s) ldapalias_result_attribute = mail ldapalias_version = 3
j'ai installé le port p5-Mail-Spamassassin.
les instructions d'installation sont dans /usr/local/share/doc/p5-Mail-SpamAssassin/INSTALL. J'ai suivi ceci, postfix utilisant spamd : http://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix?highlight=%28postfix%29 a ou ici : http://onetforum.com/fourm/viewtopic.php?p=27
le wiki a l'air pas mal du tout : http://wiki.apache.org/spamassassin/FrontPage
Pour tester spamassassin : spamassassin -t < /usr/local/etc/postfix/spam.test2 qui donne un score de 14 :-)
pour le moment postfix ne communique pas bien avec spamd :/
j'ai installé nss_ldap et pam_ldap.
Message pour nss_ldap :
The nss_ldap module expects to find its configuration files at the following paths: LDAP configuration: /usr/local/etc/nss_ldap.conf LDAP secret (optional): /usr/local/etc/nss_ldap.secret WARNING: For users of previous versions of this port: WARNING: WARNING: Previous versions of this port expected configuration files WARNING: to be located at /etc/ldap.conf and /etc/ldap.secret. You WARNING: may need to move these configuration files to their new WARNING: location specified above.
Message pour pam_ldap
Copy /usr/local/etc/ldap.conf.dist to /usr/local/etc/ldap.conf, then edit /usr/local/etc/ldap.conf in order to use this module. Add a line similar to the following to /etc/pam.conf on 4.X, or create an /etc/pam.d/ldap on 5.X and higher with a line similar to the following: login auth sufficient /usr/local/lib/pam_ldap.so
Le fichier /etc/nsswitch.conf :
group: files ldap group_compat: nis hosts: files dns networks: files passwd: files ldap passwd_compat: nis shells: files ldap
Le fichier /usr/local/etc/nss_ldap.conf :
host celimene.ipgp.jussieu.fr base dc=ovpf,dc=ipgp,dc=jussieu,dc=fr ssl start_tls tls_cacertfile /usr/local/etc/ssl/ldap/cacert.pem
On configure le fichier /etc/pam.d/sshd :
# auth auth required pam_nologin.so no_warn # On autorise ldap auth sufficient /usr/local/lib/pam_ldap.so auth sufficient pam_opie.so no_warn no_fake_prompts auth requisite pam_opieaccess.so no_warn allow_local #auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass auth required pam_unix.so no_warn try_first_pass # account #account required pam_krb5.so account required pam_login_access.so account required pam_unix.so # On autorise ldap account sufficient /usr/local/lib/pam_ldap.so
J'ai ajouté un utilisateur test dans ldap sur celimene :
dn: cn=Test,ou=personnes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr objectClass: top objectClass: person objectClass: organizationalPerson objectClass: posixAccount objectClass: inetOrgPerson objectClass: shadowAccount sn: test cn: Test userPassword: ******* uid: test uidNumber: 1004 gidNumber: 1005 homeDirectory: /home/test
et je me log sur pitontortue par ssh test@localhost et ça fonctionne :-)
Maintenant, c'est la même manip pour les autres services, il suffit de modifier le bon fichier dans /etc/pam.d/.
j'ai rajouté un posixGroup ftp dans ou=groupes,dc=ovpf.... J'ai rajouté memberUid=fridim, et quand on fait un id fridim sur pitontortue, on a bien uid=1001(fridim) gid=1001(fridim) groups=1001(fridim), 0(wheel), 21(ftp)
j'ai ajouté une machine, pitontortue dans openldap :
dn: cn=pitontortue,ou=machines,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr objectClass: top objectClass: ipHost objectClass: device objectClass: extensibleObject cn: pitontortue ipHostNumber: 195.83.188.18 memberUid: fridim
pour l'instant ça sert à rien
installé sur le serveur pitontortue : http://195.83.188.18/phpldapadmin/index.php
ici de la doc sur les options disponibles dans proftpd.conf : http://www.proftpd.org/docs/directives/linked/config_ref_mod_ldap.html
J'ai mis la configuration suivante :
ServerName "ProFTPD Default Installation" ServerType standalone DefaultServer on ScoreboardFile /var/run/proftpd.scoreboard Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup DefaultRoot /var/ftp/ovpf ovpf, !ftp DefaultRoot /var/ftp ftp DefaultRoot /var/ftp/pub !ovpf AllowOverwrite on <Limit SITE_CHMOD> </Limit> <IfModule mod_tls.c> </IfModule> LDAPServer celimene.ipgp.jussieu.fr LDAPDoAuth on "dc=ovpf,dc=ipgp,dc=jussieu,dc=fr" LDAPDoUIDLookups on "ou=personnes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr" LDAPDoGIDLookups on "ou=groupes,dc=ovpf,dc=ipgp,dc=jussieu,dc=fr"
C'est donc très facile, à l'aide des groupes LDAP de définir qui a le droit d'entrer dans quel dossier, ou plus précisement définir où l'utilisateur sera chrooté. Tout ça grace à DefaultRoot suivi du groupe. Ensuite, chmod et chown font le reste.