Monthly Archive for June, 2008

MacOS 10.5 et OpenLDAP START_TLS

Voila deux jours que je tentais de forcer une authentification depuis MacOS 10.5 sur un serveur slapd configuré en start_tls. Le start_tls fonctionnait avec le /etc/openldap/ldap.conf adéquat et les outils ldap* (search, modify …). Confiant, je lance le cliquodrome :

Aller -> utilitaires -> utilitaires d’annuaires :
Mon serveur LDAP apparaît avec un joli point vert (“ce serveur répond normalement”).

services -> LDAPv3 :
Activer : OK
Nom de la config : bla bla
Nom serveur : mybigldap
Mappage LDAP rfc 2307 (Unix)
SSL : OK
Propriétées activées :
- Chiffrer via SSL
- Utiliser le port personnalisé 389

C’est l’erreur, j’ai supposé (ne jamais supposer en administration système !) que ça allait se démerder et passer sur du start_tls côté client comme j’avais demandé le chiffrement SSL.

Seulement, côté serveur dans le /var/log/debug, aucune mention de start_tls.
Juste des message du style :

Jun 24 10:41:41 mybigldap slapd[15075]: conn=1000 fd=47 closed (connection lost)
Jun 24 10:41:56 mybigldap slapd[15075]: conn=999 fd=31 closed (connection lost)

Juste après les ACCEPT relatifs à mon client MacOS X.
En conclusion, ça se démerde pas, ça fait vraiment du SSL.
Il faut donc lancer une instance du serveur (voir /etc/default/slapd) en SSL (ldaps sur port 636).

LateX – may be too complex to print

Un petit mémo pour les erreurs produite par dvipdf du style :

Page 1 may be too complex to print
Page 2 may be too complex to print
Page 3 may be too complex to print

Ma distribution est Ubuntu 8.04 Hardy. A priori cette erreur vient du fait que le script dvipdf appelle dvips avec des options merdiques.

ligne incriminée :

exec dvips -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -

que j’ai remplacée par :

exec dvips -q -f "$infile" | gs $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -

And it works.

OpenBSD 4.3 en client LDAP

Dans le cadre d’une migration de NIS vers LDAP j’ai du lier mes passerelles OpenBSD 4.3 au nouvel annuaire LDAP.
Pour les systèmes “pingouin inside” ca va tout seul, par contre pour le poisson piquant c’est pas la même.

1. Suppression du NIS (headshot !)

# kill -TERM PID de ypbind
# rm /etc/defaultdomain
# rm -rf /etc/yp
# rm -rf /var/yp/binding/domaine_nis.version_nis

2. Installation des paquets

# pkg_add openldap-client
# pkg_add ldap_login

Le paquet openldap-client fourni les utilitaires ldap* (search, add, modify …) ainsi que le fichier de configuration ldap.conf que l’on va s’empresser d’écraser. Le ldap_login étend le fichier /etc/login.conf avec un classe de comptes ldap contenant les paramètres classiques de localisation du (des) serveur(s) LDAP (hostname, version de LDAP, certificats …).

3. Configuration du client LDAP

Tout se passe au niveau du fichier /etc/openldap/ldap.conf :

BASE    dc=my,dc=example,dc=com
URI     ldap://fake_server.my.example.com
 
TLS_CACERT      /etc/openldap/ssl/server_cert.pem
TLS_REQCERT   demand
 
ldap_version 3
ssl start_tls
scope sub
bind_policy soft

Il faut renseigner le login.conf pour que le programme ldap_login puisse réaliser l’opération de bind sur l’annuaire LDAP au moment de l’authentification du compte sur le système. Voici un exemple :

#
# LDAP
#
ldap:\
        :auth=-ldap:\
        :x-ldap-server=fake_server.my.example.com,,starttls:\
        :x-ldap-server-alt=fake_server.my.example.com,,starttls:\
        :x-ldap-basedn=ou=unix_accounts,o=people,dc=my,dc=example,dc=com:\
        :x-ldap-uscope=sub:\
        :x-ldap-noreferrals:\
        :x-ldap-filter=(&(objectclass=posixAccount)(uid=%u)):

