Pour une présentation de Roundcube, voir l'article Wikipédia ainsi que le site web : https://fr.wikipedia.org/wiki/Roundcube https://roundcube.net/about/#features Installation de Roundcube ========================= Pour son fonctionnement, Roundcube dépend de 4 services à installer préalablement. Il utilise également php et javascript. service SMTP : Postfix service POP/IMAP : Dovecot service HTTP : Apache service MYSQL : MariaDB Installation des dépendances : ------------------------------ # apt install apache2 libapache2-mod-php mariadb-server php7.0-curl php7.0-gd php7.0-mysql php7.0-cli php7.0-imap php7.0-intl php-imagick # apt install php7.0-ldap php7.0-apcu php7.0-xmlrpc php7.0-mbstring php7.0-xml php7.0-pdo php7.0-zip php7.0-iconv php7.0-fileinfo # apt install postfix postfix-mysql postfix-doc openssl dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd L'installateur pose quelques questions concernant Postfix : > Indiquer comme 'Nom de Courrier' : fij.name > Postfix sera utilisé selon une configuration de 'Site Internet'. Modifier le fichier de configuration principal de Postfix créé lors de son installation : ----------------------------------------------------------------------------------------- # nano /etc/postfix/main.cf Y commenter les paramètres TLS (pour l'instant) : lignes 25 à 29 Ajouter immédiatement après la ligne 38 (myorigin = /etc/mailname) : mydomain = fij.name Redémarrer Postfix : # service postfix restart Créer le dossier qui accueillera Roundcube et télécharger la dernière version : ------------------------------------------------------------------------------- # mkdir /srv/http/ # cd /srv/ # wget https://github.com/roundcube/roundcubemail/releases/download/1.3.4/roundcubemail-1.3.4-complete.tar.gz # tar xfz roundcubemail-1.3.4-complete.tar.gz # rm roundcubemail-1.3.4-complete.tar.gz # mv roundcubemail-1.3.4/ http/roundcube Définir l'utilisateur propriétaire (apache) et les permissions : # chown -R www-data:www-data /srv/http/roundcube # chmod 755 -R /srv/http/roundcube/ Modifier le fichier php.ini d'Apache : -------------------------------------- # nano /etc/php/7.0/apache2/php.ini Modifier la ligne 656 : post_max_size = 12M Modifier la ligne 809 : upload_max_filesize = 10M Modifier la ligne 924 : date.timezone = Europe/Brussels Sécuriser et définir le mot de passe 'root' de la base de données MariaDB : --------------------------------------------------------------------------- # mysql_secure_installation Créer la base de donnée, l'utilisateur et le mot de passe associés : -------------------------------------------------------------------- Se connecter au serveur de base de données MariaDB : # mysql -u root -p --> après avoir donné le mot de passe, à l'invite de commande mysql, coller chacune des lignes suivantes et appuyer sur 'Enter' : CREATE DATABASE roundcubemail; GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'postfo2018!'; flush privileges; quit Initialiser Roundcube et sa base de données : --------------------------------------------- # cp /srv/http/roundcube/config/config.inc.php.sample /srv/http/roundcube/config/config.inc.php # mysql -u root -p roundcubemail < /srv/http/roundcube/SQL/mysql.initial.sql Modifier quelques paramètres : # nano /srv/http/roundcube/config/config.inc.php modifier la ligne 28 : $config['db_dsnw'] = 'mysql://roundcube:postfo2018!@localhost/roundcubemail'; # nano /srv/http/roundcube/config/defaults.inc.php ligne 352 : $config['enable_installer'] = true; ligne 511 : $config['mail_domain'] = 'fij.name'; Ajouter une configuration pour Roundcube à Apache : --------------------------------------------------- # nano /etc/apache2/conf-available/roundcube.conf Y coller le contenu suivant : #################################################### Alias /roundcube /srv/http/roundcube Alias /webmail /srv/http/roundcube <Directory /srv/http/roundcube> Options +FollowSymLinks # AddDefaultCharset UTF-8 AddType text/x-component .htc <IfModule mod_php7.c> AddType application/x-httpd-php .php php_flag display_errors Off php_flag log_errors On # php_value error_log logs/errors php_value upload_max_filesize 10M php_value post_max_size 12M php_value memory_limit 64M php_flag zlib.output_compression Off php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off php_flag zend.ze1_compatibility_mode Off php_flag suhosin.session.encrypt Off #php_value session.cookie_path / php_flag session.auto_start Off php_value session.gc_maxlifetime 21600 php_value session.gc_divisor 500 php_value session.gc_probability 1 </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico # security rules: # - deny access to files not containing a dot or starting with a dot # in all locations except installer directory RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F] # - deny access to some locations RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F] # - deny access to some documentation files RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F] </IfModule> <IfModule mod_deflate.c> SetOutputFilter DEFLATE </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" </IfModule> FileETag MTime Size <IfModule mod_autoindex.c> Options -Indexes </ifModule> AllowOverride None Require all granted </Directory> <Directory /srv/http/roundcube/plugins/enigma/home> Options -FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /srv/http/roundcube/config> Options -FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /srv/http/roundcube/temp> Options -FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /srv/http/roundcube/logs> Options -FollowSymLinks AllowOverride None Require all denied </Directory> #################################################### Activer la configuration apache de Roundcube et redémarrer le service : ---------------------------------------------------------------------- # a2enconf roundcube # a2enmod rewrite # service apache2 restart Lancer un navigateur web et se rendre à la page : http://mail.fij.name/roundcube/installer/ Parcourir les 3 étapes de vérification de la configuration. Pour des raisons de sécurité, effacer le dossier /srv/http/roundcube/installer lorsque la configuration a été vérifiée. L'installation et la configuration de base sont maintenant terminées. Le service est joignable aux adresses http://mail.fij.name/webmail ou http://mail.fij.name/roundcube Afin d'utiliser le service, il faudra créer des utilisateurs. Il faudra également rendre le serveur mail disponible depuis Internet. Les utilisateurs du service mail sont, pour l'instant, de simples utilisateurs du système. Il aurait également été possible d'utiliser un back-end LDAP ou MYSQL pour gérer les utilisateurs. Un utilisateur système se crée facilement à l'aide de la commande interactive 'adduser' : # adduser postfo2018 (répondre aux différentes questions posées). Pour recevoir du mail depuis Internet, il va falloir forwarder les requêtes reçues sur le port 25 de l'interface WAN du routeur vers le port 25 de la machine 10.0.x.109. Cela se configure sur les routeurs. Il restera à crypter les échanges (Apache et Postfix) à l'aide de SSL et à protéger le réseau interne et les utilisateurs des Virus et du SPAM.