Как создать анонимные псевдонимы электронной почты с помощью SimpleLogin
В этой статье показано, как установить сервер SimpleLogin в Ubuntu и создать анонимный псевдоним электронной почты для использования в Интернете.
Подготовьте систему
В этой статье предполагается, что вы устанавливаете SimpleLogin на VPS с оперативной памятью не менее 2 ГБ и у вас есть активное доменное имя от вашего DNS-регистратора.
Для начала импортируйте ключ подписи вашего проекта Docker на свой компьютер:
локон -fsSL | 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подписано=/etc/apt/keyrings/docker.gpg) стабильная стабильная версия
Обновите архив вашего компьютера, выполнив следующую команду:
обновление sudo apt && обновление sudo apt
Установите зависимости для SimpleLogin
Установите в свою систему зависимости Docker и SimpleLogin:
sudo apt install docker-ce docker-ce-cliContainerd.io docker-compose-plugin docker-buildx-plugin nginx dnsutils postfix postfix-pgsql
Выберите Интернет-сайт, когда мастер установки Postfix запросит тип конфигурации вашего почтового сервера.
Нажмите Enter, чтобы подтвердить значение по умолчанию «Имя системной почты».
Убедитесь, что на вашем компьютере запущен «основной» пакет Snap:
ядро установки sudo snap
Установите пакет оснастки certbot от Electronic Frontier Foundation (EFF):
sudo snap install certbot –classic
Убедитесь, что брандмауэр вашей системы не блокирует порты для SimpleLogin:
sudo ufw разрешить 25,80,443/tcp
Подготовьте DNS-записи
Перейдите к регистратору своего домена и создайте новую запись «A», указывающую на IPv4-адрес вашего компьютера. Установите в качестве значения имени хоста субдомен, который вы хотите использовать для своего экземпляра SimpleLogin.
Добавьте запись «MX» для своего корневого домена с именем целевого сервера, установленным для вашего поддомена SimpleLogin.
Создайте запись «TXT» для своего корневого домена и установите для нее следующее значение:
v=spf1 mx ~все
Создайте еще одну запись «TXT» для субдомена «_dmarc», затем установите для нее следующее значение:
v=DMARC1; р=карантин; адким = г; aspf=r
Откройте терминал, затем сгенерируйте пару ключей 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/—–КОНЕЦ ПУБЛИЧНОГО КЛЮЧА—–//” | тр -д ‘н’ | sed -e ‘$a’
Создайте запись «TXT» для субдомена «dkim._domainkey», затем установите в качестве значения вывод предыдущей команды.
Создать базу данных 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=ВАШ СЛУЧАЙНЫЙ-ПАРОЛЬ-ЗДЕСЬ -e POSTGRES_USER=postgres -e POSTGRES_DB=simplelogin -p 127.0.0.1:5432:5432 -v $(pwd)/sl/ db:/var/lib/postgresql/data –restart всегда –network=”sl-network” postgres:12.1
Измените значение переменной POSTGRES_PASSWORD на длинную случайную текстовую строку.
Примечание. Вы можете сгенерировать эту случайную строку, запустив:
кот /dev/urandom | tr -dc ‘А-За-z0-9’ | сложить -w 32 | голова -n 1
Запустите модифицированную команду Docker, чтобы запустить базу данных.
Настройте Postfix для SimpleLogin
Начните с удаления файла конфигурации Postfix по умолчанию, затем создайте пустой файл с тем же именем, используя ваш любимый текстовый редактор:
sudo rm /etc/postfix/main.cf && sudo nano /etc/postfix/main.cf
Вставьте следующий блок кода в новый файл конфигурации. Вот образец Postfix из репозитория разработчика, который автор статьи изменил, чтобы выделить разделы, в которые вы добавите доменное имя своего сервера:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = нет Append_dot_mydomain = нет readme_directory = нет уровень совместимости = 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 = ПОДДОМЕН.ВАШ-КОРНЕВЫЙ.ДОМЕН mydomain = ВАШ-КОРНЕВЫЙ.ДОМЕН myorigin = ВАШ-КОРНЕВЫЙ.ДОМЕН реле_домены = pgsql:/etc/ postfix/pgsql-relay-domains.cf Transport_maps = pgsql:/etc/postfix/pgsql-transport-maps.cf smtpd_delay_reject = да smtpd_helo_required = да smtpd_helo_restrictions = Permit_mynetworks, ignore_non_fqdn_helo_hostname, ignore_invalid_helo_hostname, разрешено smtpd_sender_ ограничения = разрешено_mynetworks, ignore_non_fqdn_sender, ignore_unknown_sender_domain, разрешено smtpd_recipient_restrictions = ignore_unauth_pipelining, ignore_non_fqdn_recipient, ignore_unknown_recipient_domain, Permit_mynetworks, ignore_unauth_destination, ignore_rbl_client zen.spamhaus.org=127.0.0.(2.11), ignore_rbl_client bl.spamcop.net=127.0.0.2, разрешение
Измените значение myhostname на адрес вашего веб-приложения, затем обновите значения mydomain и myorigin, указав корневой домен.
Связывание Postgres с Postfix
Создайте новый файл pgsql-relay-domains.cf в /etc/postfix. Это будет служить связующим звеном между Postfix и Postgres:
sudo nano /etc/postfix/pgsql-relay-domains.cf
Вставьте следующий блок кода в новый файл конфигурации:
хосты = пользователь localhost = пароль postgres = БАЗА ДАННЫХ-ПАРОЛЬ имя базы данных = простой вход в систему запрос = ВЫБЕРИТЕ домен ИЗ custom_domain ГДЕ домен = ‘%s’ И проверено = true UNION ВЫБЕРИТЕ домен ИЗ public_domain WHERE домен = ‘%s’ UNION SELECT ‘%s’ ГДЕ ‘%s’ = ‘mydomain.com’ ОГРАНИЧЕНИЕ 1;
Замените «DATABASE-PASSWORD» на свой пароль Postgres.
Создайте новый файл «pgsql-transport-maps.cf» в том же каталоге:
sudo nano /etc/postfix/pgsql-transport-maps.cf
Вставьте следующий блок кода в новый файл конфигурации:
хосты = пользователь localhost = пароль postgres = БАЗА ДАННЫХ-ПАРОЛЬ имя_базы = простой запрос на вход = SELECT ‘smtp:127.0.0.1:20381’ ИЗ custom_domain ГДЕ домен = ‘%s’ И проверено = true UNION SELECT ‘smtp:127.0.0.1:20381’ FROM public_domain ГДЕ домен = ‘%s’ UNION SELECT ‘smtp:127.0.0.1:20381’ ГДЕ ‘%s’ = ‘mydomain.com’ LIMIT 1;
Как и в предыдущей конфигурации, замените «DATABASE-PASSWORD» на свой пароль Postgres.
Установить SimpleLogin
Перейдите в домашний каталог пользователя, затем создайте файл среды для SimpleLogin.
компакт-диск && nano ./simplelogin.env
Напишите следующий блок кода в новом файле среды:
URL= EMAIL_DOMAIN=ВАШ-КОРНЕВЫЙ.ДОМЕН SUPPORT_EMAIL=support@ВАШ-КОРНЕВЫЙ.ДОМЕН 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=/sl/pgp LOCAL_FILE_UPLOAD=1 POSTFIX_SERVER=10.0.0.1
Замените все экземпляры «SUBDOMAIN.YOUR-ROOT.DOMAIN» на свой URL-адрес SimpleLogin.
Измените значение YOUR-ROOT.DOMAIN на имя корневого домена.
Замените переменную «DATABASE-PASSWORD» своим паролем 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-бета
Запустите Docker-контейнер для сценария инициализации 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 — всегда перезапускать –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 — всегда перезапускать –network=”sl-network” simplelogin/app:4.6.5-beta python email_handler.py
Наконец, запустите контейнер, который управляет общими задачами системы 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 –перезапускать всегда –network=” sl-network» simplelogin/app:4.6.5-beta python job_runner.py
Создайте обратный прокси-сервер SSL с помощью Nginx
На данный момент SimpleLogin работает на сервере через порт 7777. Чтобы получить к нему доступ, вам необходимо направить его исходящее соединение через обратный прокси-сервер SSL.
Создайте файлы сайта для вашего экземпляра SimpleLogin:
sudo nano /etc/nginx/sites-available/simplelogin
Вставьте следующий блок кода в файлы вашего сайта:
сервер {имя_сервера ПОДДОМЕН.ВАШ-КОРНЕВЫЙ.ДОМЕН; местоположение / { proxy_pass proxy_http_version 1.1; proxy_set_header Обновление $http_upgrade; proxy_set_header Соединение «обновление»; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Хост $host; } }
Создайте символическую ссылку для файлов вашего сайта в /etc/nginx/sites-enabled/:
sudo ln -s /etc/nginx/sites-available/simplelogin /etc/nginx/sites-enabled/
Примените новые настройки, перезапустив демон Nginx:
sudo systemctl перезапустить nginx
Зарегистрируйте свой экземпляр SimpleLogin в EFF, выполнив следующую команду:
sudo certbot зарегистрироваться –agree-tos -m ВАШ@ЕМАЙЛ.АДРЕС
Запросите новый сертификат SSL для вашего обратного прокси-сервера:
sudo certbot –nginx -d ПОДДОМЕН.ВАШ-КОРНЕВЫЙ.ДОМЕН
Откройте файл конфигурации Postfix в вашем любимом текстовом редакторе:
судо нано /etc/postfix/main.cf
Прокрутите вниз до переменных smtpd_tls_cert_file и smtpd_tls_key_file и замените их следующими строками кода:
smtpd_tls_cert_file=/etc/letsencrypt/live/SUBDOMAIN.ВАШ-КОРНЕВЫЙ.ДОМЕН/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/SUBDOMAIN.ВАШ-КОРНЕВОЙ.ДОМЕН/privkey.pem
Проверьте правильность работы вашего экземпляра SimpleLogin, открыв субдомен в браузере и создав новую учетную запись.
Создайте псевдонимы электронной почты с помощью SimpleLogin
Вернитесь в терминальную сессию сервера, затем откройте базу данных приложения:
docker exec -it sl-db psql -U postgres simplelogin
Выполните следующее, чтобы включить Премиум-статус для вашей основной учетной записи:
ОБНОВЛЕНИЕ пользователей SET срок службы = TRUE; Выход
Это гарантирует, что в вашей учетной записи не будет ограничений на количество псевдонимов, которые вы можете создать для своих электронных писем.
Чтобы создать свой первый псевдоним электронной почты, нажмите кнопку «Новый пользовательский псевдоним» на панели инструментов веб-приложения.
Примечание. Вы также можете создать псевдоним со случайным именем, нажав кнопку «Случайный псевдоним».
Укажите запоминающееся имя для нового псевдонима электронной почты, затем нажмите «Создать».
Проверьте правильность работы вашего нового псевдонима электронной почты, отправив на него письмо с другого адреса электронной почты.
Отправить письмо с псевдонима SimpleLogin
Помимо получения сообщений от псевдонимов, SimpleLogin также поддерживает отправку сообщений через псевдонимы. Для этого приложение создает «обратный псевдоним» для адреса назначения, на который вы можете отправить электронную почту.
Для этого нажмите кнопку «Контакты» на псевдониме, с которого вы хотите отправить электронное письмо. В этом случае автор хочет отправить сообщение со своего адреса hello-maketecheasier@myvpsserver.top.
Укажите адрес электронной почты получателя, затем нажмите «Создать обратный псевдоним».
Нажмите кнопку «Копировать обратный псевдоним» на новом контакте, затем вставьте его в поле получателя почтового клиента. Отправка почты на этот индивидуальный адрес позволит SimpleLogin скрыть ваш настоящий адрес электронной почты под псевдонимом получателя.
Размещение собственного сервера псевдонимов электронной почты с помощью SimpleLogin — это всего лишь один шаг к восстановлению вашей цифровой конфиденциальности. Возьмите под свой контроль всю цепочку цифровых коммуникаций, разместив собственный почтовый сервер с помощью Mail-in-a-Box.