問題:openstack云環(huán)境經(jīng)常被掃出來5900-5999端口范圍內的弱密碼/空密碼,怎么解決呢?!
問題分析:
openstack環(huán)境的物理機VNC端口能夠自由訪問,使用noVNC后沒有退出終端的習慣,往往都是用完了就直接關閉窗口,如果內網(wǎng)里面有一些script kiddie隨時都能將我們線上的虛擬機vnc端口掃出來干些壞事,存在安全風險,因此我們需要針對添加密碼訪問vnc。
如何添加vnc密碼:
1、針對新建虛機vnc弱密碼/空密碼問題
1)找到/usr/lib/python2.7/dist-packages/nova/virt/libvirt/config.py文件,直接在返回的dev列表里面添加個passwd的value,而value就是VNC的訪問密碼
def?format_dom(self):
????????dev?=?super(LibvirtConfigGuestGraphics,?self).format_dom()
????????dev.set("type",?self.type)
????????if?self.autoport:
????????????dev.set("autoport",?"yes")
????????else:
????????????dev.set("autoport",?"no")
????????if?self.keymap:
????????????dev.set("keymap",?self.keymap)
????????if?self.listen:
????????????dev.set("listen",?self.listen)
????????dev.set("passwd",?"Zenap_123")
????????return?dev
2)修改過后重啟nova-compute服務,即在下次創(chuàng)建虛擬機的時候生效,其結果如下:

2、針對歷史存在虛機弱密碼/空密碼問題
上述方法只能解決當前openstack環(huán)境新建虛機弱密碼/空密碼的問題,針對已有虛機,上述方法無法修復。
對于歷史存在的虛機,如何解決vnc弱密碼/空密碼漏洞的問題呢?!
1)查看虛機的virsh id,通過nova show [虛機uuid]|grep instance命令查到,例如:
root@controller:/home#?nova?show?ac91a9cb-789f-4f13-ba1b-b2499895ab21|grep?instance
|?OS-EXT-SRV-ATTR:instance_name????????|?instance-00000075???????????????????????????????????????????????|
2)進入/etc/libvirt/qemu目錄,找到虛機對應的instance-xxxx.xml文件(例如instance-00000075.xml),在文件中l(wèi)isten這一行添加passwd即可
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us' passwd='Zenap_123'>
該方法可以臨時解決歷史虛機弱密碼/空密碼漏洞問題,一旦虛機重啟,那么libvirt.xml文件中的密碼則依然會被置為空。那么如何解決呢?!
建議可以編寫一個腳本:搜索libvirt.xml文件,無passwd字段的文件添加passwd。將該腳本運行添加到定時任務中。