在 AWS EC2 內安裝 Proxmox Mail Gateway


紀錄一下在 AWS 環境安裝 Proxmox Mail Gateway 的過程,有滿多小細節需要注意的,踩過才會知道XD

新建 Instance

在建 Instance 時必須要選擇 Debian 11 來安裝,因為 PMG 是基於 Debian 所開發的。

Instance Type 建議選擇 c5 系列的機器,才有辦法在 EC2 網頁上看到機器的 Console (Nitro 才有支援 Serial Port 操作,請見 AWS 官方文件:執行個體類型

設定 SSH Key

記得幫機器 Assign 一個 Public IP 方便 SSH 連線,之後可以綁定 Elastic IP 來提供服務

硬碟先給個 20 GB

啟動 Instance

安裝 Proxmox Mail Gateway

使用 SSH Key 以 User admin 連線進入 Debian 後,切換到 root

sudo su -

新增 Proxmox Mail Gateway 的 APT Repo:

echo "deb http://download.proxmox.com/debian/pmg bullseye pmg-no-subscription" > /etc/apt/sources.list.d/pmg.list
wget wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg

移除 apparmor,AWS 預設提供的是包含 apparmor,但是 PMG 系統如果安裝 apparmor 會無法正常執行:

apt remove apparmor

更新套件庫並安裝套件,在 PMG 安裝過程中會移除 ifupdown,因此必須安裝 ifupdown 避免被移除導致 cloud-init 出問題,進而影響 EC2 網路連線

apt update
apt install -y proxmox-mailgateway ifupdown

最後再幫 root 改一下密碼以便登入 PMG 的後台,再把 PMG Enterprise 的 Repo 移除(如果有買訂閱就可以留著)

sudo passwd
sudo rm /etc/apt/sources.list.d/pmg-enterprise.list

重開機

sudo reboot

如此一來 Proxmox Mail Gateway 就安裝完成了。

可以用下面這個 user-data 在啟動 Instance 時直接安裝,root 的密碼為 awspmgawspmg

#!/bin/bash -xe
export DEBIAN_FRONTEND=noninteractive
exec > >(tee /var/log/cloud-init-output.log|logger -t user-data -s 2>/dev/console) 2>&1

echo "deb http://download.proxmox.com/debian/pmg bullseye pmg-no-subscription" > /etc/apt/sources.list.d/pmg.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
apt-get remove apparmor -yq
apt-get update
apt-get install proxmox-mailgateway ifupdown -yq
rm  -rf /etc/apt/sources.list.d/pmg-enterprise.list
echo -e "awspmgawspmg\nawspmgawspmg" | passwd root
reboot

透過 SSH Port forwarding 存取 Proxmox Mail Gateway Console

以 macOS 環境為例,輸入下方指令就可以將 8006 forwarding 到 localhost

ssh -L 8006:localhost:8006 -i .ssh/<PRIVKEY>.pem [email protected]<Instance's Public IP>

然後瀏覽器打開 https://localhost:8006/,發現會出現 NET::ERR_CERT_INVALID 錯誤,這時候你只需要停在這個頁面,直接輸入:

thisisunsafe

按下 Enter , 就可以 Bypass 這個頁面了。

申請 25/tcp 白名單

預設的所有 EC2 Instance 的 25/tcp 是會被阻擋的,需要去申請白名單,詳情請看官方文件:針對電子郵件應用程式使用反向 DNS


See also

comments powered by Disqus