SimpleLogin là một aliases server nhẹ và dễ sử dụng, cho phép bạn tạo danh tính email vĩnh viễn và ẩn danh mà không cần tạo hộp thư mới. Bài viết này sẽ hướng dẫn bạn cách cài đặt server SimpleLogin trên Ubuntu và tạo email alias ẩn danh để sử dụng trực tuyến.
Chuẩn bị hệ thống
Bài viết này giả định rằng bạn đang cài đặt SimpleLogin trên VPS có RAM ít nhất 2GB và bạn có một tên miền đang hoạt động từ nhà đăng ký DNS.
Để bắt đầu, hãy nhập signing key của dự án Docker vào máy của bạn:
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.gpgTạo một file kho lưu trữ cho dự án Docker:
sudo nano /etc/apt/sources.list.d/docker.listViết dòng code sau vào file kho lưu trữ:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stableRefresh kho lưu trữ của máy bằng cách chạy lệnh sau:
sudo apt update && sudo apt upgradeCài đặt dependency cho SimpleLogin
Cài đặt cả dependency của Docker và SimpleLogin vào hệ thống của bạn:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx dnsutils postfix postfix-pgsqlChọn Internet Site khi trình hướng dẫn cài đặt Postfix hỏi loại cấu hình mail server của bạn.

Nhấn Enter để xác nhận giá trị mặc định “System mail name”.

Đảm bảo rằng gói snap “core” đang chạy trên máy của bạn:
sudo snap install coreCài đặt gói snap certbot từ Electronic Frontier Foundation (EFF):
sudo snap install certbot --classicĐảm bảo rằng tường lửa của hệ thống không chặn bất kỳ cổng nào cho SimpleLogin:
sudo ufw allow 25,80,443/tcpChuẩn bị các bản ghi DNS
Đi tới công ty đăng ký tên miền của bạn và tạo bản ghi “A” mới trỏ đến địa chỉ IPv4 của máy bạn. Đặt giá trị hostname thành một subdomain mà bạn muốn cho phiên bản SimpleLogin của mình.

Thêm bản ghi “MX” cho root domain của bạn với tên server mục tiêu được đặt thành subdomain SimpleLogin của bạn.

Tạo bản ghi “TXT” cho root domain của bạn và đặt giá trị của nó thành như sau:
v=spf1 mx ~all
Tạo bản ghi “TXT” khác cho subdomain “_dmarc”, sau đó đặt giá trị của nó thành như sau:
v=DMARC1; p=quarantine; adkim=r; aspf=r
Mở Terminal, sau đó tạo cặp key DKIM bằng OpenSSL:
openssl genrsa -out dkim.key -traditional 1024
openssl rsa -in dkim.key -pubout -out dkim.pub.keyChạy lệnh sau rồi sao chép kết quả của nó vào clipboard hệ thống của bạn. Đây là script sed mà các nhà phát triển sử dụng để trích xuất public key DKIM từ keyfile của nó:
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\'Tạo bản ghi “TXT” cho subdomain “dkim._domainkey”, sau đó đặt đầu ra của lệnh trước đó làm giá trị.

Tạo cơ sở dữ liệu Postgres
Ngoài việc sử dụng các bản ghi DNS đặc biệt, SimpleLogin còn tận dụng PostgresDB để quản lý email alias. Để thiết lập điều này, trước tiên hãy tạo các thư mục con cho SimpleLogin Docker container:
mkdir -p ~/sl/{pgp,db,upload}Bắt đầu mạng ảo bằng Docker trên server của bạn:
sudo docker network create -d bridge \
--subnet=10.0.0.0/24 \
--gateway=10.0.0.1 \
sl-networkDán lệnh sau vào terminal mới:
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.1Thay đổi giá trị cho biến “POSTGRES_PASSWORD” bằng một chuỗi văn bản dài và ngẫu nhiên.

Lưu ý: Bạn có thể tạo chuỗi ngẫu nhiên này bằng cách chạy:
cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1Chạy lệnh Docker đã sửa đổi để khởi động cơ sở dữ liệu của bạn.
Cấu hình Postfix cho SimpleLogin
Bắt đầu bằng cách xóa file cấu hình mặc định cho Postfix, sau đó tạo một file trống có cùng tên bằng trình soạn thảo văn bản yêu thích của bạn:
sudo rm /etc/postfix/main.cf && sudo nano /etc/postfix/main.cfDán block code sau vào file cấu hình mới của bạn. Đây là mẫu Postfix từ kho lưu trữ của nhà phát triển mà tác giả bài viết đã sửa đổi để highlight những phần mà bạn sẽ thêm tên miền server của mình:
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,
permitThay đổi giá trị của “myhostname” bằng địa chỉ ứng dụng web của bạn, sau đó cập nhật giá trị của cả “mydomain” và “myorigin” thành root domain của bạn.

Liên kết Postgres với Postfix
Tạo một file “pgsql-relay-domains.cf” mới trong “/etc/postfix.” Điều này sẽ đóng vai trò là liên kết giữa Postfix và Postgres:
sudo nano /etc/postfix/pgsql-relay-domains.cfDán block code sau vào file cấu hình mới của bạn:
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;Thay thế “DATABASE-PASSWORD” bằng mật khẩu Postgres của bạn.

Tạo một “pgsql-transport-maps.cf” mới trong cùng thư mục:
sudo nano /etc/postfix/pgsql-transport-maps.cfDán block code sau vào file cấu hình mới của bạn:
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;Cũng giống như cấu hình trước, hãy thay thế “DATABASE-PASSWORD” bằng mật khẩu Postgres của bạn.

