ГлавнаяОперационные системыLinuxКак создать анонимные псевдонимы электронной почты с помощью SimpleLogin

Как создать анонимные псевдонимы электронной почты с помощью SimpleLogin

SimpleLogin — это легкий и простой в использовании сервер псевдонимов, который позволяет создавать постоянные и анонимные учетные записи электронной почты без создания новых почтовых ящиков. В этой статье показано, как установить сервер SimpleLogin в Ubuntu и создать анонимные псевдонимы электронной почты для использования в Интернете.

Подготовка системы

Предположение: В этой статье предполагается, что вы устанавливаете Простой вход на VPS с объемом опе

Подготовка системы

ГБ. Также предполагается, что у вас есть активное доменное имя от регистратора DNS.

Для начала импортируйте ключ подписи проекта Docker на свой компьютер:

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

Создайте файл репозитория для проекта Docker:

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

Напишите следующую строку кода внутри файла репозитория:

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

Обновите репозитории вашего компьютера, выполнив следующую команду:

sudo apt update && sudo apt upgrade

Установка зависимостей для SimpleLogin

Установите зависимости Docker и SimpleLogin в вашей системе:

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

Выберите Интернет-сайт, когда мастер установки Postfix запросит тип конфигурации вашего почтового сервера.

Терминал, показывающий опцию «Интернет-сайт» в установщике Postfix.

Нажмите Enter, чтобы подтвердить значение «Системное почтовое имя» по умолчанию.

Установка зависимостей для SimpleLogint="Терминал, показывающий значение системного имени по умолчанию для сервера.">

Убедитесь, что на вашем компьютере запущен «основной» пакет Snap:

sudo snap install core

Установите пакет оснастки certbot от Electronic Frontier Foundation (EFF):

sudo snap install certbot --classic

Убедитесь, что брандмауэр вашей системы не блокирует ни один из портов для SimpleLogin:

sudo ufw allow 25,80,443/tcp

Подготовка записей DNS

Перейдите к регистратору своего домена и создайте новую запись «A», указывающую на IPv4-адрес вашего компьютера. Установите в качестве значения имени хоста субдомен, который вы хотите использовать для своего экземпляра SimpleLogin.

Скриншот примера Запись для SimpleLogin.

Добавьте запись «MX» для своего корневого домена с целевым именем хоста, установленным для вашего поддомена SimpleLogin.

Скриншот примера записи MX для SimpleLogin.

Создайте запись «TXT» для корневого домена и установите для нее следующее значение:

v=spf1 mx ~all
Скриншот примера записи TXT для SPF.

Создайте другую запись «TXT» для субдомена «_dmarc», затем установите для нее следующее значение:

v=DMARC1; p=quarantine; adkimПодготовка записей DNS
Скриншот записи TXT для DMARC.

Откройте сеанс терминала, затем сгенерируйте пару ключей DKIM с помощью OpenSSL:

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

Выполните следующую команду и скопируйте ее результат в системный буфер обмена. Это сценарий sed, который разработчики используют для извлечения открытого ключа DKIM из его ключевого файла:

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\'

Создайте запись «TXT» для поддомена «dkim._domainkey», затем установите вывод предыдущей команды в качестве ее значения.

Скриншот записи TXT для DKIM.

Полезно знать: узнайте больше о DNS и серверах имен от использование копания в Linux .

Создание базы данных Postgres

Помимо использования специальных записей DNS, SimpleLogin также использует PostgresDB для управления псевдонимами электронной почты. Чтобы это настроить, сначала создайте подкаталоги для контейнера SimpleLogin Docker:

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

Запустите виртуальную сеть с помощью Docker на своем сервере:

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

Вставьте следующую команду в новый сеанс терминала:

sudo docker run -d \
    --name sl-db \
    -e POSTGRES_PASSWORD=YOUR-RANDOM-PASSWORD-HERE \
    -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

Измените значение переменной «POSTGRES_PASSWORD», указав длинную произвольную текстовую строку.

Терминал, выделяющий случайный пароль Postgres для экземпляра SimpleLogin.

Примечание. Эту случайную строку можно сгенерировать, запустив: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1.

Запустите модифицированную команду Docker, чтобы запустить базу данных.

Настройка Postfix для SimpleLogin

Начните с удаления файла конфигурации по умолчанию для Postfix, затем создайте пустой файл с тем же именем в вашем любимом текстовом редакторе:

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

Создание базы данных Postgres

o
/etc/postfix/main.cf

Вставьте следующий блок кода в новый файл конфигурации. Это шаблон Postfix из репозитория разработчиков, который я изменил, чтобы выделить части, в которые вы добавите доменное имя вашего сервера:

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 = SUBDOMAIN.YOUR-ROOT.DOMAIN
mydomain = YOUR-ROOT.DOMAIN
myorigin = YOUR-ROOT.DOMAIN
 
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

Замените значение «myhostname» на адрес вашего веб-приложения, затем обновите значения «mydomain» и «myorigi

Настройка Postfix для SimpleLogin

ng="async" src="https://saintist.ru/wp-content/uploads/2024/05/create-anonymous-email-aliases-simplelogin-09-set-domain-postfix-config.jpg" alt="Терминал, выделяющий имя хоста и блок домена для файла конфигурации Postfix.">

Связывание Postgres с Postfix

Создайте новый файл «pgsql-relay-domains.cf» в «/etc/postfix». Это будет служить связующим звеном между Postfix и Postgres:

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

Вставьте следующий блок кода в новый файл конфигурации:

hosts = localhost
user = postgres
password = DATABASE-PASSWORD
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;

Замените «DATABASE-PASSWORD» на свой пароль Postgres.

Терминал, выделяющий пароль Postgres в файле конфигурации ретранслятора Postfix.

Создайте новый файл «pgsql-transport-maps.cf» в том же каталоге:

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

Вставьте следующий блок кода в новый файл конфигурации:

hosts = localhost
user = postgres
password = DATABASE-PASSWORD
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;

Как и в предыдущей конфигурации, замените «DATABASE-PASSWORD» на свой пароль Postgres.

Терминал, показывающий пароль Postgres в файле конфигурации карты транспорта Postfix.

Установка SimpleLogin

Перейдите в домашний каталог вашего пользователя, затем создайте файл среды для SimpleLogin.

cd && nano ./simplelogin.env

Напишите следующий блок кода внутри нового файла среды:

URL=https://SUBDOMAIN.YOUR-ROOT.DOMAIN
EMAIL_DOMAIN=YOUR-ROOT.DOMAIN
SUPPORT_EMAIL=support@YOUR-ROOT.DOMAIN
EMAIL_SERVERS_WITH_PRIORITY=[(10, "SUBDOMAIN.YOUR-ROOT.DOMAIN.")]
DB_URI=postgresql://postgres:DATABASE-PASSWORD@sl-db:5432/simplelogin
FLASK_SECRET=ADD-A-NEW-RANDOM-STRING-HERE
 
DISABLE_ALIAS_SUFFIX=1
DKIM_PRIVATE_KEY_PATH=/dkim.key
GNUPGHOME=<

Связывание Postgres с Postfix

>LOCAL_FILE_UPLOAD=1 POSTFIX_SERVER=10.0.0.1

Замените каждый экземпляр «SUBDOMAIN.YOUR-ROOT.DOMAIN» URL-адресом SimpleLogin.

Терминал, выделяющий разделы файла конфигурации, которые должны включать поддомен сервера.

Измените значение YOUR-ROOT.DOMAIN на корневой домен.

Терминал, выделяющий разделы файла среды, которым нужен только корневой домен сервера.

Замените переменную «DATABASE-PASSWORD» на свой пароль Postgres.

Терминал, выделяющий раздел файла среды, для которого требуется пароль Postgres.

Сгенерируйте новую случайную строку и установите для нее значение «FLASK_SECRET»

Терминал, выделяющий раздел файла среды, требующий новой случайной строки.

Запуск Docker-контейнеров SimpleLogin

Когда все готово, вы можете загрузить и запустить Docker-контейнер SimpleLogin. Для начала импортируйте базу данных Postgres в вашу установку 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

Запустите Docker-конте

Установка SimpleLogin

и 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

Запустите контейнер Docker, который управляет интерфейсом приложения:

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

Запустите контейнер, который обрабатывает серверную часть электронной почты для 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

Наконец, запустите контейнер, который управляет рутинными задачами системы SimpleLogin:

sudo docker run -d \
    --name sl-job-runner \
    Запуск Docker-контейнеров SimpleLoginan>)/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

К вашему сведению: Docker — это больше, чем просто способ развертывания SimpleLogin. Узнайте, как можно быстро разместите свой собственный сайт WordPress с помощью Docker .

