開源項目在中小雲計算平臺的應用:郵件

2020-12-16 IT168

  【IT168信息化】前言:開放原始碼項目為中小企業快速搭建運營平臺已經成為普遍的選擇,在降低TCO總擁有成本同時,提供了很高的可訂製擴展性。網際網路各種雲服務目前很大一部分流量來自於LAMP(這是一組開源項目的縮寫:Linux一種開源作業系統,Apache一種開源網際網路伺服器,Mysql一種開源資料庫,Php一種開源跨平臺開發語言)技術支持的應用。本文結合在作者所在公司遠程心電監護雲健康服務平臺的搭建和運維過程所實施的各個開源平臺項目經驗為更多中小企業實施開源項目集成整合提供一定的指引。

  本文使用的名詞解釋參考

  一、郵件系統

  1.1 郵件系統應用情況介紹


▲圖2-1

  本方案使用Extmail開源郵件系統作為解決方案核心,在保障安全性方面採用基於SSL數字證書PKI公私密鑰體系建立的安全傳輸協議SMTPS/POP3S/HTTPS,實現郵件客戶端和伺服器通訊加密,有效降低郵件洩密風險。在管理易用性方面通過authlib插件集成windows active directory用戶登錄認證,使用戶郵件密碼和作業系統密碼統一,提高用戶易用性和管理效率。在阻止垃圾郵件方面,在保障郵件到達率前提下充分利用各種過濾插件過濾垃圾郵件及病毒,同時自行開發郵件屏蔽監控插件,保障被屏蔽的正常郵件可以被及時發現解決。

  1.2 開源項目介紹

  1.2.1 項目介紹

  「ExtMail最初以WebMail軟體為主,後逐步完善配套並形成了ExtMail郵件系統,提供完整的SMTP/POP/IMAP/Web和管理支持。」—摘自www.extmail.org。為本方案提供HTTP服務。

  Postfix是一個著名的郵件傳輸代理(MTA)軟體,出自IBM Research,是一個功能類似Sendmail,內核完全不同的MTA,基於模塊化,致力於快速、易管理、安全等特性開發。為本方案提供SMTP服務。

  Courier項目是一個集成多個組件的郵件解決方案,本方案以Courier-IMAP實現POP3服務,以Courier-Authlib實現用戶身份查詢驗證服務。

  Courier-IMAP,IMAP郵件伺服器軟體,來自Courier開源郵件項目,提供IMAP郵件收取服務,同樣可提供POP3服務,除Courier外這個組件也能應用於Postfix、Qmail、Exim等其他支持投遞Maildir的郵件伺服器。為本方案提供POP3服務。

  Courier-Authlib,Courier郵件系統的身份驗證庫,獨立軟體包,用於發送接收郵件時的用戶身份驗證。通過集成後端的windows active directory為SMTP/POP3/HTTP三項郵件功能提供身份查詢驗證服務,實現域帳戶統一認證。

  1.2.2 橫向對比

  郵件系統的核心是MTA(Message Transfer Agent),本郵件系統的MTA基於Postfix,Postfix相比Sendmail和Qmail等其他開源MTA來說性價比更高。其安裝配置簡單靈活,模塊化設計,配置文件少,管理方便;擴展性好,源自sendmail,擴展配置豐富,提供外部對接API/protocol;低消耗高效率,單一隊列,磁碟I/O開銷小,發送效率高。新浪、yahoo使用qmail,網易、搜狐等使用Postfix支撐百萬甚至千萬用戶級別的商業運營也說明Postfix的穩定性足夠高。

  應用特性對比參考視圖(http://shearer.org/MTA_Comparison#How_To_Compare_MTAs )--by Dan Shearer

  由此表格可以看出Postfix相比其他MTA在文檔及社區支持、示例、安全性、可管理性上有明顯優勢,因此Extmail選擇Postfix作為MTA,為郵件應用系統提供有力支撐。

${PageNumber}

  1.3 本地化定製

  1.3.1 安全配置

  本方案安全配置基於PKI公私密鑰體系,使用OpenSSL工具包裡的CA根證書認證機制,實現自主籤發CA根證書和伺服器端證書以及客戶端證書,未來根據安全性的進一步需求可以升級為第三方可信CA籤發數字證書提供SSL協議加密傳輸的SMTPS/POP3S/HTTPS服務。

  首先用OpenSSL工具生成所需CA根證書及密鑰,pop3需要單獨的證書,可用mkpop3dcert生成,然後配置courier-imap、postfix使其支持pop3s和smtps。Web頁面訪問的https需要先拷貝CA根證書到apache證書目錄,並加載ssl模塊,如果想只用https訪問郵件web頁面可通過Redirect跳轉實現。配置完成之後重啟pop3d-ssl、postfix、apache服務。如果客戶端沒有安裝根證書會出現類似如下警告


▲(web頁面提示)


▲(outlook郵件客戶端提示)

  1.3.2 集成Windows Active Directory 用戶登錄認證

  Windows域增強了企業計算機網絡管理的安全與高效,extmail郵件系統也可以集成域用戶的認證機制,加強郵件系統安全與易用性。集成的關鍵是authlib插件,extmail採用authlib來進行用戶認證,我們可以讓authlib改為查詢windows AD域的帳戶完成認證。要做到這些需要在域上新建一個OU組存放所有郵件帳戶,配置authlib查詢此帳戶組,並分別修改postfix、courier-imap、extmail的配置文件,具體配置請參考網際網路相關項目的說明文檔或聯繫筆者。這裡對域控的安全性結合配置進行特別說明,結合本方案的實際使用情況,一旦主域發生故障需要在5分鐘之內切換到備域登錄,可通過一個ping腳本,取其5次ping結果,如果為零則自動修改authlib配置文件中的LDAP_URI值為備份登錄域IP位址,將此腳本加入crond任務每5分鐘執行一次,腳本裡可再加一條判斷語句,當主域恢復時再自動切換回去。

i=0
pingresult
=`ping -c 5 master domain ip |grep transmitted |awk '{print $4}' `
checkhost=`cat /etc/authlib/authldaprc |grep slave domain ip |awk '{print $1}' `

if [ "$pingresult" -eq 0 ]
  
then
    i
=$(expr $i + 1)
    echo $i
> /root/ldapcheck.log
    sed
-i 's/ master domain ip / slave domain ip /g' /etc/authlib/authldaprc
    sleep 2
    authdaemond restart
  
else
    
if [ $checkhost = LDAP_URI ]
      
then
      sed
-i 's/ slave domain ip / master domain ip /g' /etc/authlib/authldaprc
      sleep 2
      authdaemond restart

    fi
fi

  1.3.3 群發限制

  利用postfix配置規則限制特定用戶(local_sender)發送郵件到特定本地郵件組(local_recipient)的權限。

smtpd_restriction_classes = local_only
local_only
= check_sender_access hash:/etc/postfix/local_sender,reject
smtpd_recipient_restrictions
=
        check_recipient_access hash:
/etc/postfix/local_recipient,
smtpd_sender_restrictions
=
    check_sender_access hash:
/etc/postfix/sender

  1.3.4 垃圾郵件策略及拒收郵件監控

  Postfix 支持很多擴展插件,包括slockd、amavisd-new、clamav、spamassassin、dspam等各種防垃圾、內容過濾、病毒查殺等插件,以slockd為例,slockd是基於SMTP行為識別為核心的反垃圾郵件軟體,它通過加載執行不同的插件在SMTP會話階段判斷屏蔽垃圾郵件,效率較高,但誤報率也高,通過關閉一些默認開啟的插件可有效提高郵件通過率,比如針對國內郵件錯誤率較高的RBL、SPF等,對於那些必須保證通過的郵件,例如重要的合作夥伴等的郵件可通過開啟白名單來控制誤報。

  發送失敗的郵件有退信可查看,但有些被錯誤拒絕的郵件沒有郵件提醒,為及時了解被屏蔽郵件的情況,可通過腳本捕捉maillog日誌中的reject語句,將這些信息存放於一個臨時文件並定期將內容發送到管理員郵箱,為及時發現被「錯誤」阻止的郵件提供有效手段。

MAIL_COMMAND=/bin/mail
TOMAIL
="管理員mail地址"
TMPMAILBODY
=/root/mailreject.tmp

cat
/var/log/maillog | grep 'reject' |egrep -v 'rejected: User unknown|NOQUEUE: reject|rejected: not logged in|reject: RCPT from unknown |tac  >/root/mailreject.log  //tac表示後面幾種排除掉,因為這些都是『正常』錯誤
if [ `cat  /root/mailreject.log | wc -l` -gt 0 ]
then
echo
-e "-----------------------------alert-log------------------------------" >$TMPMAILBODY
while read line
do
echo
"$line" >>$TMPMAILBODY
echo
-e "\n------------------------------------------------------------\n" >>$TMPMAILBODY
done
</root/mailreject.log
$MAIL_COMMAND
-s " REJECT mail Alert" $TOMAIL <$TMPMAILBODY
fi

  收到的信息大概如下

  1.4 系統應用總結

  本方案現管理用戶120人,每天發送接收郵件4000封左右,系統從開始正式運行到現在2年多,除正常升級停機外,至目前為止沒有出現故障。


 

  作者介紹:

  ·Tony湯文志 目前供職於中衛萊康任系統研發部總監兼IT支持部總監10年無線網際網路軟體研發經驗,曾供職於多家無線網際網路企業包括華友世紀(Nasdq:HRAY),搜狐(Nasdq:SOHU)負責無線網際網路研發工作,參與多個電信級的運營商無線增值平臺的開發。2007年進入遠程健康管理企業中衛萊康負責遠程心電監護平臺的研發和系統支持工作,在遠程健康管理平臺建設過程中應用各種開源項目,積極推動開源項目的推廣使用,倡導中小企業優先應用開源項目搭建支撐平臺。點擊作者微博 博客 郵件 

  ·Frank 趙傑 目前供職於中衛萊康 任it支持經理 參與本文郵件方案和監控方案編寫

 

相關焦點

  • 雲計算平臺有哪些_幾種雲計算平臺的介紹
    PaaS 平臺即服務PaaS(Platform-as-a- Service):平臺即服務。PaaS實際上是指將軟體研發的平臺作為一種服務,以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。例如:軟體的個性化定製開發。
  • 雲計算平臺有哪些_幾種雲計算平臺的介紹
    PaaS 平臺即服務PaaS(Platform-as-a- Service):平臺即服務。PaaS實際上是指將軟體研發的平臺作為一種服務,以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應用。但是,PaaS的出現可以加快SaaS的發展,尤其是加快SaaS應用的開發速度。例如:軟體的個性化定製開發。
  • 百度開源平臺上線,聚合百度開源項目
    百度公司近日上線「百度開源平臺」,該平臺主要用來展示百度的開源項目。 EST:一個基於LESS的樣式工具庫,幫助開發者更輕鬆地書寫LESS代碼 ER:一個富瀏覽器端web應用的框架,可以方便地構建一個整站式的AJAX web應用 Tangram:一款實用的JavaScript基礎庫,可以迅速構建出高度互動的Web應用程式 Cafe:一款Android平臺的自動化測試框架,框架覆蓋了Android
  • 百度開源2020年度報告:兩大開源平臺、九個捐贈項目
    導讀「從 2009年大規模定製 Hadoop到 2013年第一個前端可視化產品 ECharts率先開源,再到2016年和2017年分別正式對外開源飛槳(PaddlePaddle)、Apollo兩大平臺,截止目前,百度已在Github主導的18個開源組織累計開源項目1,023個、社區貢獻者20,000+、獲得Star總數210,000+。
  • 雅虎開源了Web應用安全掃描器Gryffin
    在今年2月份,谷歌針對雲計算領域發布了一款名為「Google Cloud Security Scanner」(谷歌雲安全掃描器)的工具軟體,該產品可以更高效地在其雲平臺上掃描安全漏洞。雷鋒網獲悉,日前雅虎也開源了一款測試版的安全掃描器Gryffin,據悉,該項目是針對Web應用的。目前已經可以在Github上獲得。據介紹,Gryffin實際上相當於一個Go和JavaScript的聯合平臺,主要功能是幫助系統管理員掃描URL來查找惡意Web內容和常見的安全漏洞,範圍與其他安全掃描器類似,包括SQL注入和跨站腳本(XSS)。
  • OpenStack7歲了,最大開源平臺離不開中國雲力量
    2017年,開源平臺OpenStack已經誕生7年了。7年來,中國雲計算經歷了從概念到行業應用再到企業轉型標配的快速蛻變。OpenStack也發展成為當前雲服務市場上使用最廣泛的開源平臺和業界認可的雲服務框架。 7月24日,OpenStackDays China 2017在北京國家會議中心拉開帷幕。
  • 2026 年全球開源數目將超 3 億!中國開源爆發進行時,關於中國開源...
    是 2019 年 GitHub 上貢獻者最多的開源項目,其次是谷歌的機器學習平臺 TensorFlow、容器編排平臺 Kubernetes 和 Facebook 的移動應用開發框架 React Native框架。
  • 雲計算簡史(完整版)
    我通過描繪雲計算技術和市場領域的發展過程,介紹關鍵技術和市場裡程碑,包括不同技術域下的核心開源項目,讓企業能夠對雲計算發展歷史和相關技術域有一個通盤的了解。有了通盤的認知,你會更容易看透本企業應該怎樣利用雲計算,未來可能的市場機會和挑戰在哪裡?
  • 雲計算必須基於真正的國產化平臺
    目前,國內有三位數的雲計算廠商,但真正掌握核心技術的缺少之又少,大部分雲計算廠商高度依賴海外技術,比如CPU從英特爾購買,或者是引進IBM和ARM源碼,軟體則基於國外開源產品進行修改。就商業市場而言,這種做法是可行的,但就政務雲市場而言,這種做法就未必妥當了。如果說開源軟體還屬於廠商可以查漏補缺減少後門的範疇,那麼,基於英特爾、ARM的CPU則完全就是黑箱。
  • 一文了解雲計算,全世界一臺計算機
    而公認的雲計算系統框架分為三層:IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟體即服務),這三層可以理解為IaaS即底層的基礎計算資源(主要包括計算、存儲和網絡)、PaaS即IaaS之上和應用層之下的中間層(主要包括雲化資料庫、雲化消息列隊、雲化應用管理平臺等)、SaaS即各類雲應用(包括ERP雲、CRM雲、HCM雲等)。
  • 京東雲參加2019中國開源年會
    未來,京東雲BDS團隊還會不斷開源其他的全節點服務。京東雲提供四大開源扶持計劃京東云為開源項目提供免費雲服務及雲市場生態資源支持,解決開發者在開源項目發展過程中遇到的缺乏底層雲資源、技術支持、生態合作等問題。助力開源項目快速發展,成就開源夢想。
  • 工信部劉龍庚:雲計算混源表現良好
    質量保證正在建雲計算測試床,也在我們相應的機構裡做,並且在中日韓合作裡也提出了相應的一些建議,現在也需要我們進一步推進,應用推廣方面我們正在做一個雲計算的示範試點,在國內的一些應用。從這些應用裡我們可以看出我們技術和產業的不一樣,這是成立研究院中心的使命。最主要的是開展一些服務,最終完成我們項目的實施和諮詢。
  • KubeVela 正式開源:一個高可擴展的雲原生應用平臺與核心引擎
    Open Application Model (OAM) 社區,以及來自阿里雲、微軟雲的 OAM 項目維護者們在演講中共同宣布了 KubeVela 開源項目的正式發布。從 11 月 18 號到 20 號,在為期三天的 KubeCon 北美峰會上有連續 3 場技術演講,會從不同維度介紹關於 KubeVela 項目的具體細節,其中還包括一個長達 1 個半小時的 KubeVela 互動教學環節。多個重量級組織以如此規模和密度在 KubeCon 北美峰會演講中介紹一個首次發布的社區開源項目,在 KubeCon 誕生以來並不多見。
  • ...雲推出兩大平臺,與七大主流開源公司合作;IBM確認出售營銷雲業務
    本周(2019年4月8日~4月14日)產業動態經鈦媒體編輯整理如下:谷歌雲宣布推出兩大平臺:大型混合雲平臺Anthos和無伺服器計算平臺Cloud Run,與7家主流開源公司合作美國時間4月9日,Google Cloud Next 19大會在舊金山在Moscone中心如約而至。
  • 榕基軟體聯合京東雲計算 打造5G應用示範項目
    9月10日晚,榕基軟體公告稱,公司與京東雲計算有限公司(下稱「京東雲計算」)籤訂戰略合作協議,雙方將圍繞人工智慧、大數據、5G、工業網際網路等新基建領域開展緊密合作,包括共建人工智慧開放創新平臺、共同打造5G應用示範項目等。
  • 騰訊雲虛擬化技術團隊:為什麼堅定不移擁抱開源
    根據全球最大開原始碼託管平臺 GitHub 年度報告數據顯示,截至 2019 年 GitHub 託管倉庫已有 1.4 億,2019 年新增倉庫 400 萬個,創建第一個項目的用戶比 2018 年增加44%,130 萬開發者對開源做出首次貢獻。SourceClear 調查報告指出開源項目已呈現指數級增長趨勢,2026 年預計超過 3 億。
  • 五個優秀的開源桌面安全應用程式
    這些工具體現了自由和開源軟體領域的技術創新和聰明才智。請記住,所有這些應用程式(只有一個除外)都是跨平臺的。因此,你可以找到合適的版本運行(如BSD、Mac OSX、Linux或者Windows版本)。然而,這裡的例子將主要是裝機量最多的(統計上的):微軟的Windows。
  • 踐行開源 新華三閃耀OpenStack Days China 2017
    新華三集團雲計算產品線業務拓展總監王宏亮在主題演講中表示,雲計算的起源和發展得益於開源,也是承載更多新型開源技術的平臺。這對於廠商來說,必須具備更為強大的融合能力和交付能力。對此,新華三會依據科學的企業雲計算開源能力評估模型,採用不同的策略導入開源架構,通過選擇、整合、優化和發布四個步驟,最終形成整合交付的雲計算解決方案,讓客戶既能享受到開源技術帶來的技術優勢,也能通過商業化解決方案確保方案實施的快速落地。中國海洋石油總公司網際網路+工作組組長、信息化部總工程師侯曉峰隨後與大家分享了OpenStack在海油雲平臺中的成功應用。
  • 「開源中國 開源世界」高峰論壇 今日正式開始
    James SU, Google11:50-12:10中國開源行業現狀與開源社區對開源發展的促進作用午 歇 Lunch Break13:30-13:50開源雲計算的現在和未來Andrew HU, President of Red Hat Greater China13:50-14:10合作創新,促進開源應用
  • 京東商城技術副總裁兼首席科學家何剛:雲計算平臺發展的挑戰
    對於他們來說,最重要的是開源,這個源不一定完全是指錢,也可能是積累用戶數。所以,對雲計算平臺來說,光從成本上、項目上,對於中小企業,特別是創業公司的吸引力,還是有一定限制的。這一點在國外是不一樣的,我們到矽谷去看一看,矽谷的CV給創業公司投錢的時候,只要有好的技術、好的想法,那麼他就願意掏錢。在中國不是這樣的,你去找VC,他直接關心的就是市場怎麼運營、你怎麼賺錢。