細(xì)談企業(yè)網(wǎng)絡(luò)安全中堡壘機(jī)繞過問題
以下文章來源于WalkingCloud ,作者yuanfan2012
概況:
企業(yè)網(wǎng)絡(luò)大多數(shù)堡壘機(jī)部署時,為了不改變現(xiàn)有的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),采用旁路部署的方案,通過在防火墻或者交換機(jī)上配置ACL策略限制用戶區(qū)PC直接訪問服務(wù)器區(qū)主機(jī)IP或者端口(SSH,RDP等等),實(shí)現(xiàn)強(qiáng)制員工只能通過堡壘機(jī)訪問服務(wù)器
談到堡壘機(jī)就避不開堡壘機(jī)被繞過問題,我這邊列舉如下幾種堡壘機(jī)被繞過的場景
例如:如下拓?fù)鋱D,4臺服務(wù)器已經(jīng)托管到堡壘機(jī),可以直接通過堡壘機(jī)調(diào)用本地工具進(jìn)行運(yùn)維
場景1、繞過ACL策略
服務(wù)器區(qū)防火墻或者交換機(jī)上沒有做ACL,以及當(dāng)ACL策略做的細(xì)粒度不夠,導(dǎo)致用戶區(qū)PC可以直接繞過堡壘機(jī),直接遠(yuǎn)程服務(wù)器
如圖如示,黑色虛線為本來的訪問路徑,需要通過堡壘機(jī)才能訪問Server_A
紅色虛線代表現(xiàn)在繞過堡壘機(jī)直接訪問Server_A
場景2、通過堡壘機(jī)跳轉(zhuǎn)繞過
另外一種場景就是,先通過堡壘機(jī)訪問A服務(wù)器,然后再在A服務(wù)器上去訪問B服務(wù)器,這樣就繞過了堡壘機(jī)間接訪問了B服務(wù)器
如下拓?fù)鋱D所示
先通過堡壘機(jī)訪問Server_A 192.168.31.18,由于root密碼都是堡壘機(jī)進(jìn)行托管,不知道Server_B 192.168.31.232的root密碼,員工可以通過創(chuàng)建免密登錄,
ssh-keygen -b 2048
再通過堡壘機(jī)訪問一次Server_B 192.168.31.232 將上一步生成公鑰內(nèi)容導(dǎo)入到192.168.31.232的 /root/.ssh/authorized_keys
這樣以后就訪問ServerB就只用通過堡壘機(jī)訪問Server_A,再在Server_A上直接SSH到Server_B
雖然Server_A的上的操作都可以被堡壘機(jī)審計(jì)(堡壘機(jī)錄像回放), 但是假設(shè)剛好Server_A沒有被堡壘機(jī)托管,只把Server_B用堡壘機(jī)托管了,那這種繞過堡壘機(jī)的方式就會導(dǎo)致Server_B上的所有運(yùn)維操作沒有被審計(jì)到
Server_A是開發(fā)環(huán)境,Server_B是生產(chǎn)環(huán)境,萬一對生產(chǎn)環(huán)境Server_B造成了破壞時,日志也被刪除,這時就很難回溯了
再往深想一下:如果Server_A------->Server_B-------->Server_E-------->Server_F-------->.......這樣多跳幾次呢?如何防范?
當(dāng)然Windows服務(wù)器RDP也會出現(xiàn)這種場景 先通過堡壘機(jī)訪問Server_C 192.168.31.82 再mstsc遠(yuǎn)程到Server_D 192.168.31.116
解決方案細(xì)述
針對第1種和第2種場景如何進(jìn)行徹底避免呢?
我這邊的一種解決辦法就是在針對Linux服務(wù)器上做SSH訪問控制,只允許堡壘機(jī)訪問服務(wù)器的SSH,其他IP訪問SSH全部阻斷
cat >> /etc/hosts.deny << \EOF
sshd: ALL :spawn echo `date` login attempt from %c to %s ,the host is %h .PID is %p >> /var/log/tcpwrapper.log
EOF
echo "#只允許堡壘機(jī)登錄主機(jī)SSH" >> /etc/hosts.allow
echo "sshd: 192.168.31.5" >> /etc/hosts.allow
針對所有堡壘機(jī)托管的Linux服務(wù)器均做主機(jī)層面SSH訪問控制 通過堡壘機(jī)訪問Server_A 192.168.31.18,再在Server_A 192.168.31.18上SSH到Server_B 192.168.31.232就會被阻斷
可以tail -f /var/log/tcpwrapper.log 查看阻斷日志
tail -f /var/log/tcpwrapper.log
Sat Nov 20 22:07:09 CST 2021 login attempt from 192.168.31.18 to sshd@192.168.31.232 ,the host is 192.168.31.18 .PID is 39888
當(dāng)然如果堡壘機(jī)萬一發(fā)生故障時,就會出現(xiàn)單點(diǎn)故障,如何預(yù)防:
1、如果有備用堡壘機(jī),需要將備用堡壘機(jī)的IP加到SSH訪問白名單中
2、將應(yīng)急運(yùn)維PC的IP加到SSH訪問白名單中,可以堡壘機(jī)出現(xiàn)故障時,應(yīng)急運(yùn)維PC登錄到服務(wù)器上進(jìn)行SSH訪問控制配置修改
那RDP如何進(jìn)行控制呢?可以在Windows防火墻的作用域中指定遠(yuǎn)程IP地址及IP地址段,不過前提是開啟了Windows防火墻
可以看到當(dāng)設(shè)置了只能堡壘機(jī)RDP遠(yuǎn)程到Server_D 192.168.31.116 在Server_C 192.168.31.82上就無法mstsc遠(yuǎn)程到Server_D 192.168.31.116
telnet 192.168.31.116 3389端口不通
場景3、其它繞過場景
1、目標(biāo)服務(wù)器遠(yuǎn)程端口受到ACL限制,但其他端口沒有限制,那么最簡單的解決方式就可以通過端口轉(zhuǎn)發(fā)來繞過
2、甚至如果服務(wù)器可以訪問外網(wǎng),可以直接通過向日葵,todesk,Teamviewer進(jìn)行遠(yuǎn)程,這樣就完全繞開了堡壘機(jī)審計(jì)
需要對服務(wù)器網(wǎng)段封禁向日葵 Teamviewer等遠(yuǎn)程工具, 這種方式就不詳細(xì)展開描述了
作者:yuanfan2012
歡迎關(guān)注微信公眾號 :釋然IT雜談