Comment créer des alias d'e-mails anonymes avec SimpleLogin

Apprenez comment installer et utiliser SimpleLogin, un serveur d'alias email léger et anonyme, sur Ubuntu pour protéger votre vie privée en ligne.

SimpleLogin est un serveur d'alias léger et facile à utiliser qui vous permet de créer des identités de messagerie permanentes et anonymes sans créer de nouvelles boîtes de réception. Cet article vous montrera comment installer un serveur SimpleLogin sur Ubuntu et créer des alias de messagerie anonymes à utiliser en ligne.

Préparation du système

Hypothèse : Cet article suppose que vous installez SimpleLogin sur un VPS avec au moins 2 Go de RAM. Il suppose également que vous disposez d'un nom de domaine actif pour cela auprès d'un registraire DNS.

Pour commencer, importez la clé de signature du projet Docker sur votre machine :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

Créez un fichier de dépôt pour le projet Docker :

sudo nano /etc/apt/sources.list.d/docker.list

Écrivez la ligne de code suivante à l'intérieur du fichier de dépôt :

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Actualisez les dépôts de votre machine en exécutant la commande suivante :

sudo apt update && sudo apt upgrade

Installation des dépendances pour SimpleLogin

Installez à la fois Docker et les dépendances de SimpleLogin sur votre système :

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx dnsutils postfix postfix-pgsql

Sélectionnez Site Internet lorsque l'assistant d'installation de Postfix vous demande le type de configuration de votre serveur de messagerie.

Appuyez sur Enter pour confirmer la valeur par défaut "Nom de messagerie du système".

Assurez-vous que le package snap "core" s'exécute sur votre machine :

sudo snap install core

Installez le package snap certbot de l'Electronic Frontier Foundation (EFF) :

sudo snap install certbot --classic

Vérifiez que le pare-feu de votre système ne bloque pas les ports de SimpleLogin :

sudo ufw allow 25,80,443/tcp

Préparation des enregistrements DNS

Rendez-vous chez votre registraire de domaine et créez un nouvel enregistrement "A" pointant vers l'adresse IPv4 de votre machine. Définissez la valeur du nom d'hôte comme un sous-domaine que vous souhaitez pour votre instance SimpleLogin.

Ajoutez un enregistrement "MX" pour votre domaine racine avec un nom d'hôte cible défini sur votre sous-domaine SimpleLogin.

Créez un enregistrement "TXT" pour votre domaine racine et définissez sa valeur comme suit :

v=spf1 mx ~all

Créez un autre enregistrement "TXT" pour le sous-domaine "_dmarc", puis définissez sa valeur comme suit :

v=DMARC1; p=quarantine; adkim=r; aspf=r

Ouvrez une session de terminal, puis générez une paire de clés DKIM à l'aide d'OpenSSL :

openssl genrsa -out dkim.key -traditional 1024 openssl rsa -in dkim.key -pubout -out dkim.pub.key

Exécutez la commande suivante, puis copiez son résultat dans votre presse-papiers système. Il s'agit d'un script sed que les développeurs utilisent pour extraire la clé publique DKIM de son fichier de clé :

sed "s/-----BEGIN PUBLIC KEY-----/v=DKIM1; k=rsa; p=/" $(pwd)/dkim.pub.key | sed "s/-----END PUBLIC KEY-----//" | tr -d '\n' | sed -e '$a\'

Créez un enregistrement "TXT" pour le sous-domaine "dkim._domainkey", puis définissez la sortie de la commande précédente comme valeur.

Bon à savoir : en savoir plus sur DNS et les serveurs de noms en utilisant la commande dig sous Linux.

Création de la base de données Postgres

Outre l'utilisation d'enregistrements DNS spéciaux, SimpleLogin utilise également PostgresDB pour gérer les alias de messagerie. Pour configurer cela, créez d'abord les sous-répertoires pour le conteneur Docker SimpleLogin :

mkdir -p ~/sl/{pgp,db,upload}

Démarrer un réseau virtuel en utilisant Docker sur votre serveur :

sudo docker network create -d bridge \ --subnet=10.0.0.0/24 \ --gateway=10.0.0.1 \ sl-network

Collez la commande suivante dans une nouvelle session de terminal :

