Configure a deployed Scanner
Scanner Configuration Guide
Guide for configuring CyberOptix scanners after deployment.
Overview
After installing the CyberOptix scanner package or deploying a scanner appliance, you must configure the scanner to connect to your CyberOptix organization and integrate with GVM (Greenbone Vulnerability Management) for vulnerability scanning.
Prerequisites
- Scanner deployed (Ubuntu 24.04, RHEL 9.x, or AWS appliance)
- Scanner group created in CyberOptix
- Root or sudo access to scanner
- Scanner link command from CyberOptix
Configuration Steps
Step 1: Update System and Configure User
Ubuntu 24.04:
sudo apt update && sudo apt dist-upgrade -yRHEL 9.x:
sudo dnf update -yAdd the current user to docker and optix groups:
sudo usermod -aG docker,optix $USER && su $USERStep 2: Install GVM Tools and Pull Images
Ubuntu 24.04:
Install gvm-tools globally using pipx:
sudo PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install gvm-toolsRHEL 9.x:
Install pipx and gvm-tools:
sudo PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install gvm-toolsPull CyberOptix scanner Docker images:
docker compose -f /etc/optix/docker-compose-optix.yml --profile disable pullStart the Docker services:
docker compose -f /etc/optix/docker-compose-optix.yml up -dStep 3: Configure GVM Administrator
Set proper file permissions for GVM:
sudo chown optix:optix -R /etc/optix/
sudo chown -R 1001:1001 /etc/optix/.gvm/
sudo chmod 777 -R /etc/optix/.gvm/
sudo chmod 600 /etc/optix/scanner-config.jsonCreate a strong random password for the GVM admin user:
# Generate a secure password
GVM_PASSWORD=$(openssl rand -base64 32)
# Set the GVM admin password
docker compose -f /etc/optix/docker-compose-optix.yml exec -u gvmd gvmd gvmd --user=admin --new-password=$GVM_PASSWORD
# Display the password (save this securely)
echo "GVM Admin Password: $GVM_PASSWORD"Update GVM tools configuration:
sudo vim /etc/optix/.config/gvm-tools.confAdd the following configuration:
[gmp]
username=admin
password=your-gvm-password-hereSecure the configuration file:
sudo chmod 600 /etc/optix/.config/gvm-tools.confStep 4: Link Scanner to CyberOptix
Retrieve the scanner link command from CyberOptix:
- Navigate to Scanners → Scanner Groups
- Locate your scanner group
- Click the copy icon to copy the link command
Execute the link command on the scanner:
sudo scanner-link -url https://{API_URL}/ \
-scanner_group_id {SCANNER_GROUP_ID} \
-org_id {ORG_ID}Parameters:
{API_URL}- Your CyberOptix instance URL (e.g.,mycompany-api.cyberoptix.io){SCANNER_GROUP_ID}- Scanner group ID from CyberOptix{ORG_ID}- Organization ID from CyberOptix
Step 5: Enable and Start Services
Enable and start all scanner services:
sudo systemctl enable --now \
scanner-active-discovery.service \
scanner-client-completed-tasks.service \
scanner-client-new-tasks.service \
scanner-task-manager.service \
scanner-gvm.serviceRHEL 9.x only - Configure firewall (if enabled):
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadVerify Configuration
Check Service Status
Verify all scanner services are running:
sudo systemctl status scanner-active-discovery.service
sudo systemctl status scanner-client-completed-tasks.service
sudo systemctl status scanner-client-new-tasks.service
sudo systemctl status scanner-task-manager.service
sudo systemctl status scanner-gvm.serviceAll services should show active (running) status.
Check Docker Containers
Verify GVM containers are running:
docker psExpected containers:
- gvmd (GVM daemon)
- ospd-openvas (OpenVAS scanner)
- postgres (Database)
- redis (Cache)
View Scanner Logs
Monitor scanner activity:
# Active discovery logs
sudo journalctl -u scanner-active-discovery.service -f
# Task manager logs
sudo journalctl -u scanner-task-manager.service -f
# GVM logs
sudo journalctl -u scanner-gvm.service -fService Overview
| Service | Purpose |
|---|---|
| scanner-active-discovery.service | Performs host and service discovery in zones |
| scanner-client-completed-tasks.service | Reports completed scan results to CyberOptix |
| scanner-client-new-tasks.service | Retrieves new scanning tasks from CyberOptix |
| scanner-task-manager.service | Coordinates scanning activities and task queue |
| scanner-gvm.service | Manages GVM vulnerability scanning engine |
Configuration Files
| File | Purpose | Permissions |
|---|---|---|
| /etc/optix/scanner-config.json | Scanner configuration | 600 (read/write owner only) |
| /etc/optix/.config/gvm-tools.conf | GVM authentication credentials | 600 (read/write owner only) |
| /etc/optix/docker-compose-optix.yml | Docker container definitions | 644 (read-only) |
| /etc/optix/.gvm/ | GVM data directory | 777 (full access) |
Post-Configuration
After successful configuration:
- Verify scanner appears in CyberOptix scanner group
- Assign scanner group to zones for automated scanning
- Monitor initial scans to ensure proper operation
- Review scan results in CyberOptix platform
GVM Password Management
Initial Password:
- Set during Step 3 of configuration
- Used by scanner services to authenticate with GVM
- Stored in
/etc/optix/.config/gvm-tools.conf
Password Rotation:
To change the GVM admin password:
# Generate new password
NEW_PASSWORD=$(openssl rand -base64 32)
# Update GVM password
docker compose -f /etc/optix/docker-compose-optix.yml exec -u gvmd gvmd gvmd --user=admin --new-password=$NEW_PASSWORD
# Update configuration file
sudo vim /etc/optix/.config/gvm-tools.conf
# Restart GVM service
sudo systemctl restart scanner-gvm.serviceDocker Compose Management
Stop all scanner containers:
docker compose -f /etc/optix/docker-compose-optix.yml downStart all scanner containers:
docker compose -f /etc/optix/docker-compose-optix.yml up -dView container logs:
docker compose -f /etc/optix/docker-compose-optix.yml logs -fUpdate scanner images:
docker compose -f /etc/optix/docker-compose-optix.yml pull
docker compose -f /etc/optix/docker-compose-optix.yml up -dTroubleshooting
RHEL-Specific Issues
SELinux blocking Docker:
If containers fail to start due to SELinux:
# Check for SELinux denials
sudo ausearch -m avc -ts recent
# If needed, set SELinux to permissive for troubleshooting
sudo setenforce 0
# For a permanent fix, create a custom policy or configure container labelsDocker socket permissions:
If you encounter permission errors with Docker:
sudo chmod 666 /var/run/docker.sock
# Or restart the docker service
sudo systemctl restart dockerNext Steps
- Verify scanner connectivity in CyberOptix platform
- Assign scanner group to zones
- Configure scan schedules and parameters
- Monitor first scan execution
- Review scan results and findings
Additional Resources
Updated 16 days ago