Nachfolgend beschreibe ich die Installation eines Cyolo IDAC in meinem Labor. Dieser wird auf einem Proxmox Server und in einem Ubuntu LXC Container installiert.
Wichtig – Vorausgesetzt wird, dass eine entsprechende Cyolo Lizenz vorhanden ist, um die Installation mit einem lauffähigen Cyolo IDAC oder PG abschliessen zu können.
Die Installation erfolgt auf der Basis der Cyolo-Dokumentation – https://docs.cyolo.io/docs/overview-4
Als Template wird der Ubuntu 24.04 LXC Container von Proxmox verwendet. Sollte dieses Template nicht zur Verfügung stehen, kann die Template Liste folgendermassen über die Proxmox Shell aktualisiert werden:
pveam update

Danach das passende Template auswählen und herunterladen.
Jetzt kann der LXC Container mit Ubuntu 24.04 erstellt werden:

Wichtig – das Nesting muss bei diesem Container aktiviert sein, da im LXC-Container noch eine Docker-Umgebung installieren werden soll, in welcher der Cyolo IDAC laufen wird.
Template auswählen:

Die Harddisk-Grösse festlegen – bei einem IDAC mit Video-Aufzeichnung werden min. 150GB vorausgesetzt. Für die Labor-Umgebung wird wesentlich weniger definiert, da die Funktion nur zu Demo-Zwecken genutzt wird. Sollen keine Video-Aufzeichnungen gespeichert werden, kann auch mit min. 60 resp. 80GB gestartet werden. Für die Laborumgebung werden 40GB definiert.

Die minimalen Anforderungen an vCPU sind von Cyolo mit 4 und empfohlen mit 6 angegeben. Für die Laborumgebung werden 2 vCPUs verwendet, da diese Anzahl für die Labor-Umgebung ausreichend ist.

Anschliessend wird die Grösse des Arbeitsspeichers definiert. Cyolo empfiehlt mindestens 8GB RAM für die IDAC Instanz. Für die Laborumgebung werden 4 GB Memory und 2GB Swap-Size definiert.

Anschliessend sind die für die Umgebung passenden Netzwerk-Parameter in der Netzwerk-Konfiguration einzutragen.

Wichtig – Falls „VLAN Tag“ verwendet werden soll, um den IDAC in ein anderen VLAN zu stellen, muss sichergestellt sein, dass die betreffende Proxmox Linux Bridge mit „VLAN aware“ konfiguriert ist.

Hier sind nachfolgend die DNS Domain und Server Einstellungen zu ergänzen.

Abschliessen kann die Erstellung des Containers abgeschlossen werden.

Ist der Ubuntu LXC-Container gestartet, kann auf die Konsole zugegriffen und mit der Cyolo-Installation weiterverfahren werden.
Bevor mit der Installation von Cyolo weitergefahren wird, müssen noch die „ulimits“ des Containers auf folgende Werte angepasst werden:
lxc.prlimit.nofile = 1048576:1048576
lxc.prlimit.nproc = 65535:65535
lxc.prlimit.memlock = -1:-1
Dazu muss auf dem Proxmox-Host die Konfigurationsdatei des betreffenden Containers geöffnet werden:
nano /etc/pve/lxc/<CTID>.conf
Die Konfigurationsdatei sieht dann folgendermassen aus:

Im nächsten Schritt wird sichergestellt, dass das Template auf einen aktuellen Stand gebracht wird und es werden die entsprechenden Updates installiert:
apt update && apt upgrade -y
Anschliessend werden die zusätzlich benötigten Pakete installiert:
apt install curl netcat-traditional dnsutils openssl -y
Anschliessend überprüfen, ob alle Anforderungen des Ubuntu Containers, für die weitere Installation erfüllt sind und auf der Konsole folgenden Befehle eingeben:
curl -L https://deploy.cyolo.io/cyolo_check.sh -o cyolo_check.sh
chmod 755 cyolo_check.sh
./cyolo_check.sh
Die Ausgabe des Skripts sollte etwa folgendermassen aussehen:
======= Checking for Dependencies
/bin/nc
/bin/dig
/bin/openssl
======= Upstream config
Extracting values from docker-compose.yml
UPSTREAM is tcp.cyolo.io:443
UPSTREAM_SNI is tcp.cyolo.io
NATIVE_SSH_UPSTREAM_ADDR is ssh.cyolo.io:22
AFFINITY_URL is affinity.cyolo.io
UPSTREAM_CLOCK is clock.cyolo.io:443
UPSTREAM_CLOCK_SNI is clock.cyolo.io
======= Cyolo Cloud
Checking the tcp.cyolo.io DNS Resolving
13.248.169.106
76.223.40.26
Validating connection to tcp.cyolo.io:443 - timeout is set for 10 seconds
openssl 13.248.169.106 on port 443 - success
openssl 76.223.40.26 on port 443 - success
Checking Access to Cloud Deployment (system.cyolo.io) - direct
HTTP Status Code: 200
DNS Resolving: 0.001512s
Total Time: 0.042202s
Checking the ssh.cyolo.io DNS Resolving
3.77.90.52
3.77.240.47
35.158.46.208
Validating connection to ssh.cyolo.io:443 - timeout is set for 10 seconds
openssl 3.77.90.52 on port 443 - success
openssl 3.77.240.47 on port 443 - success
openssl 35.158.46.208 on port 443 - success
Checking Access to Cloud Deployment (system.cyolo.io) - direct
HTTP Status Code: 200
DNS Resolving: 0.001827s
Total Time: 0.030331s
Affinity affinity.cyolo.io results:
eu-routers-i-0d11691b4e1e8d890.cyolo.io 443
Validating connection to the Affinity - timeout is set for 10 seconds
accessing eu-routers-i-0d11691b4e1e8d890.cyolo.io 443 - success
Latency check for Affinity
HTTP Status Code: 200
DNS Resolving: 0.002593s
Total Time: 0.020839s
======= Cyolo Services
Checking the metrics.services.cyolo.io DNS Resolving
52.17.209.253
54.77.35.69
Validating connection to metrics.services.cyolo.io:443 - timeout is set for 10 seconds
openssl 52.17.209.253 on port 443 - success
openssl 54.77.35.69 on port 443 - success
Checking Access to Cloud Deployment (system.cyolo.io) - direct
HTTP Status Code: 200
DNS Resolving: 0.001185s
Total Time: 0.045536s
Accessing services.cyolo.io results - success
Accessing registry.cyolo.io/v2/cyolosec/idac/tags/list results - success
======= Speed Check
Check download speed
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10.4M 100 10.4M 0 0 36.3M 0 --:--:-- --:--:-- --:--:-- 36.3M
======= Docker & Docker Compose
Get Docker Version
Docker version 28.0.4, build b8034c0
Get Docker Compose Version
docker-compose version 1.25.4, build 8d51620a
======= TLS inspection test
openssl test results - success
======= Check Cyolo Clock
Checking Access to Cyolo Clock - direct
IDAC Clock: 2025-04-04T08:34:08
Cyolo Clock: 2025-04-04T08:34:08
Falls die Checks nicht erfolgreich sind, müssen die Fehler entsprechend behoben werden, bervor mit der weiteren Installation fortgefahren werden kann.
Die Installation wird, gemäss der Dokumentation von Cyolo, weiter ausgeführt – https://docs.cyolo.io/docs/step-1-initial-installation – welche selbsterklärend ist und hier nicht mehr weiter ausgeführt wird.