Cài đặt SimpleLogin
Điều hướng đến thư mục chính của người dùng, sau đó tạo file môi trường cho SimpleLogin.
cd && nano ./simplelogin.envViết block code sau vào file môi trường mới của bạn:
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=/sl/pgp
LOCAL_FILE_UPLOAD=1
POSTFIX_SERVER=10.0.0.1Thay thế mọi phiên bản của “SUBDOMAIN.YOUR-ROOT.DOMAIN” bằng URL SimpleLogin của bạn.

Thay đổi giá trị của “YOUR-ROOT.DOMAIN” thành tên root domain.

Thay thế biến “DATABASE-PASSWORD” bằng mật khẩu Postgres của bạn.

Tạo một chuỗi ngẫu nhiên mới và đặt chuỗi đó làm giá trị “FLASK_SECRET”

Chạy các SimpleLogin Docker Container
Với thiết lập đó và đã sẵn sàng, giờ đây bạn có thể tìm nạp và chạy SimpleLogin Docker Container. Để bắt đầu, hãy nhập cơ sở dữ liệu Postgres vào bản cài đặt SimpleLogin của bạn:
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 headChạy Docker container cho script khởi tạo của 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.pyKhởi động Docker container quản lý giao diện người dùng của ứng dụng:
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-betaChạy container xử lý email backend cho 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.pyCuối cùng, khởi động container quản lý các tác vụ thông thường cho hệ thống 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.pyTạo SSL Reverse Proxy với Nginx
Tại thời điểm này, SimpleLogin hiện đang chạy trên máy chủ tại cổng 7777. Để truy cập nó, bạn cần chuyển kết nối đi của nó thông qua SSL Reverse Proxy.
Tạo file trang web cho phiên bản SimpleLogin của bạn:
sudo nano /etc/nginx/sites-available/simpleloginDán block code sau vào file trang web của bạn:
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;
}
}Tạo một symlink cho file trang web của bạn trong “/etc/nginx/sites-enabled/”:
sudo ln -s /etc/nginx/sites-available/simplelogin /etc/nginx/sites-enabled/Áp dụng cài đặt mới của bạn bằng cách khởi động lại daemon Nginx:
sudo systemctl restart nginxĐăng ký phiên bản SimpleLogin của bạn với EFF bằng cách chạy lệnh sau:
sudo certbot register --agree-tos -m YOUR@EMAIL.ADDRESSYêu cầu chứng chỉ SSL mới cho reverse proxy của bạn:
sudo certbot --nginx -d SUBDOMAIN.YOUR-ROOT.DOMAINMở file cấu hình Postfix bằng trình soạn thảo văn bản yêu thích của bạn:
sudo nano /etc/postfix/main.cfCuộn xuống các biến “smtpd_tls_cert_file” và “smtpd_tls_key_file” rồi thay thế chúng bằng các dòng code sau:
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.pemKiểm tra xem phiên bản SimpleLogin của bạn có chạy đúng cách hay không bằng cách mở subdomain của bạn trên trình duyệt và tạo tài khoản mới.

Tạo email alias với SimpleLogin
Quay lại phiên terminal của máy chủ, sau đó mở cơ sở dữ liệu của ứng dụng:
docker exec -it sl-db psql -U postgres simpleloginChạy phần sau để bật trạng thái Premium cho tài khoản chính của bạn:
UPDATE users SET lifetime = TRUE;
exit
Làm như vậy sẽ đảm bảo rằng tài khoản của bạn sẽ không có bất kỳ giới hạn nào đối với số lượng alias mà bạn có thể tạo cho email của mình.
Để tạo email alias đầu tiên của bạn, hãy nhấp vào nút New Custom Alias trên bảng điều khiển của ứng dụng web.

Lưu ý: Bạn cũng có thể tạo alias bằng tên ngẫu nhiên bằng cách nhấp vào nút Random Alias.
Cung cấp một tên dễ nhớ cho email alias mới của bạn, sau đó nhấp vào Create.

Kiểm tra xem email alias mới của bạn có hoạt động bình thường hay không bằng cách gửi thư đến địa chỉ email đó từ một địa chỉ email khác.

Gửi email từ alias SimpleLogin
Ngoài việc nhận thư từ alias, SimpleLogin còn hỗ trợ gửi thư qua alias. Để đạt được điều đó, ứng dụng sẽ tạo một “reverse alias” cho địa chỉ đích mà bạn có thể gửi email của mình.
Để thực hiện việc này, hãy nhấp vào nút Contacts trên alias mà bạn muốn gửi email từ đó. Trong trường hợp này, tác giả muốn gửi từ địa chỉ “hello-maketecheasier@myvpsserver.top” của mình.

Cung cấp địa chỉ email của người nhận, sau đó nhấp vào Create reverse-alias.
Nhấp vào nút Copy reverse-alias trên liên hệ mới của bạn, sau đó dán nó vào trường người nhận của ứng dụng email. Việc gửi thư đến địa chỉ tùy chỉnh này sẽ cho phép SimpleLogin ẩn email thực của bạn bằng alias của bạn đối với người nhận.

Tự host email alias server của riêng bạn bằng SimpleLogin chỉ là một trong những bước lấy lại quyền riêng tư kỹ thuật số của bạn. Kiểm soát toàn bộ chuỗi liên lạc kỹ thuật số của bạn bằng cách host email server của riêng bạn bằng Mail-in-a-Box.
Học IT










Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy