Purpose of This Guide
This operations guide is designed to support users in operating Impex systems. It provides both general and specific instructions related to the operation of USB Protect, DataLock, the ICC, and the Repo server. Please note that this guide does not cover the system or application architecture, which is detailed in a separate document. Additionally, troubleshooting procedures for USB Protect and DataLock are outside the scope of this guide and are documented separately.
| Word | Definition |
|---|---|
| Impex | The family name of USB Protect, Xtransfer ICC, Repo and DataLock |
| Stations | The family name of USB Protect, Xtransfer and DataLock |
| ICC | The server which controls the Stations and DataLocks |
| USB Protect | The kiosk computer used to scan mass storage devices |
| Xtransfer | USB Protect with support for sending files to network shares |
| Repo | The server that has the updates and definitions |
| DataLock | Server used for network flows that will scan files before transferring them onwards |
| Network flows | This is the description of data being scanned and transferred through the DataLock to a remote destination. A DataLock can have multiple remote destinations configured |
| Operators | The users who will use the administrative interface on the ICC server |
Customers with an active support agreement are welcome to contact us via email at:
support@sysctl.se
System Overview: USB Protect and DataLock
USB Protect is a kiosk-based system designed to scan data on USB devices. Each USB Protect station is centrally managed by an ICC (Impex Control Center) server.
Key functionalities include:
DataLock operates similarly to USB Protect, but instead of using USB devices, it handles file transfers over the network via SFTP. It supports scanning and transferring files through customizable workflows.
Infrastructure Components
System Architecture and Security
The Impex solution is designed to integrate seamlessly into network architectures that follow the IEC 62443 standard and similar zoned security models, while also accommodating other network topologies.
Key deployment considerations include:
This versatility ensures that Impex can be adapted to a wide range of secure network environments and design preferences.
+-------------------+ +---------------+
| updates.sysctl.se | | Let's Encrypt |
+------^------------+ +-----^---------+
Internet | |
| +----------------+
| |
+------------------------------------------------------------+
| |
DMZ +---+-----+---+
| Firewall <------+
+-------------+ |
|
+-----+----+
+-------------> Proxy |
| | if used |
| +----------+
|
|
+----+--------------------+
| |
| ICC and optional Repo <------+
| | |
+-------^-----------------+ +----^----+
| | Proxy |
| | if used |
| +-+-------+
| |
+------------------------+---------------------+-------------+
| |
Peripheral Network | |
| |
+------+-------+ +-------+------+
| USB Protect | | USB Protect |
+--------------+ +--------------+
+-------------------+ +---------------+
| updates.sysctl.se | | Let's Encrypt |
+------^------------+ +-----^---------+
Internet | |
| +----------------+
| |
+------------------------------------------------------------+
| |
DMZ +---+-----+---+
| Firewall <------+
+-------------+ |
|
+-----+----+
+------------------> Proxy |
| | if used |
| +----------+
+----+-------------+
| |
| Repo, if used |
| |
+----+-------------+
|
+------------------------------------------------------------+
|
Internal network |
|
+----+--------------------+
| |
| ICC and optional Repo <------+
| | |
+-------^-----------------+ +----^----+
| | Proxy |
| | if used |
| +-+-------+
| |
+------------------------+---------------------+-------------+
| |
Peripheral Network | |
| |
+------+-------+ +-------+------+
| USB Protect | | USB Protect |
+--------------+ +--------------+
+-------------------+ +---------------+
| updates.sysctl.se | | Let's Encrypt |
+------^------------+ +-----^---------+
Internet | |
| +----------------+
| |
+---------------------------------------------------------------------+
| |
DMZ +---+-----+---+
| Firewall <------+
+-------------+ |
|
+-----+----+
+-------------> Proxy |
| | if used |
| +----------+
|
|
+----+--------------------+
| |
| ICC and optional Repo <------+
| | |
+-------^-----------------+ +----^----+
| | Proxy |
| | if used |
| +-+-------+
| |
+------------------------+---------------------+-----------------------+
| |
Office Network | |
| |
| |
+--------+ +----+-----+ +-----+----+ +--------+
| Sender |-------> DataLock | | DataLock <------| Sender |
+--------+ +----------+ +----------+ +--------+
| |
| |
+------------------------+---------------------+------------------------+
| |
Protected Network | |
+-----v----+ +----v-----+
| Receiver | | Receiver |
+----------+ +----------+
The table outlines the standard interactions within the system. However, actual implementations may vary depending on specific deployment configurations—for example, when integrations such as Active Directory or other external services are in use.
| Data | Delivers to | Receives from | Tool | Protocol/ Port | Short Description |
|---|---|---|---|---|---|
| smtp.tld | ICC | Mail Relay | SMTP TCP/25 | Information from ICC to end users | |
| Time | ICC | ntp.tld | NTP | NTP UDP/123 | Time source to ICC |
| Time | Repo | ntp.tld | NTP | NTP UDP/123 | Time source to Repo |
| DNS | ICC | resolver.dns | DNS resolver | DNS UDP/53 | DNS lookup for ICC |
| DNS | ICC | resolver.dns | DNS resolver | DNS TCP/53 | DNS lookup for ICC |
| DNS | Repo | resolver.dns | DNS resolver | DNS UDP/53 | DNS lookup for Repo |
| DNS | Repo | resolver.dns | DNS resolver | DNS TCP/53 | DNS lookup for Repo |
| Logs | syslog.tld | ICC | Syslog | Syslog UDP/514 | Sending syslog to log collector |
| Logs | syslog.tld | Repo | Syslog | Syslog UDP/514 | Sending syslog to log collector |
| Updates | USB Protect | Repo | Patches/ Signatures | HTTPS TCP/443 | Gets updates from Repo |
| Updates | DataLock | Repo | Patches/ Signatures | HTTPS TCP/443 | Gets updates from Repo |
| Updates | ICC | Repo | Patches/ Signatures | HTTPS TCP/443 | Gets updates from Repo |
| Updates | Repo | updates. sysctl.se | Patches/ Signatures | HTTPS TCP/443 | Sync updates from sysctl |
| Cert | ICC | letsencrypt. org | Certificate renew | ACME TCP/443 | Get certificate from letsencrypt |
| Cert | letsencrypt. org | ICC | Certificate renew | ACME TCP/80 | Get certificate challenge from ICC |
The following software is required to manage and administer the Impex systems.
To use the ICC web interface, a modern browser is required. The following browsers are supported:
To perform administrative tasks such as accessing the ICC or Repo server, an SSH client is required. Most operating systems include a built-in SSH client:
This section outlines routine and exceptional administrative tasks that may be required to maintain the Impex system components.
These systems are designed to be self-maintaining, requiring no manual intervention during normal operation. They perform the following automated tasks:
Routine administration for the ICC and Repo servers is minimal. However, the following should be noted:
This section outlines how passwords are utilized and managed within the solution architecture. It covers storage practices, authentication scopes, encryption considerations, and any integration points where password-based access is required. The intent is to ensure clarity on security posture, compliance with best practices, and operational awareness regarding sensitive credentials across system components.
Further subsections should be added to describe specific areas, such as:
After installation, the ICC server is configured with two separate passwords:
root Password (Operating System Access):
admin Password (Application Access):
admin password is randomly generated during installation./root/icc_adminroot Password (Operating System Access):
admin password for the ICC application is automatically generated as a random string during installation and stored in:/root/icc_admin
SYSCTL strongly recommends changing this password during or immediately after installation for enhanced security.
To reset a user’s password for the ICC application, SSH or console access is required. Use the following commands:
sudo -i
cd /opt/sysctl/impex-server/django-app
sudo -u impex-server ./manage.sh changepassword $username
Replace $username with the actual username of the account you wish to reset.
Administrators can access the system either locally via the server console or remotely using SSH.
root.sudo command. However, by default, sudo will prompt for the root password.sudo access using each user’s own password, the file /etc/sudoers.d/users must be modified accordingly.Note: Always follow security best practices when modifying sudo permissions and restrict elevated access to trusted users only.
Configuration File Location
DataLock uses its own SSH configuration override file located at:
/etc/ssh/sshd_config.d/60-datalock.conf
This file takes part in the rule evaluation order of OpenSSH’s sshd, where configurations are processed in lexical order. That means:
60-datalock.conf) are evaluated first70-customer.conf) override earlier rules if applicableDefault Restriction: Password Authentication
The 60-datalock.conf file sets:
PasswordAuthentication no
This setting disables password-based logins globally, which enhances security by enforcing key-based authentication only.
Allowing Root Login (When Required)
In some cases, such as initial setup or certain troubleshooting scenarios, SSH access for root might be required. However, this must be done securely and explicitly.
Recommended Procedure
If SSH root login is needed, do not edit 60-datalock.conf directly. Instead:
Use the station token from ICC to securely log in to the DataLock console.
vi /etc/ssh/sshd_config.d/70-customer.conf
AllowUsers root
/root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
systemctl restart sshd
Summary
| Component | Action |
|---|---|
Default Policy (60-datalock.conf) |
Disables password auth globally (PasswordAuthentication no) |
| Override Recommendation | Use 70-customer.conf with AllowUsers root |
| Root Login Enablement | Add SSH key to /root/.ssh/authorized_keys |
| Safe Practice | Never modify 60-datalock.conf directly |
To manually verify a DataLock destination, log in as root on the DataLock server and attempt to access the destination from the command line using the following command:
sftp server.tld -i /home/impex-outgoing/.ssh/id_rsa
Note: Adjust server.tld as needed for your environment.
USB Protect supports only console access. See the USB Protect User Manual for more information.
root account, which is configured during the initial installation.root is disabled for security reasons.sudo.sudo -i
Below are the commands for managing the Impex application and server operations:
Application Shutdown
To stop the Impex application:
systemctl stop impex-server
Application Start
To start the Impex application:
systemctl start impex-server
System Shutdown
To power off the server:
systemctl poweroff
Server Reboot
To reboot the server:
systemctl reboot
The servers are configured to automatically check for updates daily at 01:00 (local time), with a randomized delay of up to 1 hour to distribute load across systems.
Note: Plan administrative work outside of this time window to avoid interruptions.
SSL certificates are needed on the ICC server and, if you run a separate Repo server, on that server as well. How you manage these certificates depends on how your organisation issues them. The sections below cover the two most common setups.
If your deployment uses Let’s Encrypt and the letsencrypt module is installed, certificates are installed and renewed automatically — no manual steps are needed.
The Let’s Encrypt proxy configuration lives in:
/etc/sysconfig/impex-letsencrypt
If your organisation uses its own Certificate Authority (CA) or an external certificate vendor, you need to renew certificates manually when they expire.
If your CA issues the certificate on a separate system and gives you the certificate and private key files:
If you prefer to generate the certificate request directly on the ICC or Repo server, follow these steps:
cp /etc/pki/tls/openssl.cnf /root/openssl.conf
Open /root/openssl.conf and add the following block, replacing host1.domain.tld with the server’s actual hostname:
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = host1.domain.tld
bash /opt/sysctl/impex-server/tools/cert.sh
The script needs the server hostname to be correctly configured. It will create two files in /root/pki/<timestamp>/:
hostname.key — the private key (keep this secure)hostname.csr — the certificate signing request to send to your CAopenssl req -text -noout -verify -in /root/pki/<timestamp>/hostname.csr
Send the .csr file to your CA and wait for the signed certificate back.
Convert the certificate to PEM format if needed. Your CA may return the certificate in a different format. The cert.sh script includes conversion commands in its comments; the most common conversions are:
openssl x509 -inform der -in hostname.cer -out hostname.pem
openssl pkcs7 -in hostname.p7b -inform DER -print_certs -out hostname.pem
To generate a new certificate signing request using the existing private key:
openssl req -new -key "/opt/sysctl/impex-server/etc/apache/certs/hostname.key" -out /root/hostname.csr -config /root/openssl.conf
This creates /root/hostname.csr. Send the contents of that file to your CA — the CA will use it to issue the renewed certificate. Once you receive the signed certificate back, place it and its full chain in the certificate folder described below.
The certificate paths are configured in:
/opt/sysctl/impex-server/etc/apache/conf.d/cert.d/cert.conf
The default locations are:
SSLCertificateFile → /opt/sysctl/impex-server/etc/apache/certs/impex.crtSSLCertificateKeyFile → /opt/sysctl/impex-server/etc/apache/certs/impex.keyYou can use different filenames (for example the server’s FQDN) as long as cert.conf points to them.
The certificate file must:
After placing certificate files on the server, make sure the files have the correct SELinux security label — without it the web server will not be able to read them. Copying files into the folder (cp) preserves the correct label automatically. Moving files with mv can break the label unless you use the -Z flag.
To fix or verify labels, run:
restorecon -Rv /opt/sysctl/impex-server/etc/apache/certs/
Server Snapshots
During each upgrade of the ICC software, the system:
No Backup Required
Reason: Sync with Sysctl
Application Data Storage
/opt/sysctl/impex-server/django-app/db/db.sqlite3
Backing Up the ICC Database
To create a consistent backup of the database, use the following command:
sqlite3 /opt/sysctl/impex-server/django-app/db/db.sqlite3 .dump > new_backup_file
new_backup_file).Recommendation: Run this during low-traffic windows to ensure data consistency, or temporarily pause ICC activity if possible.
Backing Up Custom YARA Rules
If YARA rules are used, consider backing up custom rule files:
/opt/sysctl/impex-server/django-app/upload/yara/custom
Tip: You can add this path to snapshot jobs or file-based backup scripts for completeness.
Built-In Monitoring Features
The ICC has built-in capabilities to monitor:
It can also be configured to send email alerts if either of these services goes offline.
Ensure that email notifications are properly set up in your ICC configuration to make use of this feature effectively.
External Monitoring Recommendations
To ensure high availability and reliability, it is recommended to use an external monitoring system (e.g. Nagios, Zabbix, Prometheus, etc.) to monitor the following aspects of both the ICC and Repo servers:
check_ssl_cert, Certbot’s renewal monitoring, or external services can be used for this.Summary
| Component | Monitoring Type | Responsibility |
|---|---|---|
| USB Protect | Online status + Email alert | ICC internal |
| DataLock | Online status + Email alert | ICC internal |
| Web Server (ICC & Repo) | Availability check | External system |
| Certificate Expiry | Expiry threshold alert | External system |
Malware Detection Alerts
When either USB Protect or DataLock detects malware in a scan report, the ICC generates a syslog entry in the following format:
Dec 24 15:00:00 icc journal: ICC WARNING [ICC:14] \
Station detected malware (https://icc.domain.tld/v/operations?byId=2)
Key Notes:
ICC Remote Syslog
Repo Server Remote Syslog
For the Repo server, remote syslog forwarding must be manually configured on the console.
Step-by-Step Configuration
sudo vi /etc/rsyslog.d/remote.conf
Replace:
target="IP_ADDRESS_OR_FQDN" with the actual IP or FQDN of your remote syslog server.protocol="tcp" with "udp" if your remote server uses UDP.systemctl restart rsyslog
For advanced customizations or tuning of retry behavior, buffering, etc., it is advised to contact SYSCTL support.
Summary of Recommendations
| Component | Syslog Support | Action Required |
|---|---|---|
| ICC | Yes (documented) | Use ICC manual to configure remote syslog |
| Repo Server | Yes (manual setup) | Create and edit /etc/rsyslog.d/remote.conf |
| Malware Alert Log | Standardized format with report link | Automatically generated by ICC |
Purpose of VMware Tools
Installing VMware Tools (specifically, open-vm-tools) enhances the VM’s ability to:
Installing open-vm-tools
The package should be installed depending on whether the ICC server uses a local Repo or SYSCTL external Repo service.
If the ICC Uses a Local Repo (including the Repo server itself)
Use this command:
dnf -c /var/impex_repo/local_fedora_impex.repo -y install open-vm-tools
This command leverages the local repository configuration file (local_fedora_impex.repo) provided by the system setup.
If the ICC Does Not Use a Local Repo
Use this command instead:
dnf -c /etc/yum.repos.d/impex.repo -y install open-vm-tools
To install Open VM Tools on DataLock
dnf -y install open-vm-tools
This configuration accesses the standard remote Impex repository.
Post-Installation Step
After installation, reboot the server to ensure the open-vm-tools service starts correctly and begins reporting to vCenter.
Summary Table
| Scenario | Command to Install VMware Tools |
|---|---|
| ICC/Repo server with local Repo | dnf -c /var/impex_repo/local_fedora_impex.repo -y install open-vm-tools |
| ICC without local Repo | dnf -c /etc/yum.repos.d/impex.repo -y install open-vm-tools |
Don’t forget to reboot the server after installation.