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, ICC, Repo and DataLock |
Stations | The family name of USB Protect and DataLock |
ICC | The server which control the Stations and Datalocks |
USB Protect | The kiosk computer used to scan mass storage devices |
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 Data Lock to a remote destination. A Data Lock 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 | | Lets Encrypt |
+------^------------+ +-----^--------+
Internet | |
| +----------------+
| |
+------------------------------------------------------------+
| |
DMZ +---+-----+---+
| Firewall <------+
+-------------+ |
|
+-----+----+
+-------------> Proxy |
| | if used |
| +----------+
|
|
+----+--------------------+
| |
| ICC and optional Repo <------+
| | |
+-------^-----------------+ +----^----+
| | Proxy |
| | if used |
| +-+-------+
| |
+------------------------+---------------------+-------------+
| |
Peripheral Network | |
| |
+------+-------+ +-------+------+
| USB Protect | | USB Protect |
+--------------+ +--------------+
+-------------------+ +--------------+
| updates.sysctl.se | | Lets 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 | | Lets 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 explains the normal interactions used by the system, but it may differ depending on the actual installation if other integrations are used, like Active Directory. 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_admin
root
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 set
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 |
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.
Scope
The method of installation and renewal depends on the customer’s PKI policies.
If your deployment uses Let’s Encrypt, the following applies:
Automatic Handling
letsencrypt
module is installed.Configuration Path
/etc/sysconfig/impex-letsencrypt
Manual Renewal Required
When certificates are issued by:
Manual renewal is required.
Importing Certificates
If the certificate is created outside the ICC or Repo installation:
Creating Certificates On-Server
If the certificate is created on the ICC or Repo server, one can use helper scripts after the initial configuration is complete.
Steps:
cp /etc/pki/tls/openssl.cnf /root/openssl.conf
Edit /root/openssl.conf
to include:
[ 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
hostname.key
(private key)hostname.csr
(certificate signing request)Stored in:
/root/pki/_timestamp_in_epoch_/
The csr-file must be signed by a truseted CA
If the signed certificate needs format conversion, the script also provides helper commands for converting:
Renewing Certificates
To create a new Certificate Signing Request (CSR) for renewal:
openssl req -new -key "_path_to_private_key" -out "_path_to_new_csr" -config /root/openssl.conf
Once the certificate is signed by the CA, save the certificate and its full chain in the appropriate location, as described below.
Certificate File Paths
Defined in:
/opt/sysctl/impex-server/etc/apache/conf.d/cert.d/cert.conf
Default Locations:
Note: You may use different filenames if configured in cert.conf
. It’s common to name files using the FQDN.
Required Format:
SSLCertificateFile
) must:
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 SYSCLT 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
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.