이 프로젝트를 사용하면 선택적 TLS 역방향 프록시(자체 서명 또는 Let's Encrypt), Active Directory 통합, 다단계 인증, 빠른 연결 및 기록 기록 저장소 UI 향상, 사용자 정의 UI 어두운 테마를 사용하여 Guacamole 점프 호스트를 쉽게 설정할 수 있습니다. 템플릿, 자동 데이터베이스 백업, 이메일 경고 및 무차별 대입 공격에 대한 방어를 위한 Fail2ban을 포함한 내부 강화 옵션이 있습니다. Amazon의 Guacamole Bastion Cluster와 유사한 엔터프라이즈 배포 옵션도 있습니다.
아래 링크를 터미널에 붙여넣고 프롬프트를 따르십시오( 루트로 실행하지 마십시오. 스크립트는 sudo를 묻는 메시지를 표시합니다 ).
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
호환 가능한 OS:
데비안: 12.x 또는 11.x
Ubuntu LTS 변형: 24.04, 23.04, 22.04
Raspbian Buster 또는 Bullseye
사용자 25명당 CPU 코어 1개 + 2GB RAM(선택한 OS에 대한 최소 RAM 및 디스크 공간 추가).
개방형 TCP 포트: 22, 80 및 443(80, 8080 및 443을 사용하는 다른 서비스 없음)
TLS 역방향 프록시 옵션 중 하나를 선택하는 경우 내부 프록시 사이트에 대한 PRIVATE DNS 레코드를 생성해야 하며 Let's Encrypt 옵션을 선택하는 경우 추가 PUBLIC DNS 레코드를 생성해야 합니다.
Sudo 및 wget 패키지 설치됨
1-setup.sh
실행하는 사용자에게는 sudo 권한이 있어야 합니다.
기본 1-setup.sh
스크립트는 다음 단계로 설치를 안내합니다.
시스템 호스트 이름 및 로컬 DNS 이름을 설정합니다(로컬 DNS는 TLS 프록시에 대해 일관성이 있어야 함).
로컬 MySQL 설치를 선택하거나 기존 로컬 또는 원격 MySQL 인스턴스를 사용합니다.
인증 확장 프로그램(DUO, TOTP, LDAP/Active Directory 또는 없음)을 선택하세요.
선택적 콘솔 기능 선택: 빠른 연결 및 기록된 기록 스토리지 UI 통합.
Guacamole 프런트 엔드: Nginx 역방향 프록시(HTTP 또는 HTTPS)를 선택하거나 포트 8080에서 기본 Guacamole 인터페이스를 사용합니다.
새 서버 및 클라이언트 브라우저 인증서는 $HOME/guac-setup/tls-certs/[date-time]/
에 저장됩니다.
선택적으로 https 브라우저 경고를 방지하려면 클라이언트 인증서 가져오기에 대한 화면 지침을 따르십시오.
자체 서명 TLS를 사용하여 Nginx를 설치하려는 경우:
사용 가능한 많은 스크립트 옵션을 사용자 정의하려면 다음을 수행하십시오.
첫 번째 프롬프트에서 1-setup.sh
종료합니다.
구성 가능한 모든 스크립트 옵션은 1-setup.sh
시작 시 자동 설정 옵션 아래에 표시됩니다.
자동 설정 옵션 의 특정 조합을 사용하면 대량 배포 또는 고도로 사용자 정의된 Docker 빌드를 지원하는 완전 무인 설치가 가능합니다.
변경한 후 편집된 스크립트를 로컬에서 다시 실행하십시오. 자동 설치 웹 링크를 다시 실행하지 마십시오. 아래를 참조하십시오.
기타 사용자 정의 설치 참고 사항:
주의: 자동 설치 프로그램을 다시 실행하면 스크립트 모음이 다시 다운로드되며 이로 인해 모든 스크립트 편집 내용이 덮어쓰여집니다. 따라서 편집 후에는 1-setup.sh를 로컬로 실행해야 합니다. 다른 하위 스크립트를 편집하는 경우 1-setup.sh 스크립트의 해당 다운로드 링크도 주석 처리해야 합니다.
업그레이드 스크립트는 향후 일관된 업데이트를 위해 특정 설치 설정에 따라 자동으로 사용자 정의 됩니다. (설치 후 자동 설치 링크에서 다시 다운로드하면 위와 같이 모든 사용자 정의 설정을 덮어쓰게 됩니다.)
Nginx 역방향 프록시는 기본적으로 TLS 1.2 이상으로 구성됩니다. 고대 시스템의 경우 설치 후 /etc/nginx/nginx.conf
파일의 주석 처리된 섹션을 참조하세요.
일일 MySQL 백업 작업은 스크립트 소유자의 crontab에 자동으로 구성됩니다.
Quick Connect 옵션은 보안에 추가적인 영향을 미치므로 환경의 잠재적인 위험에 유의하세요.
설치 후 수동 강화 옵션:
add-fail2ban.sh
: 무차별 암호 공격을 방지하기 위해 Guacamole에 대한 잠금 정책을 추가합니다.
add-tls-guac-daemon.sh
: guac 서버와 guac 애플리케이션 간의 내부 트래픽을 TLS로 래핑합니다.
add-auth-ldap.sh
: 단순화된 Active Directory 통합을 위한 템플릿 스크립트입니다.
add-smtp-relay-o365.sh
: MSO65(BYO 앱 비밀번호)와의 이메일 경고 통합을 위한 템플릿 스크립트입니다.
여기에서 테마 및 브랜딩 지침을 따르세요 . 기본 테마로 되돌리려면 /etc/guacamole/extensions
에서branding.jar 파일을 삭제하고 브라우저 캐시를 지우고 다시 시작하면 됩니다.
자체 서명된 인증서를 갱신하거나 역방향 프록시 로컬 DNS 이름/IP 주소를 변경하려면:
4a-install-tls-self-signed-nginx.sh
다시 실행하여 새 Nginx 인증서를 생성합니다(동반된 브라우저 클라이언트 인증서도 업데이트됩니다). 인증서를 변경한 후에는 항상 브라우저 캐시를 지우십시오.
여기를 참조하세요.
여기를 참조하세요
Guacamole을 업그레이드하려면 실행하기 전에 Guacamole 및 MySQL 커넥터/J의 최신 버전을 반영하도록 upgrade-guacamole.sh
편집하세요. 이 스크립트는 TOTP, DUO, LDAP, Quick Connect 및 기록 기록 스토리지 확장이 있는 경우 자동으로 업데이트합니다.
별도의 DATABASE 레이어의 경우: Guacamole MySQL 데이터베이스의 독립 실행형 인스턴스를 설치하려면 여기에서 install-mysql-backend-only.sh
를 사용하십시오.
별도의 APPLICATION 계층의 경우: 1-setup.sh
실행하고 새 설치가 별도의 데이터베이스 인스턴스를 가리키도록 합니다. "MySQL을 로컬로 설치" 옵션과 기타 로컬 역방향 프록시 설치 옵션을 거부 하면 됩니다.
별도의 프런트 엔드 계층의 경우: 포함된 Nginx 설치 프로그램 스크립트를 사용하여 별도의 Nginx 프런트 엔드 계층을 구축한 다음 선호하는 TLS 부하 분산 기술을 적용합니다. 또는 AWS/Azure/GCP 로드 밸런서 또는 HA 프록시는 오픈 소스 Nginx에 비해 우수한 세션 지속성 및 선호도를 제공할 수 있습니다.
자동 실행 링크는 다음 파일을 $HOME/guac-setup
에 다운로드합니다.
1-setup.sh
: 상위 설정 스크립트입니다.
2-install-guacamole.sh
: Guacamole 소스 빌드 및 설치 프로그램 스크립트.
3-install-nginx.sh
: Nginx 설치 스크립트.
4a-install-tls-self-signed-nginx.sh
: 자체 서명된 TLS 인증서 스크립트를 설치/새로 고칩니다.
4b-install-tls-letsencrypt-nginx.sh
: Nginx용 Let's Encrypt 설치 프로그램 스크립트.
add-auth-duo.sh
: Duo MFA 확장 설치 스크립트.
add-auth-ldap.sh
: Active Directory 확장 설치 프로그램 템플릿 스크립트.
add-auth-totp.sh
: TOTP MFA 확장 설치 프로그램 스크립트.
add-xtra-quickconnect.sh
: Quick Connect 콘솔 확장 설치 프로그램 스크립트.
add-xtra-histrecstore.sh
: 기록된 저장소 확장 설치 프로그램 스크립트.
add-smtp-relay-o365.sh
: O365 SMTP 인증 릴레이 설정을 위한 스크립트(BYO 앱 비밀번호).
add-tls-guac-daemon.sh
: guacd 서버와 Guacamole 웹 앱 간의 내부 트래픽을 TLS로 래핑합니다.
add-fail2ban.sh
: Fail2ban (& Guacamole 보호 정책) 설치 프로그램 스크립트.
backup-guacamole.sh
: MySQL 백업 설정 스크립트.
upgrade-guacamole.sh
: Guacamole 애플리케이션, 확장 및 MySQL 커넥터 업그레이드 스크립트입니다.
branding.jar
: Guacamole의 UI 테마를 사용자 정의하기 위한 기본 템플릿입니다.