Table des matières

Roundcube

Contexte:

~~READMORE~~

pré-requis

postfix

Un peu d'aide pour installer postfix : http://www.thierry-jaouen.fr/dokuwiki/doku.php?id=serveur_postfix2

imap

roundcube s'appuie sur le protocol IMAP pour interagir avec postfix.

apache2 et php

Il convient d'installer apache et php:

# aptitude update
# aptitude install apache2-mpm-prefork libapache2-mod-php5

https

https est fortement recommandé avec un webmail.

backports

Pour pouvoir installer des paquets ici de “backports” .

Dans /etc/apt/sources.list.d/backports.list ajouter:

deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

Mise a jour:

# aptitude update

Verifions les versions proposés:

# aptitude versions roundcube
p   0.3.1-6                                                              stable                                           500 
p   0.7.1-1~bpo60+1                                                      squeeze-backports                                100 

Installer “roundcube” a partir du “backports”.

:!: UPDATE : sqlite est obsolete avec roundcube .
Choisissez un autre système de base de données (MySQL par exemple)
# aptitude -t squeeze-backports install roundcube roundcube-sqlite

L'installation me pose des questions: J'ai choisit d'utiliser “dbconfig” et “sqlite” (c'est un petit webmail et sqlite est puissant).

1er demarrage

:!: https est fortement recommandé et ne sera pas expliqué ici.

Aprés l'installation, on remarque un fichier de conf “apache” pour roundcube là:

/etc/apache2/conf.d/roundcube

Comme le serveur web ne servira qu'a roundcube, voici ma conf:

D'abord je vire la conf de defaut:

# a2dissite default

Puis je crée un fichier 200-webmail dans /etc/apache2/sites-available que je compose comme suit:

<VirtualHost *:80> 

  ServerName webmail.eez.fr 
  ServerAlias webmail mail.local.eez.fr webmail.local.eez.fr webmail.tjaouen.fr
  ServerAdmin webmaster@eez.fr 

  DocumentRoot /var/lib/roundcube 

  <Directory />
      AllowOverride None 
      Order allow,deny 
      Deny from all 
  </Directory>

      ErrorLog ${APACHE_LOG_DIR}/error.log

      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn

      CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

J'active le nouveau “site”:

# a2ensite 200-webmail

Je recharge:

# apache2ctl graceful

Et voila:

Mais il faut un peu personnaliser la conf avant de poursuivre. Par exemple, dans /etc/roundcube/main.inc.php

(Extrait):

$rcmail_config['log_logins'] = true;
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['use_https'] = true;                         // parce que c'est derriere un proxy https
$rcmail_config['des_key'] = 'YvdHSJh+F0nFtPZFcnGArQ+d';     // dd if=/dev/urandom bs=512 count=1 2>/dev/null | base64 | cut -c 1-24 | head -1
$rcmail_config['mail_domain'] = '%d';
$rcmail_config['include_host_config'] = array(
  'webmail.eez.fr' => 'webmail.eez.fr_config.inc.php',
  'webmail.tjaouen.fr' => 'webmail.tjaouen.fr_config.inc.php'
);

Les conf par domaines sont dans: /var/lib/roundcube/config/

Bref: https://webmail.tjaouen.fr

(Le proxy https ne sera pas expliqué ici)

plugins

password

On va utilise “poppassd” pour changer les mots de passe des comptes mails.

# aptitude install poppassd

Verifier qu'il est demarré via inetd.

Malgré un firewall, on limite “tcpd” (le wrapper de poppassd via inetd), a ne répondre qu'en local…
Donc dans /etc/hosts.deny :

...
# TJ ----------
# pour interdire les connexions non local
poppassd: localhost: allow
poppassd: ALL: deny
# -------------  

On a besoin de l'utilitaire svn :

# aptitude install subversion

Installer le plugins dans le rep:

# cd /usr/share/roundcube/plugins
# svn co https://svn.roundcube.net/trunk/roundcubemail/plugins/password

Un sous-répertoire password est nourrit.

Je ne sais trop pourquoi, il faut faire ça aussi:

# ln -s  /usr/share/roundcube/plugins/password /var/lib/roundcube/plugins/

Pour le plugin en particulier:

# cd /usr/share/roundcube/plugins/password
# cp -p config.inc.php.dist config.inc.php

Editer config.inc.php pour avoir:

...
// TJ ----------------
//$rcmail_config['password_driver'] = 'sql';
$rcmail_config['password_driver'] = 'poppassd';
// -------------------
...

Et enfin, dans la conf de roundcube: /etc/roundcube/main.inc.php

...
// List of active plugins (in plugins/ directory)
// TJ ---------------
//$rcmail_config['plugins'] = array();
$rcmail_config['plugins'] = array('password');
...

Et voila. On peut changer de mot de passe dans les préférences.

Mais j'ajoute quelques restrictions, afin de ne pas mettre n'importe quelle mot de passe !!!!!

On va encore renforcer la sécurité:

Installer “pam_cracklib” :

# aptitude install libpam-cracklib

Dans /etc/pam.d/poppassd j'ajoute:

# TJ ------------
auth       required     pam_listfile.so onerr=fail item=user sense=deny file=/etc/poppassd-pam-user.deny
auth       required     pam_listfile.so onerr=fail item=group sense=allow file=/etc/poppassd-pam-group.allow
password   required     pam_cracklib.so retry=1 minlen=7 difok=3 difignore=5 dcredit=0 ucredit=0 lcredit=0 ocredit=0
# ---------------
include common-auth
@include common-password

Sans oublier:

… et d'avoir 2 fichiers comme cela:

/etc/poppassd-pam-user.deny

Avec dedans:

administrateur
president_de_la_republique

… qui sont des comptes qui ne pourront pas changé de mot de passe.

… et aussi le fichier:

/etc/poppassd-pam-group.allow

Avec dedans:

users

… qui est le groupe autorisé a changé: tout les comptes mails sont dans le groupe “users”.

Voila. Un nouveau choix permet de changer le mot de passe de son compte mail, mais pas tous et le mot de passe ne peut pas être trop simple.

vacation

FIXME

Je n'ai pas trouvé une methode simple adapté a la conf de mon postfix (qui est rudimentaire…)