sudo docker run -d \ --name sl-db \ -e POSTGRES_PASSWORD=VOTRE-MOT-DE-PASSE-ALEATOIRE-Ici \ -e POSTGRES_USER=postgres \ -e POSTGRES_DB=simplelogin \ -p 127.0.0.1:5432:5432 \ -v $(pwd)/sl/db:/var/lib/postgresql/data \ --restart always \ --network="sl-network" \ postgres:12.1

Modifiez la valeur de la variable "POSTGRES_PASSWORD" avec une chaîne de texte longue et aléatoire.

Remarque : Vous pouvez générer cette chaîne aléatoire en exécutant : cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1.

Exécutez le

Modifiez la commande Docker pour démarrer votre base de données.

Configuration de Postfix pour SimpleLogin

Commencez par supprimer le fichier de configuration par défaut de Postfix, puis créez un fichier vide avec le même nom à l'aide de votre éditeur de texte préféré :

sudo rm /etc/postfix/main.cf && sudo nano /etc/postfix/main.cf

Collez le bloc de code suivant à l'intérieur de votre nouveau fichier de configuration. Il s'agit d'un modèle Postfix provenant du référentiel des développeurs que j'ai modifié pour mettre en évidence les parties où vous ajouterez le nom de domaine de votre serveur :

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no append_dot_mydomain = no readme_directory = no compatibility_level = 2 smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_tls_security_level = may smtpd_tls_security_level = may alias_maps = hash:/etc/aliases mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/24 mydestination = myhostname = SOUS-DOMAINE.VOTRE-DOMAINE-PRINCIPAL mydomain = VOTRE-DOMAINE-PRINCIPAL myorigin = VOTRE-DOMAINE-PRINCIPAL relay_domains = pgsql:/etc/postfix/pgsql-relay-domains.cf transport_maps = pgsql:/etc/postfix/pgsql-transport-maps.cf smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, permit smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, permit smtpd_recipient_restrictions = reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, reject_rbl_client zen.spamhaus.org=127.0.0.[2..11], reject_rbl_client bl.spamcop.net=127.0.0.2, permit

Modifiez la valeur de "myhostname" avec l'adresse de votre application web, puis mettez à jour la valeur de "mydomain" et "myorigin" avec votre domaine principal.

Lier Postgres à Postfix

Créez un nouveau fichier "pgsql-relay-domains.cf" dans "/etc/postfix". Cela servira de lien entre Postfix et Postgres :

sudo nano /etc/postfix/pgsql-relay-domains.cf

Collez le bloc de code suivant à l'intérieur de votre nouveau fichier de configuration :

hosts = localhost user = postgres password = MOT-DE-PASSE-DE-VOTRE-DATABASE dbname = simplelogin query = SELECT domain FROM custom_domain WHERE domain='%s' AND verified=true UNION SELECT domain FROM public_domain WHERE domain='%s' UNION SELECT '%s' WHERE '%s' = 'mydomain.com' LIMIT 1;

Remplacez "MOT-DE-PASSE-DE-VOTRE-DATABASE" par le mot de passe de votre base de données Postgres.

Créez un nouveau fichier "pgsql-transport-maps.cf" dans le même répertoire :

sudo nano /etc/postfix/pgsql-transport-maps.cf

Collez le bloc de code suivant à l'intérieur de votre nouveau fichier de configuration :

hosts = localhost user = postgres password = MOT-DE-PASSE-DE-VOTRE-DATABASE dbname = simplelogin query = SELECT 'smtp:127.0.0.1:20381' FROM custom_domain WHERE domain = '%s' AND verified=true UNION SELECT 'smtp:127.0.0.1:20381' FROM public_domain WHERE domain = '%s' UNION SELECT 'smtp:127.0.0.1:20381' WHERE '%s' = 'mydomain.com' LIMIT 1;

Tout comme pour la configuration précédente, remplacez "MOT-DE-PASSE-DE-VOTRE-DATABASE" par votre mot de passe Postgres.

Installation de SimpleLogin

Naviguez jusqu'au répertoire principal de votre utilisateur, puis créez le fichier d'environnement pour SimpleLogin.

cd && nano ./simplelogin.env

Écrivez le bloc de code suivant à l'intérieur de votre nouveau fichier d'environnement :

