Mailpile là một ứng dụng thư điện tử nguồn mở tập trung vào mã hóa và quyền riêng tư của người dùng. Mailpile giúp thiết lập PGP dễ dàng, cho phép bạn tạo khóa PGP trực tiếp trong ứng dụng email và gửi tin nhắn được mã hóa PGP. Mailpile được Bjarni R. Einarsson tạo ra vào năm 2013. Phần mềm có thể được cài đặt trên Mac OSX, Windows và Linux dưới dạng ứng dụng thư điện tử dựa trên web.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt Mailpile trên Ubuntu 15.10. Chúng tôi sẽ cài đặt Mailpile dưới dạng máy khách dựa trên web với Nginx làm proxy ngược.
Để bắt đầu, hãy cập nhật cơ sở dữ liệu kho lưu trữ của bạn và cài đặt các gói từ kho lưu trữ Ubuntu:
Bây giờ hãy kiểm tra phiên bản python và phiên bản GnuPG:
Mailpile yêu cầu PIL (Thư viện hình ảnh Python), do đó, chúng tôi cài đặt libjpeg, zlib1g và python-dev:
Khi quá trình cài đặt hoàn tất, chúng tôi đã sẵn sàng cho bước tiếp theo của quá trình cài đặt Mailpile.
Bây giờ hãy vào thư mục Mailpile và tạo môi trường ảo với python2.7 là phiên bản python:
-p = Sử dụng phiên bản python cụ thể, chúng tôi sử dụng python 2.7.
--system-site packages = Cấp cho môi trường ảo quyền truy cập vào các site-packages toàn cục.
mailpile-env = Thư mục cho môi trường ảo mới.
Sau đó kích hoạt môi trường ảo, đảm bảo rằng bạn đang ở trong Thư mục "/opt/Mailpile/" và cuối cùng kích hoạt nó.
Bạn có thể kiểm tra dòng lệnh xem môi trường ảo có đang hoạt động không:
Tên môi trường ảo phải nằm trước tên người dùng và tên máy chủ của bạn trên shell.
Tiếp theo, cài đặt các yêu cầu của mailpile bằng lệnh pip trong môi trường mailpile-env:
Chúng ta hãy kiểm tra Mailpile bằng lệnh "./mp" trong môi trường ảo:
Trong ảnh chụp màn hình, chúng ta có thể thấy Mailpile đang chạy trên máy chủ cục bộ với cổng 33411.
Vậy hãy thử truy cập nó bằng lệnh curl từ shell máy chủ:
Nó hoạt động chính xác khi bạn nhận được kết quả sau:
Trên thực tế, trong bước này, chúng ta có thể yêu cầu Mailpile chạy trên IP công khai của mình để mọi người có thể truy cập. Nhưng trong hướng dẫn này, chúng ta sẽ sử dụng Nginx làm proxy ngược cho Mailpile trên cổng 33411.
Bây giờ hãy xác minh rằng Nginx đang chạy trên cổng 80:
Sau đó tạo tệp chứng chỉ SSL:
Và thay đổi quyền của khóa riêng thành 600:
Đi đến thư mục "sites-available" của Nginx và tạo một tệp mới có tên là "mailpile":
Chỉnh sửa tệp mailpile bằng trình soạn thảo vim:
Dán cấu hình máy chủ ảo bên dưới:
Bây giờ hãy kích hoạt máy chủ ảo mailpile và khởi động lại Nginx:
Lưu ý: Đảm bảo bạn không tắt tiến trình mailpile trong môi trường ảo của mình.
Tiếp theo, hãy truy cập miền Mailpile (trong trường hợp của tôi làmail.mailpile.me) và bạn sẽ được chuyển hướng đến kết nối https.
Chọn ngôn ngữ mặc định, trong trường hợp của tôi là "Tiếng Anh" và nhấp vào "Bắt đầu".
Bây giờ hãy nhập mật khẩu của bạn để đăng nhập vào ứng dụng, hãy đảm bảo bạn có mật khẩu mạnh.
Và bắt đầu sử dụng Mailpile.
Quá trình thiết lập Mailpile đã hoàn tất, hãy nhập mật khẩu của bạn và nhấn "Enter".
Bạn có thể thấy trang thư ngay sau khi đăng nhập:
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt Mailpile trên Ubuntu 15.10. Chúng tôi sẽ cài đặt Mailpile dưới dạng máy khách dựa trên web với Nginx làm proxy ngược.
Điều kiện tiên quyết
- Ubuntu 15.10 - 64bit.
- Quyền root.
Bước 1 - Cài đặt Mailpile Dependencies
Mailpile được viết bằng ngôn ngữ lập trình python và chúng tôi cần một loạt các mô-đun python để cài đặt. Tôi sẽ cài đặt Mailpile trong môi trường ảo python với virtualenvand sử dụng python 2.7 để cài đặt. Để mã hóa, tôi sẽ cài đặt GnuPG phiên bản 1.4.x.Để bắt đầu, hãy cập nhật cơ sở dữ liệu kho lưu trữ của bạn và cài đặt các gói từ kho lưu trữ Ubuntu:
Mã:
sudo apt-get update
sudo apt-get install gnupg openssl python-virtualenv python-pip python-lxml git
Mã:
python --version
gpg --version
Mailpile yêu cầu PIL (Thư viện hình ảnh Python), do đó, chúng tôi cài đặt libjpeg, zlib1g và python-dev:
Mã:
sudo apt-get install libjpeg62 libjpeg62-dev zlib1g-dev python-dev
Bước 2 - Cài đặt và cấu hình Mailpile
Ở bước này, tôi sẽ cài đặt Mailpile vào thư mục "/opt/" rồi tạo một môi trường ảo python mới để cài đặt. Trước khi bắt đầu cài đặt, hãy sao chép mã nguồn Mailpile từ kho lưu trữ github vào thư mục opt.
Mã:
cd /opt/
git clone --recursive https://github.com/mailpile/Mailpile.git
Mã:
cd /opt/Mailpile/
virtualenv -p /usr/bin/python2.7 --system-site-packages mailpile-env
--system-site packages = Cấp cho môi trường ảo quyền truy cập vào các site-packages toàn cục.
mailpile-env = Thư mục cho môi trường ảo mới.
Sau đó kích hoạt môi trường ảo, đảm bảo rằng bạn đang ở trong Thư mục "/opt/Mailpile/" và cuối cùng kích hoạt nó.
Mã:
cd /opt/Mailpile/
source mailpile-env/bin/activate
Mã:
(mailpile-env)root@madhouse:/opt/Mailpile#
Tiếp theo, cài đặt các yêu cầu của mailpile bằng lệnh pip trong môi trường mailpile-env:
Mã:
pip install -r requirements.txt
Mã:
./mp
Trong ảnh chụp màn hình, chúng ta có thể thấy Mailpile đang chạy trên máy chủ cục bộ với cổng 33411.
Vậy hãy thử truy cập nó bằng lệnh curl từ shell máy chủ:
Mã:
curl -I localhost:33411
Mã:
HTTP/1.1 302 Found
Vị trí: /setup/welcome/
Bước 3 - Cài đặt Nginx
Cài đặt Nginx bằng lệnh apt này:
Mã:
sudo apt-get install nginx
Mã:
netstat -plntu | grep 80
Bước 4 - Tạo chứng chỉ SSL tự ký
Chúng ta hãy đến thư mục Nginx và tạo thư mục SSL mới tại đó:
Mã:
cd /etc/nginx/
mkdir -p /etc/nginx/ssl/
cd ssl/
Mã:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/mailpile.key -out /etc/nginx/ssl/mailpile.crt
Mã:
chmod 600 mailpile.key
Bước 5 - Cấu hình Mailpile Virtualhost
Trong bước này, tôi sẽ tạo cấu hình máy chủ ảo mới cho Mailpile. Máy chủ ảo này chỉ chuyển tiếp các yêu cầu đến trên cổng 80 đến Mailpile trên cổng 33411. Nginx là một proxy ngược an toàn và mạnh mẽ.Đi đến thư mục "sites-available" của Nginx và tạo một tệp mới có tên là "mailpile":
Mã:
cd /etc/nginx/site-available/
touch mailpile
Mã:
vim mailpile
Mã:
server {
# Tên miền Mailpile
server_name mail.mailpile.me;
client_max_body_size 20m;
# Cổng Nginx 80 và 334
listen 80;
listen 443 default ssl;
# Tệp chứng chỉ SSL
ssl_certificate /etc/nginx/ssl/mailpile.crt;
ssl_certificate_key /etc/nginx/ssl/mailpile.key;
# Chuyển hướng HTTP sang HTTPS
nếu ($scheme = http) {
trả về 301 https://$server_name$request_uri;
}
# Nginx Poroxy pass cho mailpile
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:33411;
proxy_read_timeout 90;
proxy_redirect http://localhost:33411 https://mail.mailpile.me;
}
}
Mã:
ln -s /etc/nginx/site-available/mailpile /etc/nginx/site-enabled/
systemctl restart nginx
Tiếp theo, hãy truy cập miền Mailpile (trong trường hợp của tôi làmail.mailpile.me) và bạn sẽ được chuyển hướng đến kết nối https.
Chọn ngôn ngữ mặc định, trong trường hợp của tôi là "Tiếng Anh" và nhấp vào "Bắt đầu".
Bây giờ hãy nhập mật khẩu của bạn để đăng nhập vào ứng dụng, hãy đảm bảo bạn có mật khẩu mạnh.
Và bắt đầu sử dụng Mailpile.
Quá trình thiết lập Mailpile đã hoàn tất, hãy nhập mật khẩu của bạn và nhấn "Enter".
Bạn có thể thấy trang thư ngay sau khi đăng nhập: