SOFTWARE
    • 10 Dec 2024
    • 12 Minutes to read
    • Dark
      Light
    • PDF

    SOFTWARE

    • Dark
      Light
    • PDF

    Article summary

    This chapter covers the security aspects from a software perspective.

    Nodegrid Default Users and Permissions

    The Nodegrid OS comes with three default user types:

    • “admin” user:

      • Full access to all features and functions on both the Web Interface and CLI.

      • Login options include Console, SSH, WebUI, API and ZPE Cloud.

      • From CLI, the admin user can switch to SHELL with limited privileges.

      • From CLI, the admin user can switch to root SHELL with full privileges.

    • “root” user:

      • By default, can only be accessed by logging in as another user with "sudo" privileges and switching to "root"

      • No access to the web interface.

      • Has full privileges on SHELL

    • “ansible” user:

      • Intended for internal use, for systems-to-systems automation.

      • No access to the web interface.

      • Has access to SHELL and CLI with limited privileges.

    Telnet service is disabled by default.

    Factory Reset Options

    The Nodegrid OS has multiple options to reset its configuration to the factory default:

    • Reset via WebUi/CLI/API (WebUI path: System :: Toolkit :: Restore to Factory Default Settings)

    • Software downgrade when using "Apply factory default configuration" option

    • Software upgrade/downgrade (any method, such as via UI or USB) when using "Format Partitions" option

    • Using triggers (like geofencing trigger, refer to Geofencing section)

    • ZPE Cloud, by doing ‘Connect’ to the Nodegrid Unit

      (And then, System :: Toolkit :: Restore to Factory Default Settings)

    Finally, Nodegrid appliances have the physical Reset Button (RST) which can be used for a soft reboot by pressing quickly (less than 3s) or it can be used to reset the configuration of the unit to the factory default settings by pressing at least 10 seconds. The Console port LEDs start flashing when it is complete and reboots the unit.

    Security Packages and Cipher Suites

    The Nodegrid OS is built on top of a constantly updated list of open source packages. At the time of the redaction of this document, the most up to date Nodegrid OS version is v6.0.19 and has:

    • Linux Kernel 6.1.111,

    • Critical security open-source packages (e.g., OpenSSL, OpenSSH, Apache Webserver) frequently updated,

    • Any packages with detected Critical CVEs upgraded or patched as soon as possible,

    • The following cipher suites:

    FIPS disabled (default):

    Cipher Suites

    TLS version

    Key-Exchange

    Authentication

    Encryption

    Mac

    TLS_AES_256_GCM_SHA384

    TLSv1.3

    any

    any

    AESGCM(256)

    AEAD

    TLS_CHACHA20_POLY1305_SHA256

    TLSv1.3

    any

    any

    CHACHA20/POLY1305(256)

    AEAD

    TLS_AES_128_GCM_SHA256

    TLSv1.3

    any

    any

    AESGCM(128)

    AEAD

    ECDHE-ECDSA-AES256-GCM-SHA384

    TLSv1.2

    ECDH

    ECDSA

    AESGCM(256)

    AEAD

    ECDHE-RSA-AES256-GCM-SHA384

    TLSv1.2

    ECDH

    RSA

    AESGCM(256)

    AEAD

    DHE-RSA-AES256-GCM-SHA384

    TLSv1.2

    DH

    RSA

    AESGCM(256)

    AEAD

    ECDHE-ECDSA-CHACHA20-POLY1305

    TLSv1.2

    ECDH

    ECDSA

    CHACHA20/POLY1305(256)

    AEAD

    ECDHE-RSA-CHACHA20-POLY1305

    TLSv1.2

    ECDH

    RSA

    CHACHA20/POLY1305(256)

    AEAD

    DHE-RSA-CHACHA20-POLY1305

    TLSv1.2

    DH

    RSA

    CHACHA20/POLY1305(256)

    AEAD

    ECDHE-ECDSA-AES128-GCM-SHA256

    TLSv1.2

    ECDH

    ECDSA

    AESGCM(128)

    AEAD

    ECDHE-RSA-AES128-GCM-SHA256

    TLSv1.2

    ECDH

    RSA

    AESGCM(128)

    AEAD

    DHE-RSA-AES128-GCM-SHA256

    TLSv1.2

    DH

    RSA

    AESGCM(128)

    AEAD

    ECDHE-ECDSA-AES256-SHA384

    TLSv1.2

    ECDH

    ECDSA

    AES(256)

    SHA384

    ECDHE-RSA-AES256-SHA384

    TLSv1.2

    ECDH

    RSA

    AES(256)

    SHA384

    DHE-RSA-AES256-SHA256

    TLSv1.2

    DH

    RSA

    AES(256)

    SHA256

    ECDHE-ECDSA-AES128-SHA256

    TLSv1.2

    ECDH

    ECDSA

    AES(128)

    SHA256

    ECDHE-RSA-AES128-SHA256

    TLSv1.2

    ECDH

    RSA

    AES(128)

    SHA256

    DHE-RSA-AES128-SHA256

    TLSv1.2

    DH

    RSA

    AES(128)

    SHA256

    ECDHE-ECDSA-AES256-SHA

    TLSv1

    ECDH

    ECDSA

    AES(256)

    SHA1

    ECDHE-RSA-AES256-SHA

    TLSv1

    ECDH

    RSA

    AES(256)

    SHA1

    DHE-RSA-AES256-SHA

    SSLv3

    DH

    RSA

    AES(256)

    SHA1

    ECDHE-ECDSA-AES128-SHA

    TLSv1

    ECDH

    ECDSA

    AES(128)

    SHA1

    ECDHE-RSA-AES128-SHA

    TLSv1

    ECDH

    RSA

    AES(128)

    SHA1

    DHE-RSA-AES128-SHA

    SSLv3

    DH

    RSA

    AES(128)

    SHA1

    RSA-PSK-AES256-GCM-SHA384

    TLSv1.2

    RSAPSK

    RSA

    AESGCM(256)

    AEAD

    DHE-PSK-AES256-GCM-SHA384

    TLSv1.2

    DHEPSK

    PSK

    AESGCM(256)

    AEAD

    RSA-PSK-CHACHA20-POLY1305

    TLSv1.2

    RSAPSK

    RSA

    CHACHA20/POLY1305(256)

    AEAD

    DHE-PSK-CHACHA20-POLY1305

    TLSv1.2

    DHEPSK

    PSK

    CHACHA20/POLY1305(256)

    AEAD

    ECDHE-PSK-CHACHA20-POLY1305

    TLSv1.2

    ECDHEPSK

    PSK

    CHACHA20/POLY1305(256)

    AEAD

    AES256-GCM-SHA384

    TLSv1.2

    RSA

    RSA

    AESGCM(256)

    AEAD

    PSK-AES256-GCM-SHA384

    TLSv1.2

    PSK

    PSK

    AESGCM(256)

    AEAD

    PSK-CHACHA20-POLY1305

    TLSv1.2

    PSK

    PSK

    CHACHA20/POLY1305(256)

    AEAD

    RSA-PSK-AES128-GCM-SHA256

    TLSv1.2

    RSAPSK

    RSA

    AESGCM(128)

    AEAD

    DHE-PSK-AES128-GCM-SHA256

    TLSv1.2

    DHEPSK

    PSK

    AESGCM(128)

    AEAD

    AES128-GCM-SHA256

    TLSv1.2

    RSA

    RSA

    AESGCM(128)

    AEAD

    PSK-AES128-GCM-SHA256

    TLSv1.2

    PSK

    PSK

    AESGCM(128)

    AEAD

    AES256-SHA256

    TLSv1.2

    RSA

    RSA

    AES(256)

    SHA256

    AES128-SHA256

    TLSv1.2

    RSA

    RSA

    AES(128)

    SHA256

    ECDHE-PSK-AES256-CBC-SHA384

    TLSv1

    ECDHEPSK

    PSK

    AES(256)

    SHA384

    ECDHE-PSK-AES256-CBC-SHA

    TLSv1

    ECDHEPSK

    PSK

    AES(256)

    SHA1

    SRP-RSA-AES-256-CBC-SHA

    SSLv3

    SRP

    RSA

    AES(256)

    SHA1

    SRP-AES-256-CBC-SHA

    SSLv3

    SRP

    SRP

    AES(256)

    SHA1

    RSA-PSK-AES256-CBC-SHA384

    TLSv1

    RSAPSK

    RSA

    AES(256)

    SHA384

    DHE-PSK-AES256-CBC-SHA384

    TLSv1

    DHEPSK

    PSK

    AES(256)

    SHA384

    RSA-PSK-AES256-CBC-SHA

    SSLv3

    RSAPSK

    RSA

    AES(256)

    SHA1

    DHE-PSK-AES256-CBC-SHA

    SSLv3

    DHEPSK

    PSK

    AES(256)

    SHA1

    AES256-SHA

    SSLv3

    RSA

    RSA

    AES(256)

    SHA1

    PSK-AES256-CBC-SHA384

    TLSv1

    PSK

    PSK

    AES(256)

    SHA384

    PSK-AES256-CBC-SHA

    SSLv3

    PSK

    PSK

    AES(256)

    SHA1

    ECDHE-PSK-AES128-CBC-SHA256

    TLSv1

    ECDHEPSK

    PSK

    AES(128)

    SHA256

    ECDHE-PSK-AES128-CBC-SHA

    TLSv1

    ECDHEPSK

    PSK

    AES(128)

    SHA1

    SRP-RSA-AES-128-CBC-SHA

    SSLv3

    SRP

    RSA

    AES(128)

    SHA1

    SRP-AES-128-CBC-SHA

    SSLv3

    SRP

    SRP

    AES(128)

    SHA1

    RSA-PSK-AES128-CBC-SHA256

    TLSv1

    RSAPSK

    RSA

    AES(128)

    SHA256

    DHE-PSK-AES128-CBC-SHA256

    TLSv1

    DHEPSK

    PSK

    AES(128)

    SHA256

    RSA-PSK-AES128-CBC-SHA

    SSLv3

    RSAPSK

    RSA

    AES(128)

    SHA1

    DHE-PSK-AES128-CBC-SHA

    SSLv3

    DHEPSK

    PSK

    AES(128)

    SHA1

    AES128-SHA

    SSLv3

    RSA

    RSA

    AES(128)

    SHA1

    PSK-AES128-CBC-SHA256

    TLSv1

    PSK

    PSK

    AES(128)

    SHA256

    PSK-AES128-CBC-SHA

    SSLv3

    PSK

    PSK

    AES(128)

    SHA1

    FIPS enabled:

    Cipher Suites

    TLS version

    Key-Exchange

    Authentication

    Encryption

    Mac

    TLS_AES_256_GCM_SHA384

    TLSv1.3

    any

    any

    AESGCM(256)

    AEAD

    TLS_AES_128_GCM_SHA256

    TLSv1.3

    any

    any

    AESGCM(128)

    AEAD

    ECDHE-ECDSA-AES256-GCM-SHA384

    TLSv1.2

    ECDH

    ECDSA

    AESGCM(256)

    AEAD

    ECDHE-RSA-AES256-GCM-SHA384

    TLSv1.2

    ECDH

    RSA

    AESGCM(256)

    AEAD

    DHE-RSA-AES256-GCM-SHA384

    TLSv1.2

    DH

    RSA

    AESGCM(256)

    AEAD

    ECDHE-ECDSA-AES128-GCM-SHA256

    TLSv1.2

    ECDH

    ECDSA

    AESGCM(128)

    AEAD

    ECDHE-RSA-AES128-GCM-SHA256

    TLSv1.2

    ECDH

    RSA

    AESGCM(128)

    AEAD

    DHE-RSA-AES128-GCM-SHA256

    TLSv1.2

    DH

    RSA

    AESGCM(128)

    AEAD

    ECDHE-ECDSA-AES256-SHA384

    TLSv1.2

    ECDH

    ECDSA

    AES(256)

    SHA384

    ECDHE-RSA-AES256-SHA384

    TLSv1.2

    ECDH

    RSA

    AES(256)

    SHA384

    DHE-RSA-AES256-SHA256

    TLSv1.2

    DH

    RSA

    AES(256)

    SHA256

    ECDHE-ECDSA-AES128-SHA256

    TLSv1.2

    ECDH

    ECDSA

    AES(128)

    SHA256

    ECDHE-RSA-AES128-SHA256

    TLSv1.2

    ECDH

    RSA

    AES(128)

    SHA256

    DHE-RSA-AES128-SHA256

    TLSv1.2

    DH

    RSA

    AES(128)

    SHA256

    ECDHE-ECDSA-AES256-SHA

    TLSv1

    ECDH

    ECDSA

    AES(256)

    SHA1

    ECDHE-RSA-AES256-SHA

    TLSv1

    ECDH

    RSA

    AES(256)

    SHA1

    DHE-RSA-AES256-SHA

    SSLv3

    DH

    RSA

    AES(256)

    SHA1

    ECDHE-ECDSA-AES128-SHA

    TLSv1

    ECDH

    ECDSA

    AES(128)

    SHA1

    ECDHE-RSA-AES128-SHA

    TLSv1

    ECDH

    RSA

    AES(128)

    SHA1

    DHE-RSA-AES128-SHA

    SSLv3

    DH

    RSA

    AES(128)

    SHA1

    RSA-PSK-AES256-GCM-SHA384

    TLSv1.2

    RSAPSK

    RSA

    AESGCM(256)

    AEAD

    DHE-PSK-AES256-GCM-SHA384

    TLSv1.2

    DHEPSK

    PSK

    AESGCM(256)

    AEAD

    AES256-GCM-SHA384

    TLSv1.2

    RSA

    RSA

    AESGCM(256)

    AEAD

    PSK-AES256-GCM-SHA384

    TLSv1.2

    PSK

    PSK

    AESGCM(256)

    AEAD

    RSA-PSK-AES128-GCM-SHA256

    TLSv1.2

    RSAPSK

    RSA

    AESGCM(128)

    AEAD

    DHE-PSK-AES128-GCM-SHA256

    TLSv1.2

    DHEPSK

    PSK

    AESGCM(128)

    AEAD

    AES128-GCM-SHA256

    TLSv1.2

    RSA

    RSA

    AESGCM(128)

    AEAD

    PSK-AES128-GCM-SHA256

    TLSv1.2

    PSK

    PSK

    AESGCM(128)

    AEAD

    AES256-SHA256

    TLSv1.2

    RSA

    RSA

    AES(256)

    SHA256

    AES128-SHA256

    TLSv1.2

    RSA

    RSA

    AES(128)

    SHA256

    ECDHE-PSK-AES256-CBC-SHA384

    TLSv1

    ECDHEPSK

    PSK

    AES(256)

    SHA384

    ECDHE-PSK-AES256-CBC-SHA

    TLSv1

    ECDHEPSK

    PSK

    AES(256)

    SHA1

    SRP-RSA-AES-256-CBC-SHA

    SSLv3

    SRP

    RSA

    AES(256)

    SHA1

    SRP-AES-256-CBC-SHA

    SSLv3

    SRP

    SRP

    AES(256)

    SHA1

    RSA-PSK-AES256-CBC-SHA384

    TLSv1

    RSAPSK

    RSA

    AES(256)

    SHA384

    DHE-PSK-AES256-CBC-SHA384

    TLSv1

    DHEPSK

    PSK

    AES(256)

    SHA384

    RSA-PSK-AES256-CBC-SHA

    SSLv3

    RSAPSK

    RSA

    AES(256)

    SHA1

    DHE-PSK-AES256-CBC-SHA

    SSLv3

    DHEPSK

    PSK

    AES(256)

    SHA1

    AES256-SHA

    SSLv3

    RSA

    RSA

    AES(256)

    SHA1

    PSK-AES256-CBC-SHA384

    TLSv1

    PSK

    PSK

    AES(256)

    SHA384

    PSK-AES256-CBC-SHA

    SSLv3

    PSK

    PSK

    AES(256)

    SHA1

    ECDHE-PSK-AES128-CBC-SHA256

    TLSv1

    ECDHEPSK

    PSK

    AES(128)

    SHA256

    ECDHE-PSK-AES128-CBC-SHA

    TLSv1

    ECDHEPSK

    PSK

    AES(128)

    SHA1

    SRP-RSA-AES-128-CBC-SHA

    SSLv3

    SRP

    RSA

    AES(128)

    SHA1

    SRP-AES-128-CBC-SHA

    SSLv3

    SRP

    SRP

    AES(128)

    SHA1

    RSA-PSK-AES128-CBC-SHA256

    TLSv1

    RSAPSK

    RSA

    AES(128)

    SHA256

    DHE-PSK-AES128-CBC-SHA256

    TLSv1

    DHEPSK

    PSK

    AES(128)

    SHA256

    RSA-PSK-AES128-CBC-SHA

    SSLv3

    RSAPSK

    RSA

    AES(128)

    SHA1

    DHE-PSK-AES128-CBC-SHA

    SSLv3

    DHEPSK

    PSK

    AES(128)

    SHA1

    AES128-SHA

    SSLv3

    RSA

    RSA

    AES(128)

    SHA1

    PSK-AES128-CBC-SHA256

    TLSv1

    PSK

    PSK

    AES(128)

    SHA256

    PSK-AES128-CBC-SHA

    SSLv3

    PSK

    PSK

    AES(128)

    SHA1

    Guidelines to secure the Nodegrid

    Security is a common concern to Nodegrid deployments. The following steps provide a guideline on where to find specific security related options and provide a best practice guide which can be used to plan and implement the required security.

    The steps are the following:

    • Default User Configuration.

      • Change the passwords for the default users (root and admin)

      • Add new users to the admin group.

      • Create an operational admin group with limited permissions.

      • Disable built-in admin user.

    • Disable not required services.

      • Disable HTTP access.

      • Disable unused services.

      • Configure WebUI security.

    • Network

      • Setup the Network interfaces

      • Configure the Firewall

      • Configure Fail2Ban

    • Configure Logging and Event Notifications

    • Secure BIOS and Bootloader with password

    • Use UEFI Boot Mode and Enable Secure Boot

    • Enable Self Encryption Drive

    • If required, disable Console Access through Serial port and Keyboard/Video

    The complete guideline is available on our Knowledge Base. Please reach the link below for the latest version:

    https://support.zpesystems.com/portal/en/kb/articles/steps-to-secure-nodegrid

    In the next subsections, we shall focus on 3 aspects of the hardening of the Nodegrid: Services, Firewall (Iptables), and Geofencing.

    Services

    You can view, enable and disable services and ports from one single location, which is accessible via CLI, REST API, or via WebUI.

    As with any system it is recommended to only run services which are required. The Nodegrid comes by default with some services enabled, which help during the deployment but might not be needed in all cases during or after the units are deployed. It is therefore recommended to disable all services which are not required.

    Two examples are SNMP and Bluetooth. These services help some deployment use cases, but the recommendation is to disable these services if they are not being used.

    Most services can be enabled or disabled from a single page, on Security :: Services.

    The complete guideline to secure the Nodegrid’s services is given on:

    https://support.zpesystems.com/portal/en/kb/articles/steps-to-secure-nodegrid, in section ‘Protocols and Services’.

    Firewall

    The Nodegrid OS is natively equipped with the firewall Iptables.

    The guideline to configure the firewall is given in Appendix F (see section Appendices). It lists all the required and recommended firewall rules, to ensure a proper working of the solution. The list needs to be adjusted based on specific customer requirements.

    The firewall rules are composed of:

    • General rules: loopbacks, in ipv4 and ipv6.

    • Client rules: icmp, http, https, ssh.

    • Nodegrid to Nodegrid rules: https, ssh, cluster Nodegrid, nodes discovery.

    • Feature rules: dns, ntp, snmp, smtp, nfs, syslog, ftp, sftp, tftp, http, https, scp, dhcp/ztp, pxe, dhcp server, ldap, ldaps, tacacs+, radius, Kerberos, ssl vpn server & client, ipsec.

    • Target device rules

    Geofencing

    Nodegrid can track GPS physical location, notify perimeter crossing and take customizable actions.

    Graphical user interface, application  Description automatically generated

    When enabled, the Geofence compares the GPS coordinates configured (+ a radius perimeter, also configurable) with the GPS coordinates received from the antennas. When that perimeter is crossed, an event is generated and a customizable action script is executed. A script to reset the unit to factory settings and templates for customer scripts are provided by default.

    SSL Certificates

    By default, the Nodegrid OS WebUI uses a self-signed certificate for HTTPS access. The user is able to replace this certificate in two ways:

    1. Upload a custom certificate, along with the private key, through Nodegrid’s WebUI, OR

    2. Create a CSR (Certificate Signing Request) on the Nodegrid’s WebUI, download it, sign with a Certificate Authority, and upload the resulting certificate. With this process, Nodegrid generates the Private Key internally and never exposes it.

    3. Automatically request and renew certificates with the ACME protocol.

    Certificates can be managed through a centralized page, accessible through the WebUI, CLI, and API at Security :: Certificates.

    If the certificate is not signed by a commonly trusted authority, it can be imported to the user’s regular web browser or operating system.

    Graphical user interface, text, application, email  Description automatically generated

    VPN

    The Nodegrid supports the following types of VPN:

    • IPsec: in Site-to-Site configuration, with X.509, PSK and Certificates keys.

    • SSL: server and client.

    • Wireguard: server and client.

    Alternatively, Nodegrid can also execute a VNF, inside its hypervisor KVM, and that VNF will establish the VPN. The Nodegrid is certified by the vendors Palo Alto and Juniper but has been tested and validated by most of the well-known vendors of the market, including Fortinet and Checkpoint.

    Connection to the Nodegrid OS from an end user device

    To connect a user’s laptop or desktop to the Nodegrid OS, we have the following options:

    • The most used is to access in simple connexion https. You can disable in the Nodegrid OS the HTTP, and only accept the HTTPS. The traffic will therefore be encrypted in SSL/TLS. Nodegrid OS supports TLS v1.3 (the latest version of TLS at the time of the redaction of the document).

    • If you want to connect in IPsec to the Nodegrid, you just have to:

      • Install an IPsec client on your laptop.

      • Configure the other peer on the Nodegrid side. IPSEC is natively supported by Nodegrid. It can be configured graphically. We support different connection scenarios, including host-to-host, host-to-site, site-to-site, and road-warrior.

      • Reference: User Guide, section ‘IPsec VPN’.

    • A recommended alternative to IPsec to establish a VPN with the Nodegrid, is the Wireguard protocol. You just have to :

      • Install a Wireguard client on your laptop. The client, for windows, can be downloaded at: https://www.wireguard.com/install/

      • Configure the server on Nodegrid side. The Wireguard is natively supported by Nodegrid. It can be configured graphically. Wireguard has the advantage to have a good client support, as well under Windows, MacOS, as Linux.

      • Reference: User Guide, section ‘VPN drop-down > Wireguard’.

    • Finally, another possibility: you can connect to the Nodegrid OS via SSH, in which case the traffic will also be encrypted.

    802.1x network port authentication

    The Nodegrid supports in the 802.1x network port authentication. This function is only available on Nodegrid Gate SR, Bold SR, Link SR, Net SR, and Hive SR devices. You can add a Profile in which you select the internal EAP server, Radius Server or Supplicant (user):

    Clustering

    Cluster establishes a secure and resilient connection with a set of Nodegrid devices. When enabled, a Nodegrid device that is part of the Cluster can access and manage other devices. By logging into any Nodegrid device, all devices in the Cluster can be reached with a single interface. This allows for vertical and horizontal scalability.

    Nodegrid Clustering – Mesh Mode

    The Clustering uses the SSL Tunnel (port 9966) between the Nodegrid devices, so that each Nodegrid unit communicates with the other 2 nodes and their respective devices. Example with Nodegrid Serial Console (NSC) in Mesh mode:

    SSH connection from the user located on Site A to a Target Device located on Site C, via NSC-A:

    Mesh mode cluster example with 5 Nodegrid devices:

    Nodegrid Clustering – Star Mode

    The Clustering uses the SSL Tunnel (port 9966) between the Nodegrid Coordinator and the peer, so that the coordinator can communicate with each peer and their respective devices, but peers don’t see other peers and the Coordinator.

    Example with Nodegrid Serial Console (NSC) and Nodegrid Bold SR (BSR) in Star mode:

    The workflow to connect to a target device in Star-mode cluster is:

    Multi-Cluster

    Multi-cluster is an extension of the clustering feature that allows for increased scalability and handling of high availability scenarios by implementing the concept of cluster of clusters.

    It allows the coordinator of a cluster to join remote clusters of both mesh and star modes thus gaining access to all devices of all peers of the remote cluster. This coordinator may or may not have local peers.

    When a coordinator joins a remote cluster, a single unidirectional connection is kept from the coordinator to the remote cluster's coordinator which will handle all requests to the other peers of that remote cluster, thus limiting the number of resources required to access the entire infrastructure.

    Multiple coordinators may join the same remote clusters to provide alternative access in case of failure, allowing a centralized view with redundancy.

    This uses the same protocol and port (9966) over SSL as clustering, so no additional port needs to be opened in firewalls.

    AAA (Authentication, Authorization, Accounting)

    The Authentication, Authorization, and Accounting features of the Nodegrid OS are detailed in the following sections.

    Group and user permissions

    The Nodegrid OS supports RBAC (Role Based Access Control). It allows you to create users and groups, and set the appropriate permissions for them, in terms of functionality (Configure System, Tracking, …) as well as in terms of target devices.

    Authentication Servers

    The Nodegrid OS supports the following Authentication servers:

    • LDAP/AD

    • RADIUS

    • TACACS+

    • Kerberos

    Factor Authentication

    The Two-Factor Authentication (2FA) currently supported in Nodegrid OS is with OTP (One-Time Password) and RSA.Admin users can configure Nodegrid to be authenticated with a remote authentication server such as AD or Radius, and then confirm the identify with OTP or RSA token code authentication. DUO 2-factor on the WebUI depends on the DUO account configuration, and DUO is set in SSO page.

    Table  Description automatically generated with low confidence

    Graphical user interface, application, email  Description automatically generated

    Single Sign On

    The Nodegrid supports Single Sign On. It implements the SAML2 protocol and tested and verified to work with the leading security providers Duo, Okta, Ping Identity, Microsoft Active Directory Federation Services (ADFS) and Microsoft Azure Active Directory.

    You can implement your Zero Trust Security posture with these trusted authentication & identity management partners.

    Single Sign-On workflow

    Single Sign-On (SSO) implementation in Nodegrid Software was done via Security Assertion Markup Language (SAML).

    SAML is primarily used to enable Web browser single sign-on (SSO). This allows a user to authenticate once and gain access to separately secured systems without resubmitting credentials. The security objective is to ensure the authentication requirements are met at each security checkpoint.

    In an SSO transaction, the SAML services implemented at each secured system exchange requests and assertions to determine whether to allow access. The SAML assertions used in SSO transactions include authentication statements and attribute statements.

    1. User navigates to Nodegrid's login page.

    2. If user clicks one of the IdP's sign in buttons, or user had navigated to Nodegrid using a custom URL (http(s)://<ip>/sso/<IdP>/), then Nodegrid will generate a SAML request.

    3. Nodegrid will redirect user to the IdP SSO URL endpoint that user had configured in the configuration page in Nodegrid.

    4. Browser will send user to the IdP SSO URL endpoint.

    5. IdP will authenticate the user.

    6. If successful in the authentication, the IdP will redirect the user to Nodegrid's Assertion Consumer Service URL (this needs to be configured in the IdP side) with the SAML response.

    7. Browser will send user back to Nodegrid's ACS URL with SAML response.

    8. Nodegrid will verify SAML response, using a public key that the user uploaded as a certificate when configuring the IdP in the Nodegrid.

    If everything was successful, user is logged in to Nodegrid.

    Identity Provider (IdP): Service that performs the authentication process on the user and sends a response to the Service Provider. ex: Duo, Okta, and Ping Identity.

    Service Provider (SP): Web application that requests and obtains the user's authentication from the Identity Provider.

    Configuration of SSO

    Admin user may add SSO servers or import the metadata under Security, Authentication, SSO page.

    A picture containing table  Description automatically generated

    Add a SSO server:

    Graphical user interface, text, application  Description automatically generated

    Import Metadata:

    Graphical user interface, text, application, email  Description automatically generated

    Events and Alerts

    The Nodegrid OS supports the following events and alerts:

    System Data Logging:

    • All users’ interactions are recorded.

    • Data stream is inspected, and events are issued upon string match.

    AAA and System Events:

    • Events are triggered on successful and failed logins.

    • Start and stop session events are issued for every access.

    Login Banner:

    • Warn users prior to login about legal policies.

    • Assert consent for monitoring the session.

    • Uniquely identify the system.

    Password Enforcement:

    • Configure Password Complexity.

    • Based on pam_cracklib, allows to enforce required number of lowercase and uppercase letters, digits and special characters as well as minimum password length.

    Fail2ban:

    • System and application log messages are monitored.

    • Temporary firewall rules are automatically added to block specific access based on malicious signs like too many password failures and exploit attempts.

    Event and Logging Destination:

    Events and Data logs are stored locally by default. The Data logging for the appliance can be enabled under system -> logging.

    Additional destinations are configured under the auditing menu:

    • File, local or NFS

    • Syslog, local or remote

    • E-mail

    • SNMPTrap

    Splunk integration is also supported. Splunk is a software for searching, monitoring, and analyzing machine-generated data via a Web-style interface. It helps to capture, index and correlate real-time data in a searchable repository, from which it can generate graphs, reports, alerts, dashboards and visualizations.

    Splunk provides a native Linux client which is supported on the Nodegrid platform. Splunk forwarder can directly be installed on a Nodegrid unit, through 2 different methods: either with Docker, or natively.

    System Configuration Checksum

    Nodegrid System Configuration Checksum is the security feature that generates a fingerprint of all the Nodegrid configuration files. Users can view the current system configuration checksum, create a baseline, and compare it with the configuration checksum of any time. Both MD5 and SHA256 checksum types are available.

    The configuration can be audited to ensure only authorized changes.

    A screenshot of a computer code  Description automatically generated

    Remove for brevity […]

    After auditing, you can generate a baseline or compare your current one to an existing baseline.

    To create a baseline file, you can do as following, and the checksum file will be saved under /var/local/CFG:

    To compare your baseline to an existing one:

    A computer screen shot of a computer code  Description automatically generated

    Remove for brevity […]

    A close-up of a white background  Description automatically generated

    Virtualization

    The security of the virtualization on the Nodegrid is addressed in two ways:

    • The security of the VM itself, provided by the vendor of the VM (for instance, Palo Alto Networks).

    • The security of the hypervisor. The hypervisors supported on the Nodegrid are KVM and Docker. KVM is a Linux module, and for Docker, the Nodegrid uses the Linux version of that platform. Both are tested and secured as the other Linux components of the box and are subject to Qualys Vulnerability tests (cf section § Qualys Vulnerability Scan).

    Reference documents

    The reference documents in terms of guidelines to configure the Nodegrid OS are listed below:

    • Steps to Secure Nodegrid

    https://support.zpesystems.com/portal/en/kb/articles/steps-to-secure-nodegrid

    • Network Settings Configuration

    https://support.zpesystems.com/portal/en/kb/articles/network-configuration-via-cli

    • User Guide

    https://docs.zpesystems.com/

    • ZPE Knowledge Base and FAQs

    https://support.zpesystems.com/portal/en/kb/zpe-systems-inc



    Was this article helpful?

    What's Next
    ESC

    Eddy AI, facilitating knowledge discovery through conversational intelligence