ZooKeeper establece el control de permisos ACL y elimina permisos
CREAR, LEER, ESCRIBIR, ELIMINAR, ADMIN significa agregar, eliminar, cambiar, verificar y administrar permisos, lo que se conoce como crwda (la abreviatura del primer carácter de cada palabra)
Nota: Entre estos cinco permisos, la eliminación se refiere a la eliminación de nodos secundarios y los otros cuatro permisos se refieren a operaciones en su propio nodo.
La ACL de Zookeeper es un permiso compuesto por esquema: id: permisos
Hay cuatro métodos principales en el lado del esquema:
mundo: método predeterminado, que es equivalente a OK Acceder al mundo entero
autenticación: representa un usuario autenticado (cli puede pasar addauth digest usuario: pwd)
digest: es decir, nombre de usuario: contraseña para autenticación, esto es también el método más utilizado en sistemas empresariales
ip: usar dirección IP para autenticación
Esta vez, el proyecto permite configurar los permisos para que dubbo se conecte a zookeper. Surgió el problema, así que vi la configuración de los permisos ACL, encontré la carpeta bin en zookeeper, abrí el servicio zk e inicié ./zkCli.sh
Si no se especifica ningún grupo en dubbo, dubbo generará uno por defecto Dubbo agrupado, es decir, habrá un subnodo dubbo bajo zookeeper
1) Agregar un usuario de autenticación
addauth digest nombre de usuario: contraseña en texto sin formato
1 ) Agregar un usuario autenticado
Agregar un nombre de usuario: texto sin cifrar de la contraseña. p> Por ejemplo: addauth digest usuario1: contraseña1
2) Establecer permisos
setAcl /path auth: nombre de usuario: contraseña texto sin formato: permisos
Por ejemplo. setAcl /test auth: usuario1: contraseña1: cdrwa
3) Verifique la configuración de Acl
getAcl /path
Antes de agregar un usuario, verifique la información del nodo de zookeper. Luego cree un nuevo nodo para agregar usuarios (use rutas absolutas para agregar datos)
Si no se agrega el usuario de autenticación previamente configurado
setAcl /test auth:user1:password1: cdrwa
p>Por ejemplo, resumen de ruta: nombre de usuario: contraseña cifrado: permisos
Nota: la regla de cifrado aquí es el cifrado SHA1 y luego la codificación base64.
Los resultados del procesamiento anterior aún no pueden evitar la vulnerabilidad de acceso no autorizado de zookeeper. Después de la prueba, se puede acceder a la información de zookeeper a través del puerto IP echo envi|nc en otros servidores.
Porque. zookeeper Estos znodes se iniciarán con permisos world y cdrwa de forma predeterminada.
"/""/zookeeper""/zookeeper/config" y "/zookeeper/quota" (pueden ser diferentes según la versión de zookeeper, y aunque estos nodos tienen permisos world y cdrwa, no sé por qué, pero es muy Es bueno saber que podemos configurar listas ACL para ellos (Además, no hay instrucciones especiales para estos nodos en el sitio web oficial, supongo que tiene que ver con alguna configuración del propio zk, es mejor no eliminarlos). El producto no puede pasar el escaneo de vulnerabilidades de la herramienta de seguridad. La solución es muy simple. Simplemente use el zk.setACL que mencionamos anteriormente para configurar los permisos para estos nodos. > La razón por la que debes establecer la cuota después de configurar el nodo zookeeper
es porque las ACL de znodes son independientes entre sí, es decir, cualquier nodo diferente puede usar diferentes listas de ACL para influirse entre sí. y ACL no se heredará.
Bien, aquí está la verdadera solución al problema de vulnerabilidad de acceso no autorizado.
Simplemente busque la dirección de registro del cuidador del zoológico o elimine el registro. /p>
También puede utilizar comandos en el entorno Linux para consultar la dirección de registro
Blog de referencia:
blogs.com/ilovena/p/9484522.html < / p>