Installer une boîte à outils permanente comme un nul(l) 3/6

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é !

Ding dong. Bonjour, j'ai un recommandé pour vous.

Ding dong.
Bonjour, j’ai un recommandé pour vous.

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

Configuration de 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

Configuration de courier

Ne créez pas les répertoires nécessaires à l’administration Web : nous ne l’installerons pas.

Courier-SSL

Configuration de courier-SSL

A priori, ce n’est pas trop difficile ici. 🙂

Roundcube

Configuration de 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 !

Ecran de connexion à roundcube

Sobre mais efficace !

Connectons-nous…

Si (contrairement à moi) vous n'avez pas fait de faute de frappe lors de la création de vos fichiers, vous ne devriez avoir aucune erreur :-)

Si (contrairement à moi) vous n’avez pas fait de faute de frappe lors de la création de vos fichiers, vous ne devriez avoir aucune erreur 🙂

Nous pouvons maintenant essayer d’envoyer des mails.

C'est beau quand ça marche enfin !

C’est beau quand ça marche enfin !

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

À propos

Un informaticien, qui tente de faire comprendre au public que l'informatique n'est pas si compliquée, malgré des acronymes et autres termes obscurs pour faire croire que c'est difficile (et que c'est de votre faute si "ça ne marche pas")

Tagged with: , , , , , , , , , , , , , , , , , , , , , ,
Publié dans Informatique, Installations
8 comments on “Installer une boîte à outils permanente comme un nul(l) 3/6
  1. koloce dit :

    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.

    • mystcaster dit :

      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. 😉

  2. Krimo dit :

    Quel langage de programmation tu me conseilles pour débuter dans le vaste monde des hackers ?
    🙂

    • mystcaster dit :

      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.

  3. Krimo dit :

    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 ?

    • mystcaster dit :

      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.

  4. eric dit :

    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?

Répondre à mystcaster Annuler la réponse.

MystCaster
octobre 2013
L M M J V S D
 123456
78910111213
14151617181920
21222324252627
28293031  
Catégories
Archives