Apache Guacamole Docker 설치 (RDP, VNC, SSH 웹 클라이언트)
웹 ssh 클라를 찾다가 발견한 프로그램.
사용자인증 및 사용자에 따른 커넥션 설정에다가 SSH 는 기본이고 RDP와 VNC 까지 지원을 한다.
RDP 테스트를 해봤는데 매우 쓸만한 수준.
심지어 모바일까지 잘 지원을 한다!
tomcat 위에서 돌아간다는 점만 제외하면 정말 마음에 드는데.... tomcat 은 싫으니 docker 에다가 넣어버리자.
guacamole 는 커넥션을 유지하면서 서버 역할을 해주는 데몬과 프론트엔드 인스턴스 2개로 분리되어 있다.
docker에서 각각 guacamole/guacd (데몬), guacamole/guacamole (프론트) 이미지를 사용하면 됨.
사용자와 연결설정 저장 등을 위해 mysql 등의 DB를 사용하게 되고 보통 이것까지 docker 로 돌리지만, 난 내 DB에 연결할 것이므로 생략.
먼저 이미지를 받아온다.
docker pull guacamole/guacd
docker pull guacamole/guacamole
그리고 도커 이미지에서 mysql 테이블 생성을 위한 스크립트를 가져온다.
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
사용자나 DB는 알아서 생성을 하고, 해당 스크립트로 DB 구성을 한다.
mysql -hhost -uuser -p db_name < initdb.sql
컨테이너 설정을 위해서 docker-compose 를 사용한다.
없다면 설치를 해주고.. 아래 내용으로 docker-compose.yml 파일을 만든다.
version: '3'
services:
guacd:
hostname: guacd
image: guacamole/guacd
restart: always
guacamole:
image: guacamole/guacamole
restart: always
ports:
- 8080:8080
links:
- guacd
environment:
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: DB_HOST
MYSQL_DATABASE: DB_DATABASE
MYSQL_USER: DB_USER
MYSQL_PASSWORD: DB_PASSWORD
그리고 아래 명령어를 치면 아래처럼 컨테이너가 생성됨!
docker-compose up -d
Creating network "guacamole_default" with the default driver
Creating guacamole_guacd_1 ...
Creating guacamole_guacd_1 ... done
Creating guacamole_guacamole_1 ...
Creating guacamole_guacamole_1 ... done
이제 http://서버주소:8080/gucamole 로 들어가면 로그인창을 볼 수 있다.
기본 계정(위 mysql 설정을 통해 자동 생성됨)은 ID: guacadmin / PW: guacadmin
nginx 등으로 라우팅을 해주면 편하게 쓸 수 있을 듯.
apache2 나 nginx 에서 프록시 설정은 https://guacamole.apache.org/doc/gug/proxying-guacamole.html 을 참고하자.
참고 URL:
https://pages.wiserain.com/articles/deploying-guacamole-using-docker/
https://guacamole.apache.org/doc/gug/proxying-guacamole.html