Contexte:
~~READMORE~~
Un peu d'aide pour installer postfix
: http://www.thierry-jaouen.fr/dokuwiki/doku.php?id=serveur_postfix2
roundcube
s'appuie sur le protocol IMAP
pour interagir avec postfix
.
Il convient d'installer apache et php:
# aptitude update # aptitude install apache2-mpm-prefork libapache2-mod-php5
https
est fortement recommandé avec un webmail
.
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).
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)
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.
Je n'ai pas trouvé une methode simple adapté a la conf de mon postfix (qui est rudimentaire…)