在Amazon Linux上安装Apache Guacamole
首先
Apache Guacamole是一种基于浏览器的远程桌面客户端。
可以通过支持HTML5的浏览器访问和远程连接。
在这里,我们的目标是使用Amazon Linux作为跳板来连接到另一台Windows Server进行RDP连接。
环境
实例刚刚创建完成。
弹性IP已经分配了。
$ uname -a
Linux ip-hoge-hoge-hoge-hoge 4.4.41-36.55.amzn1.x86_64 #1 SMP Wed Jan 18 01:03:26 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
执行安装前的准备工作。
更新 yum
$ sudo yum update
启用EPEL
$ sudo yum-config-manager --enable epel
gcc可以用于编译C代码。
$ sudo yum install gcc
Java Development Kit (JDK)
提前从Oracle获取JDK8的rpm文件并部署到~/目录下。
$ sudo rpm -ivh jdk-8u121-linux-x64.rpm
$ vim .bash_profile
JAVA_HOME=/usr/java/default
export JAVA_HOME
$ source .bash_profile
维尼
$ cd
$ curl -O http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip
$ unzip apache-maven-3.3.9-bin.zip
$ sudo mv apache-maven-3.3.9 /opt/
$ vim .bash_profile
PATH=/opt/apache-maven-3.3.9/bin:$PATH
$ source .bash_profile
湖猫
安装
$ sudo useradd -s /sbin/nologin tomcat
$ curl -O http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz
$ tar -xzvf apache-tomcat-8.5.11.tar.gz
$ sudo mv apache-tomcat-8.5.11 /opt/apache-tomcat
$ sudo chown -R tomcat:tomcat /opt/apache-tomcat
服务设置
$ sudo vim /etc/profile
添加3行
JRE_HOME=/usr/java/default
CATALINA_HOME=/usr/local/tomcat
export JRE_HOME CATALINA_HOME
$ source /etc/profile
$ sudo vim /etc/init.d/tomcat8
#!/bin/bash
#
# tomcat8
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat8
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Tomcat 8
# Short-Description: start and stop tomcat
### END INIT INFO
## Source function library.
#. /etc/rc.d/init.d/functions
export GUACAMOLE_HOME=/etc/guacamole
export JAVA_HOME=/usr/java/default
export JAVA_OPTS="-Dfile.encoding=UTF-8 \
-Dnet.sf.ehcache.skipUpdateCheck=true \
-XX:+UseConcMarkSweepGC \
-XX:+CMSClassUnloadingEnabled \
-XX:+UseParNewGC \
-Xms512m -Xmx512m"
export PATH=$JAVA_HOME/bin:$PATH
TOMCAT_HOME=/opt/apache-tomcat
TOMCAT_USER=tomcat
SHUTDOWN_WAIT=20
tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start tomcat
echo "Starting tomcat"
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
/bin/su -p -s /bin/sh $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
exit 0
$ sudo chmod +x /etc/init.d/tomcat8
$ sudo service tomcat8 start
$ sudo chkconfig tomcat8 on
经理应用程序的使用设置
添加用户
$ sudo vim /opt/apache-tomcat/conf/tomcat-users.xml
<?xml version="1.0" encoding="UTF-8"?>
...
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
...
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
</tomcat-users>
取消访问限制
$ sudo vim /opt/apache-tomcat/webapps/manager/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?>
...
<Context antiResourceLocking="false" privileged="true" >
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
</Context>
安装所需的依赖项
这次只是支持RDP功能。
$ sudo yum install cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel freerdp-devel
安装Guacamole服务器
$ cd
$ curl -O http://ftp.meisei-u.ac.jp/mirror/apache/dist/incubator/guacamole/0.9.11-incubating/source/guacamole-server-0.9.11-incubating.tar.gz
$ tar -xzf guacamole-server-0.9.11-incubating.tar.gz
$ cd guacamole-server-0.9.11-incubating/
$ ./configure --with-init-dir=/etc/init.d
$ make
$ sudo make install
$ sudo ldconfig
$ sudo chkconfig guacd on
安装 Guacamole 客户端
$ cd
$ curl -O http://ftp.riken.jp/net/apache/incubator/guacamole/0.9.11-incubating/source/guacamole-client-0.9.11-incubating.tar.gz
$ tar -xzf guacamole-client-0.9.11-incubating.tar.gz
$ cd guacamole-client-0.9.11-incubating/
$ mvn package
$ sudo cp guacamole/target/guacamole-0.9.11-incubating.war /opt/apache-tomcat/webapps/guacamole.war
鳄梨酱设定
$ sudo mkdir /etc/guacamole
$ sudo vim /etc/guacamole/guacamole.properties
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
$ sudo vim /etc/guacamole/user-mapping.xml
<user-mapping>
<authorize
username="Guacamoleへのログインユーザ名"
password="Guacamoleへのログインパスワード(ハッシュ値)"
encoding="md5">
<connection name="RDP">
<protocol>rdp</protocol>
<param name="hostname">接続先ホスト名(IPアドレス)</param>
<param name="username">RDPで接続するユーザ名</param>
<param name="password">RDPで接続するパスワード</param>
<param name="domain">RDPで接続するADドメイン</param>
<param name="port">RDPで接続するポート</param>
</connection>
</authorize>
</user-mapping>
MD5哈希值可以通过以下方式进行确认。
RDP连接密码以明文形式写入,不经过MD5哈希化。
※如果不写入encoding=”md5″,也可以写入原始密码。
echo -n 'パスワード' | md5sum
完成设置后,重新启动每个服务。
$ sudo service guacd restart
$ sudo service tomcat8 restart
截图
TODO
在/etc/init.d/tomcat8中添加”GUACAMOLE_HOME”是否合适?
如果有更好的方法,那么进行修正。
请提供以下所述的中文原生解释只需要一个选项:
参考
· 鳄梨酱使用手册
适用于跳板服务器!可以从浏览器连接至VNC、RDP的远程桌面客户端『Guacamole』
将自己的家庭服务器转化为虚拟实验室并引入Guacamole。