摘要:不光是用于產品向客戶的通知服務更多的是用在企業內部的信息工具,比如我們就有等等非常多的開源工具,都需要配置來實現內部信息的聯動。
背景
smtp 是一種常見的服務,提供了程序自動化郵件外發的可能。不光是用于產品向客戶的通知服務;更多的是用在企業內部的信息工具,比如我們就有 sentry / confluence / zulip 等等非常多的開源工具,都需要配置 smtp 來實現內部信息的聯動。
當前最簡單的郵箱使用方式是使用開放的郵箱服務,比如現在很多小型企業在使用的企業郵箱,可以配置一個專門的賬號來提供發信服務。但是,這種方式存在非常大的安全隱患。
直接使用公開的賬號,很容易帶來安全問題:
自動化發信的程序需要用戶名和密碼,這些信息需要存儲在代碼或者配置中
有經驗的程序員知道將敏感信息分離,并且存儲在代碼庫外;然而新員工,或者安全意識不強的同事很容易將這些信息入庫
更糟糕的是,即使三令五申,有些程序員還是會無意的把代碼放到 github 上,這些是公開可以訪問的
然后就炸了
當郵箱賬號一泄露(一般 smtp 賬號同樣能登陸郵件賬戶或者使用 pop3 協議),郵件里面隱藏的一些敏感信息(尤其是 confluence 的通知郵件)會帶來更多的泄露,嚴重的可能會影響到我們競選總統。
一種解決方案是,加強所謂的安全流程,同時通過一些工具來驗證輔助(比如大家都在做的 github 掃描),但這種方式過于被動,而且無法從根本上來解決問題。技術上的問題,還得尋求技術方案來解決。
解決方案其實傳統的工具就可以解決這個問題,我們就采用了 postfix 作 smtp 中轉:
配置 postfix 作為 smtp replay 服務,將發信方與真正的郵件服務器隔離開來
發信方與 postfix 使用公司內部賬號(甚至無賬號)進行內網通信,這樣即使賬號泄露,也無法用來登陸郵箱獲取信息;同時,由于 postfix 是內部的服務,可以更靈活的配置防火墻
postfix 和 smtp 服務之間仍然使用 smtp 賬號,但這里只有系統管理員才需要知道賬戶,相對安全。另外,還需要進行自動刪信,禁用 pop3,微信登陸等手段來加強,這個 163 郵箱,qq 郵箱都有不同的配置,請自行設置
說白了,就是靠代理解耦來解決問題。熟悉我們的人估計一看就明白,因為我們很多問題都是靠這種方式來解決。下面簡要描述下配置供參考。
sudo vim /etc/postfix/main.cf #####以下是main.cf配置內容 relayhost = [$SMTP_HOST]:25 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous #配置重寫規則,強制修改發送郵件地址,防止smtp服務拒收郵件 ender_canonical_maps = pcre:/usr/local/etc/postfix/sender_canonical_map #####以上是main.cf配置內容 sudo vim /etc/postfix/sender_canonical_map #####以下是main.cf配置內容 /.*/ 發信smtp用戶名 #####以上是main.cf配置內容 sudo vim /etc/postfix/sasl_passwd #####以下是sasl_passwd配置內容 [$SMTP_HOST]:25 用戶名:密碼 #####以下是sasl_passwd配置內容 sudo postmap /etc/postfix/sasl_passwd sudo service postfix resart # done自動化集成
添加自己的 smtp 中轉服務,還可以配置無賬號登陸的方式,這樣在命令行中調用服務將更加簡單,這也是我們搭建 postfix 的另外一個原因。這里介紹兩種方式:
1、通過 curl 命令發送郵件最新版的 curl 命令支持 smtp / smtps , 不過發型版自帶的比較老,需要自己下載最新版本進行編譯安裝,使用的話相對簡單。
/usr/local/bin/curl -s -v --url "smtp://xxxx:25" --mail-from "sender@bigsec.com" --mail-rcpt "receiver@bigsec.com" --upload-file mail.txt # content of mail.txt From:xxx@bigsec.com To:xxx@bigsec.com Subject: curl發送郵件標題 xxxxx2、通過傳統的mailx命令來發送郵件
其實依舊是相對傳統的命令,比如 mailx 就能滿足我們的需要。不過安裝起來略顯麻煩,需要在每個發行版找各自合適的包,比如 ubuntu 就應該安裝 heirloom-mailx ,使用起來則更加簡單:
echo "test" |mail -S smtp=xxxx -r sender@bigsec.com -s subject receiver@bigsec.com
上面一條命令就可以將信息通過郵件進行發送。
我們更加傾向于采用第二種,因為比較簡單:這使得我們在大量的腳本中能很方便的集成郵件通知功能。
本文描述了通過 postfix 做 smtp relay 的方式來解決賬號泄露的風險,這也再一次驗證了兩點:
代理是王道,幫懶人快速解決問題。
技術遇到的問題必須用技術來解決,這比所謂的架構 / 流程要靠譜的多。
陸文,豈安科技聯合創始人,首席產品技術官
曾擔任PayPal資深高級工程師。參與豈安科技所有產品線的架構和設計,帶領團隊在數據挖掘、多媒體分析、跨數據中心分布式系統、高性能實時大數據計算、海量數據采集等領域進行前沿研究和產品化,推動豈安成為國內領先的大數據解決方案提供商。
反爬蟲
來源:www.bigsec.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40622.html
摘要:合規在像美國這樣對證券和投資有著嚴格監管的國家尤其重要。在美國,需獲得和其他監管機構批準的許可。的應用領域資產證券化作為發展的一個主要拓展點,未來如何能夠成為落地應用是關鍵節點。從具體應用領域來看,對資產證券化行業帶來了許多的變化。 ??近期的區塊鏈金融創新領域,各種投資手段頻頻上場。風靡一時的穩定幣還沒有火爆太長時間,STO便橫空出世,占據了各大頭條的眼球。幾乎在一瞬間,STO成為區...
閱讀 2652·2021-09-09 09:33
閱讀 2810·2019-08-30 15:54
閱讀 2867·2019-08-30 14:21
閱讀 2356·2019-08-29 17:15
閱讀 3579·2019-08-29 16:13
閱讀 2758·2019-08-29 14:21
閱讀 3421·2019-08-26 13:25
閱讀 2028·2019-08-26 12:14