一:开启鉴权原因
部署好Nacos
服务端后,默认没有开启鉴权,直接不用登录就能访问控制台,也能直接注册服务,存在很大的安全风险。
之前也爆过Nacos
权限认证绕过漏洞(CVE-2021-29441):该漏洞发生在nacos
在进行认证授权操作时,会判断请求的user-agent
是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent
设置为Nacos-Server
,直接硬编码在了代码里,导致了漏洞的出现。利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息,还可以进行任意操作,包括创建新用户并进行登录后操作。
Nacos官方关于安全方面的一些声明:
Nacos
是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。Nacos
提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。- 如果运行在不可信的网络环境或者有强鉴权诉求,请参考官方简单实现进行自定义插件开发。
接下来我们使用Nacos
提供的鉴权实现,对服务端进行一定的安全保护,除此之外实际应用时,Nacos
应当部署在内网,实在需要暴露在公网时,应当使用插件实现强鉴权体系。