Создание обратного SSL-прокси с помощью Nginx

На данный момент SimpleLogin теперь работает на сервере с портом 7777. Чтобы получить к нему доступ, вам необходимо передать его исходящее соединение через обратный прокси-сервер SSL.

Создайте файл сайта для вашего экземпляра SimpleLogin:

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

Вставьте следующий блок кода в файл вашего сайта:

server {
 
        server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
 
        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;
        }
}

Создайте символическую ссылку для файла вашего сайта в «/etc/nginx/sites-enabled/»:

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

Примените новые настройки, перезапустив демон Nginx:

sudo systemctl restart nginx

Зарегистрируйте свой экземпляр SimpleLogin в EFF, выполнив следующую команду:

sudo certbot register --agree-tos -m YOUR@EMAIL.ADDRESS

Запросите новый сертификат SSL для вашего обратного прокси:

sudo certbot --nginx -d SUBDOMAIN.YOUR-ROOT.DOMAIN

Откройте файл конфигурации Postfix с помощью вашего любимого текстового редактора:

sudo nano /etc/postfix/main.cf

Прокрутите вниз до переменных «smtpd_tls_cert_file» и «smtpd_tls_key_file» и замените их следующими строками кода:

smtpd_tls_cert_file=/etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/privkey.pem

Проверьте, правильно ли работает ваш экземпляр SimpleLogin, открыв субдомен в браузере и создав новую учетную запись.

Скриншот рабочей веб-панели SimpleLogin.

Создание псевдонимов электронной почты с помощью SimpleLogin

Вернитесь к сеансу терминала вашего сервера и откройте базу данных приложения:

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

Чтобы включить премиум-статус для основной учетной записи, выполните следующую команду:

UPDATE users SET lifetime = TRUE;
exit
Снимок экрана панели управления SimpleLogin, работающей в Премиум-режиме.

Это гарантирует, что в вашей учетной записи не будет ограничений на количество псевдонимов, которые вы можете создать для своей электронной почты.

Чтобы создать свой первый псевдоним электронной почты, нажмите кнопку Новый пользовательский псевдоним на панели инструментов веб-приложения.

Снимок экрана панели управления SimpleLogin, на котором выделена кнопка «Новый пользовательский псевдоним».

Примечание. Вы также можете создать псевдоним со случайным именем, нажав кнопку Случайный псевдоним.

Укажите запоминающееся имя для нового псевдоним

Создание обратного SSL-прокси с помощью Nginx

rong>.

Снимок экрана, на котором выделена кнопка «Создать» для нового псевдонима электронной почты.

Проверьте, правильно ли работает ваш новый псевдоним электронной почты, отправив на него сообщение с другого адреса электронной почты.

Снимок экрана, показывающий пример сообщения на псевдоним электронной почты.

Отправка электронных писем с псевдонима SimpleLogin

Помимо получения почты от псевдонима, SimpleLogin также поддерживает отправку сообщений через него. Для этого приложение создает «обратный псевдоним» для адреса назначения, на который вы можете отправить электронную почту.

Для этого нажмите кнопку Контакты на псевдониме, с которого вы хотите отправить электронное письмо. В моем случае я хочу отправить сообщение со своего адреса [email protected].

Скриншот, на котором выделена кнопка «Контакты» для создания адресов с обратным псевдонимом.

Укажите адрес электронной почты получателя, затем нажмите Создать обратный псевдоним.

Нажмите кнопку Копировать обратный псевдоним на новом контакте, а затем вставьте его в поле получателя вашего почтового клиента. Отправка сообщения на этот индивидуальный адрес позволит SimpleLogin замаскировать ваш настоящий адрес электронной почты псевдонимом получателя.

Снимок экрана, показывающий, как сообщение отправляется на обратный псевдоним.

Размещение собственного сервера псевдонимов электронной почты с помощью SimpleLogin — это лишь один из шагов к восстановлению вашей цифровой конфиденциальности. Возьмите под контроль всю свою цепочку цифровых коммуникаций к размещение собственного почтового сервера с использованием Mail-in-a-Box .

Изображение предоставлено: Лукас Блазек через Unsplash и Простой вход на Github . Все изменения и скриншоты Рамсеса Реда.

Создание псевдонимов электронной почты с помощью SimpleLogin

Отправка электронных писем с псевдонима SimpleLogin

ПОХОЖИЕ СТАТЬИ

Популярные записи