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