绿盟漏扫扫出了CVE-2021-29441这个漏洞,官网已经在1.4.1版本修复了这个漏洞,但是测试发现还是出现访问接口可以添加任意用户的问题:
http://ip:8848/nacos/v1/auth/users?username=test1&password=test1
返回结果200;
查询资料后发现,nacos需要配置开启权限认证:
打开config下的application.properties配置:
nacos.core.auth.caching.enabled=true
并在项目中配置username及password,如果使用的nacos是1.2.x版本的还需要配置context-path,我的配置如下:
spring:
cloud:
nacos:
config:
username: nacos
password: nacos
context-path: /nacos
server-addr: 127.0.0.1:8848
discovery:
username: nacos
password: nacos
context-path: /nacos
server-addr: 127.0.0.1:8848
pom文件如下:
<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.4.1</version>
</dependency>
原配置部分无法读取,经尝试后,将.properties格式换成.yaml后读取成功。
docker环境下
//拉取最新nacos镜像
docker pull nacos/nacos-server:latest
//创建容器
docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 --name nacos nacos/nacos-server