2018年12月9日 星期日

使用Proxmox Mail Gateway取代efa-project

從DistroWatch看到Proxmox的資訊,發現Mail Gateway年初就OpenSource了,想說efa-project能用web操作的功能有限,不容易給其他人維護,看了一下Proxmox的Mail Gateway幾乎是全Web操作的,所以就下載來試試看



與EFA的差異

1. EFA的filter rule調整需要改spamassassin設定,不熟悉的會改爛掉
   Proxmox的rule可以用web調整,包含符合條件後直行的動作也可以更換
   例如有高風險附件(.dll .exe)的預設是移除附件,但在實務上直接把附件移除完全沒反悔的機會


P.S 還是有一些阻擋功能是運作在底層的SMTP Server上,這些無法在條件這邊調整動作
https://forum.proxmox.com/threads/blacklist-whitelist-greylist-log.326/

2.隔離通知
在EFA如果沒在系統建立帳號則不會發送隔離郵件清單,所以之前用EFA的時候需要修改通知郵件發送的程式,而Proxmox如果只當做收件過濾閘道,不需要建立或同步郵件主機上的帳號,依舊會發送隔離通知給有隔離信件的使用者

在EFA的通知訊息跟程式是混在一起的(PHP),Proxmox是獨立的一個樣板檔案
底下是中文化後的樣板,只保留取回郵件URL連結,其他的功能都移除了
詳情可以參考官方討論區
https://forum.proxmox.com/threads/disable-users-to-have-access-quarantine.45124/

不過Proxmox的設定明明是相關的東西卻分散在不同的頁面
例如是否啟用通知與通知的樣板設定是分在兩個地方




3.隔離所項目清單
EFA從MailWatch介面可以直接看到所有的紀錄清單
Proxmox的隔離紀錄是需要輸入收件者Mail來做搜尋
而且無法使用網域名稱或者萬用字元來做模糊搜尋



因此筆者建議使用追蹤項目的搜尋來取代隔離所紀錄
這邊只需要時間區間就可以將郵件紀錄列出
不只是隔離,連同正常郵件的紀錄也有


4.全域白名單
與EFA類似,不過Proxmox輸入網域或者Mail Address是不同的類別
如果選擇正規表示法,然後輸入包含「@」的Mail 後綴實測無法符合條件


5.灰名單
筆者習慣關掉這個功能


6. VIM無法貼上
Proxmox使用Debian當作底層,預設沒有vim
可以使用apt-get install vim來安裝
不過安裝後發現無法在putty中貼上,只要輸入set mouse=r 就可以了
https://unix.stackexchange.com/questions/318824/vim-cutpaste-not-working-in-stretch-debian-9

另外如果是安裝在VM中可以順帶安裝open-vm-tools


7. postmaster網域問題
Proxmox的隔離郵件寄件者預設使用postmaster當作寄件者
有機會被Gmail判斷成垃圾郵件,研判可能因為帶入的domain為proxmox的主機名稱(postmaster@spam.domain),但對外的SMTP並非從這邊發出造成的


追蹤一下路徑發現程式是這樣寫的 (/usr/share/perl5/PMG/CLI/pmgqm.pm)
所以可已從mailfrom這個參數來設定寄件者


這個參數在Spam Detector的隔離

輸入的名稱不支援中文,格式需要包含Mail Address

8.中文化翻譯
目前Proxmox 5.1-2的繁體翻譯有些用語怪怪的,可以套用下面這個翻譯檔
原作者有做PV的翻譯,所以PMG應該過不久應該也會更新了
https://github.com/jasoncheng7115/pve-cpatch


9.增加隔離郵件通知寄送時間
目前的隔離郵件通知只會在每天往上十二點寄送
所以如果白天有信件盡到隔離區要隔天才會收到通知
只要在/etc/crontab中需要的時間點執行 /usr/bin/pmgqm send 命令即可
修改後要重新載入設定 /etc/init.d/cron reload