# On-Prem Deployment

This section defines the prerequisites of the system and recommended settings for the deployment of HawkShield Security on-premises. The deployment process requires two physical servers, and the MSSP or SI owning virtualization through such tools as Proxmox, MS Oracle VirtualBox, and the same.

#### Infrastructure Requirements

1. Virtualization: In a nutshell, 15 high-availability and performance-tuned VMs were deployed.
2. Kubernetes Cluster: It is necessary to have at least 9 nodes, of which the following are required

* 3 Master Nodes with standard SSDs.
* 3 Worker Nodes with big memory that is capable of having NVMe Solid States Drives for improved performance.
* 3 Standard Worker Node with SSD Storage enabled.

3. Database and Backup:

* Option 2 – 2 memory-intensive servers or VM with NVMe SSDs for the PostgreSQL database cluster.
* 1 dedicated backup server for data protection every 12 hours, it is involved with backup increments.

4. Additional Infrastructure:

* 1 Rancher-StackStorm server for managing everything related to Kubernetes and creating and running required processes and workflows.
* Two external load-balancing servers are required to control the traffic and guarantee high availability.

#### Performance and Scalability Considerations

The system requirements described above are intended to achieve the lowest cost, best performance, and scalability of HawkShield. Nevertheless, such configurations may differ depending on the needs of your business as well as the chosen deployment model.

#### System Requirements & Hardware Specifications

The table below captures the minimum and recommended hardware and software specifications for HawkShield Security on-premises. These specifications are crucial to make the solution smooth running and scalable, where appropriate.

Note: In fact, the storage requirements might also depend on the data traffic as well as the type of deployment. This is because a special setup may be required to suit some organizations’ requirements.

**System Overview**&#x20;

<table><thead><tr><th width="273">Category</th><th>Requirement Details</th></tr></thead><tbody><tr><td>Hardware</td><td>Minimum 64 core, 184 GB RAM, 920 GB storage.</td></tr><tr><td>Physical Machines or Servers</td><td>2 (Minimum)</td></tr><tr><td>Physical Server Requirements</td><td><p>1 VM with 36 core vCPUs, 96 GB RAM, 650 GB SATA SSD, and a physical-to-virtual core ratio of 1:4.</p><p></p><p>1 VM with 28 core vCPUs, 88 GB RAM, 270 GB NVME SSD, and a physical-to-virtual core ratio of 1:2.</p></td></tr><tr><td>Virtual Machines or Servers</td><td>15</td></tr><tr><td>Operating System</td><td>Ubuntu 22.04 LTS</td></tr><tr><td>Platform</td><td>On-Prem</td></tr><tr><td>Database</td><td>PostgreSQL 13</td></tr><tr><td>Container Compatibility</td><td>Docker 26.0.1, Kubernetes 1.30</td></tr><tr><td>Network</td><td><p>Internal Network Bandwidth - 1Gbps - 10Gbps (Recommended)</p><p></p><p>Switches - Optical Fiber</p><p>Internet Bandwidth - 300Mbps (For 200 users )</p></td></tr><tr><td>Browser Compatibility</td><td><p>Chrome - 69.0.3497.100 (64-bit) </p><p></p><p>Firefox - 63.0 Internet Explorer 11 - </p><p></p><p>11.245.17143.0 Microsoft Edge - </p><p></p><p>42.17134.1.0 Safari Desktop - 12.0</p></td></tr><tr><td>Additional Browser Requirements</td><td><p>Enable JavaScript on your browser. </p><p></p><p>Disable pop-up blocker. </p><p></p><p>A minimum screen resolution of 1024×768 is recommended.</p></td></tr></tbody></table>

Detailed Configuration Breakdown

<table><thead><tr><th width="156">Server Name</th><th>Total CPU</th><th width="53">Total Ram</th><th width="63">Total Storage</th><th width="45">Quantity</th><th width="91">Network</th><th>OS</th><th width="53">Kubernetes Version</th><th width="76">Docker Version</th><th>Hardware Details</th></tr></thead><tbody><tr><td>Master Node</td><td>12</td><td>24</td><td>150</td><td>3</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>1.3</td><td>26.0.1</td><td><strong>Processor</strong> - Intel Xeon Scalable, <strong>Clock speed</strong> - 3.1 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - SATA SSD</td></tr><tr><td>Worker Node (General Instance)</td><td>12</td><td>48</td><td>210</td><td>3</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>1.3</td><td>26.0.1</td><td><strong>Processor</strong> - GHz Intel Xeon Scalable, <strong>Clock speed</strong> - 3.1 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - SATA SSD</td></tr><tr><td>Worker Node (Memory Intensive Instance)</td><td>20</td><td>72</td><td>210</td><td>3</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>1.3</td><td>26.0.1</td><td><strong>Processor</strong> - 3rd generation AMD EPYC, <strong>Clock speed</strong> - 3.6 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - NVME SSD</td></tr><tr><td>DB Cluster</td><td>8</td><td>16</td><td>7</td><td>2</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>-</td><td>-</td><td><strong>Processor</strong> - 3rd generation AMD EPYC, <strong>Clock speed</strong> - 3.6 GHz, CPU <strong>architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - NVME SSD</td></tr><tr><td>Backup Node</td><td>4</td><td>8</td><td>200</td><td>1</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>-</td><td>-</td><td><strong>Processor</strong> - 3.1 GHz Intel Xeon Scalable, <strong>Clock speed</strong> - 3.1 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - SSD</td></tr><tr><td><strong>Rancher &#x26; stack storm Node</strong></td><td>4</td><td>8</td><td>50</td><td>1</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>-</td><td>-</td><td><strong>Processor</strong> - 3.1 GHz Intel Xeon Scalable, <strong>Clock speed</strong> - 3.1 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - SATA SSD</td></tr><tr><td><strong>External Load Balancer</strong></td><td>4</td><td>8</td><td>40</td><td>2</td><td>1 Gbps-10Gbps</td><td>ubuntu 22.04 LTS</td><td>-</td><td>-</td><td><strong>Processor</strong> - Intel Xeon Scalable, <strong>Clock speed</strong> - 3.1 GHz, <strong>CPU architecture</strong> - x86_64, <strong>Ram Type</strong> - DDR4 <strong>Volume Type</strong> - SATA SSD</td></tr></tbody></table>

**Data Backup**

* The PostgreSQL and RabbitMQ data will be backed up incrementally based on the triggers once in 12 hours to the backup server.
* Therefore as the volume of data increases storage capacity will have to be also scaled. For example, if HawkShield processes 10 GB of data per day, the backup server takes about one and a half months to perform one full backup turn before the need arises to scale up storage space.

**Autoscaling Considerations**

* Correspondingly, the scalability of the system relies heavily on the used virtualization software. Relative to workload as well as available resources the automated scaling feature will scale up or down.

**Storage Configuration**

1. **System Requirements:** HawkShield depends on a 64-bit operating system. Based on the scanning requirements and workload of the solution, storage requirements may be in demand.
2. **Local Storage Configuration:**  RAID-configured local hard drives are preferred since they provide both performance and backup, in case of failure among others. Unfortunately, from the table above, we note that local configurations do not support remote storage solutions like SAN and NAS.

**Network Configuration**

To ensure seamless operation and secure communication, the local network hosting the HawkShield Security on-premises solution must be configured as per the following requirements:

1. **Network & Firewall Configuration:** Make sure that everything from your network firewall, or proxy server that can block the HawkShield Security on-prem server from accessing the HawkShield Cloud is as open as needed for communication to be continuous. This is for system maintenance, download of new content material, and updating of data as well as synchronization.<br>
2. **Secure Communications:** All people must use https for connections. As for other configurations, there is a list of requirements for successful HawkShield Security deployment on the on-prem server: An SSL certificate must be valid; DNS settings should enable the FQDN.

\
Network Protocol and Ports: Only Port 443 (HTTPS) should be allowed for protection to allow safe interaction with the HawkShield Security servers.

#### Data Backup Strategy

Under data protection, HawkShield will need another server or VM to store PostgreSQL and RabbitMQ data by utilizing an Incremental Backup Strategy. This means that data is constantly updated and there is data backup to avoid cases of losing the data in case of a system breakdown or a power surge.

#### Disaster Recovery Plan (DRP)

For maintaining business operations, HawkShield enforces strict DR planning for PostgreSQL and RabbitMQ services such as geo-partitioning. These strategies expounded below aim at ensuring data and system availability, reliability and to prevent the crippling of an organization’s operation in the case of a disaster.

#### High Availability (HA)

The main aim of the high availability (HA) configuration is much related to redundancy where the effect of system downtime, whether planned or unplanned, is reduced to the barest minimum. The following HA configurations are required:

1. **Geographical Distribution:** To have an automatic failover and redundant configuration, PostgreSQL and RabbitMQ nodes have to be placed in different geographical locations.<br>
2. **Node Configuration:**

* It is possible for one to operate as the active node whereas the other will operate as the passive node so that the integration of the failover is executed automatically.
* Likewise one will act as the active node while the second one will be passive which is to be used in case of hot standby node failure.

This configuration makes it possible in case of disaster or maintenance that the passive node will take over the operation without any delay of service.<br>
