Tips: Pipe command with find -exec

Sometimes, you need to pipe several commands with find -exec, you can do it using the sh command!

Example:

1
find . -exec sh -c 'cat $0 | rot13 | grep -q toto' {} \; -print

Tips: Encrypt chromium passwords with gnome-keyring

Chromium allows you to encrypt website password using the gnome-keyring, the feature isn’t in the manual.

1
$ chromium-browser --password-store=gnome

Skype + minbif on Debian.

I will explain to you my ugly method to use skype with minbif.

Indeed, skype is a proprietary protocol, and we can only use the API of the Qt client for that hack. We must use it with a virtual X server, Xvfb.

On the remote server:

1
2
3
4
5
6
7
8
9
10
# aptitude install xvfb x11vnc
# dpkg -i skype-debian_2.1.0.81-1_i386.deb
# apt-get -f install
# aptitude install minbif
# usermod -s /bin/bash minbif
# sudo su minbif
$ export DISPLAY=:25
$ Xvfb :25 -screen 0 1024x768x16 &
$ skype &
$ x11vnc -bg

On your local computer:

1
$ ssh server -L 5900:localhost:5900

Next on your local computer:

1
$ xvncviewer localhost

You must accept the license and enter your login/password, then activate the autologin. You can now use your graphical skype client over VNC.

On the remote server:

1
2
3
$ killall x11vnc
$ killall skype
$ killall Xvfb

You must edit the config.xml, after minbif can access to the skype API.

1
2
3
4
5
6
7
8
$ vim /var/lib/minbif/.Skype/YOURACCOUNT/config.xml
  <UI>
    <API>
      <Authorizations>(null)</Authorizations>
      <BlockedPrograms></BlockedPrograms>
    </API>
  </UI>
</config>
1
# usermod -s /bin/false minbif

Now you must install skype4pidgin with Xvfb.

1
# aptitude install pidgin-dev

I use revision 579

1
2
3
svn checkout -r 579 http://skype4pidgin.googlecode.com/svn/trunk/ skype4pidgin
gcc -I/usr/include/libpurple `pkg-config --libs purple x11` -DPURPLE_PLUGINS -DENABLE_NLS -DUSE_XVFB_SERVER -Wall -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib64/glib-2.0/include -I/usr/include -I. -g -pipe libskype.c -o libskype.so -shared -fPIC -DPIC
cp libskype.so /usr/lib/purple-2/
Log on minbif
If everything is ok, you can speak to “echo123″
1
2
3
4
5
6
$ ps aux | grep minbif
minbif    6764  0.0  2.0  10248  5440 ?        S    14:15   0:01 Xvfb :25 -ac -terminate -tst -xinerama -render -shmem -screen 0 320x240x16
minbif    6766  0.4 13.8  80096 36328 ?        Sl   14:15   1:00 skype --pipelogin -display :25
minbif   10342  0.3  0.6  12368  1580 ?        Ss   15:38   0:29 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14203  9.5  4.8  86264 12616 ?        Sl   17:31   1:05 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14232  0.4  1.8  85680  4964 ?        S    17:31   0:03 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf

Skype (skype4pidgin) + minbif, ou comment utiliser l’IM skype dans votre irssi.

Vous savez surement que j’utilise minbif pour la messagerie instantanée. Mais il y a un protocole que j’utilise régulièrement pour la messagerie instantanée entre autre, et que je n’ai jamais pensé à intégré dans minbif, il s’agit de Skype.

Ce que je vous propose ici et une solution bien moche, en effet, skype est un protocole propriétaire, nous allons devoir utiliser le binaire skype, le lancer et passer par son API.

Cependant ce binaire ne propose pas de solution en console, il va falloir lancer skype en mode graphique, et le minbif étant sur un serveur, celà pose problème. La solution: utiliser Xvfb, un “fake” serveur X.

Voici la procédure que j’ai utilisé

Sur la machine distance :

