Ob2d openwebmail
出自 Itsmw
簡介
OpenWebmail 2.5x 系列只能安裝在 OB2D/Ubuntu 11.04 上,但隨著 Linux 發行版本的升級,原本的 2.5x 版由於套件太舊,所以被排除在外而無法安裝。還好該專案已由 acatysmoof.com 轉手維護,目前已有 3.x 版出現,因而使得較新的 Ubuntu / Debian 也有機會可以繼續使用。在 OB2D 及 Ubuntu 12.04 的安裝請見本文,在 Ubuntu 11.04 上的安裝與使用,請參考筆者拙著「Ubuntu Linux 網管手冊」。
安裝 openwebmail
OB2D sqz系列
底下動作,皆是以 root 身份,在 /root 目錄底下運作。
- apt-get update
- apt-get remove libcrypt-eksblowfish
- apt-get install libparent-perl perl-suid libnet-ldap-perl libauthen-pam-perl libpg-perl libconvert-asn1-perl libcrypt-eksblowfish-perl
- wget http://ftp.debian.org/pool/main/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb
- wget http://openwebmail.org/openwebmail/download/debian/owm2.53-2.deb
- dpkg -i *.deb
- wget http://myip.tw/download/auth_unix.pl.zip
- unzip auth_unix.pl.zip
- cd /usr/lib/cgi-bin/openwebmail/auth/
- mv auth_unix.pl auth_unix.pl.old
- cp /root/auth_unix.pl ./
- cd
- 執行安裝時 Openwebmail 設定訊息
- Send the site report?(Y/n) n
Ubuntu 12.04 上安裝 OpenWebmail 3.0
加裝兩個 perl 模組
- 要加裝的兩個 perl 模組分別為:libauthen-pam-perl 及 libhtml-template-perl ,libauthen-pam-perl 可以直接裝入,但 libhtml-template-perl 必須強迫安裝 2.9.x 版才行。
- libauthen-pam-perl 安裝
root@dns:~# apt-get update
root@dns:~# apt-get install libauthen-pam-perl - libhtml-template-perl 安裝
- 換至 /root 資料夾底下
root@dns:~# cd - 手動下載舊檔
root@dns:~# wget http://ftp.isu.edu.tw/pub/Linux/Ubuntu/ubuntu/pool/main/libh/libhtml-template-perl/libhtml-template-perl_2.9-2_all.deb - 手動安裝
root@dns:~# dpkg -i libhtml-template-perl_2.9-2_all.deb
- 換至 /root 資料夾底下
下載&解壓縮
- 下載:http://openwebmail.acatysmoof.com/download/current/openwebmail-current.tar.gz
- 切換成 root 身份
user@dns:~$ sudo -i - 解壓縮
root@dns:~# tar -xvzf openwebmail-current.tar.gz
安裝
- 把原始碼複製到 Apache2 網頁及 cgi-bin 處
- root@dns:~# cp -rf cgi-bin/openwebmail /usr/lib/cgi-bin/
- root@dns:~# cp -rf data/openwebmail /var/www/
- 建立 logfile
- root@dns:~# touch /var/log/openwebmail.log
- root@dns:~# chown root:mail /var/log/openwebmail.log
- 把 redirect.html 複製成 index.html
root@dns:~# cp -p /var/www/openwebmail/redirect.html /var/www/openwebmail/index.html
- 更改 openwebmail.conf
root@dns:~# cd /usr/lib/cgi-bin/openwebmail
root@dns:/usr/lib/cgi-bin/openwebmail# vi etc/openwebmail.conf
把
ow_cgidir /usr/local/www/cgi-bin/openwebmail ow_cgiurl /cgi-bin/openwebmail ow_htmldir /usr/local/www/data/openwebmail ow_htmlurl /openwebmail
變成
ow_cgidir /usr/lib/cgi-bin/openwebmail ow_cgiurl /cgi-bin/openwebmail ow_htmldir /var/www/openwebmail ow_htmlurl /openwebmail
- 為 Ubuntu 建立 auth_unix.conf 設定檔
root@dns:/usr/lib/cgi-bin/openwebmail# cp etc/defaults/auth_unix.conf etc/ - 修改 auth_unix.conf 內容
root@dns:/usr/lib/cgi-bin/openwebmail# vi etc/auth_unix.conf
把
passwdfile_plaintext /etc/passwd passwdfile_encrypted /etc/master.passwd passwdmkdb /usr/sbin/pwd_mkdb
變成
passwdfile_plaintext /etc/passwd passwdfile_encrypted /etc/shadow passwdmkdb none
- 建立 dbm.conf
root@dns:/usr/lib/cgi-bin/openwebmail# cp etc/defaults/dbm.conf etc/ - 修改 dbm.conf 內容
root@dns:/usr/lib/cgi-bin/openwebmail# vi etc/dbm.conf
把
dbm_ext .db
變成
dbm_ext .pag
初始化 openwebmail
- 初始化 openwebmail (.pl files will automatically be C wrapped if perl version is 5.12 or higher)
root@dns:/usr/lib/cgi-bin/openwebmail# ./openwebmail-tool.pl --init- 初始化時,下面這個問題,必須答「n」
Send the site report?(Y/n) n
- 初始化時,下面這個問題,必須答「n」
- 注意:如果已經啟用SELinux功能,請執行下面步驟(Ubuntu 預設是沒啟動的,可以跳過)
# update all the openwebmail files to run safely under SELinux chcon -u system_u /var/log/openwebmail.log chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log restorecon -R /var/www/{htdocs,cgi-bin}/openwebmail chcon -R -t httpd_sys_content_t auth etc lib misc modules quota shares chcon -t httpd_unconfined_script_exec_t /usr/lib/cgi-bin/openwebmail/openwebmail*
- setuid the .pl files
root@dns:/usr/lib/cgi-bin/openwebmail# chmod 4755 openwebmail*.pl - 若此次是升級(例 3.0 b1 -> 3.0 b4),請再執行以下這條指令
root@dns:/usr/lib/cgi-bin/openwebmail# ./openwebmail-tool.pl --alluser --index
測試連線
- 結束,試用看看吧!
http://your.domain/openwebmail/
進階設定
把功能列改成中文版
連結方式:注意網址列不要再加 dns
OpenWebmail 會依據您所輸入的網址列為寄件主機,例如:
- 輸入 http://www.xxx.tnc.edu.tw/openwebmail 後登入,寄件者會變成 user@www.xxx.tnc.edu.tw
- 輸入 http://163.26.xxx.1/openwebmail 後登入,寄件者很可能會變成 user@dns.xxx.tnc.edu.tw,依 hostname 值決定
- 輸入 http://xxx.tnc.edu.tw/openwebmail 後登入,寄件者才會變成 user@xxx.tnc.edu.tw
因此,建議各校網管人員,在首頁的超連結上,要加上 http://xxx.tnc.edu.tw/openwebmail。另外,因為台南縣有一台郵件過濾器,可以在 OpenWebmail 之下再加一組取回信件的超連結 http://spamfilter.xxx.tnc.edu.tw:1680,方便學校人員點選。
把 OpenWebmail 納入加密的網頁通道(HTTPS; 443)
把 OpenWebmail 納入加密的網頁通道(HTTPS; 443)最大的好處在於,使用者於公眾網路(餐廳、車站...etc)收發信件時,所有傳輸的封包皆被加密,因此若網段內有人偷裝封包攔截器,也無法直接取得使用者的帳號、密碼及信件內容等個人資料。
為 apache2 建置 ssl 通道(以大成國小為例)
請參考右文: 在 OB2D 上建立加密網頁通訊
把 OpenWebmail 改為 HTTPS
- 編輯 /usr/lib/cgi-bin/openwebmail/openwebmail.pl , 在最上面註解下面, 加上
# added by OLS3 (ols3@lxer.idv.tw) if ($ENV{'HTTPS'} ne 'on') { print "Content-type: text/html\n\n"; print <<HERE; <html> <head><meta http-equiv="Refresh" content="0;URL=https://$ENV{'HTTP_HOST'}/cgi-bin/openwebmail/openwebmail.pl"> </head> <body onload="window.open('https://$ENV{'HTTP_HOST'}/cgi-bin/openwebmail/openwebmail.pl','_top')"> </body> </html> HERE exit; }
- 本段是說, 若使用者輸入 http://your.host.name/openwebmail/ 強制轉到 https 通道
OpenWebmail資安--Fail2Ban
首先,要先感謝國眾電腦阿寶哥介紹 Fail2Ban,以下的設定檔,大部是參考其提供的資料寫成。言歸正傳,之所以介紹 fail2ban 的原因在於網路上有很多網蟲會使用 network script 不斷的 try OpenWebmail 上使用者密碼,一旦被試中,立即變成垃圾信的跳板。因此就如同 denyhosts 之於 SSH 服務一樣,可以採用 fail2ban 來防止駭客透過 OpenWebmail 猜使用者密碼。
Fail2ban 是一套使用 Python 開發,並以自由軟體授權(GPLv2)的資安軟體。它可藉由分析記錄檔,對「猜測密碼」的行為具有一定程度的阻擋作用。因此它適用於 ftp, SSH, mail 等系統。
B2D Server/OB2D sqz 作法
由於 B2D Server 採用最新的原始碼手動安裝,與 OB2D sqz apt-get 所安裝的版本一樣,所以除了安裝過程外,設定方式一致。
安裝
- B2D Server 下載安裝
- apt-get update
- apt-get install python-dev
- fail2ban 0.8.4
- tar xjvf fail2ban-0.8.4.tar.bz2
- cd fail2ban-0.8.4/
- python setup.py install
- OB2D sqz 安裝
- root@dns:~# apt-get update
- root@dns:~# apt-get install fail2ban
- 執行 client 程式測試,若可正常跑出使用說明即代表安裝完成
- fail2ban-client -h
設定
要修改兩個設定檔,一個是 /etc/fail2ban/jail.conf --> 設定要啟用 openwebmail 的防禦;另一個是配套設定檔 /etc/fail2ban/filter.d/openwebmail-auth.conf ,這裡頭放了過濾的細則。
- 編輯 /etc/fail2ban/jail.conf 並修改/新增(紅字部分)部分內容
# 以下這三個參數值,請自行斟酌修改 # 其意義為:在 findtime 秒之內,密碼輸入錯誤高達 maxretry 次以上時,便得阻擋 bantime 秒 |
- 新增 /etc/fail2ban/filter.d/openwebmail-auth.conf
# Author: Cyril Jaquier |
啟動/關閉
- B2D Server
由於 B2D Server 必須由原始碼安裝,因此無法套用至 ntsysv 或使用 service 指令來處理。- 啟動
root@dns~# fail2ban-client start - 關閉
root@dns~# fail2ban-client stop - 將下面指令寫入 /etc/init.d/rc.local 最後一行即可在開機時自動啟動
- 啟動
strFail2ban=$(netstat -nlp|grep fail2ban.sock) if [ "$strFail2ban" == "" ]; then /usr/bin/fail2ban-client start fi
- OB2D sqz
- 啟動
root@dns:~# service fail2ban start - 關閉
root@dns:~# service fail2ban stop - 永遠啟用,請執行 ntsysv 設定
- 啟動
OB2D e 系列作法
本段只在 OB2D e 系列主機測試運行,其他 OB2D 平台作法可能有所不同。
安裝
- apt-get update
- apt-get install fail2ban
- 執行 client 程式測試,若可正常跑出使用說明即代表安裝完成
- fail2ban-client -h
設定
要修改兩個設定檔,一個是 /etc/fail2ban/jail.conf --> 設定要啟用 openwebmail 的防禦;另一個是配套設定檔 /etc/fail2ban/filter.d/openwebmail-auth.conf ,這裡頭放了過濾的細則。
- 編輯 /etc/fail2ban/jail.conf 並修改/新增(紅字部分)部分內容
# ssh 預設啟動阻擋, 建議關閉 |
- 新增 /etc/fail2ban/filter.d/openwebmail-auth.conf
# Author: Cyril Jaquier |
- 測試設定檔 root@dns:~# fail2ban-client start
- 此時會把啟動時所有的訊息列出,供網管人員檢視,若正常,以後才可改用 service fail2ban start
- 網路檢查
- 使用 netstat -nlp ,會發現 fail2ban.sock 的呈現
- 使用 iptables -L 會發現多出 openwebmail-auth 的 CHAIN
啟動/關閉
在 OB2D 上就與其他伺服套件一致,使用 ntsysv 來管理是否開機啟動,手動的方式如下:
- 啟動
root@dns~# service fail2ban start - 關閉
root@dns~# service fail2ban stop