URL=https://SOUS-DOMAINE.VOTRE-DOMAINE-PRINCIPAL DOMAIN_DE_MESSAGERIE=VOTRE-DOMAINE-PRINCIPAL EMAIL_SUPPORT=support@VOTRE-DOMAINE-PRINCIPAL EMAIL_SERVEURS_AVEC_PRIORITE=[(10, "SOUS-DOMAINE.VOTRE-DOMAINE-PRINCIPAL.")] DB_URI=postgresql://postgres:MOT-DE-PASSE-DE-VOTRE-DATABASE@sl-db:5432/simplelogin FLASK_SECRET=AJOUTEZ-UNE-NOUVELLE-CHAÎNE-AU-HASARD ICI DISABLE_ALIAS_SUFFIX=1 DKIM_PRIVATE_KEY_PATH=/dkim.key GNUPGHOME=/sl/pgp LOCAL_FILE_UPLOAD=1 POSTFIX_SERVER=10.0.0.1

Remplacez chaque occurrence de "SOUS-DOMAINE.VOTRE-DOMAINE-PRINCIPAL" par votre URL SimpleLogin.

Changez la valeur de "VOTRE-DOMAINE-PRINCIPAL" par votre domaine principal.

Remplacez la variable "MOT-DE-PASSE-DE-VOTRE-DATABASE" par votre mot de passe Postgres.

Générez une nouvelle chaîne aléatoire et définissez-la comme valeur de "FLASK_SECRET".

Exécution des conteneurs Docker de SimpleLogin

Avec cette configuration prête, vous pouvez maintenant récupérer et exécuter le conteneur Docker de SimpleLogin. Pour commencer, importez la base de données Postgres dans votre installation SimpleLogin :

sudo docker run --rm \ --name sl-migration \ -v $(pwd)/sl:/sl \ -v $(pwd)/sl/upload:/code/static/upload \ -v $(pwd)/dkim.key:/dkim.key \ -v $(pwd)/dkim.pub.key:/dkim.pub.key \ -v $(pwd)/simplelogin.env:/code/.env \ --network="sl-network" \ simplelogin/app:4.6.5-beta alembic upgrade head

Exécutez le conteneur Docker pour le script d'initialisation de SimpleLogin :

sudo docker run --rm \ --name sl-init \ -v $(pwd)/sl:/sl \ -v $(pwd)/simplelogin.env:/code/.env \ -v $(pwd)/dkim.key:/dkim.key \ -v $(pwd)/dkim.pub.key:/dkim.pub.key \ --network="sl-network" \ simplelogin/app:4.6.5-beta python init_app.py

Démarrez le conteneur Docker qui gère l'interface frontend de l'application :

sudo docker run -d \ --name sl-app \ -v $(pwd)/sl:/sl \ -v $(pwd)/sl/upload:/code/static/upload \ -v $(pwd)/simplelogin.env:/code/.env \ -v $(pwd)/dkim.key:/dkim.key \ -v $(pwd)/dkim.pub.key:/dkim.pub.key \ -p 127.0.0.1:7777:7777 \ --restart always \ --network="sl-network" \ simplelogin/app:4.6.5-beta

Exécutez le conteneur qui gère le backend de messagerie pour SimpleLogin :

sudo docker run -d \ --name sl-email \ -v $(pwd)/sl:/sl \ -v $(pwd)/sl/upload:/code/static/upload \ -v $(pwd)/simplelogin.env:/code/.env \ -v $(pwd)/dkim.key:/dkim.key \ -v $(pwd)/dkim.pub.key:/dkim.pub.key \ -p 127.0.0.1:20381:20381 \ --restart always \ --network="sl-network" \ simplelogin/app:4.6.5-beta python email_handler.py

Enfin, lancez le conteneur qui gère les tâches de routine pour le système SimpleLogin :

sudo docker run -d \ --name sl-job-runner \ -v $(pwd)/sl:/sl \ -v $(pwd)/sl/upload:/code/static/upload \ -v $(pwd)/simplelogin.env:/code/.env \ -v $(pwd)/dkim.key:/dkim.key \ -v $(pwd)/dkim.pub.key:/dkim.pub.key \ --restart always \ --network="sl-network" \ simplelogin/app:4.6.5-beta python job_runner.py

FYI : Docker est bien plus qu'un simple moyen de déployer SimpleLogin. Découvrez comment vous pouvez rapidement héberger votre propre site WordPress en utilisant Docker.

Création d'un proxy inverse SSL avec Nginx

À ce stade, SimpleLogin fonctionne maintenant sur le serveur en utilisant le port 7777. Pour y accéder, vous devez diriger sa connexion sortante à travers un proxy inverse SSL.

Créez le fichier de site pour votre instance SimpleLogin :

sudo nano /etc/nginx/sites-available/simplelogin

Collez le bloc de code suivant dans votre fichier de site :

server {
  server_name SUBDOMAIN.VOTRE-DOMAINE-PRINCIPAL;
  location / {
    proxy_pass http://127.0.0.1:7777;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
  }
}

Créez un lien symbolique vers votre fichier de site dans "/etc/nginx/sites-enabled/" :

sudo ln -s /etc/nginx/sites-available/simplelogin /etc/nginx/sites-enabled/

Appliquez vos nouveaux paramètres en redémarrant le démon Nginx :

sudo systemctl restart nginx

Inscrivez votre instance SimpleLogin à l'EFF en exécutant la commande suivante :

sudo certbot register --agree-tos -m VOTRE@ADRESSE.EMAIL

Demandez un nouveau certificat SSL pour votre proxy inverse :

sudo certbot --nginx -d SUBDOMAIN.VOTRE-DOMAINE-PRINCIPAL

Ouvrez votre fichier de configuration Postfix avec votre éditeur de texte préféré :

sudo nano /etc/postfix/main.cf

Descendez jusqu'aux variables "smtpd_tls_cert_file" et "smtpd_tls_key_file" et remplacez-les par les lignes de code suivantes :

smtpd_tls_cert_file=/etc/letsencrypt/live/SUBDOMAIN.VOTRE-DOMAINE-PRINCIPAL/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/SUBDOMAIN.VOTRE-DOMAINE-PRINCIPAL/privkey.pem

Testez si votre instance SimpleLogin fonctionne correctement en ouvrant votre sous-domaine dans un navigateur et en créant un nouveau compte.

Création d'alias d'email avec SimpleLogin

Revenez à la session terminal de votre serveur, puis ouvrez la base de données de l'application :

docker exec -it sl-db psql -U postgres simplelogin

Exécutez la commande suivante pour activer le statut Premium pour votre compte principal :

UPDATE users SET lifetime = TRUE; exit

Cela garantira que votre compte n'aura aucune limite sur le nombre d'alias que vous pouvez créer pour votre adresse e-mail.

Pour créer votre premier alias d'email, cliquez sur le bouton Nouvel Alias Personnalisé sur le tableau de bord de l'application web.

Remarque : vous pouvez également créer un alias avec un nom aléatoire en cliquant sur le bouton Alias Aléatoire.

Fournissez un

Un nom mémorable pour votre nouvel alias d'email, puis cliquez sur Créer.

Vérifiez si votre nouvel alias d'email fonctionne correctement en envoyant un message depuis une adresse email différente.

Envoi d'emails à partir d'un alias SimpleLogin

En plus de recevoir des emails depuis un alias, SimpleLogin permet également d'envoyer des messages à travers eux. Pour ce faire, l'application crée un "alias inverse" pour l'adresse de destination à laquelle vous pouvez envoyer votre email.

Pour ce faire, cliquez sur le bouton Contacts de l'alias à partir duquel vous souhaitez envoyer un email. Dans mon cas, je veux envoyer depuis mon adresse "hello-maketecheasier@myvpsserver.top".

Fournissez l'adresse email de votre destinataire, puis cliquez sur Créer un alias inversé.

Cliquez sur le bouton Copier l'alias inversé sur votre nouveau contact, puis collez-le dans le champ destinataire de votre client email. Envoyer un message à cette adresse personnalisée permettra à SimpleLogin de masquer votre vrai email avec votre alias pour votre destinataire.

L'auto-hébergement de votre propre serveur d'aliases email en utilisant SimpleLogin est juste l'une des étapes pour récupérer votre vie privée numérique. Prenez le contrôle de l'ensemble de votre chaîne de communication numérique en hébergeant votre propre serveur email avec Mail-in-a-Box.

Index
  1. Préparation du système
    1. Installation des dépendances pour SimpleLogin
    2. Préparation des enregistrements DNS
    3. Création de la base de données Postgres
    4. Configuration de Postfix pour SimpleLogin
    5. Lier Postgres à Postfix
  2. Installation de SimpleLogin
    1. Exécution des conteneurs Docker de SimpleLogin
    2. Création d'un proxy inverse SSL avec Nginx
  3. Création d'alias d'email avec SimpleLogin
    1. Envoi d'emails à partir d'un alias SimpleLogin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Go up