1
2
3
4
5
6
7
8
9
10
# aptitude install xvfb x11vnc
# dpkg -i skype-debian_2.1.0.81-1_i386.deb
# apt-get -f install
# aptitude install minbif
# usermod -s /bin/bash minbif
# sudo su minbif
$ export DISPLAY=:25
$ Xvfb :25 -screen 0 1024x768x16 &
$ skype &
$ x11vnc -bg

Puis sur votre machine locale :

1
$ ssh server -L 5900:localhost:5900

Et également en local :

1
$ xvncviewer localhost

Vous pouvez alors accepter les conditions d’utilisation, entrer votre login/password et activer l’autologin. Votre client skype devrait-être fonctionnel en graphique.

Sur la machine distante :

1
2
3
$ killall x11vnc
$ killall skype
$ killall Xvfb

On modifie le fichier config.xml pour donner l’accès de minbif à l’API skype, tout à la fin:

1
2
3
4
5
6
7
8
$ vim /var/lib/minbif/.Skype/VOTRECOMPTE/config.xml
  <UI>
    <API>
      <Authorizations>(null)</Authorizations>
      <BlockedPrograms></BlockedPrograms>
    </API>
  </UI>
</config>
1
# usermod -s /bin/false minbif

Maintenant il faut compiler le plugin skype4pidgin avec le mode Xvfb :

1
# aptitude install pidgin-dev

j’utilise la révision 579

1
2
3
svn checkout http://skype4pidgin.googlecode.com/svn/trunk/ skype4pidgin
gcc -I/usr/include/libpurple `pkg-config --libs purple x11` -DPURPLE_PLUGINS -DENABLE_NLS -DUSE_XVFB_SERVER -Wall -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib64/glib-2.0/include -I/usr/include -I. -g -pipe libskype.c -o libskype.so -shared -fPIC -DPIC
cp libskype.so /usr/lib/purple-2/
Connectez vous à minbif, ajoutez un compte skype
Normalement si tout se passe bien, vous devriez voir se connecter echo123 et pouvoir faire des tests en lui parlant.
1
2
3
4
5
6
$ ps aux | grep minbif
minbif    6764  0.0  2.0  10248  5440 ?        S    14:15   0:01 Xvfb :25 -ac -terminate -tst -xinerama -render -shmem -screen 0 320x240x16
minbif    6766  0.4 13.8  80096 36328 ?        Sl   14:15   1:00 skype --pipelogin -display :25
minbif   10342  0.3  0.6  12368  1580 ?        Ss   15:38   0:29 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14203  9.5  4.8  86264 12616 ?        Sl   17:31   1:05 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14232  0.4  1.8  85680  4964 ?        S    17:31   0:03 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf

Bash et fonctionnalités réseaux

Ce week-end j’ai mis à jour netsoul-purple. Création de packages debian, corrections…

Et ce matin en me levant je me suis demandé : Mais combien de personnes utilisent netsoul-purple ? Est-il utilisé ?

J’ai donc décidé de faire un petit script en bash pour compter les utilisateurs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

exec 9<>/dev/tcp/ns-server.epita.fr/4242
echo -e "list_users" >&9
numbers=0
while read line <&9
do
  ns=`echo $line | grep netsoul%2dpurple >&1`
  quit=`echo $line | grep "rep 002 -- cmd end" >&1`
  if [[ ! -z $ns ]]
  then
    echo $ns
    numbers=$(($numbers+1))
  fi
  if [[ ! -z $quit ]]
  then
    break
  fi;
done
exec 9<&-
exec 9>&-

echo "Result: $numbers"

Voilà un parfait exemple de comment initialiser une connexion TCP et la lire avec bash. Par la suite il serait intéressant de faire des graphs RRD avec le résultat.

Minbif, la messagerie instantanée facile.

Utilisant de nombreux protocoles différents, Jabber, AIM, MSN, pour ne citer qu’eux, j’ai toujours souhaité utiliser un  client multi-protocole.

J’ai essayé de nombreuses solutions,

Tout d’abord il y eut GAIM, client multiprotocole en C/GTK+, on se plaindra surtout à l’époque de son manque de fonctionnalité pour chaque protocole.

Avec l’essort du protocol jabber, vit le jour des passerelles vers les autres protocoles, certaines efficaces, d’autre non, je retiendrais surtout avoir été victime de beaucoup de problèmes techniques au niveau du serveur pour quelque chose d’utilisable.

Un fork de gaim vit le jour, bitlbee, proposant quelque chose d’intéressant, une passerelle IRC vers les protocoles utilisé par GAIM. Cependant le projet ne mergera pas les sources de GAIM régulièrement, il restera assez pauvre au niveau des fonctionnalités, bien que pratique !

GAIM se renomma ensuite en pidgin, Pidgin est une interface graphique utilisant la libpurple pour se connecter aux différents IM.

Puis vint Minbif, reprenant la même idée que bitlbee, celui-ci utilise cependant la libpurple, permettant d’utiliser tous les plugins que nous souhaitons (notamment msn-pecan pour un meilleur support de MSN, et netsoul-purple pour notre protocole favoris à l’école). Minbif permet donc d’utiliser toute la libpurple au travers d’une passerelle IRC.

Bien que encore en développement, Minbif est désormais mon client de Messagerie Instantanée fêtiche ! N’hésitez pas à l’essayer et à faire des rapports de bugs !

Netsoul-Purple

Il est un protocole que tout Epitechiens connait, il s’agit de l’immonde^W^Wdu merveilleux protocole de messagerie instantanée de l’école, j’ai nommé Netsoul. Bien plus qu’un simple protocole de messagerie, celui-ci permet de vous identifier sur le PIE, de surveiller vos temps de log pour que vous travailliez bien… Bref le protocol Netsoul est indispensable à toute personne qui veut travailler à l’école.

Il existe un plugin netsoul pour pidgin nommé gaim-netsoul qui n’est plus maintenu.

Je vous propose donc ma version, j’ai nommé netsoul-purple, corrigeant segfaults et désagréments notoires !

Je vous invite bien entendu à créer des tickets pour tout bug (car il en reste plein) et toute demande de fonctionalité !

La virtualisation avec KVM sous debian

On a toujours besoin de tester ses configurations sur une machine qui n’est pas en prod, il y a encore peu, je testais tout sur du matériel de récupération que j’accumulais chez moi. Mais il arrive un moment dans la vie où il faut se débarasser de tout ce vieux matériel (une petite amie, un déménagement, ou je ne sais quoi :) ). Bref, des machines ça prend de la place, et j’essaie désormais d’en avoir le moins possible.

Pour notre plus grand bonheur, Intel et AMD ont implémenté dans les derniers processeurs des technologies de virtualisation ! On voit alors fleurir sur le net, de multiples applications opensource (ou pas) utilisant ces technologies, comme par exemple, KVM, Xen.

J’ai choisi d’utiliser KVM et non Xen, en effet, ce dernier n’est pas compatible avec les dernières versions du kernel linux, ce qui est un peu génant pour moi, en effet, ma carte mère n’est pas pleinement supportée avec un 2.6.18.

On commence d’abord par installer kvm et son module kernel, sous debian, pour les autres je vous laisse chercher :

1
2
3
4
 # apt-get install kvm
 # module-assistant
 # modprobe kvm
 # modprobe kvm-intel ( ou kvm-amd )

N’oubliez pas de vérifier que votre processeur est compatible avec la virtualisation, et que cette option est activée dans le BIOS :) Il devient alors assez simple de créer une machine virtuelle. On créer tout d’abord le fichier qui va la contenir :

1
 $ kvm-img create file.qcow2 -f qcow2 5G

Ceci créera une image de 5 gigas. Vous souhaitez alors installer une debian (par exemple) sur ce disque virtuel, il suffira de donner en paramètre l’image iso du CD de cette façon :

1
2
$ kvm -m 512 -cdrom debian-40r3-i386-businesscard.iso \
-boot d -hda file.qcow2

Vous procédez alors à une installation classique d’une debian :)

Tout ça est bien joli, ou presque, mais vous ne pouvez pas accéder à votre machine virtuelle depuis le réseau, et inversement, ce qui n’est pas réellement pratique si vous souhaitez vous servir de votre machine virtuelle comme serveur.

En supposant qu’il y ait un serveur dhcp sur le réseau, nous allons configurer votre machine en tant que bridge, pour qu’elle puisse faire circuler le réseau vers les VMs.

1
# apt-get install bridge-utils uml-utilities

Il vous faut alors modifier votre configuration réseau dans /etc/network/interfaces:

1
2
auto lo eth0
iface lo inet loopback

commentez cette ligne:

1
2
3
4
5
6
7
8
9
10
11
12
#iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
</code
ATTENTION: vos VMs vont communiquer sur le réseau physique avec une adresse MAC virtuelle ! Celà peut ne pas fonctionner si vos switchs restreignent les adresses MAC.

On relance ensuite le réseau de cette façon :
<code>
/etc/init.d/networking restart

Si plus rien ne marche, c’est que vous devez adapter le fichier interfaces en fonction de votre réseau :)

Nous allons ensuite configurer le script de démarrage de kvm, de façon à ce qu’il associe le tunnel que nous allons créer en le lançant, avec le bridge, pour celà il faut juste modifier le fichier /etc/kvm/kvm-ifup:

1
2
3
4
5
6
7
    #!/bin/sh
   
    switch=$(ip route ls | awk '/^default / { for(i=0;i&lt;NF;i++) { if ($(i) == "dev") print $(i+1) }}')
   
    sudo /sbin/ifconfig $1 0.0.0.0 up
    sudo /usr/sbin/brctl addif ${switch} $1
    exit 0

vous pouvez ensuite lancer votre VM de cette façon :

1
2
    kvm -m 512  -net nic,vlan=0 \
    -net tap,vlan=0,ifname=`sudo tunctl -b -u $USER` file.qcow2

Lorsque vous l’aurez quitté, je vous conseille de supprimer les interfaces tap que tuncl a créé, à coup de :

1
    $ sudo tunectl -d tap0

Installation d’OpenWRT sur un ASUS WL-500GP

J’ai acquis récemment un routeur wifi ASUS WL-500GP, tout geek que je suis, je me suis empressé de le passer sous OpenWRT. Voici donc la procédure que j’ai suivi ! Inspiré notamment de la documentation officielle d’OpenWRT.

Installation par TFTP

  • Téléchargez le firmware pour Broadcom BCM947XX, pour ma part j’ai choisi un firmware xwrt afin de ne pas avoir à installer l’interface de gestion web
  • Configurez votre carte réseau en 192.168.1.2 netmask 255.255.255.0 et branchez le sur une des prises LAN
  • Retirez le cordon d’alimentation
  • Restez appuyé sur le bouton noir “Restore”
  • Remettre le cordon d’alimentation
  • Attendre que la LED POWER clignote pour pouvoir arrêter d’appuyez , vous êtes alors en “diag mode”
  • On upload alors le firmware par TFTP
    1
    2
    3
    4
    5
    6
    7
    #tftp 192.168.1.1
    binary
    rexmt 1
    timeout 60
    trace
    Packet tracing on.
    tftp&gt; put openwrt-xxx-x.x-xxx.bin
  • Lorsque le transfert est terminé on attend 6 minutes (je ne sais pas vraiment à quoi ça sert mais il parait que si on attends pas assez on casse le routeur)
  • On peut alors débrancher/rebrancher le routeur pour le rebooter (celui ci ne reboot pas automatiquement après changement de firmware)
  • On accède alors au routeur par telnet, ssh, ou par l’interface web selon le firmware.
  • On active ensuite les 32MB de RAM sous telnet ou ssh (uniquement sur les versions PREMIUM, sinon celà casse votre routeur)
    1
    2
    3
    4
    nvram set sdram_init=0x0009
    nvram set sdram_ncdl=0x208
    nvram commit
    reboot

