3.8 KiB
3.8 KiB
Apache Guacamole Install with Podman
Web UI를 통해 RDP, VNC, SSH 등 원격 접속을 할 수 있고 사용자별 권한 관리 등이 가능한 유틸
Podman을 통해 contaienr로 설치하는 과정
수정된 이미지를 사용하고자 할 경우 hypermole.tar를 다운로드 받아 load 하여 사용
logo와 이름을 커스텀하여 사용하고자 할 경우 Dockerfile과 guacamole.war를 받아서 사용
Guacamole 컨테이너들이 사용할 네트워크 생성 (옵션)
podman network create guaca
- 기존에 생성한 네트워크가 있을 경우 사용해도 무방, 컨테이너간 통신시 컨테이너 명으로 하기 위함
postgres 설치
podman run -v /root/podmandir/postgres:/var/lib/postgresql/data --network guaca --name guaca-db -e POSTGRES_PASSWORD=ios2011a -e PGDATA=/var/lib/postgresql/data/pgdata -e POSTGRES_HOST_AUTH_METHOD=md5 -d postgres:14
- guacamole가 사용할 DB로 mysql 혹은 postgres 생성
- postgres:14를 사용할 경우 POSTGRES_HOST_AUTH_METHOD=md5 옵션 설정
podman exec -it guaca-db bash
vi /var/lib/postgresql/data/pgdata/postgresql.conf
- 패스워드 암호화 방식 변경 필요
password_encryption = scram-sha-256
- 해당 부분의 주석을 해제하고 scram-sha-256 -> md5 로 변경
- 저장 후 postgres 컨테이너 재기동
podman run --rm guacamole/guacamole:1.4.0 /opt/guacamole/bin/initdb.sh --postgres > initdb.sql
- guacamole에서 사용할 db 설정을 위한 sql 파일 생성
podman exec -it guaca-db bash
- postgres 컨테이너 접속
psql -U postgres
alter role postgres password 'ios2011a';
create database guacamole_db;
create user guacamole_user password 'ios2011a' superuser createdb createrole;
psql -U guacamole_user -d guacamole_db -a -f initdb.sql
- guacamole에서 사용할 사용자와 db 생성
- 위에서 생성한 sql 파일을 사전에 미리 컨테이너 내부로 옮겨두고 실행
Auacd 설치
podman run --network guaca --name guacd -d guacamole/guacd:1.4.0
- 원격 접속 역할을 수행하는 guacd container 생성
guacamole 설치
podman run --network guaca --name hypermole \
-e WEBAPP_CONTEXT=ROOT \
-e GUACD_HOSTNAME=guacd \
-e GUACD_PORT=4822 \
-e POSTGRES_HOSTNAME=guaca-db \
-e POSTGRES_PORT=5432 \
-e POSTGRES_DATABASE=guacamole_db \
-e POSTGRES_USER=guacamole_user \
-e POSTGRES_PASSWORD=ios2011a \
-d -p 7900:8080 localhost/hypermole:0.2
- 해당 커맨드는 tmaxcloud platform ps팀에서 사용하기 위해 작성자가 수정한 이미지
- 순수 guacamole 같은 경우 guacamole/guacamole:1.4.0 을 사용
Nginx 설정
server {
server_name hypermole.jhcloud.kr;
location / {
#proxy_pass_request_headers on;
#proxy_ssl_verify off;
#proxy_pass http://127.0.0.1:7900;
#proxy_set_header Host $host;
#proxy_set_header X-Forwarded-Proto https;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-for $remote_addr;
#proxy_hide_header X-Frame-Options;
proxy_pass http://localhost:7900;
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;
proxy_cookie_path /guacamole/ /new-path/;
access_log off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate_key /home/ps-ftp/ssl/jhcloud.kr.key;
ssl_certificate /home/ps-ftp/ssl/fullchain.cer;
# other details, filled by Certbot
}
- guacamole 같은 경우 위와 같이 설정을 해야함
