fix 2
This commit is contained in:
5
ansible/roles/guacd/defaults/main.yml
Normal file
5
ansible/roles/guacd/defaults/main.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
# Version des guacamole-server-Quellcode-Tarballs (siehe tasks/main.yml).
|
||||||
|
# Passend zu guacamole-common-js@1.5 im Frontend (scripts/fetch_frontend_assets.sh)
|
||||||
|
# auf dem letzten 1.5.x-Patchlevel halten.
|
||||||
|
guacd_version: "1.5.5"
|
||||||
@ -1,22 +1,99 @@
|
|||||||
---
|
---
|
||||||
# guacd + FreeRDP als reine Protokoll-Engine fuer RDP (Konzept 3/4.3).
|
# guacd + FreeRDP als reine Protokoll-Engine fuer RDP (Konzept 3/4.3).
|
||||||
# Laeuft ausschliesslich lokal gebunden, kein Netzwerkzugriff von aussen.
|
# Laeuft ausschliesslich lokal gebunden, kein Netzwerkzugriff von aussen.
|
||||||
|
#
|
||||||
|
# guacd gibt es fuer Debian (Bookworm und aelter) als apt-Paket bislang NICHT
|
||||||
|
# (nur Ubuntu paketiert es ueber die "universe"-Komponente). Daher wird guacd
|
||||||
|
# hier gemaess der offiziellen Apache-Guacamole-Doku
|
||||||
|
# ("Installing Guacamole natively") aus dem Quellcode-Tarball gebaut. Nur das
|
||||||
|
# RDP-Plugin wird aktiviert (FreeRDP-Dev-Header vorhanden, kein VNC/Telnet),
|
||||||
|
# passend zum reinen RDP-Einsatzzweck dieses Jumphosts.
|
||||||
|
|
||||||
- name: guacd und FreeRDP-Plugin installieren
|
- name: Build-Abhaengigkeiten fuer guacd installieren
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- guacd
|
- build-essential
|
||||||
- libguac-client-rdp0
|
- libcairo2-dev
|
||||||
|
- libjpeg62-turbo-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libtool-bin
|
||||||
|
- uuid-dev
|
||||||
|
- libpango1.0-dev
|
||||||
|
- libssl-dev
|
||||||
|
- freerdp2-dev
|
||||||
|
- pkg-config
|
||||||
|
- wget
|
||||||
|
- ca-certificates
|
||||||
state: present
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Dedizierten guacd-User sicherstellen (Paket legt i.d.R. bereits einen an)
|
- name: Dedizierten guacd-User anlegen (frueher vom Debian/Ubuntu-Paket erledigt)
|
||||||
ansible.builtin.user:
|
ansible.builtin.user:
|
||||||
name: guacd
|
name: guacd
|
||||||
system: true
|
system: true
|
||||||
shell: /usr/sbin/nologin
|
shell: /usr/sbin/nologin
|
||||||
create_home: false
|
create_home: false
|
||||||
ignore_errors: true
|
|
||||||
|
- name: Vorhandene guacd-Installation (falls Quellcode-Build) pruefen
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: /usr/local/sbin/guacd
|
||||||
|
register: _guacd_bin
|
||||||
|
|
||||||
|
- name: Installierte guacd-Version ermitteln
|
||||||
|
ansible.builtin.command: /usr/local/sbin/guacd -v
|
||||||
|
register: _guacd_version
|
||||||
|
changed_when: false
|
||||||
|
when: _guacd_bin.stat.exists
|
||||||
|
|
||||||
|
- name: Feststellen, ob (Neu-)Build noetig ist
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
_guacd_build_needed: "{{ (not _guacd_bin.stat.exists) or (guacd_version not in (_guacd_version.stdout | default(''))) }}"
|
||||||
|
|
||||||
|
- name: guacamole-server Quellcode-Tarball herunterladen
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "https://archive.apache.org/dist/guacamole/{{ guacd_version }}/source/guacamole-server-{{ guacd_version }}.tar.gz"
|
||||||
|
dest: "/usr/local/src/guacamole-server-{{ guacd_version }}.tar.gz"
|
||||||
|
checksum: "sha512:https://archive.apache.org/dist/guacamole/{{ guacd_version }}/source/guacamole-server-{{ guacd_version }}.tar.gz.sha512"
|
||||||
|
mode: "0644"
|
||||||
|
when: _guacd_build_needed
|
||||||
|
|
||||||
|
- name: guacamole-server Tarball entpacken
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: "/usr/local/src/guacamole-server-{{ guacd_version }}.tar.gz"
|
||||||
|
dest: /usr/local/src
|
||||||
|
remote_src: true
|
||||||
|
creates: "/usr/local/src/guacamole-server-{{ guacd_version }}/configure"
|
||||||
|
when: _guacd_build_needed
|
||||||
|
|
||||||
|
- name: guacamole-server konfigurieren (nur RDP-Plugin, kein VNC/Telnet/guacenc)
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: >-
|
||||||
|
./configure --with-systemd-dir=/etc/systemd/system
|
||||||
|
--disable-guacenc --disable-guaclog
|
||||||
|
chdir: "/usr/local/src/guacamole-server-{{ guacd_version }}"
|
||||||
|
creates: "/usr/local/src/guacamole-server-{{ guacd_version }}/Makefile"
|
||||||
|
when: _guacd_build_needed
|
||||||
|
|
||||||
|
- name: guacamole-server kompilieren
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: "make -j{{ ansible_processor_vcpus | default(2) }}"
|
||||||
|
chdir: "/usr/local/src/guacamole-server-{{ guacd_version }}"
|
||||||
|
when: _guacd_build_needed
|
||||||
|
changed_when: true
|
||||||
|
|
||||||
|
- name: guacamole-server installieren (make install)
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: make install
|
||||||
|
chdir: "/usr/local/src/guacamole-server-{{ guacd_version }}"
|
||||||
|
when: _guacd_build_needed
|
||||||
|
notify:
|
||||||
|
- reload systemd
|
||||||
|
- restart guacd
|
||||||
|
|
||||||
|
- name: Shared-Library-Cache aktualisieren (ldconfig)
|
||||||
|
ansible.builtin.command: ldconfig
|
||||||
|
when: _guacd_build_needed
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
- name: guacd nur an localhost binden
|
- name: guacd nur an localhost binden
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
@ -57,8 +134,6 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
vars:
|
|
||||||
_dummy: true
|
|
||||||
notify:
|
notify:
|
||||||
- reload systemd
|
- reload systemd
|
||||||
- restart guacd
|
- restart guacd
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
; Hardening-Override fuer die vom Debian/Ubuntu-Paket mitgelieferte
|
; Hardening-Override fuer die aus dem Quellcode gebaute guacd.service
|
||||||
; guacd.service (Konzept 8.2). Nur lokale Kommunikation zur App (Unix-Domain
|
; (Konzept 8.2, siehe roles/guacd/tasks/main.yml -- guacd wird per
|
||||||
; oder localhost) sowie ausgehend RDP zu den Zielsystemen.
|
; ./configure --with-systemd-dir=... selbst als Unit installiert, da es
|
||||||
|
; fuer Debian kein fertiges apt-Paket gibt). Erzwingt den unprivilegierten
|
||||||
|
; System-User "guacd" und beschraenkt guacd auf lokale Kommunikation zur
|
||||||
|
; App (Unix-Domain oder localhost) sowie ausgehend RDP zu den Zielsystemen.
|
||||||
[Service]
|
[Service]
|
||||||
|
User=guacd
|
||||||
|
Group=guacd
|
||||||
NoNewPrivileges=true
|
NoNewPrivileges=true
|
||||||
ProtectSystem=strict
|
ProtectSystem=strict
|
||||||
ProtectHome=true
|
ProtectHome=true
|
||||||
|
|||||||
Reference in New Issue
Block a user