fundo
Recentemente, o sistema integrará a autenticação Radius e oferecerá suporte ao método de autenticação de identidade Radius.
Descobriu que o Apache/guacamole suporta o método de autenticação Radius. Construí um ambiente guacamole e aprendi sobre a implementação do guacamole.
Configuração do ambiente Guacamole
Guacamole usa a versão 1.4.0
e usa Docker para implantar Guacamole.
Consulte o artigo Implantando Guacamole com Docker para construí-lo.
ilustrar:
docker pull guacamole/guacamole
docker pull guacamole/guacd
guacamole/guacamole é o projeto front-end do guacamole. Geralmente só precisamos prestar atenção a este projeto.
guacamole/guacd é o projeto back-end do guacamole, principalmente projetos C, então não preste atenção nele.
Guacamole ativa o método de autenticação Radius
Documentação oficial do método de autenticação de identidade Radius do Guacamole
Aprendeu com a documentação oficial:
Radius é um protocolo LGPL e é incompatível com a licença Apache 2.0, portanto, o guacamole não pode liberar a versão binária do Radius e precisamos construí-lo manualmente
Etapas do pacote jar Radius de construção do Guacamole:
- wget https://apache.org/dyn/closer.lua/guacamole/1.4.0/source/guacamole-client-1.4.0.tar.gz?action=download Baixe o pacote guacamole 1.4.0;
- tar -zxvf xxx para descompactar;
- Entre no diretório descompactado e execute mvn clean package -Plgpl-extensions para construir (se falhar, você pode primeiro mvn clean, depois mvn install e, finalmente, executar o comando build)
- Depois que a compilação for bem-sucedida, há guacamole-auth-radius-1.4.0.jar em extensions/guacamole-auth-radius/target/;
- Execute o comando docker cp data/guacamole/extensions/guacamole-auth-radius-1.4.0.jar guacamole:/home/guacamole/.guacamole/extensions/guacamole-auth-radius-1.4.0.jar para copiar o jar radius pacote para o diretório de extensões do guacamole;
- Arquivo de configuração guacamole.properties para configurar o método de autenticação Radius
- Execute docker cp data/guacamole/guacamole.properties guacamole:/home/guacamole/.guacamole/guacamole.properties para substituir o arquivo de configuração guacamole.properties do guacamole (nota: o conteúdo do arquivo original deve ser retido)
O arquivo de configuração guacamole.properties é o seguinte:
# 上面这部分是 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
Escreveu um script para fazer a série de coisas acima:
#!/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
~
teste
Use o nome de usuário e a senha do servidor radius para fazer login.
Para a construção e configuração do servidor Radius, consulte o artigo: Construção do ambiente do servidor FreeRadius (versão PAP)