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

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

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


#!/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
~

测试

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


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

猜你喜欢

转载自blog.csdn.net/weixin_39651041/article/details/127926803