• Guacamole 配置开启 Radius 身份认证方式


    背景

    最近系统要集成 Radius 认证,支持 Radius 身份认证方式。
    发现 Apache/guacamole 支持 Radius 认证方式。就搭建了一个 guacamole 环境,学习了一下 guacamole 的实现。

    Guacamole 环境搭建

    Guacamole 采用的是 1.4.0 版本
    采用 Docker 来部署 Guacamole。
    参考 使用Docker部署Guacamole 文章来进行搭建。

    说明:

    docker pull guacamole/guacamole
    docker pull  guacamole/guacd
    
    • 1
    • 2

    guacamole/guacamole 是 guacamole 的前端项目,我们一般只需要关注该项目即可。
    guacamole/guacd 是 guacamole 的后端项目,多是 c 项目,不用关注。

    Guacamole 开启 Radius 认证方式

    Guacamole 官方 Radius 身份认证方式的文档
    从官方文档了解到:
    Radius 是 LGPL 协议,与 Apache 2.0 license 不兼容,所以 guacamole 无法发布 Radius 的二进制版本,需要我们手动构建

    Guacamole 构建 Radius jar 包步骤:

    1. wget https://apache.org/dyn/closer.lua/guacamole/1.4.0/source/guacamole-client-1.4.0.tar.gz?action=download 下载 1.4.0 的 guacamole 包;
    2. tar -zxvf xxx 进行解压;
    3. 进入到解压后的目录,执行 mvn clean package -Plgpl-extensions 进行构建(如果失败,可以先 mvn clean,再 mvn install ,最后再执行构建命令)
    4. 构建成功后,在 extensions/guacamole-auth-radius/target/ 下有 guacamole-auth-radius-1.4.0.jar;
    5. 执行命令 docker cp data/guacamole/extensions/guacamole-auth-radius-1.4.0.jar guacamole:/home/guacamole/.guacamole/extensions/guacamole-auth-radius-1.4.0.jar 把 radius jar 包拷贝到 guacamole 的 extensions 目录下;
    6. 配置 Radius 身份认证方式的配置文件 guacamole.properties
    7. 执行 docker cp data/guacamole/guacamole.properties guacamole:/home/guacamole/.guacamole/guacamole.properties 覆盖 guacamole 的 guacamole.properties 配置文件(注意:要保留原文件内容)

    guacamole.properties 配置文件如下:

    # 上面这部分是 guacamole 原有的配置文件,需要保留
    # guacamole.properties - generated Thu Nov 17 03:25:00 AM UTC 2022
    guacd-hostname: 172.17.0.3
    guacd-port: 4822
    mysql-username: root
    mysql-password: sim
    mysql-database: guac
    mysql-hostname: 172.17.0.2
    mysql-port: 3306
    
    # 下面是 guacamole 开启 Radius 的配置文件
    # radius 服务器主机地址
    radius-hostname: 192.168.0.143
    # radius 服务器认证端口
    radius-auth-port: 1812
    # 共享密钥
    radius-shared-secret: testing123
    # 协议 PAP 是密码认证
    radius-auth-protocol: pap
    # 失败重试次数
    radius-retries: 3
    # 超时时间
    radius-timeout: 10
    
    useSSL: false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    写了一个脚本来做上面的一系列事情:

    
    #!/bin/bash
    
    # docker stop $1 && docker rm $1
    docker ps | grep "guacamole/guacamole" | awk '{print $1}'
    
    docker run --name guacamole --link guacd:guacd     --link mysql:mysql             -e MYSQL_DATABASE=guac     -e MYSQL_USER=root        -e MYSQL_PASSWORD=sim  -v /root/liuwx/guacamole/data/guacamole:/etc/guacamole/ -d -p 9090:8080 guacamole/guacamole
    
    docker cp guacamole-auth-radius-1.4.0.jar guacamole:/home/guacamole/.guacamole/extensions/guacamole-auth-radius-1.4.0.jar
    docker cp guacamole.properties guacamole:/home/guacamole/.guacamole/guacamole.properties
    ~
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    测试

    使用 radius 服务器上的用户和密码去进行登录。


    Radius 服务器的搭建和配置见文章:FreeRadius 服务器环境搭建(PAP 版)

  • 相关阅读:
    【问题记录】防止mimikatz获取到明文密码
    文旅如何以数字人三维动画宣传片,实现文化资源数字化转化?
    springboot+vue房屋租赁系统-求租合同系统java
    关于递归和回溯的一次深入思考
    MATLAB中chirp函数使用
    ctf工具之:mitmproxy实践测试
    《When you are old》一如苇中的风,轻柔却难忘
    数字相控阵Matlab仿真
    Redis(6)五大数据类型——List(列表)
    《web应用技术》第十次作业
  • 原文地址:https://blog.csdn.net/weixin_39651041/article/details/127926803