0 spark集群web功能被攻擊
在使用aws提供的spark集群時探遵,經(jīng)常會用到spark集群的web功能沾瓦,以便于查看集群上任務(wù)的運行情況以及相關(guān)日志。最初使用時谅将,為了可以在瀏覽器中訪問到spark集群的各個web功能逮走,設(shè)置了一個開放所有端口的安全組(是極其不安全的)鸠蚪。最近一段時間使用時,發(fā)現(xiàn)集群中啟動了非常多的無效任務(wù)师溅,這些任務(wù)再啟動起來之后馬上被kill了邓嘹。經(jīng)過追查,原因是集群web功能的網(wǎng)址被泄漏了险胰,導(dǎo)致集群被攻擊汹押。攻擊者可以通過集群的web功能直接向yarn的ResourceManager發(fā)送請求來啟動任務(wù)。雖然可以這種方式可以提交任務(wù)起便,但是因為這種方式無法獲取到集群的運行權(quán)限棚贾,最后導(dǎo)致了其任務(wù)再啟動的時候就會被kill。雖然攻擊者無法使用集群資源榆综,但是頻繁的啟動這些無效任務(wù)對集群也是一種資源上的消耗妙痹。
要解決集群被攻擊的問題很簡單,只需要刪除開發(fā)所有端口的配置刪除掉就可以了鼻疮。但是這種方式也直接導(dǎo)致了我們自己使用集群web功能遭到限制怯伊,為了方便我們自己使用集群的web功能,參考aws的使用文檔判沟,可以使用下一節(jié)的方式來解決耿芹。
1 解決集群web功能訪問受限問題
主要的解決辦法是建立ssh通道,然后使用瀏覽器的proxy功能挪哄,具體步驟如下所示:
- 首先吧秕,通過建立ssh通道,使用端口轉(zhuǎn)發(fā)功能將本地端口映射到集群的master機器上迹炼,這里使用本地的8157端口具體代碼如下所示:
ssh -i your_private_key.pem -ND 8157 hadoop@ec2-*****.compute.amazonaws.com
需要注意的是砸彬,當這條指令執(zhí)行之后會一只處于阻塞狀態(tài),執(zhí)行的終端也是不能關(guān)閉的斯入。在日常使用時這是很不方便的砂碉,為了后續(xù)使用,最好使用nohup來啟動這個指令讓其在后臺持續(xù)運行刻两。后續(xù)使用時增蹭,每次斷網(wǎng)或者電腦重啟之后可能都需要重新運行這條指令,這里可以為這個ssh通道創(chuàng)建一個crontab任務(wù)闹伪,讓其檢查這個指令的運行是否正常沪铭,當這條指令運行不正常時重啟指令壮池。
- 然后使用瀏覽器proxy偏瓤,將瀏覽器的流量轉(zhuǎn)發(fā)的本地8157端口杀怠。因為之前已經(jīng)建立好了本地8157端口到集群master的ssh通道,這樣瀏覽器的請求就會轉(zhuǎn)發(fā)到master這臺機器上厅克,在master本機上訪問集群的web功能就沒有任何限制的赔退。通過這種方式就可以訪問到集群的web功能了。
2 使用chrome瀏覽器上設(shè)置proxy
這里使用的是chrome應(yīng)用商店上的foxyproxy插件证舟,通過如下步驟進行設(shè)置:
-
在chrome中安裝foxyproxy插件硕旗,搜索foxyproxy,選擇FoxyProxy Stadard添加到CHROME中即可女责,如下圖所示
chrome安裝foxyproxy -
打開foxyproxy中的options選項漆枚,進入3中所示的界面
進入foxyproxy設(shè)置 -
點擊下圖中的Add New Proxy按鈕
添加新的proxy -
按照下面所示,對其中的內(nèi)容進行設(shè)置
General中抵知,修改color為綠色墙基,默認是藍色
修改proxy顏色為綠色
Proxy Details中,做如下修改
修改proxy details
最后添加URL Patterns
添加URL Patterns
3 訪問集群web功能
只需要打開foxyproxy中的剛剛設(shè)置好的Use Proxy india_spark for all URLs既可以訪問集群的web功能刷喜。需要注意的是残制,打開這個proxy之后,在訪問其他網(wǎng)頁的時候速度會變的非常慢掖疮,主要原因可能是其他的網(wǎng)頁也會轉(zhuǎn)發(fā)到master機器上了初茶,這樣訪問其他網(wǎng)站就會變慢。為了解決這個問題浊闪,可以打開foxyproxy中的Use proxies based on their pre-defined patterns and priorities恼布。這樣當訪問其他網(wǎng)站是就會按照默認配置走正常流程,當訪問到集群的web功能網(wǎng)站時會按照配置好的india_spark proxy配置搁宾。