On ne renseigne pas les attributs relatifs au chiffrement SSL dans le login.conf car par défaut il les déduit du ldap.conf.

4. Création des utiisateurs

OpenBSD n’intègre pas de système comparable au NSS. Les comptes doivent être crées via la commande useradd en utilisant la classe de login “ldap”. J’ai fait un petit script que l’on peut récuperer ici pour synchroniser les comptes.

Serveur d’impression (SAMBA / CUPS)

Ce billet fait suite à une demande que j’ai effectué sur Mathrice (réseau d’informaticiens des laboratoires de mathématiques) dans le but de monter un serveur d’impression multi-plateforme (WIndows, MAC OS X et Linux). Ce serveur a été monté sur un LVM dans une domU Xen sour Debian Etch.

La première chose à faire est d’installer les packages qui vont bien :

apt-get install samba samba-common cupsys cups-pdf cupsys-client cupsys-common libcupsimage2 libcupsys2 libcupsys2-dev

La configuration de cups et samba sont largement couverts par des howto très bien fait. Nous allons considérer que vous avez déclaré les imprimantes dans cups et que samba tourne.

Dans le cupsd.conf :

mime.convs:
application/octet-stream application/vnd.cups-raw 0 -
 
mime.types:
application/octet-stream

Dans le smb.conf, il faut créer les partages suivants :

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
public = yes
printable = yes
writable = no
guest ok = yes
printer admin = root
 
[print$]
comment = Printer Drivers
path = /usr/share/cups/drivers
public = yes
browseable = yes
read only = yes
guest ok = yes
write list = root

Au niveau sécurité, je souhaite que ce serveur soit accessible anonymement.

Dans le smb.conf :

[global]
netbios name = cups
server string = %h server
load printers = yes
printing = cups
printcap = cups
printcap name = cups
cups server = fqdn serveur cups
 
encrypt passwords = true
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
security = share
guest account = nobody

La touche finale est de rendre les imprimantes installables en direct depuis n’importe quel OS en passant par le driver générique PS des différents systèmes.

Récupération et compilation du driver PS compatible CUPS pour Windows :

wget _url_/cups-windows-6.0-source.tar.gz
tar -xvzf cups-windows-6.0-source.tar.gz

Ensuite “make install” dans le répertoire décompressée.
On va installer les drivers dans “/usr/share/cups/drivers” (section [print$] du smb.conf) en y copiant le contenu du répertoire “i386″ de l’archive.

Enfin, on peut exporter les imprimantes depuis cups vers samba :

cupsaddsmb -H localhost -U root -a -v

Note : il faut positionner le paramètre security à user dans la section [global] du smb.conf, sinon on ne pourra pas authentifier l’utilisateur administrateur (ici root) de samba.

A ce moment tout est OK côté serveur. Pour les clients windows un clic droit puis connexion sur l’imprimante suffit. Pour les divers cliquodromes Linux / Mac il faut effectuer une connexion anonyme sur le serveur et utiliser le driver PS Generic.

Pour tester l’accès anonyme au serveur samba : smbclient -NL fqdn_du_serveur doit lister les imprimantes partagées.

Client NIS sous OpenBSD

Ce post est un mémo à moi-même pour configurer un client NIS sous OpenBSD.

    Modification du fichier passwd :
root # vipw

Ajouter : “+:*::::::::/bin/ksh” à la fin (le shell définit dans cette ligne écrase celui des utilisateurs).

root # pwd_mkdb /etc/master.passwd
    Définition du serveur NIS :
root # echo "domaine_par_défaut" > /etc/defaultdomain
root # mkdir /etc/yp
root # echo "nom_serveur_nis" > /etc/yp/domaine_par_défaut
root # domainname domaine_par_défaut
    Lancement des services :
root # portmap
root # ypbind
root # vi /etc/rc.conf.local

Ajouter :

portmap=YES

That’s all folks …