La machine

1
2
3
4
5
6
7
8
9
10
11
12
root@OpenWrt:~$ cat /proc/cpuinfo
system type             : Broadcom BCM947XX
processor               : 0
cpu model               : BCM3302 V0.6
BogoMIPS                : 263.78
wait instruction        : no
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : no
hardware watchpoint     : no
VCED exceptions         : not available
VCEI exceptions         : not available
1
2
3
root@OpenWrt:~$ cat /proc/meminfo
total:    used:    free:  shared: buffers:  cached:
Mem:  31248384 13135872 18112512        0  1323008  5079040

How-To Debian Sarge: Postfix + SASL + MySQL + PostfixAdmin + Courier + VirtualDomain

Le problème est le suivant, nous souhaitons héberger de nombreux domaines sur une machine que nous nommerons ici serveur.domaine.com, cette machine doit servir de serveur SMTP pour ces domaines, ainsi que de serveur IMAP, le tout administré à l’aide de PostfixAdmin. Cependant postfix doit être un minimum sécurisé : mots de passe md5 dans la bdd et chroot.

Mise en place de MySQL

Nous allons d’abord installer les bases MySQL qui nous permettrons de stocker les comptes utilisateurs et les domaines ! Pour celà il suffit de suivre l’installation de postfixadmin, téléchargeons donc les sources de postfixadmin.

1
2
3
4
cd /var/www/
tar -zxvf postfixadmin-2.1.0.tgz
cd postfixadmin-2.1.0
mysql -u root -p &lt; DATABASE_MYSQL.TXT

Voilà à présent vous avez installé la base de donnée MySQL postfix, à savoir que l’utilisateur postfix aura comme mot de passe postfix, n’oubliez pas de le changer par la suite ! Vous pouvez également installer cette base sur un serveur MySQL distant ! Cependant pour des questions de sécurité, il sera judicieux d’utiliser un socket unix en local.

Installation de postfixadmin

On édite alors le fichier de configuration de postfixadmin :

1
mv config.inc.php.sample config.inc.php

editor config.inc.phpOn modifie alors les variables pour le serveur local. Sans oublier :

1
2
3
$CONF['encrypt'] = 'md5crypt';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'YES';

Se référer ensuite au fichier INSTALL.TXT !

On modifiera aussi le fichier /var/www/postfixadmin/admin/.htaccess

1
2
3
4
AuthUserFile /var/www/postfixadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic

require valid-userPuis on redéfinit le mot de passe à l’aide de la commande

1
# htpasswd -b /var/www/postfixadmin/admin/.htpasswd admin motdepasse

Vérifiez que le fichier .htaccess est interprété ! Si ce n’est pas le cas, vérifiez la variable AllowOverride dans votre configuration apache !

Installation et configuration de postfix

On install postfix et son extension postfix-mysql à l’aide d’un

1
#apt-get install postfix postfix-mysql

On indiquera lors de la configuration automatique, une configuration “Site Internet”.

On crée d’abord le dossier où seront stocké les maildirs :

1
2
3
# mkdir /var/mail/virtual
# chown -R 1001:1001 /var/mail/virtual
# chmod -R 771 /var/mail/virtual

On modifie ensuite la configuration de postfix en ajoutant ceci au /etc/postfix/main.cf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:1001
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1001
virtual_transport = virtual
virtual_uid_maps = static:1001
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes

On crée ensuite le dossier dans lequel sera stocké les maps :

1
2
# mkdir /etc/postfix/mysql/
# cd /etc/postfix/mysql/

et on crée ensuite les fichiers :

1
mysql_virtual_alias_maps.cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = alias
select_field = goto
where_field = address

mysql_virtual_domains_maps.cf

user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = domain
where_field = domain
#additional_conditions = and backupmx = '0' and active = '1'

mysql_virtual_mailbox_maps.cf

user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = '1'

