本文侧重介绍访问ui安全加固部分。 安装配置以及集群搭建请参考官方文档
下载安装
官方下载地址&安装教程 https://developer.hashicorp.com/consul/install
修改配置,开启acl
首先自行规划好 server和client机器。 按照下述流程在server 生成 bootstrap token。
修改acl 配置如下。default_policy=allow
"acl":{
"enabled":true,
"down_policy":"extend-cache",
"default_policy":"allow",
"enable_token_persistence" : true,
"tokens":{
"default":""
}
启动 server
# 停止服务 ctl+c 即可。方便调试
consul agent -server -config-dir /opt/consul/conf
生成 global-management
# 另开控制台执行
consul acl bootstrap
获取 SecretID(your_SecretID)
在所有客户端以及当前客户端中 配置 acl
需要更细粒度控制权限,可以后续创建自定义token,替换 default
"acl":{
"enabled":true,
"down_policy":"extend-cache",
"default_policy":"deny",
"enable_token_persistence" : true,
"tokens":{
"default":"your_SecretID"
}
重启 所有server
# demo
consul agent -server -config-dir /opt/consul/conf > /dev/null 2>&1 &
启动 所有client
# demo
consul agent -config-dir /opt/consul/conf > /dev/null 2>&1 &
server 和 client 配置区别
client 不要配置 下述参数
{
"server":true,
"bootstrap_expect": 1
}
nginx 安全加固
# 创建用户名为 consul_account 的账号
htpasswd -c /etc/nginx/consulPwd consul_account # 执行后会要求你输入密码,完了就完成了账号密码的生成
```
```conf
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8500;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/consulPwd;
}
}
Anonymous Token 设置只读权限
为了限制 未登录访问 consul ui 的权限,覆盖游客模式使用的 Anonymous Token 的 Policies 即可。
创建 Policies : _Anonymous 形如
session_prefix "" {
policy = "write"
}
编辑 token: Anonymous Token 修改其 Policies 为 _Anonymous
访问验证
- 访问 http://127.0.0.1:8500
- 输入账号密码
文章评论