软件测试

如何修复openstack环境的vnc弱密码漏洞

2019-12-25  本文已影响0人  刘晓佳rachel

问题:openstack云环境经常被扫出来5900-5999端口范围内的弱密码/空密码,怎么解决呢?!

问题分析

openstack环境的物理机VNC端口能够自由访问,使用noVNC后没有退出终端的习惯,往往都是用完了就直接关闭窗口,如果内网里面有一些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服务,即在下次创建虚拟机的时候生效,其结果如下:

2、针对历史存在虚机弱密码/空密码问题

上述方法只能解决当前openstack环境新建虚机弱密码/空密码的问题,针对已有虚机,上述方法无法修复。

对于历史存在的虚机,如何解决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),在文件中listen这一行添加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。将该脚本运行添加到定时任务中。

上一篇 下一篇

猜你喜欢

热点阅读