
Apache Guacamole 与 Active Directory 身份验证
我们已经在其他场合讨论过 Apache Guacamole 的奇迹, 此平台通过 RDP 安全连接到我们的环境, SSH 公司, VNC… 小型企业的理想选择, 实验室或培训. 今天我们将了解如何将其集成到 Active Directory 中并将某些资源发布给不同的用户!
我说了什么, 在 上一篇文章, 我们已经看到了如何安装 Apache Guacamole, 以及如何在反向代理后面保护它. 我们将使用此产品通过 RDP 将任何远程桌面安全地发布到 Internet, 以及 VNC 或 SSH 等. 我们将能够安全地允许我们的用户远程连接到组织, 我们将允许他们很好地连接到他们的传统位置, 或者例如,针对提供桌面的计算机池, 例如某些 VDI 或远程桌面服务器.
这篇文章的理念是允许某些 Active Directory 用户与他们自己的用户连接,从而不使用本地用户, 每个都有不同的密码… 一旦 Apache Guacamole 连接到 AD, 我们将能够创建我们想要稍后发布给用户的连接.
首先,我们安装用于 LDAP 身份验证的扩展 :
WGET HTTP://apache.mirror.iphh.net/guacamole/1.3.0/binary/guacamole-auth-ldap-1.3.0.tar.gz tar xvzf guacamole-auth-ldap-1.3.0.tar.gz sudo cp ./guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar /etc/guacamole/extensions/
我们在 Apache Guacamole /etc/guacamole/guacamole.properties 的配置文件中编辑并添加与 Active Directory 连接的配置.
guacd 主机名: 本地主机 guacd 端口: 4822 #用户映射: /etc/鳄梨酱/user-mapping.xml #auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider ldap-hostname: DIRECCIÓN_IP_CONTROLADOR_DE_DOMINIO LDAP 端口: 389 # 或安全: 636 ldap-user-base-dn: OU=路由,DC=域,DC=本地 ldap-用户名-attribute: samAccountName ldap-config-base-dn: OU=路由,DC=域,DC=本地 ldap 加密方法: 没有 # 或安全: SSL认证, starttls ldap-search-bind-dn:cn=usuario_LDAP,OU=路由,DC=域,DC=本地 ldap-search-bind-password:密码
然后我们重新启动 Tomcat:
sudo systemctl restart tomcat9
现在我们有 2 选项, 或点按并扩展我们的 AD 架构以向用户添加属性, 你是什么意思… 或在 Guacamole 设备本身上设置 MySQL, 用户及其分配将存储在数据库中的位置. 确实,后者没有那么可怕… 所以我们安装了 MariaDB:
sudo apt-get install mariadb-server mariadb-client
通过编辑 /etc/mysql/mariadb.conf.d/50-server.cnf 文件,将时区设置为 MariaDB
[mysqld] ... default-time-zone='+01:00' ...
是时候为 Guacamole 创建数据库和用户了, 首先我们连接到 MySQL:
sudo mysql -uroot
歌词大意: 我说的, 我们创建数据库, 用户并授予相应的权限:
创建数据库bd_guacamole; CREATE USER 'USUARIO_GUACAMOLE'@'localhost' IDENTIFIED BY 'CONTRASEÑA'; 授予选择,插入,更新,DELETE ON bd_guacamole.* to 'USUARIO_GUACAMOLE'@'localhost'; FLUSH 权限;
为了能够使用 MySQL 身份验证, 首先,我们下载以下扩展 https://apache.org/dyn/closer.lua/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz?action=download 我们下载并安装它:
焦油 ZXFV guacamole-auth-jdbc-1.3.0.tar.gz sudo cp guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/
我们下载连接器 https://dev.mysql.com/downloads/connector/j/ 对于我们的 Ubuntu, 在我的情况下,一个 20.04 (https://dev.mysql.com/downloads/file/?id=504646) 然后我们安装:
sudo dpkg -i mysql-connector-java_8.0.25-1ubuntu20.04_all.deb sudo ln -s /usr/share/java/mysql-connector-java-8.0.25.jar /etc/guacamole/lib/.
我们创建 DB 架构:
猫鳄梨酱-auth-jdbc-1.3.0/mysql/schema/*.sql | sudo mysql -uroot bd_guacamole
我们编辑我们心爱的 Guacamole 配置文件 /etc/guacamole/guacamole.properties 并在末尾添加:
mysql 主机名: 本地主机 mysql 端口:3306 mysql 数据库: bd_guacamole mysql 用户名: USUARIO_GUACAMOLE mysql 密码: 密码
我们重新启动了 Tomcat 和 Guacd 服务以重新加载之前的更改:
sudo systemctl restart tomcat9 guacd
我们将 Guacamole 输入为 guacadmin/guacadmin 并更改密码, 但, 眼睛!
我们必须在 Active Directory 中创建 (在我们的 DN Base 内) 名为 guacadmin 的用户, 并且不得具有与此处相同的密码. 因为我们登录的那个是 MySQL guacadmin 用户,另一个是 LDAP 用户. 由于我们将能够使用 LDAP 用户和 MySQL 用户登录
如果我们使用 guacadmin 和 AD 密码再次登录 Guacamole,我们将能够从 “配置” > “用户”.
接下来的事情是创建我们想要的不同连接, 然后我们将分配它们, 因为 “配置” > “连接” > “新建连接”
因此,我们为连接命名, 我们选择协议, 请记住,它可以是远程桌面的 RDP, SSH 公司, Telnet 远程登录, VNC 或 Kubernetes,
再往下走, 在参数, 我们将指示目标计算机的本地 IP 地址, 我们可以预先填写用户名和密码字段, 或将它们留空供用户键入, 或者我们也可以获取他们登录的会话的用户,并使用这两个变量来指示它:
${GUAC_USERNAME}
${GUAC_PASSWORD}
什么都没有, 然后,在每个用户的配置中,我们将能够单独分配连接.
当每个用户使用其帐户登录时, 因为如果我们只分配它 1 连接, 您将自动登录该团队. 如果我们分配了几个, 当您登录时,他将能够选择要连接的🙂会话
在下一篇文章中,我们将了解如何配置双因素身份验证以进一步保护访问. 照常, 希望您觉得这些帖子有趣, 拥抱!