guacamole安装配置
系统环境:
CentOS7.2 + Tomcat8.5 + JDK18 + guacamole-server0.9.14
安装必要环境:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum update -y
安装依赖包
yum -yinstallcairo-devel libjpeg-devel libpng-devel uuid-devel yum -yinstallffmpeg-devel freerdp-devel pango-devel libssh2-devel yum -yinstalllibtelnet-devel libvncserver-devel pulseaudio-libs-devel yum -yinstallopenssl-devel libvorbis-devel libwebp-develyum -yinstallfreerdp-plugins##不安装剪切板不能用
下载安装包:
下载地址:https://guacamole.apache.org/releases/0.9.14/
guacamole-server安装
tarzxf guacamole-server-0.9.14.tar.gz -C /optcd/opt/guacamole-server-0.9.14/./configure --with-init-dir=/etc/init.d##确认是否所有协议都支持------------------------------------------------
Library status:
freerdp.............yes
pango...............yes
libavcodec..........yes
libavutil...........yes
libssh2.............yes
libssl..............yes
libswscale..........yes
libtelnet...........yes
libVNCServer........yes
libvorbis...........yes
libpulse............yes
libwebp.............yes
wsock32............. no
Protocol support: RDP.......yes
SSH.......yes
Telnet....yes
VNC.......yes
Services / tools: guacd......yes
guacenc....yes
Init scripts: /etc/init.dmake&&makeinstall
启动guacd服务
# /etc/init.d/guacd startStarting guacd: SUCCESS
安装guacamole client
1、首先安装jdk 和tomcat,安装过程省略
2、安装client
mvguacamole-0.9.14.war /usr/local/tomcat/webapps
3、修改tomcat server.xml配置
4、启动tomcat
/etc/init.d/tomcat start
5、使用nginx做反向代理
vim /etc/nginx/conf.d/jump.conf
配置如下
upstream jumpserver{server 127.0.0.1:8080;}server{listen 80;server_name jumpserver.xxx.com;charset utf-8;access_log /var/log/nginx/access_80.log main;location /{proxy_pass http://jumpserver;proxy_buffering off;proxy_http_version 1.1;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header Upgrade$http_upgrade;proxy_set_header Connection$http_connection;access_log off;}}
写一个tomcat启动脚本
#!/bin/bash# description: Tomcat Start Stop Restart# processname: tomcat# chkconfig: 234 20 80JAVA_HOME=/usr/java/jdk1.8.0_151exportJAVA_HOME PATH=$JAVA_HOME/bin:$PATHexportPATH CATALINA_HOME=/usr/local/tomcatcase$1instart)sh$CATALINA_HOME/bin/startup.sh;;stop)sh$CATALINA_HOME/bin/shutdown.sh;;restart)sh$CATALINA_HOME/bin/shutdown.sh sh$CATALINA_HOME/bin/startup.sh;;esacexit0
启动tomcat服务
chmod+x /etc/init.d/tomcat/etc/init.d/tomcat start
创建guacamole配置文件和目录
mkdir/etc/guacamole/
创建guacamole.properties文件
vim guacamole.propertiesguacd-hostname: localhostguacd-port: 4822user-mapping.xml: /etc/guacamole/user-mapping.xmlenable-clipboard-integration:true
创建授权文件 user-mapping.xml
rdp172.16.0.1013040administrator6bcr"ZqK*LgD;assh172.16.2.1422cpzengDtihsvkr/Sp8gd4rztrue127.0.0.1/data/sftpsftp123ssh172.16.2.322cpzengDtihsvkr/Sp8gd4rztrue127.0.0.1/data/sftpsftp123
每一个用户都有一个独立配置段包起来,还可以使用md5加密的密码
使用明文密码使用加密的密码
要远程连接的主机用配置段包起来
ssh172.16.2.1422cpzengDtihsvkr/Sp8gd4rztrue127.0.0.1/data/sftpsftp123
connection配置中有几个参数是必须的,
protocol :使用的协议,如rdp、ssh、vnc
hostname: 主机ip
port:端口
username:登录使用的账号
password: 登录密码
enable-sftp:被连接的linux主机开启sftp,需要在linux服务器上配置sftp,下面会讲如何配置
sftp-hostname:sftp服务器的ip,为本机127.0.0.1,我测试过写其他开启了sftp服务器机器ip,最后还是连到本机的sftp上了
sftp-root-directory:登录linux机器后,sftp指定的路径,如果不配置改选项,则默认为/目录,可以使用web界面来选择上传文件的路径,
如果要上传文件,则登录用户要有目标路径的写入权限,比如登录用户为user1,希望将文件上传到/opt/app目录,则user1要对/opt/app目录有写入权限。所有最好指定一个为777权限的路径
sftp-username:sftp登录用户名
sftp-password:sftp密码
使用guacamole
登录guacamole控制台
http://ip:8080/guacamole-0.9.14
这里的账号密码使用/etc/guacamole/user-mapping.xml文件中配置段中的username和password
如上面例子中账号密码为admin/123456,注意中的username和password是服务器的账户密码
登录后选择要远程连接的机器
上传文件
同时按住control + alt + shift
在Devices标签下点击配置sftp路径(/data/sftp),点击Upload
Files按钮,在弹出的窗口选择要上传的文件即可。注意:需要授权用户对目标路径有写入权限,我这里将/data/sftp目录权限设置为777了,之前一直提示无法上传文件,改了权限就正常了
SFTP配置
SFTP是要在每一台linux服务器上进行配置的,你要登录哪台机器,需要上传文件到该机器上,就需要配置SFTP,配置过程如下:
groupaddsftpuseradd-gsftp-s /sbin/nologin -Msftp
设置密码:
passwdsftp
创建sftp根目录,即存放文件的目录
mkdir-p /data/sftpchownroot:sftp /data/sftpchmod770 /data/sftp
修改sshd_config配置
#Subsystem sftp /usr/libexec/openssh/sftp-server // 注释这一条配置,
新增以下配置
Subsystemsftpinternal-sftpMatch UsersftpX11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp ChrootDirectory /data/sftp
vsftpd配置
windows服务器可以使用vsftpd来上传下载文件
生产环境vsftpd配置文件如下:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESlisten_ipv6=NOpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESchroot_local_user=YESascii_upload_enable=YESascii_download_enable=YESasync_abor_enable=YESlocal_root=/var/ftp/opsanon_root=/var/ftp
生产环境中的ftp禁止了匿名登录,只能让运维人员使用ops账号登录
[root@SRV-OPS10-JUMP02 ~]# ll /var/ftp/total 0drwxr-xr-x 3 root root 19 May 2 11:18 opsdrwxr-xr-x 2 root root 6 Aug 3 2017 pub[root@SRV-OPS10-JUMP02 ~]# ll /var/ftp/ops/total 0drwxr-x--- 2 ops ops 34 May 2 13:02 upload[root@SRV-OPS10-JUMP02 ~]# ll /var/ftp/ops/upload/total 0-rw-r--r-- 1 ops ops 0 May 2 12:39 New Text Document.txt
测试环境的vsftpd.conf配置
anon_upload_enable=YESanonymous_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESallow_writeable_chroot=YESchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listlocal_root=/var/ftpanon_root=/var/ftp/pub
补充
在生产中发现ssh协议连接linux机器,会出现乱码的情况。这是因为guacamole机器字体不对,可以从windows机器下载黑体和宋体字到linux机器上。
具体操作方法请参考
https://www.linuxidc.com/Linux/2016-09/135548.htm
如果想更换ssh登陆后的字体和颜色,可以在ssh配置中加上color-scheme 参数配置,可选参数:black-white、gray-black、green-black、white-black
例如:
ssh10.9.186.18822ansiblepoKh8gwRmla4e"white-black