给Guacamole配置mysql数据库

给Guacamole配置mysql数据库
系统环境:树莓派,操作环境类似Debian/Ubuntu

首先需要安装mysql

apt-get install mysql-server

然后等着系统把数据库和它依赖的包全都装完。
在安装过程中mysql可能会提示设置数据库密码,这时需要设置一个密码,但要确定你自己不会忘记。

mysql默认只绑定127.0.0.1:3306 root帐户默认也只能从本机连接,这样倒也安全。

我编译的guacamole是0.9.11所以我下载了guacamole-auth-jdbc-0.9.11-incubating.tar.gz
这个包里有一个mysql目录里面包含了我们需要的数据驱动guacamole-auth-jdbc-mysql-0.9.11-incubating.jar
下载地址如下:
guacamole-0.9.11  guacamole-0.9.11直下地址

获得guacamole-auth-jdbc-mysql-0.9.11-incubating.jar

mysql-jdbc驱动需要从mysql的网站获得,网址:http://dev.mysql.com/downloads/connector/j/
下载地址:mysql-jdbc-5.1.40
对它进行解压,可以找到唯一一个JAR包,估计就是它了吧:

mysql-connector-java-5.1.40-bin.jar

mysql-connector-java-5.1.40-bin.jar需要在如下位置各放一份:

1 /usr/share/tomcat8/lib

2 /etc/guacamole/lib

3 /var/lib/tomcat8/webapps/guacamole/WEB-INF/lib

guacamole-auth-jdbc-mysql-0.9.11-incubating.jar需要在如下位置各放一份:

1 /usr/share/tomcat8/lib

2 /etc/guacamole/extensions

3 /var/lib/tomcat8/webapps/guacamole/WEB-INF/lib

不存在的目录要创建。

其中/usr/share/tomcat8是tomcat的安装目录,如果安装位置不在这里需要按需求调整。

/etc/guacamole是guacd的配置文件路径,如果安装位置不在这里需要按需求调整。

/var/lib/tomcat8/webapps是guacamole.war释放的路径,如果不在这里需要按需求调整。

下面开始创建数据库。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.54-0+deb8u1 (Raspbian)
 
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> CREATE DATABASE guacamole_db;
Query OK, 1 row affected (0.01 sec)
 
mysql> CREATE USER 'guacamole_anyone'@'localhost' IDENTIFIED BY 'yourpass';
Query OK, 0 rows affected (0.01 sec)
 
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_anyone'@'localhost';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
$

 

用户名和密码最好不要照抄,未来会有麻烦的。

数据库和数据库帐户创建好之后下面就该初始化表格了。

如果此前已经有低版本数据库存在了的话,你需要做的就是更新数据库(更新数据库还是去看一下原文档比较好,在这里http://guacamole.incubator.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-mysql。)。如果你和我一样是第一次使用,那就接着往下看。

初始化表的sql脚本就在guacamole-auth-jdbc-0.9.11-incubating.tar.gz的里面,目录为
./mysql/schema

001-create-schema.sql 002-create-admin-user.sql upgrade

执行下面的命令
cat schema/*.sql | mysql -u root -p guacamole_db
如果你已经在sql目录下你就需要这样写:
cat *.sql | mysql -u root -p guacamole_db
我相信你没那么笨。

现在数据表初始化已经完成了下面该设置认证配置了。
在配置文件guacamole.properties中添加如下内容:
# MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_anyone
mysql-password: yourpass

如果你之前配置了其它认证文件现在就需要注释掉了:
#user-mapping: /etc/guacamole/user-mapping.xml
#auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProv$
#basic-user-mapping: /etc/guacamole/user-mapping.xml

注意不是注释全部内容,这两行还是要保留的:
guacd-hostname: localhost
guacd-port: 4822

你的配置如果与我不同请变通操作照抄不一定对。

下面是一些密码策略,为了安全最好加上。
mysql-user-password-min-length: 8
mysql-user-password-require-multiple-case: true
mysql-user-password-require-symbol: true
mysql-user-password-require-digit: true
mysql-user-password-prohibit-username: true
如果能看明白,当然可以按自己的需要进行修改啦。
下面是一些不太重要的配置
mysql-user-password-min-age: 7
mysql-user-password-max-age: 90
mysql-user-password-history-size: 6
下面是连接数配置,为了安全最好就写1,如果你的系统不支持多重登录的话,更需要如此了。
mysql-default-max-connections: 1
mysql-default-max-group-connections: 1
每用户默认连接数可以先设置为0,然后在WEB上创建新用户时可以在那里指定配置覆盖这里的初始配置。
mysql-default-max-connections-per-user: 0
mysql-default-max-group-connections-per-user: 0
下面是设置绝对连接数上限。默认没有限制。
mysql-absolute-max-connections: 0
允许mysql用户登录
mysql-user-required: true

现在配置全部完成可以重新服务使配置生效了。
service tomcat8 restart
如果你用了其它容器,则需要重启相应的服务。不过guacd服务不用重启。

我把上面的工作完成了。但登录不成功。我重启了guacd还是不行。

默认的管理员帐户和密码是:
guacadmin/guacadmin
一但登录成功就需要修改这个密码。

我需要检查一下什么地方出问题了。

经过检查我发现

guacamole-auth-jdbc-mysql-0.9.11-incubating.jar

mysql-connector-java-5.1.40-bin.jar

往webapps中展开的guacamole/WEB-INF/lib目录中放一份就OK了。不知道是那里错了。

我在尝试过程中还把JAVA的环境变量补齐了,不过我觉得登录不成功就是tomcat没有成功找到并加载上述两个包的原因。

 

如果还想看更详细的信息就去原WEB吧:http://guacamole.incubator.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-installation

花了半宿的时间配置好了,上几张图吧。这个登录界面没有二维码,有爆破帐号的风险,虽然现在爆破不太常用了,但限制爆破尝试还是必要的,希望未来会加上吧。

关于xmsg

技术面前人人平等.同时技术也不分高低贵贱.正所谓学无大小,达者为尊.
此条目发表在功能配置, 经验技术分类目录,贴了, , 标签。将固定链接加入收藏夹。