用Docker构建Apache Guacamole

Apache Guacamole是什么?

Apache鳄梨酱

https://guacamole.apache.org/

以下是主要要点,虽然在我们的官方网站上也有相关说明。

    • 無料でオープンソースのソフトウェア

 

    • 対応しているのはVNC、RDP、SSHなどの標準プロトコル

 

    必要なのはWEBブラウザだけ

在AWS上建立并访问AWS的EC2实例非常方便。
此外,由于它是基于WEB浏览器的,通过HTTPS通信进行WAF,非常安全。

如果进一步使用AWS WAF,除了避免XSS和SQL注入攻击之外,还可以限制只允许国内访问,从而大大减少攻击风险。

尚、1.0.0版本开始支持双因素认证,使用Google认证或Authy可以进一步增强安全性。

对于”认证”,具体是什么样子呢?

000003.png

下一个选项是使用Google认证或Authy进行身份验证。

000004.png

另外,由于是通过WEB访问,如果使用HTTPS进行访问,就可以实现安全性,同时还可以使用WAF增强安全性,还可以在公司或家中访问,可以灵活选择工作地点。

用母语构建

第2章 安装Guacamole本地版本
https://guacamole.apache.org/doc/gug/installing-guacamole.html

根据Apache Guacamole的手册,可以使用Native方式进行构建。 但是,由于稍微有点麻烦,我们可以使用Docker来轻松构建。

使用Docker进行构建

第三章。使用Docker安装Guacamole
链接:https://guacamole.apache.org/doc/gug/guacamole-docker.html

按照Apache Guacamole的手册,您可以在Docker中构建它,但是这样会更麻烦。为了更简便,我们将使用Docker-Compose来进行构建。

前提是Docker和Docker-Compose已经安装好,请看下面Docker-Compose的内容。


services:
  guacd:
    image: guacamole/guacd:1.0.0
    restart: always
    volumes:
      - /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf:/usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf:ro
      - /var/log/guacamole/typescript:/var/log/guacamole/typescript
      - /var/log/guacamole/recording:/var/log/guacamole/recording
    networks:
      - guacamole_network

  guac:
    image: guacamole/guacamole:1.0.0
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - /opt/docker/config/guacamole:/config
    environment:
      - "GUACD_HOSTNAME=guacd"
      - "GUACD_PORT=4822"
      - "MYSQL_HOSTNAME=MYSQLサーバ名"
      - "MYSQL_DATABASE=guacamole"
      - "MYSQL_USER=guacamole"
      - "MYSQL_PASSWORD=guacamole"
      - "LDAP_HOSTNAME=LDAPサーバ名"
      - "LDAP_PORT=389"
      - "LDAP_ENCRYPTION_METHOD=none"
      - "LDAP_USER_BASE_DN=ユーザーを検索するbaseのDN"
      - "LDAP_GROUP_BASE_DN=グループを検索するbaseのDN"
      - "LDAP_SEARCH_BIND_DN=LDAPサーバに接続する際のユーザーのDN"
      - "LDAP_SEARCH_BIND_PASSWORD=LDAPサーバに接続する際のユーザーのパスワード"
      - "LDAP_USERNAME_ATTRIBUTE=uid"
      - "GUACAMOLE_HOME=/config"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "100"
    networks:
      - guacamole_network

networks:
  guacamole_network:
    driver: bridge

Apache Guacamole由三个主要服务组成。

    • guacd ログインやユーザーからの入力を受け付けたり、実際のコンソール画面を表示します。

 

    • guac guacdからの入力を内部的にSSHやRDP、VNCプロトコルに変換して実際のアクセス先のサーバに渡します。

 

    データベース ユーザー情報やホスト情報を保管する為のデータベースの管理をします。外部のサーバも利用できます。

将此docker-compose文件保存为docker-compose.yml,并通过dokcer-compose start命令启动即可,应该能够运行。

如果您想要使用二要素认证,请在docker-compose.yml文件的同一层级下创建config/guacamole/extensions目录。

将guacamole-auth-totp-1.0.0.tar.gz下载并解压到指定的文件夹中,并将解压后的jar文件放置在该文件夹中。

Apache鳄梨酱1.0.0
https://guacamole.apache.org/releases/1.0.0/

如果使用docker-compose restart进行重新启动,然后使用帐号和密码登录后,将显示Google认证或Authy认证的页面。

以上是使用Docker-Compose进行构建的全部过程。
祝你有一个美好的Guacamole生活!

补充一点

如果使用标准字体,可能会出现日文成为“豆腐”(乱码)的情况。
请按以下方式将支持日文的字体安装并挂载。

- /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf:/usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf:ro