02 janvier 2008

Widget Flixster pour Wordpress

Joyeux Noël! (avec un peu de retard). Voici un petit plug-in avec lequel les utilisateurs de Wordpress pourront déchaîner le fruit de leur passion cinématographique.

Libellés : ,


05 décembre 2007

Ubuntu


(source: http://www.xkcd.com/)

Libellés : ,


03 décembre 2007

32 ou 64 bits?

Voici un article qui décrit les petits plus et les petits moins du 64 bits, au-delà de la possibilité d'accéder à plus de 4Go de RAM sans PAE.

Pour résumer, un léger gain de vitesse puisque les registres concernés peuvent dans le meilleur des cas contenir 2 fois plus de données à traiter en un cycle d'horloge, et des applications qui prennent un peu plus de mémoire, la taille des pointeurs étant égale à la taille d'adressage.

Libellés :


25 novembre 2007

Ubuntu, OpenOffice et NFS sont sur un bateau

...et hop, tous les documents OpenOffice présents sur les partages NFS ne s'ouvrent plus qu'en lecture seule.

La solution est la suivante:

Editer le fichier
/etc/openoffice/soffice.sh

Et remplacer la ligne
10 FILE_LOCKING=auto

Par
10 FILE_LOCKING=no

Editer le fichier
/usr/lib/openoffice/program/sofficeetc/openoffice/soffice.sh

Et remplacer les lignes
109 SAL_ENABLE_FILE_LOCKING=0
110 export SAL_ENABLE_FILE_LOCKING

Par
109 SAL_ENABLE_FILE_LOCKING=0
110 unset SAL_ENABLE_FILE_LOCKING

(source: https://bugs.launchpad.net/openoffice/+bug/109265/comments/2)

Libellés : ,


09 novembre 2007

A la découverte de Lazarus

Présentation

Lazarus est un environnement de développement rapide open source largement inspiré par Delphi, et basé sur Free Pascal, une implémentation orientée objet du langage Pascal. Cependant, il possède un atout supplémentaire non négligeable: la portabilité. Bien que le langage soit compilé, il n'y a pas à se soucier des plateformes cibles dans le code.



L'un des principes de Lazarus est de "coder une fois, puis compiler n'importe où" (en opposition à Java où l'on "code une fois" , puis on "exécute n'importe où"). Le souci d'optimisation et la rapidité d'exécution sont nettement palpables lorsqu'on utilise Lazarus, par rapport à du Java ou du Dot Net. Pas besoin non plus de machine virtuelle.


Exemple

Voici maintenant un exemple de mini paintbrush fait avec Lazarus à télécharger ici (je n'en ai pas trouvé en farfouillant sur internet).



Son principe est relativement simple. L'ardoise magique est représentée par un composant TImage dans lequel on peut dessiner de manière persistante. Pour éviter les clignotements, il faut activer le mode Double Buffered :

procedure TFrmMain.FormCreate(Sender: TObject);
begin
  Inherited;
  self.DoubleBuffered := true;
  (* ... *)
end;


On détermine si le crayon est levé ou non en utilisant les événements OnMouseDown (click souris) et OnMouseUp (fin du click souris) de l'image.

procedure TFrmMain.ImgWhiteBoardMouseDown(Sender: TOBject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  self.ImgWhiteBoard.Canvas.MoveTo(X, Y);
  self._draw := true;
end;

procedure TFrmMain.ImgWhiteBoardMouseUp(Sender: TOBject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  self._draw := false;
end;

Ensuite, lors du déplacement de la souris sur l'ardoise (événement OnMouseMove), on dessine une ligne si le bouton est appuyé.

procedure TFrmMain.ImgWhiteBoardMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if (self._draw) then begin
    self.ImgWhiteBoard.Canvas.LineTo(X,Y);
  end;
end;

Voilà. Dans mon souvenir, faire la même chose en Java Swing est un tantinet plus compliqué...

Libellés : , , ,


11 octobre 2007

OpenVPN avec OpenBSD et Windows

OpenVPN est un logiciel libre qui, comme son nom l'indique, permet de créer des réseaux privés virtuels. Nous allons prendre pour exemple un serveur OpenVPN sous OpenBSD, et un client sous Microsoft Windows.


Partie serveur

Installation

Tout d'abord, installer le package OpenVPN. Avec OpenBSD 4.1:

pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.1/packages/i386/openvpn-2.0.6p0.tgz

OpenVPN utilise SSL pour sécuriser le réseau virtuel. Afin de garantir cette sécurité, SSL se base sur un système de clefs publiques (ou certificats d'identité) et de clefs privées.

Les clefs privées permettent de crypter les données et doivent rester protégées sur les postes concernés. Elles sont stockées dans des fichiers .key. Les clefs publiques permettent de décrypter ces données, et sont stockées dans des fichiers .crt. Elles doivent être présentes sur les postes qui reçoivent ces données.

Le certificat racine représente l'entité qui gère les autorisations d'accès au réseau (ici, notre serveur). Il est matérialisé par le fichier ca.crt.

Après avoir créé ce certificat, le serveur peut générer d'autres certificats qui lui permettront, ainsi qu'aux machines qui y seront autorisées, de se connecter au VPN.


Configuration pour la génération de clefs

Créer un répertoire /etc/openvpn/ en exécutant :

mkdir /etc/openvpn

Dans ce répertoire, nous allons faire une copie conforme des scripts présents dans la documentation:

cp -R /usr/local/share/examples/openvpn/easy-rsa/ /etc/openvpn/

Il faut éditer ensuite les caractéristiques des certificats à générer :

vi /etc/openvpn/easy-rsa/vars

Par exemple:
export KEY_COUNTRY=FR
export KEY_PROVINCE=07
export KEY_CITY="PRIVAS"
export KEY_ORG="OpenVPN-TEST"
export KEY_EMAIL="mon.email@mondomaine.fr"

Les clefs seront générées dans le répertoire /etc/openvpn/easy-rsa/keys/ . Se placer dans /etc/openvpn/easy-rsa/ et initialiser ce répertoire:

cd /etc/openvpn/easy-rsa/
. ./vars && ./clean-all


Générer le certificat racine:

./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [07]:
Locality Name (eg, city) [PRIVAS]:
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [
mon.email@mondomaine.fr]:

Le script va poser une série de questions. La seule à laquelle il faut obligatoirement donner une réponse est Common Name.


Génération de clefs

Pour générer la clef du serveur :

./build-key-server server

De la même manière que précédemment, le script va poser une série de questions. Répondre server à la question Common Name. Ensuite, répondre y aux deux questions Sign the certificate? [y/n] et 1 out of 1 certificate requests certified, commit? [y/n].

Il est ensuite possible de générer des clefs pour le (ou les) poste(s) client(s):

./build-key client1
./build-key client2
./build-key client3
...

Pour générer des clefs protégées par un mot de passe, utiliser le script build-key-pass au lieu de build-key.

Génération de paramètres Diffie Hellman (nécessaires à l'échange des clefs) :

./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................


Configuration du serveur

OpenVPN se configure par l'intermédiaire du fichier /etc/openvpn/openvpn.conf :

vi /etc/openvpn/openvpn.conf

Le fichier de référence se trouve dans /usr/local/share/examples/openvpn/sample-config-files/server.conf. Voici un exemple de configuration:

# port sur lequel écoute le serveur
port 5550

# protocole utilisé (udp est plus approprié
# pour encapsuler du tcp)

proto udp

# périphérique à utiliser (ici, /dev/tun0)
dev tun0

# Certificat racine (à distribuer aux clients)
ca ca.crt

# Clef publique du serveur
cert server.crt

# Clef privée du serveur (à garder secrète)
key server.key

# Paramètres de Diffie Hellman
dh dh1024.pem

# Caractéristiques du réseau à mettre en place
server 172.16.0.0 255.255.255.0

# Fichier associant à chaque client qui se connecte
# une adresse IP
ifconfig-pool-persist ipp.txt

keepalive 10 120

# Activer la compression
comp-lz

# Exécuter avec l'utilisateur _openvpn
# et le groupe _openvpn

user _openvpn
group _openvpn

# Conserver les clefs et autres paramètres en
# mémoire (après les changements d'UID et de GID)

persist-key
persist-tun

# Niveau de détails du fichier journal
verb 5



Lancement du service au démarrage

Comme d'habitude sous OpenBSD, éditer le fichier /etc/rc.local et y ajouter:

if [ -x /usr/local/sbin/openvpn ]; then
  echo -n ' openvpn'
  /usr/local/sbin/openvpn --config /etc/openvpn/openvpn.conf --daemon > /dev/null 2>&1
fi


Fichier journal séparé

Par défaut, les messages de log d'OpenVPN sont publiés via syslog dans /var/log/messages. Pour qu'ils apparaissent dans un fichier séparé, ajouter les lignes suivantes dans /etc/syslog.conf :

!openvpn
*.* /var/log/openvpn.log

créer ensuite le nouveau fichier :
touch /var/log/openvpn.log


Protection avec pf

Packet Filter est le firewall d'OpenBSD. Voici un exemple de règles à ajouter à /etc/pf.conf pour ne laisser passer que les paquets qui concernent le protocole de partage réseau sous Windows (SMB) sur l'interface VPN du serveur :

# Définition de l'interface réseau correspondant au VPN
vpn_if="tun0"

[...]

# Bloquer tous les paquets entrants
block in on $vpn_if
# Laisser passer les paquets sortants
pass out on $vpn_if keep state

[...]

# Laisser passer les paquets entrants de type SMB
pass in on $vpn_if inet proto udp from any to ($vpn_if) port {netbios-ns, netbios-dgm}
pass in on $vpn_if inet proto tcp from any to ($vpn_if) port {netbios-ssn, microsoft-ds}


Partie client

Installation et configuration

Pour Windows, installer OpenVPN GUI. Ensuite, ouvrir son répertoire de configuration à partir du menu démarrer -> tous les programmes -> OpenVPN -> OpenVPN configuration file directory.

Copier dans ce répertoire le certificat racine ca.crt ainsi que les clefs générés précédemment pour le poste client, client1.crt et client1.key, à partir du serveur.

Sous windows, les fichiers de configuration OpenVPN sont munis de l'extension ovpn. En créer un dans ce même répertoire ; par exemple, privas.ovpn.

Le fichier de référence est C:\Program Files\OpenVPN\sample-config\client.ovpn. Voici un exemple de configuration:

; Mode (client ou serveur)
client

; Adresse IP du serveur OpenVPN
remote 209.85.135.147

; Port sur lequel écoute le serveur
port 5550

dev tun

; Activation de la compression
comp-lzo

; Certificat racine du serveur
ca ca.crt

; Certificat attribué au client
cert client1.crt

; Clef attribuée client
key client.key

Il ne reste plus qu'à cliquer droit sur l'icône d'OpenVPN puis cliquer sur Connect.



Désactiver un certificat sur le serveur

Dans certains cas, il peut être souhaitable d'annuler l'accès au VPN par le biais de clefs précédemment générées (vol d'un portable, ...). Pour ce faire, utiliser le script revoke-full:

cd /etc/openvpn/easy-rsa && . ./vars && ./revoke-full client1

Un fichier crl.pem est alors généré dans /etc/openvpn/easy-rsa/keys. Il contient la liste de certificats révoqués, et doit être accessible par l'utilisateur _openvpn (en effet, ce fichier est vérifié chaque fois qu'une connexion est faite). Pour cela, on peut déplacer le fichier vers /etc/openvpn :

mv /etc/openvpn/easy-rsa/keys/crl.pem /etc/openvpn/

puis faire un lien vers le répertoire où il a été généré:

ln -sf /etc/openvpn/crl.pem /etc/openvpn/easy-rsa/keys/

De cette manière, le fichier sera accessible par l'utilisateur _openvpn, et sera mis à jour lorsqu'on fera de nouveau appel à revoke-full.

Ajouter cette ligne dans /etc/openvpn/openvpn.conf :

crl-verify /etc/openvpn/crl.pem

afin qu'un contrôle soit effectué à chaque connexion au VPN. Redémarrer OpenVPN.



Conclusion

OpenVPN est un peu plus complexe à mettre en place qu'une solution comme Hamachi. Cependant, sa configuration de base reste relativement simple. Il est possible de l'utiliser en mode bridge. On peut s'y connecter via un proxy http. De plus, il ne dépend pas d'un serveur tiers, et est disponible sur un plus grand nombre de platformes.

Plus d'informations sur http://openvpn.net/howto.html#quick.

Libellés : , , ,


06 octobre 2007

828

Oublions quelques instants le web 2.0 et autres cochonsetés interactives multimédia conviviales. Farbrausch nous a pondu en ce début d'année une démo fort sympathique nommée 828 (Ils nous avaient déjà gâtés en 2002 grâce à l'intro Poem to a Horse).



Libellés : ,


11 septembre 2007

Informatique: GNU Screen

Bon. C'est pas nouveau, et il y a certainement déjà eu pas mal de choses écrites là dessus. Ceci dit, GNU Screen est un petit outil bien pratique qui permet entre autres d'exécuter une session de plusieurs shells interactifs dans un seul terminal, de conserver cette session après s'en être déconnecté, et de la récupérer ultérieurement à partir de n'importe quel autre terminal.

Pour le lancer, taper simplement screen à l'invite. L'écran de présentation apparaît.



Toutes les commandes qui permettent de contrôler screen sont précédées d'un ctrl + a. Par exemple, pour obtenir de l'aide, taper ctrl + a puis ?.

Pour créer un écran virtuel, taper ctrl + a puis c. Pour revenir à un écran précédent, taper ctrl + a puis le numéro d'écran (0 pour le premier par exemple).

Pour détacher le terminal de la session en cours, taper ctrl + a puis d.



Il est ensuite possible de se déconnecter tranquillement du serveur puis de récupérer cette session plus tard à partir d'un autre terminal, en exécutant screen -d -r.

Libellés : ,


07 juillet 2007

Franglish



Edit: Un autre message du même logiciel, qui a jeté son dévolu sur Igricheff cette fois ci...

Libellés : ,


15 avril 2007

Informatique: Linux et les bureaux 3D

L'utilisation de la SLED 10 (distribution Linux de Novell qui a racheté SuSE) m'a permis de découvrir Compiz, un gestionnaire de fenêtre qui utilise les capacités 3D de la machine et apporter des petits plus ergonomiques, comme sur MacOS X.

Bon, d'accord, ce n'est pas bien nouveau. Mais en fait, ce qui est intéressant, c'est que ce moteur d'effets graphiques est intégré dans l'installation de base de la distribution, tout comme ce sera le cas dans la prochaine version d'Ubuntu.

Et cette nouvelle mouture qui doit sortir ce mois ci comporte dans sa collection de paquets officiels un dérivé de Compiz, Beryl, dont les effets sont beaucoup plus variés.



Finalement, le principal écueil reste que certaines cartes graphiques nécessitent des pilotes propriétaires pour supporter la 3D ; du coup, ils ne sont pas directement présents après l'installation du système, et nécessitent des manipulations supplémentaires. Ces pilotes peuvent d'ailleurs comporter des bugs qui compliquent les choses.

Libellés :


14 mars 2007

Il était une fois internet en mode texte

Qu'en est il du bon vieux mode texte à l'heure de Flash, Ajax, Quartz Extreme et autres Aero? Il est parfois utile de pouvoir continuer à l'utiliser dans des situations extrêmes. Voici donc un aperçu non exhaustif de quelques applications qui, à contre-courant de la tendance actuelle, ont survécu à la vague du tout graphique.


WEB



Les navigateurs web sont à mon avis les outils les moins confortables à utiliser en mode texte par rapport à leurs homologues en mode graphique ; de fait, la facilité de navigation dépendra le plus souvent de la tolérance du site web concerné. Javascript n'est malheureusement pas supporté par dans la plupart des cas (sauf W3M pour lequel il existe visiblement des patches). A noter que W3M permet aussi de naviguer en mode graphique dans une console texte.

Navigateur Lynx:
http://lynx.browser.org/


Flux RSS



Il s'agit ici d'une technologie un peu plus récente ; c'est sans doute pourquoi il existe peu d'applications en mode texte pour le RSS. Snownews permet de lire les flux RSS, et s'interface ensuite avec un navigateur WEB tel que Lynx.

A noter qu'il existe un dépôt alternatif pour Cygwin, Cygwinports, dans lequel Snownews est disponible.

Lecteur de flux RSS Snownews:
http://kiza.kcore.de/software/snownews/


E-Mail



Les clients e-mail en mode texte existent depuis la nuit des temps. Cependant l'un d'eux, Mutt, se démarque du lot car il supporte le protocole IMAP.

Client mail Mutt:
http://www.mutt.org/

Utiliser mutt avec imap:
http://mutt.sourceforge.net/imap/
http://www.ks.uiuc.edu/Development/Computers/docs/sysadmin/imap.html


Newsgroups



De la même façon, les newsgroups sont un pilier de l'internet d'hier, mais gardent toujours un intérêt du fait de l'ouverture de leur contenu ; sans doute parce que ce moyen est utilisé de manière moins systématique par les néophites que les forums, et qu'il ne fait ainsi pas trop parler de lui. TIN est un lecteur de news parmi d'autres mais qui reste simple.

Client news TIN:
http://www.tin.org/


Chat



IRC est encore un dinosaure de l'internet. S'il est devenu moins populaire qu'MSN, Google Talk ou autre AIM, bitlbee permet d'interfacer n'importe quel client IRC avec des protocoles de messagerie instantanée.

Le client IRC IRSSI:
http://www.irssi.org/

Bitlbee, qui permet d'interfacer IRC et des protocoles de messagerie instantanée:
http://www.bitlbee.org/


FTP



Enfin, FTP est un autre vestige, rendu obsolète par des protocoles tels que scp, mais encore largement utilisé. lftp est un client ftp qui dispose de fonctionnalités bien pratiques comme l'autocomplétion.

Client FTP lftp:
http://lftp.yar.ru/


Conclusion

Finalement, l'ensemble de ces applications n'a pas forcément grand chose à envier à nos traditionnels outlook express, kontact ou à la panoplie mozilla, sauf peut-être un outil de calendrier. Le temps où les possesseurs de PC fanatiques d'MS-DOS étaient atterrés par la venue du tout-windows est bien loin. Cependant le mode texte n'est pas mort, loin de là.

Libellés :


24 février 2007

Système: Installation d'un annuaire LDAP sous OpenBSD

LDAP est un protocole d'annuaire très répandu dont l'utilisation est très variée, du simple carnet d'adresse à un annuaire d'entreprise tel qu'Active Directory. Son implémentation la plus courante dans le monde libre est OpenLDAP.

OpenBSD est un système d'exploitation de type Unix dérivé de NetBSD, focalisé sur la sécurité. Il est connu pour être le berceau d'OpenSSH, implémentation libre du protocole crypté Secure Shell. Il intègre un firewall clair et efficace, pf, ainsi qu'un protocole permettant de répartir plusieurs serveurs sur une même adresse IP, CARP.


Installation du paquet OpenLDAP sous OpenBSD

Le serveur LDAP fourni avec OpenBSD sous forme de paquet binaire utilise un backend obsolète pour sa base de données (voir http://www.openldap.org/faq/data/cache/756.html). Il est donc préférable (mais pas indispensable) de le recompiler à partir des ports, ce qui donne l'occasion de mettre le nez dans ce système commun aux différents BSD.

L'arborescence des ports d'OpenBSD 4.0 se trouve ici. Elle consiste en un ensemble de répertoires permettant de compiler automatiquement des logiciels à partir de leurs sources. Voici comment procéder:

# installation du système de ports si ce n'est pas déjà fait
cd /usr/
tar xvzf ports.tar.gz

# installation d'OpenLDAP. On précise ici que l'on souhaite installer
# la version serveur avec avec SUBPACKAGE="-server", et que le
# paquet sera compilé avec les options nécessaires pour utiliser le
# backend bdb via
FLAVOR="bdb".
cd /usr/ports/databases/openldap
SUBPACKAGE="-server" FLAVOR="bdb" make install



Préparation du système

L'installation du serveur LDAP ne prépare pas le système à son utilisation, comme ce serait le cas par exemple avec une distribution linux classique. Il faut donc effectuer un certain nombre d'opérations:

# Préparation du répertoire où seront stockées les données
mkdir /var/openldap-data
chown -R _openldap:_openldap /var/openldap-data
chmod -R 700 /var/openldap-data


# Les fichiers d'informations sur le processus doivent être accessibles par
# le serveur qui sera lancé en tant qu'utilisateur _openldap
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid



Configuration du serveur LDAP

La configuration du serveur se fait en éditant le fichier /etc/openldap/slapd.conf. En voici un exemple:

##
# slapd.conf
#

# Fichiers correspondant aux différents modèles d'objets stockés
# dans le répertoire LDAP
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema

# Fichiers d'informations sur le processus du service
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args

#################################
# Définitions concernant la base de données
#################################

# Type de base de données (indiquer ici ldbm si on n'a pas recompilé LDAP)
database bdb

# Suffixe (correspondant ici à crevette.fr)
suffix "dc=crevette,dc=fr"

# Compte administrateur (ici, root)
rootdn "cn=root,dc=crevette,dc=fr"

# Mot de passe de l'administrateur
# (généré à partir de l'outil /usr/local/sbin/slappasswd)
rootpw {SSHA}9W7n9BfscO/g+B+tCva/GeSCGirpIMup

# Répertoire où les données sont stockées physiquement
directory /var/openldap-data



Démarrage du service LDAP

Le démon correspondant au service LDAP est slapd. On peut le démarrer de la manière suivante, afin de s'assurer qu'il n'y a pas d'erreur dans la configuration:
/usr/local/libexec/slapd -f /etc/openldap/slapd.conf -u _openldap -g _openldap -d 256 &


Ajouter des entrées dans le répertoire LDAP

Il est possible d'ajouter des informations dans le répertoire LDAP à l'aide de fichiers de type ldif. En voici un exemple:

##
# test.ldif
#

# Tout d'abord, création de l'organisation "Crevette et Compagnie"
dn: dc=crevette, dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization
dc:crevette
o: Crevette et Compagnie

# Création de l'unité organisationnelle "people" où sera stocké le carnet d'adresses
dn: ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: organizationalUnit
ou: people

# Ajout d'une personne dans ce carnet d'adresse
dn: cn=Jeanine Dupont, ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Jeanine Dupont
gn: Jeanine
sn: Dupont
mail: jeanine.dupont@crevette.fr
telephoneNumber: 01 45 87 97 02
mobile: 06 03 48 79 22


Pour ajouter ces informations à l'annuaire LDAP, exécuter la commande:
ldapadd -x -D 'cn=root,dc=crevette, dc=fr' -f test.ldif -W

Pour vérifier que l'opération s'est bien effectuée, lancer la commande:
ldapsearch -x -b 'dc=crevette, dc=fr' 'objectclass=*'

Il est à ce stade possible de se connecter au serveur LDAP avec un logiciel classique tel que Kontact ou Outlook.


Lancement d'LDAP lors du démarrage du système

Enfin, sous OpenBSD, il n'existe pas de système de niveaux d'exécution. Pour démarrer un service supplémentaire au démarrage, il faut donc éditer le script de démarrage /etc/rc.local et y ajouter les lignes suivantes:

if [ -x /usr/local/libexec/slapd ]; then
echo -n ' OpenLDAP'
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
/usr/local/libexec/slapd -u _openldap -g _openldap
fi


Références

http://www.bsdlife.org/viewtopic.php?pid=193
http://www.onlamp.com/pub/a/onlamp/2003/03/27/ldap_ab.html

Libellés : , ,


02 février 2007

Utilise la Force, Luc



(source: manuel d'utilisation de Freebsd)

Libellés : ,


04 janvier 2007

Informatique: Mise en place d'un tunnel SSH

Pourquoi
Un tunnel SSH peut permettre à une machine, située dans un réseau peu sûr, de communiquer avec une ressource qui est elle située dans un réseau protégé (par exemple, l'interface WEB d'un routeur ADSL). La sécurité du flux de données échangé sera assurée par cryptage.

Comment
Prenons un exemple:




A une extrémité du tunnel, on a un client SSH qui écoute et transfère les requêtes réseau concernées vers le serveur SSH qui se trouve à l'autre bout. Une fois reçues, le serveur SSH effectue de son côté ces requêtes dans le réseau protégé vers le serveur sécurisé concerné. Il achemine enfin les résultats via le tunnel vers la machine cliente.

Pour ce faire, on considèrera qu'un serveur SSH est déjà présent sur le firewall (ou une autre machine sur laquelle on peut rediriger les requêtes SSH). Utiliser un port autre que le port 22 standard permet d'éviter les bombardements intempestifs de la part de robots douteux.

La commande à lancer sur la machine cliente est la suivante dans le cas de notre exemple:

ssh -4 -C -N -p 22 -L 8000:10.0.0.23:3128 utilisateur@224.13.68.200

Voici la signification des différentes options passées au client SSH:

-4 Utilisation d'IPV4 (facultatif).
-C Compression du flux de données (facultatif).
-N Pas de lancement du shell.
-p 22 Port SSH sur lequel on se connecte (facultatif).
-L 8000:10.0.0.23:3128 Le serveur SSH écoute sur le port 8000 de la machine cliente, et transmet les requêtes effectuées sur ce port vers le port 3128 de la machine ayant pour IP 10.0.0.23.
utilisateur@224.13.68.200 Connexion au serveur SSH ayant pour IP 224.13.68.200 via le login "utilisateur".

Il suffit ensuite de se connecter sur la machine cliente à localhost:8000 pour accéder au service réseau distant via le tunnel.

Conclusion
La mise en place d'un tunnel SSH parait dans certains cas plus simple et plus rapide que le déploiement d'un VPN pour l'accès ponctuel à des services réseau protégés précis.

Libellés : ,


05 décembre 2006

Unix: Sauvegarder sa boite mail IMAP

Certains fournisseurs d'adresses mail tels que laposte.net permettent l'utilisation du protocole IMAP. Tous les messages sont alors archivés sur un serveur mail distant pouvant disposer d'une bonne capacité de stockage, un peu comme sur gmail. Il est de plus possible de les manipuler et de les classer avec un client lourd classique de son choix comme thunderbird.

Seulement voilà, une panne du serveur mail peut arriver de temps à autre, et ce de préférence à un moment crucial où les coordonnées d'une personne à contacter d'urgence se trouvent uniquement dans cette fameuse boite mail devenue inaccessible. C'est dans ce cas que l'on se demande ce qui se passera le jour où il n'y aura plus de serveur du tout.

Cette expérience plutôt désagréable m'a conduit à partir à la recherche d'un outil permettant de "sauvegarder" le contenu d'un compte IMAP.

C'est le cas d'OfflineIMAP, un logiciel écrit en python, qui peut entre autres servir à synchroniser une boite mail distante accessible via IMAP avec un compte mail unix local.

Combiné avec le cron d'une machine locale, cet outil permet d'effectuer des sauvegardes régulières de son compte mail, ce qui rend les données accessibles à plusieurs endroits en cas de nécessité.

Références:

Libellés : ,


15 novembre 2006

Informatique : youtube sans flash

Voici un petit script perl (trouvé sur marginalhacks.com) qui permet de récupérer des vidéos youtube sans flash à partir de leur URL d'origine. Elles sont ensuite lisibles avec vlc par exemple.

Prérequis:
Ce script programmé en langage perl utilise lynx (un navigateur web en mode texte) pour récupérer le fichier vidéo, et éventuellement ffmpeg (pas indispensable) pour le transformer en fichier mov, format lisible par quicktime.

Utilisation sous Unix (A):
Il suffit de télécharger le script, puis de lui donner des droits d'exécution:
chmod +x myfilm
Ensuite, on peut l'exécuter en lui passant en paramètre le lien Youtube de la vidéo que l'on veut télécharger, par exemple:
./myfilm http://www.youtube.com/watch?v=v3jkHxSECK4

Cette commande devrait lancer le téléchargement d'un fichier flv (flash video) ainsi que sa conversion au format mov si ffmpeg est installé correctement (la conversion ne fonctionne pas chez moi mais le flv est tout à fait lisible).

Utilisation sous Windows (non testé):
A priori, un environnement comme cygwin dans lequel perl et lynx ont été installés devrait suffire pour faire fonctionner ce script. (Pour installer un logiciel supplémentaire dans cygwin, il suffit de relancer le setup.exe).

Une fois le shell cygwin lancé, la commande
lynx -source http://marginalhacks.com/bin/myfilm > myfilm

devrait permettre de récupérer le script perl et de repasser à l'étape (A).

Libellés : ,


19 juillet 2006

Contrat de licence



J'accepte... j'accepte pas... j'accepte... j'accepte pas...

Libellés : ,


13 avril 2006

Unix: FreeBSD facile

On peut observer depuis quelques temps l'existence de deux variantes de FreeBSD: PC-BSD et DesktopBSD. Leur but est commun: rendre l'utilisation du système plus facile pour les néophytes.

Chacune possède une procédure d'installation graphique simple. Elles sont toutes deux basées sur l'environnement graphique KDE, un peu lourd mais mature et facile à appréhender, avec quelques outils graphiques supplémentaires (par exemple, pour monter et démonter les systèmes de fichiers). Leurs différences résident essentiellement dans la gestion des logiciels additionnels, une fois le système de base installé.

La première mouture, PC-BSD, est basée sur FreeBSD 6, avec en plus un système de mise à jour semblable à windows update, ainsi qu'un nouveau système pour l'installation des logiciels, PBI, similaire aux MSI de Windows. On y gagne beaucoup en simplicité, mais on y perd en flexibilité et en puissance. Le nombre de logiciels disponibles est relativement restreint par rapport à celui du système classique de FreeBSD, les ports, qui sont plus de 14000. On peut aussi regretter de ne pas pouvoir récupérer les packages sur internet directement à partir du système d'installation. Cependant la présence de certains paquets comme Flash ou le JDK est bien pratique, et il est toujours possible d'utiliser le système sous-jacent des ports.

DesktopBSD, plus sobre, est quant à lui basé sur FreeBSD 5. Il intègre une interface graphique qui permet de gérer les ports de FreeBSD pour installer de nouveaux logiciels. Cela le rend plus proche de la philosophie d'origine des BSD, et constitue une invitation conviviale à découvrir le système plus en profondeur. Il ne faut par contre pas avoir peur de mettre un peu les mains dans le cambouis pour certains cas spécifiques, comme par exemple l'installation du JDK ou l'utilisation d'un proxy. De plus, il n'existe pour l'instant pas de procédure de mise à jour du système de base, mis à part le traditionnel sysinstall ; et cette base est constituée d'une pré-version (FreeBSD 5.5-PRERELEASE) très stable ici néanmoins.

On a donc affaire à deux manières différentes d'atteindre des buts similaires. Alors, si vous êtes curieux, si les spywares à la sauce Windows vous agacent et si la jungle désorganisée des Linux vous laisse dubitatif, il peut être intéressant de tenter le coup. Des images de ces systèmes, utilisables avec VMWare Player, sont disponibles ici pour PC-BSD et ici pour DesktopBSD.

Libellés : , ,


22 mars 2006

Windows: C++ avec Eclipse, Cygwin et SDL


1. Pourquoi


1.1. SDL
La librairie SDL est destinée au développement d'applications multimédia (en particulier les jeux) ; elle supporte plusieurs systèmes d'exploitation, par exemple Windows et Linux.

1.2. Eclipse
Eclipse est un environnement de développement très largement utilisé, sur lequel est basé IBM Websphere. Il est extensible et possède un plugin nommé CDT permettant de développer en C++.

1.3. Cygwin
Cygwin est une couche d'émulation Unix pour Windows. La plupart des outils GNU, dont le compilateur C++, sont disponibles dans cet environnement.

2. Comment

2.1. Installer Cygwin
Cygwin s'installe très simplement à partir du réseau via un petit exécutable disponible ici. Mieux vaut ne pas utiliser d'espaces dans le répertoire d'installation (par exemple, c:\cygwin). Lors du choix des paquets à installer, il faut sélectionner dans la catégorie Devel gdb, gcc-g++ (ou gcc-mingw-g++), et make. Une fois installé, il est possible de lancer la ligne de commande à partir de l'icône Cygwin Bash Shell.

2.2. Compiler et installer SDL
Les sources de la librairie SDL se téléchargent à partir d'ici (la dernière version à ce jour étant la 1.2.9) ; placez le fichier récupéré (par exemple, SDL-1.2.9.tar.gz) dans un répertoire facilement accessible via cygwin (comme c:\cygwin\usr\src).

Ensuite, placez-vous à partir de la ligne de commande cygwin dans ce répertoire :
cd /usr/src


Décompressez le fichier récupéré:
tar xvzf SDL-1.2.9.tar.gz

Placez-vous dans le répertoire ainsi créé:
cd SDL-1.2.9

Compilez et installez la librairie:
./configure --prefix=/usr/local && make && make install

Et voilà.

Il est nécessaire d'ajouter les chemins des binaires de Cygwin dans les variables d'environnement de Windows. Pour ce faire, allez dans le panneau de configuration de Windows, choisissez Système, Avancé, Variables d'environnement, puis la variable Path. Ajoutez-y
;c:\cygwin\bin;c:\cygwin\usr\local\bin

par exemple, selon le répertoire d'installation de Cygwin.

2.3. Installer le Sun JRE
Eclipse nécessite une machine virtuelle Java pour fonctionner. Si vous n'en avez pas encore installé, il est possible de le faire à partir du site de Sun (la dernière version à ce jour étant la 1.5).

2.4. Installer Eclipse
On peut trouver Eclipse sur le site eclipse.org. Téléchargez Eclipse SDK (la dernière version à ce jour est la 3.2.1). Décompressez-le directement là où vous souhaitez le voir installé (par exemple, dans c:\Program Files\). Il suffira de supprimer le répertoire eclipse créé par la décompression de l'archive pour le désinstaller.
Lancez l'application eclipse.exe à partir de ce dernier.

2.5. Installer le plug-in CDT
Certaines des extensions d'Eclipse sont directement installables à partir du logiciel ; c'est le cas de CDT. Dans Eclipse, cliquez sur Help -> Software updates -> Find and install... Ensuite, sélectionnez Search for new features to install, next, puis Callisto discovery site. Sélectionnez CDT, puis cliquez sur le bouton Select Required. Cliquez sur Finish.

2.6. Configurer Eclipse
Pour indiquer à Eclipse où se trouvent les DLL nécessaires à l'exécution des projets compilés, on peut indiquer leur chemin dans Window -> Preferences..., puis en dépliant C/C++, puis en sélecitonnant Managed Build. Cliquez sur New, sélectionnez Append, indiquez PATH dans la section Name. Ajoutez-y
;c:\cygwin\bin;c:\cygwin\usr\local\bin

(en fonction bien sûr du répertoire d'installation de Cygwin).

3. Programme de test

Vous pouvez maintenant créer un nouveau projet en utilisant le menu File->New->Project..., en dépliant le noeud C++, puis en choisissant Managed Make C++ Project. Ensuite, créez un fichier source avec File->New->Source File, que l'on peut appeler par exemple test.cpp.

Dans Project->Properties, dans l'onglet Tools Settings, ajoutez pour la section GCC C++ Compiler->Directories le répertoire C:\cygwin\usr\local\include ; dans la section GCC C++ Linker->Libraries->Libraries (-l), indiquez SDL. Enfin, dans GCC C++ Linker->Libraries->Library search path (-L), ajoutez C:\cygwin\usr\local\lib.

Copiez ensuite le petit programme suivant dans test.cpp:

#include

int main( int argc, char *argv[ ] )
{
SDL_Surface *screen;
if( SDL_Init(SDL_INIT_VIDEO) <>
{
printf( "Can't init SDL: %s\n", SDL_GetError( ) );
return(1);
}

screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE);

if( screen == NULL )
{
printf( "Can't set video mode: %s\n", SDL_GetError());
SDL_Quit();
return(1);
}

SDL_Delay( 3000 );
SDL_Quit();

return 0;
}

pour le lancer, cliquez droit dans le menu Run->Run... afin de sélectionner New ; cliquez sur Search Project, pour sélectionner l'exécutable. Enfin, cliquez sur Run.

Si tout a bien fonctionné, une petite fenêtre noire devrait apparaître pendant quelques secondes.

4. Aller plus loin

SDL dispose de nombreux tutoriaux, dont celui-ci (en Français) ou celui-là (en Anglais).

5. Références

Tutorial Eclipse, C/C++ et SDL (Windows) en Espagnol

Page de tutoriaux sur le site officiel de SDL

Libellés : ,


14 février 2006

Unix: Ecrire en Chinois sous NetBSD


SCIM et Stardict, une combinaison intéressante pour travailler les langues

SCIM consiste en une aide à la saisie pour écrire dans des langues diverses et variées, dont le Chinois. Ce logiciel a récemment été inclus dans pkgsrc-wip, une version de pkgsrc qui contient des packages "en travaux" (Work In Progress). Il est par exemple possible de saisir des sinogrammes à partir de leur phonétique pinyin en installant le package scim-pinyin.

Cependant, la manière la plus pratique de faire fonctionner SCIM dans un environnement en Français est de l'utiliser en tant que module GTK (dans les applications qui utilisent cette librairie).

Pour ce faire, il faut pour l'instant exécuter cette commande à l'issue de l'installation de SCIM :

/usr/pkg/bin/gtk-query-immodules-2.0 > /usr/pkg/libdata/gtk-2.0/gtk.immodules

Cela permet de mettre à jour la configuration des différents modules d'entrée clavier de GTK. Ceci dit, il est très probable que ce problème soit corrigé au moment où vous lisez ces lignes.

Libellés : , ,


This page is powered by Blogger. Isn't yours?