mysql_virtual_mailbox_limit_maps.cf
1
2
3
4
5
6
7
8
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = quota
where_field = username
#additional_conditions = and active = '1'

Les valeurs de l’hosts ont été mises à 127.0.0.1 et non pas à localhost pour contrer un problème dû au chroot !

Par ailleurs, il faut modifier les droits d’accés de l’utilisateur postfix pour ne pas avoir d’erreur !

1
2
mysql -u root -p
GRANT SELECT , INSERT , UPDATE , DELETE ON `postfix` . * TO 'postfix'@'%';
1
2
# chmod -R 755 mysql/
# chown -R root:root mysql/
1
 
1
# /etc/init.d/postfix restart

On devrait à partir de là obtenir un postfix qui fonctionne !

Pour tester : On crée un utilisateur avec postfixadmin, puis on crée une boite mail. Si tout se passe bien, la boite est crée dans /var/mail/virtual … sinon on observe les logs dans /var/log/mail.log

A partir de là nous avons un postfix configuré pour recevoir les mails fonctionnel

Installation de Courier-IMAP Courier-POP !

1
apt-get install courier-authmysql courier-imap courier-pop courier-authdaemon

Nous allons maintenant configurer courier pour l’authentification avec la base MySQL de postfix !

On modifie pour celà le fichier /etc/courier/authdaemonrc

1
authmodulelist="authmysql"

Puis on édite la configuration de l’identification MySQL :

1
2
3
4
vim /etc/courier/authmysqlrc
MYSQL_SERVER            127.0.0.1
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          postfix
1
2
3
4
5
6
7
8
9
MYSQL_OPT               0

MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password

MYSQL_UID_FIELD         '1001'
MYSQL_GID_FIELD         '1001'
MYSQL_LOGIN_FIELD       username
1
2
3
MYSQL_HOME_FIELD        '/var/mail/virtual/'
MYSQL_NAME_FIEL         name
MYSQL_MAILDIR_FIELD     maildir

Attention: N’utilisez que des tabulations, les espaces provoquent des erreurs d’identification ! cf /var/log/mail.log

on lance ensuite les services désirés :

1
2
3
/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-pop restart

On teste ensuite la récupération des mails, en principe, ça marche.

Authentification SASL SMTP

Il existe plusieurs méthodes d’identification SASL avec postfix, mais notre problème est que nous voulons utiliser les mots de passe cryptés dans la base de donnée, et que nous ne voulons pas patché les packages par soucis de maintenance.

La meilleure solution que j’ai trouvé, est d’utiliser le daemon d’authentification de courier !

Pour celà on procéde d’abord à l’installation de SASL2

1
#apt-get install postfix-tls  sasl2-bin libsasl2 libsasl2-modules

On doit ensuite permettre à postfix de voir le socket du daemon authdaemond, celui-ci étant dans un chroot, on va lier le socket dans le chroot

1
2
# mkdir -p /var/spool/postfix/var/run/courier/authdaemon/
# ln /var/run/courier/authdaemon/socket /var/spool/postfix/var/run/courier/authdaemon/socket

On crée ici un hard link du socket de authdaemon dans le chroot, cependant à chaque relance authdaemon il faudra refaire ce hard link, je vous recommande de modifier vos scripts d’init pour celà !

Maintenant on configure postfix pour l’authentification SASL, on crée d’abord un fichier /etc/postfix/sasl/smtpd.conf :

1
2
3
4
5
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/run/courier/authdaemon/socket
# ( en réalité /var/spool/postfix/var/run/courier/authdaemon/socket )

et on ajoute à /etc/postfix/main.cf :

1
2
3
4
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
1
/etc/init.d/postfix restart

Voilà, nous avons donc effectué une configuration rudimentaire, sachez que cette configuration n’est PAS SÉCURISÉE ! En effet, les mots de passes transitent en clair, et les restrictions laissent à désirer, dans un prochain article, je vous expliquerais comment améliorer tout ça !

N’oubliez pas de changer tous les mots de passe par défaut !