Après avoir acheté un serveur personnel, vous y avez installé un gestionnaire de sources, pour l’utiliser lors de la réalisation de vos projets personnels.
Nous verrons au cours de cet article comment installer un serveur de mail que toute votre famille et vos amis pourront utiliser, échappant ainsi un peu plus aux firmes sous la coupe des services secrets. (Gmail, Yahoo, etc.)
Nous installerons un serveur SMTP sécurisé, un serveur IMAP sécurisé, ainsi qu’une interface Web conviviale (Roundcube)… de quoi pouvoir commencer à communiquer sans être espionné !
Prérequis
Pour mener à bien les étapes décrites dans cet article, vous devez avoir :
- un serveur avec Debian installé et fonctionnel.
- une connexion Internet.
- les droits suffisants pour ouvrir des ports sur votre routeur ADSL (voir la documentation de votre boîtier ADSL)
L’installation décrite dans cette article est compatible avec les autres installations de la même série.
Introduction
De plus en plus de révélations sont faites à propos des atteintes à votre vie privée sur la toile. Les grandes firmes (Google, Yahoo, Facebook, etc.) collaborent avec les autorités et les services secrets en leur fournissant vos mails et autres données personnelles.
Il ne tient qu’à vous de faire cesser ces intrusions dans votre vie : gérez vous-même vos communications ! Internet a justement été conçu pour que tout un chacun puisse installer son serveur et publier les applications et les données qu’il souhaite. Installons donc notre propre serveur de mail !
Par souci de simplicité et de robustesse, j’ai choisi les serveurs SMTP et IMAP les plus utilisés sous Linux : postfix et courier.
Vous pouvez effectuer toutes les actions qui vont suivre en ligne de commandes, via SSH. Vous n’aurez plus besoin de clavier, souris ou écran pour votre serveur.
Installer les paquets nécessaires
L’installation d’une telle application demande tout un tas de paquets. Par contre, une fois ces paquets installés, tout n’est plus qu’une question de configuration :
sudo apt-get install mysql-client mysql-server postfix postfix-mysql courier-base courier-authdaemon courier-authlib-mysql courier-imap courier-imap-ssl courier-ssl amavisd-new spamassassin spamc clamav-base libclamav6 clamav-daemon clamav-freshclam postgrey libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin libpam-mysql roundcube roundcube-mysql roundcube-plugins
Pour faire court, voici à quoi correspond chaque lot de paquets :
- mysql-client mysql-server : Nous enregistrerons les mails et les utilisateurs dans une base de données MySQL
- postfix postfix-mysql : Notre serveur SMTP sera postfix, nous lui ajoutons bien entendu son module de connexion à MySQL
- courier-base courier-authdaemon courier-authlib-mysql courier-imap courier-imap-ssl courier-ssl : Notre serveur IMAP sera courier, nous lui ajoutons son module MySQL et ses modules SSL pour une connexion sécurisée
- amavisd-new : Permet une meilleure gestion des anti-spams et des anti-virus.
- spamassassin spamc : Un anti-spam très utilisé, spamassassin
- clamav-base libclamav6 clamav-daemon clamav-freshclam : Un antivirus, ClamAV
- postgrey : Un script pour bloquer pas mal de spams
- libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin libpam-mysql : De quoi sécuriser vos serveurs SMTP et IMAP
- roundcube roundcube-mysql roundcube-plugins : Notre client web
Lors de l’installation, des fenêtres de configuration vont s’ouvrir.
Mon serveur MySQL était déjà installé et configuré, suivez juste les indications, tout devrait bien se passer. 🙂
Postfix
Choisissez les options suivantes :
- Site Internet : votre serveur enverra directement les mails, sans passer par un relais.
- Nom de courrier : laissez le nom par défaut, vous pourrez de toute manière configurer des alias
Courier
Ne créez pas les répertoires nécessaires à l’administration Web : nous ne l’installerons pas.
Courier-SSL
A priori, ce n’est pas trop difficile ici. 🙂
Roundcube
Sélectionnez « Oui » pour configurer la base de données, puis MySQL comme moteur de base de données.
Saisissez ensuite le mot de passe du compte root sur MySQL, puis le mot de passe de la connexion pour roundcube.
Initialiser la base de données
Il faut maintenant initialiser la base de données qu’utilisera postfix. Connectons-nous à MySQL :
mysql -u root -p
Bien évidemment, saisissez le mot de passe administrateur que vous avez configuré durant l’installation de MySQL.
Créons ensuite la base de données maildb et donnons à un nouvel utilisateur mail les droits nécessaires sur cette base :
>> create database maildb; >> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON maildb.* TO 'mail'@'localhost' IDENTIFIED by '<MOT DE PASSE>'; >> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON maildb.* TO 'mail'@'%' IDENTIFIED by '<MOT DE PASSE>'; >> exit;
Vous devez bien sûr remplacer « <MOT DE PASSE> » par un mot de passe… que vous pouvez générer à l’aide de l’outil apg.
Connectons-nous maintenant sur la base de données maildb en tant que mail :
mysql -u mail -p maildb
Il nous faut maintenant créer les tables nécessaires :
CREATE TABLE `aliases` ( `pkid` smallint(3) NOT NULL auto_increment, `mail` varchar(120) NOT NULL default '', `destination` varchar(120) NOT NULL default '', `enabled` tinyint(1) NOT NULL default '1', PRIMARY KEY (`pkid`), UNIQUE KEY `mail` (`mail`) ); CREATE TABLE `domains` ( `pkid` smallint(6) NOT NULL auto_increment, `domain` varchar(120) NOT NULL default '', `transport` varchar(120) NOT NULL default 'virtual:', `enabled` tinyint(1) NOT NULL default '1', PRIMARY KEY (`pkid`) ); CREATE TABLE `users` ( `id` varchar(128) NOT NULL default '', `name` varchar(128) NOT NULL default '', `uid` smallint(5) unsigned NOT NULL default '5000', `gid` smallint(5) unsigned NOT NULL default '5000', `home` varchar(255) NOT NULL default '/var/spool/mail/virtual', `maildir` varchar(255) NOT NULL default 'Maildir/', `enabled` tinyint(3) unsigned NOT NULL default '1', `change_password` tinyint(3) unsigned NOT NULL default '1', `clear` varchar(128) NOT NULL default 'ChangeMe', `crypt` varchar(128) NOT NULL default 'sdtrusfX0Jj66', `quota` varchar(255) NOT NULL default '', `procmailrc` varchar(128) NOT NULL default '', `spamassassinrc` varchar(128) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) );
Je vous conseille de modifier la valeur par défaut de la colonne « crypt » dans la dernière table. Il doit s’agir d’une chaîne de caractères aléatoires.
On doit ensuite configurer le dossier contenant les boîtes mail virtuelles :
sudo mkdir /var/spool/mail/virtual sudo groupadd --system virtual -g 5000 sudo useradd --system virtual -u 5000 -g 5000 sudo chown -R virtual:virtual /var/spool/mail/virtual
Le dossier /var/spool/mail/virtual est celui que nous configurerons dans le fichier de paramétrage de postfix.
Le numéro de groupe et d’utilisateur (5000) correspond aussi à celui que nous renseignerons dans ce fichier.
Vous pouvez dès à présent insérer les domaines gérés par votre serveur de mail (ce qui suit l’arobase dans l’adresse mail) ….
INSERT INTO domains (domain) VALUES ('localhost'), ('localhost.localdomain'), ('<VOTRE NOM DE DOMAINE>');
… et ensuite initialiser les alias par défaut :
INSERT INTO aliases (mail,destination) VALUES ('postmaster@localhost','root@localhost'), ('sysadmin@localhost','root@localhost'), ('webmaster@localhost','root@localhost'), ('abuse@localhost','root@localhost'), ('root@localhost','<VOTRE UTILISATEUR>@localhost'), ('@localhost','root@localhost'), ('@localhost.localdomain','@localhost'), ('<VOTRE UTILISATEUR>@localhost','<VOTRE UTILISATEUR>@localhost');
Il est possible d’ajouter autant d’alias que vous voulez pour correspondre à votre configuration.
Vous devez maintenant créer un premier utilisateur à votre serveur de mails :
INSERT INTO users (id,name,maildir,crypt) VALUES ('<VOTRE UTILISATEUR>@localhost','<VOTRE UTILISATEUR>','<VOTRE UTILISATEUR>/',encrypt('<VOTRE MOT DE PASSE>') );
Chaque compte utilisateur devra avoir une entrée dans la table aliases du type ‘<nom d’utilisateur>@localhost’=>'<nom d’utilisateur>@localhost’.
Pour que l’utilisateur soit valable, vous devrez créer le dossier /var/spool/mail/virtual/<VOTRE UTILISATEUR>/ :
sudo su virtual mkdir /var/spool/mail/virtual/<VOTRE UTILISATEUR>/
Configurer postfix
Configuration principale
La configuration de postfix se fait principalement dans le fichier /etc/postfix/main.cf, alors ouvrons ce fichier.
Pour plus de clarté, nous n’utiliserons pas le fichier /etc/mailname, mais placerons toute la configuration dans le fichier /etc/postfix/main.cf :
# Configure ce qui se trouve après @ dans votre adresse mail myorigin = <VOTRE NOM DE DOMAINE> # La version de votre Linux est retirée de l'entête pour plus de sécurité smtp_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no readme_directory = no # Laissez vide le relais SMTP si vous voulez envoyer directement les mails. relayhost = inet_interfaces = all mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 # Nous utiliserons des domaines virtuels mydestination = local_recipient_maps = # Au bout de 4 heures, si le mail n'a pas pu être envoyé, on génère un message delay_warning_time = 4h # Le code d'erreur envoyé si on reçoit un mail pour un utilisateur inconnu unknown_local_recipient_reject_code = 450 # On tente d'envoyer les messages durant 7 jours si le serveur de destination ne peut pas être trouvé maximal_queue_lifetime = 7d # On tente à nouveau d'envoyer les messages en erreur toutes les 1000 à 8000 secondes minimal_backoff_time = 1000s maximal_backoff_time = 8000s # Lorsque quelqu'un se connecte à notre serveur, on attend au maximum 60 secondes sans recevoir de données smtp_helo_timeout = 60s # Pour éviter le spam, on refuse les messages destinés à plus de 16 personnes smtpd_recipient_limit = 16 # Après 3 erreurs sur un message, on s'arrête smtpd_soft_error_limit = 3 # Après 12 erreurs sur un message, on le bloque smtpd_hard_error_limit = 12 # On configure les restrictions pour se connecter au serveur smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit # On configure les restrictions pour les envois de mail smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit # On refuse les mails provenant de certain serveurs smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl # On refuse d'envoyer des mails qui s'apparentent à du spam, le service appelé sur le port 10023 est postgrey smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit smtpd_data_restrictions = reject_unauth_pipelining # On rend le message "helo" obligatoire smtpd_helo_required = yes # On retient les spammeurs quelques temps avant de leur envoyer une erreur smtpd_delay_reject = yes disable_vrfy_command = yes # Quelques autres configurations... alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Configure la boîte mail virtuelle virtual_mailbox_base = /var/spool/mail/virtual virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf # Configure le détenteur des boîtes mail virtuelles virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 # Le service de filtrage est géré par amavis content_filter = amavis:[127.0.0.1]:10024 # Active la sécurité gérée par SASL smtpd_sasl_auth_enable = yes # Contourne une erreur d'implémentation faite par cro$oft broken_sasl_auth_clients = yes # On refuse les utilisateurs qui ne sont pas authentifiés smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = # TLS parameters # smtp_use_tls = no smtp_tls_security_level = may # smtpd_use_tls=yes smtpd_tls_security_level = may # smtpd_tls_auth_only = no smtp_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtpd_tls_cert_file=/etc/ssl/certs/certificate.pem smtpd_tls_key_file=/etc/ssl/private/private-key.key # smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache # smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Nous devons ensuite configurer et initialiser un fichier d’alias :
sudo cp /etc/aliases /etc/postfix/aliases sudo postalias /etc/postfix/aliases
Configuration de la base de données
Il faut configurer les trois fichiers de paramétrage des boîtes mail virtuelles :
/etc/postfix/mysql_mailbox.cf :
user=mail password=<LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> dbname=maildb table=users select_field=maildir where_field=id hosts=127.0.0.1 additional_conditions = and enabled = 1
/etc/postfix/mysql_alias.cf :
user=mail password=<LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> dbname=maildb table=aliases select_field=destination where_field=mail hosts=127.0.0.1 additional_conditions = and enabled = 1
/etc/postfix/mysql_domains.cf :
user=mail password=<LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> dbname=maildb table=domains select_field=domain where_field=domain hosts=127.0.0.1 additional_conditions = and enabled = 1
Configuration des filtres
Postfix devra discuter avec amavis, il faut le paramétrer en ce sens. Ouvrons le fichier /etc/postfix/master.cf et ajoutons quelques services en fin de fichier :
amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Prenez garde à bien respecter les espaces au début des lignes qui commencent par « -o » !
Ajoutez aussi deux options pour le service de prise en charge des mails (« pickup ») :
pickup fifo n - - 60 1 pickup
-o content_filter=
-o receive_override_options=no_header_body_checks
Configuration de la sécurité
Nous devons tout d’abord autoriser postfix à accéder aux fichiers créés par sasl , puis créer un dossier nécessaire à cet outil :
sudo adduser postfix sasl sudo mkdir -p /var/spool/postfix/var/run/saslauthd
Il faut ensuite activer sasl dans le fichier /etc/default/saslauthd :
START=yes # Modifiez la ligne OPTIONS pour permettre à postfix de communiquer avec sasl OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"
Configurez postfix pour lui dire comment gérer les mails envoyés en mode sécurisé. Créez pour cela le fichier /etc/postfix/sasl/smtpd.conf :
pwcheck_method: saslauthd mech_list: plain login cram-md5 digest-md5 allow_plaintext: true auxprop_plugin: sql sql_engine: mysql sql_hostnames: 127.0.0.1 sql_user: mail sql_passwd: <LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> sql_database: maildb sql_select: select crypt from users where id='%u@%r' and enabled = 1
Nous devons maintenant indiquer au système d’authentification où trouver les noms d’utilisateurs et mots de passe en base de données. Cette configuration se trouve dans le fichier /etc/pam.d/smtp :
auth required pam_mysql.so user=mail passwd=<LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> host=127.0.0.1 db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1 account sufficient pam_mysql.so user=mail passwd=<LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> host=127.0.0.1 db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1
Pour sécuriser notre connexion, il faut générer une clef privée et un certificat aux emplacements que nous avons configurés dans le fichier main.cf :
sudo openssl req -new -outform PEM -out /etc/ssl/certs/certificate.pem -newkey rsa:2048 -nodes -keyout /etc/ssl/private/private-key.key -keyform PEM -days 999 -x509
Il reste à activer le chiffrement des communications dans le fichier /etc/postfix/master.cf :
submission inet n - - - - smtpd -o smtpd_tls_auth_only=yes # -o syslog_name=postfix/submission # -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject -o smtpd_sasl_security_options=noanonymous,noplaintext -o smtpd_sasl_tls_security_options=noanonymous # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes # -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sasl_security_options=noanonymous,noplaintext -o smtpd_sasl_tls_security_options=noanonymous # -o milter_macro_daemon_name=ORIGINATING
Vous devriez trouver les services « submission » et « smtps » commentés dans le fichier.
Redémarer les services
Redémarrons postfix et saslauthd pour prendre en compte la nouvelle configuration :
sudo service saslauthd restart sudo service postfix restart
Configurer le serveur IMAP
Configuration principale
Tout d’abord, configurons courier pour utiliser notre table d’utilisateurs sur MySQL. Cette configuration se fait dans le fichier /etc/courier/authdaemonrc :
authmodulelist="authmysql"
Nous devons ensuite configurer la connexion à la base de données dans le fichier /etc/courier/authmysqlrc :
MYSQL_SERVER localhost MYSQL_USERNAME mail MYSQL_PASSWORD <LE MOT DE PASSE DE L'UTILISATEUR MAIL SUR MYSQL> MYSQL_DATABASE maildb MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD crypt MYSQL_MAILDIR_FIELD concat(home,'/',maildir) MYSQL_WHERE_CLAUSE enabled=1
Conservez les autres données telles quelles.
Dans le fichier /etc/courier/imapd, activons la ligne correspondant à l’authentification IMAP :
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
Configuration de la sécurité
Créons d’abord une nouvelle clef privée :
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/courier/imapd.pem -out imapd.pem -nodes -days 999
Puis activons la sécurité du serveur IMAP, et renseignons notre certificat dans le fichier /etc/courier/imapd-ssl :
TLS_CERTFILE=/etc/courier/imapd.pem IMAP_TLS_REQUIRED=1
Redémarrer les services
Courier doit être redémarré pour prendre en compte les modifications :
sudo service courier-authdaemon restart sudo service courier-imap restart sudo service courier-imap-ssl restart
Configurer amavis
La plupart des fichiers de configurations sont acceptables par défaut. Vous pouvez les trouver dans le dossier /etc/amavis/conf.d.
Cependant, certains doivent être modifiés :
/etc/amavis/conf.d/50-user, ajoutez les lignes suivantes au milieu :
@local_domains_acl = qw(.); $log_level = 1; $syslog_priority = 'info'; # $sa_tag_level_deflt = 2.0; # ajoute une entête d'information aux spams si le niveau est supérieur ou égal à 2 # $sa_tag2_level_deflt = 6.31; # ajoute une entête 'spam detected' si le niveau est supérieur ou égal à 6.31 $sa_kill_level_deflt = 8.0; # lance un processus d'évitement des spams # $sa_dsn_cutoff_level = 10; # A partir du niveau 10, le serveur n'envoie pas de confirmation de réception à l'expéditeur du spam # $final_spam_destiny = D_PASS; # $final_spam_destiny = D_REJECT; # par défaut # $final_spam_destiny = D_BOUNCE; # par défaut sur Debian $final_spam_destiny = D_DISCARD; # par défaut sur Ubuntu, configuration recommandée : supprime le spam au final
Activons ensuite la vérification par l’anti-virus et l’anti-spam dans le fichier /etc/amavis/conf.d/15-content_filter_mode.
Configurer clamAV
L’anti-virus doit être autorisé à scanner les dossiers gérés par amavis :
sudo adduser clamav amavis
Il est également possible de configurer d’autres options à l’aide des utilitaires fournis par le gestionnaire de paquets :
sudo dpkg-reconfigure clamav-freshclam sudo dpkg-reconfigure clamav-base
Je conserverai pour ma part la configuration de base.
Configurer SpamAssassin
La configuration par défaut de cet outil est très adaptée et l’algorithme d’apprentissage est activé.
Il suffit de configurer le démarrage de spamassassin au lancement du système dans le fichier /etc/default/spamassassin :
ENABLED=1
Configurer Postgrey
Ne vous faites pas avoir, il ne s’agit pas du moteur de base de données PostgreSQL 😉
Postgrey est un petit script s’occupant de votre politique de gestion du spam.
Le port d’écoute du service (10023, nous l’avons configuré dans postfix) peut se personnaliser dans le fichier /etc/default/postgrey. Si vous le modifiez, pensez bien à répercuter vos changements dans postfix !
Vous pouvez également configurer une « liste blanche » d’expéditeurs, qui ne passeront pas par le filtre anti-spam, dans le fichier /etc/postgrey.
Configurer roundcube
Il faut maintenant paramétrer vos serveurs SMTP et IMAP dans le fichier de configuration principal de roundcube, /etc/roundcube/main.inc.php :
$rcmail_config['default_host'] = 'ssl://localhost:993'; // Le nom de votre serveur IMAP $rcmail_config['smtp_server'] = 'ssl://localhost'; // Le nom de votre serveur SMTP $rcmail_config['smtp_port'] = 465; // Le numéro de port correspondant à SMTPS $rcmail_config['smtp_user'] = '%u'; // Le nom d'utilisateur sera utilisé pour s'identifier au serveur SMTP $rcmail_config['smtp_pass'] = '%p'; $rcmail_config['smtp_helo_host'] = '<VOTRE NOM DE DOMAINE>'; $rcmail_config['create_default_folders'] = true;
Vous pouvez modifier d’autres propriétés utiles dans ce fichier, les commentaires (en anglais) sont explicites.
Corrigeons quelques emplacements de fichiers par défaut pour configurer apache :
sudo cp /etc/roundcube/apache.conf /etc/apache2/sites-available/roundcube sudo rm /etc/apache2/conf.d/roundcube
Puis éditons le fichier /etc/apache2/sites-available/roundcube pour y ajouter les lignes suivantes :
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/lib/roundcube ErrorLog /var/log/apache2/roundcube-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/roundcube-access.log combined <IfModule mod_xsendfile.c> XSendFile on XSendFilePath /var/www/roundcube/tarballs </IfModule> </VirtualHost>
Activons maintenant le port 8080 dans le fichier /etc/apache2/ports.conf :
NameVirtualHost *:8080 Listen 8080
Enfin, activons le site roundcube, avant de redémarrer le serveur apache :
sudo a2ensite roundcube sudo service apache2 restart
Le client web est (enfin) accessible !
Connectons-nous…
Nous pouvons maintenant essayer d’envoyer des mails.
Note : Si, comme moi, vous avez des erreurs lors de l’envoi du mail, vous pouvez trouver les logs de postfix dans le fichier /var/logs/syslog.
Lors de vos tests, vous remarquerez que roundcube vérifie la syntaxe des adresses emails que vous saisissez. Vous devez avoir un vrai nom de domaine pour l’utiliser. Roundcube ne fonctionnera pas avec des adresses emails de type bla@localhost ou bla@homeserver.
Conclusion
La longueur de ce pas-à-pas est à la hauteur de la qualité de votre serveur de mails. Vous pouvez ignorer un certain nombre d’étapes, pour vous contenter d’un simple serveur SMTP non sécurisé avec un serveur IMAP non sécurisé, mais alors vous ne serez pas à l’abri des virus ou des spams.
Si vous configurez bien votre boîtier ADSL et votre nom de domaine, vous ne devriez pas avoir de difficulté pour utiliser votre nouvelle boite mail personnelle ! 😉
Je vous conseille vivement de disposer d’un nom de domaine avant de vous lancer dans l’installation de votre serveur de mails.
Parce que je n’ai pas la science infuse : sources
- http://roundcube.net/
- http://www.postfix.org/
- http://flurdy.com/docs/postfix/ (La principale source pour cet article)
- http://petole.demisel.net/~niko/debian/squeeze/dovecot/ (Configure une gestion de quotas pour votre serveur mail, je n’ai pas abordé ce point dans mon article)
- http://www.alsacreations.com/tuto/lire/614-Serveur-mail-Postfix.html (Pour un simple serveur mail, rapidement fonctionnel)
- http://www.isalo.org/wiki.debian-fr/Installation_sur_une_Squeeze_d’un_serveur_mail_complet_(Postfix_Postfixadmin_Dovecot_Mysql_Amavisd-new_Spamassassin_Clamav_Postgrey_Squirrelmail_Roundcube)_avec_gestion_des_filtres_Imap_et_des_quotas
- http://maniatux.fr/index.php?article108/faire-son-serveur-mail-tres-rapidement
- http://blog.demees.net/?p=7
- http://blog.ntrippy.net/2008/05/warning-sasl-authentication-failure.html
- http://postfix.traduc.org/index.php/postconf.5.html#mynetworks
- http://postfix.1071664.n5.nabble.com/554-5-7-1-Relay-access-denied-td58367.html
- http://www.ockers.net/index.php/blog/41-postfix-554-5-7-1-error-relay-access-denied-from-localhost
- http://danielpocock.com/linux-doc/mbox-maildir.html
- http://trac.roundcube.net/wiki/Howto_Install
- http://viewsby.wordpress.com/2013/04/18/best-open-source-webmail-clients/
Je pense que tu vas me détester. As tu déjà entendu parler de cozy cloud? Le projet des mails n’est pas encore terminé, on ne peut que les lire. Cependant pour un cloud personnel, il est très pratique: Rss marques pages, calendrier, IRC, Notes, Photos, Todos, Musiques.
Hahaha, non je ne vais pas te détester. Je vois juste que je ne suis pas tout à fait au point sur la veille technologique en ce qui concerne les nouveaux outils opensource >_<
Je n’en avais pas entendu parler… Par contre, après cette série de 6 articles, je pense que j’aurai écrit assez sur des sujets qui ne sont pas liés directement au piratage.
Je garde Cozy cloud sous le coude et le ressortirai peut être lorsque le projet sera plus mature. 😉
Quel langage de programmation tu me conseilles pour débuter dans le vaste monde des hackers ?
🙂
Bonjour,
Aucun, l’important est ton expertise en algorithmie. Utilise le langage que tu maîtrises le mieux, pousse le dans ses retranchements et développe des algorithmes de plus en plus compliqués.
Si tu débutes, le python, le PHP, le Java ou le C++ sont de bonnes entrées en matière. Chacun a ses qualités et ses défauts, chacun est adapté à une situation particulière.
Merci pour ta réponse mais tu ne me conseilles que des langages orientés objet. Tu penses que c’est mieux de faire de la POO pour du hacking ?
Tu n’es pas forcé de faire de la programmation orientée objet en PHP ou en C++.
Je trouve simplement que c’est des langages relativement simple pour apprendre à développer.
Aucun langage et aucune méthode est « mieux » pour pirater. La bonne méthode est la méthode qui fonctionne (quitte à faire de l’assembleur).
Utilise les outils et les méthodes que tu sais utiliser. Il faut bien commencer quelque part.
Bonjour,
j’ai suivi ce tuto à la lettre et j’ai un message d’erreur:
imapd-ssl: couriertls: /etc/courier/imapd.pem: error:0906D06C:PEM routines:PEM_read_bio:no start line
Pouvez vous m’aider SVP?
La réponse ici : http://www.howtoforge.com/forums/showthread.php?t=59653&page=2
Je rappelle aussi à tous, ne suivez pas de tutos à la lettre, prenez le temps de comprendre ce que vous faites !