> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tguard.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

# I. Setup & Hardware Tuning

## A. Prerequisite

### 1. Common Prerequisites (Applies to Both VM & Bare-Metal)

* **Operating System**: The T-Guard installation script requires a Debian-based platform and will explicitly block non-Linux environments; however, it is highly recommended to use a clean Ubuntu Live Server 24.04 LTS installation to ensure maximum resource efficiency and full compatibility with the automated deployment stack.
* **Network Addressing**: A static/dedicated IP address is required. `setup.sh` detects the host IP once during installation and hardcodes it into all dashboard URLs and inter-service integrations (n8n ↔ MISP ↔ IRIS ↔ Wazuh). An IP change will break these integrations.

### 2. Virtual Machine Version

The resource requirements below define the allocation variables needed inside the guest OS framework.

| Use Case | vCPU | RAM (GB) | Storage (GB) |
| - | :-: | :-: | :-: |
| **Minimum Requirements**<br />*For trial deployments* | 4 | 8 | 150 |
| **Standard Requirements**<br />*For production environments and continuous*<br />*development* | 8 | 16 | 250 |

**Note:**

1. **Host Overhead Buffering**: The requirements listed above are for the Guest VM allocation. Your physical host machine (PC/Laptop running VirtualBox) must possess at least +2 vCPUs and +4 GB RAM above these limits so the hypervisor does not lock up the host OS.
2. **VirtualBox Tuning Parameters**: You must set your VM Network to Paravirtualized Network (virtio-net) and check Enable Host I/O Cache under your storage controllers to prevent database timeout faults (detail on step 1B).

### 3. Bare-Metal / Cloud Host Version

The resource requirements below define the allocation variables needed for the OS framework.

| Use Case | CPU | RAM (GB) | Storage (GB) |
| - | :-: | :-: | :-: |
| **Minimum Requirements**<br />*For trial deployments* | 4 | 8 | 150 |
| **Standard Requirements**<br />*For production environments and continuous*<br />*development* | 8 | 16 | 250 |

**Note:**

1. **Required SOC Firewall Port Openings** — Ensure your internal firewalls (e.g., UFW) or Cloud Security Groups allow inbound traffic on these explicit application ports. Do not expose these ports directly to the public internet; restrict entry using a secure VPN, a bastion host proxy, or explicit institutional IP address whitelists.
   | Port | Service |
   | - | - |
   | 443 | Wazuh Dashboard Web Access Portal |
   | 1443 | MISP Threat Intelligence Central Hub |
   | 8443 | DFIR-IRIS Incident Response Web Application |
   | 5678 | n8n SOAR Workflow Engine Interface |
   | 55000 | Wazuh Manager API Communication Line |
   | 1514 / 1515 | Wazuh Agent Enrollment & Secure Data Exchange Channels |

## B. Hardware Performance Tuning (Virtual Machine in VirtualBox)

<Steps>
  <Step title="Change Network to Paravirtualized Network (virtio-net)">
    <Frame caption="VirtualBox Network Settings — Paravirtualized Network (virtio-net)">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/vbox-network-virtio.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=37e8faf58f520c231363b02790b9fa3e" alt="Vbox Network Virtio" title="Vbox Network Virtio" style={{ width:"100%" }} width="975" height="544" data-path="images/V2/vbox-network-virtio.png" />
    </Frame>

    **Why:** Paravirtualization allows the VM's network interface to communicate directly with the physical host machine instead of using a slow hardware-emulation layer. This maximizes network throughput and prevents log delays between your security agents and the central manager.
  </Step>

  <Step title="Enable Host I/O Cache">
    <Frame caption="VirtualBox Storage Settings — Enable Host I/O Cache">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/vbox-host-io-cache.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=d318004c0fc3653783036d02c8ee5267" alt="Vbox Host Io Cache" title="Vbox Host Io Cache" style={{ width:"100%" }} width="970" height="547" data-path="images/V2/vbox-host-io-cache.png" />
    </Frame>

    **Why:** Enabling this setting allows virtual storage disks to directly tap into the host system's RAM caching layer. This drastically improves Read/Write speeds during intense security database tasks, such as loading index tables in Opensearch or MariaDB.
  </Step>

  <Step title="Select Ubuntu Server (minimized)">
    <Frame caption="Ubuntu Installer — Select Ubuntu Server (minimized)">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/ubuntu-server-minimized.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=fff33e182bbfe8f372e5374f700b33c3" alt="Ubuntu Server Minimized" title="Ubuntu Server Minimized" style={{ width:"100%" }} width="958" height="612" data-path="images/V2/ubuntu-server-minimized.png" />
    </Frame>

    **Why:** This version is customized to have a small runtime footprint to save vital system memory and storage space on your machine.
  </Step>
</Steps>

# II. Installation Steps

<Steps>
  <Step title="Clone the repository">
    ```text theme={null}
    git clone -b v2 https://github.com/sguresearcher/nusantara.git
    ```
  </Step>

  <Step title="Move to the directory and execute the installation script">
    <Frame caption="Cloning the repository and running the installer">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/install-terminal-clone.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=849e42988129385907b1be3c1e359f1c" alt="Install Terminal Clone" title="Install Terminal Clone" style={{ width:"100%" }} width="1050" height="499" data-path="images/V2/install-terminal-clone.png" />
    </Frame>

    ```text theme={null}
    cd nusantara
    chmod +x install.sh
    sudo bash ./install.sh
    ```
  </Step>

  <Step title="Navigate the CLI dashboard">
    This is the interactive Command Line Interface (CLI) dashboard for managing the T-Guard framework. Users can navigate up and down using arrow keys, type keywords to filter specific choices, and press enter to execute operations. The core menu functionalities include:

    <Frame caption="T-Guard Main Menu">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=d817e725bae7f11b0359c9c8e836f120" alt="Tguard Main Menu" title="Tguard Main Menu" style={{ width:"100%" }} width="1549" height="646" data-path="images/V2/tguard-main-menu.png" />
    </Frame>

    **\[1] Full Installation**: Automatically provisions and installs the complete internal security stack (Wazuh, n8n, IRIS, and MISP).

    **\[2] Integrate Manual:** Allows users to link, adjust, or override custom operational API connection tokens between active platforms.

    **\[3] PoC (Proof of Concept):** Launches local attack scenarios (e.g., SSH brute force, EICAR malware execution) to verify that SIEM detection and correlation rules work properly.

    **\[4] Inject n8n Workflows**: Pushes structural incident triage, deduplication, and alerting blueprint playbooks straight into the automation engine.

    **\[5] View Default Credentials:** Prints the initial system dashboard web addresses, ports, configurations, and default user passwords.

    **\[6] Uninstall:** Safely stops all containers and purges all deployed components to return the host system to its clean original state.
  </Step>
</Steps>

# III. Step 1: Full Installation

Select Option \[1] to perform a complete deployment of the SOC platform stack.

<Frame caption="T-Guard Main Menu — Full Installation selected">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=d817e725bae7f11b0359c9c8e836f120" alt="Install Terminal Clone" title="Install Terminal Clone" style={{ width:"100%" }} width="1549" height="646" data-path="images/V2/tguard-main-menu.png" />
</Frame>

Select SOAR Engine:

<Steps>
  <Step title="Choose your orchestration platform">
    Choose your preferred orchestration platform. Select n8n (Lightweight, Highly Recommended).

    <Frame caption="SOAR Engine selection prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/soar-engine-select.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=a5d704ec6d91ab11f9beba5cd1b270ae" alt="Soar Engine Select" title="Soar Engine Select" style={{ width:"100%" }} width="1558" height="454" data-path="images/V2/soar-engine-select.png" />
    </Frame>
  </Step>

  <Step title="Advanced Configuration">
    Select NO to automatically deploy the entire system using standard, optimized default settings.

    <Frame caption="Advanced Configuration prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/advanced-config-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=cb400e2cbe5ccd1b79f6f911ca8377e3" alt="Advanced Config Prompt" title="Advanced Config Prompt" style={{ width:"100%" }} width="1534" height="145" data-path="images/V2/advanced-config-prompt.png" />
    </Frame>
  </Step>

  <Step title="VirusTotal Integration">
    Select YES if you want to perform automated threat scanning inside the SIEM.

    <Frame caption="VirusTotal Integration prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/virustotal-integration-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=07e6ca8053342ce969a1a55e21a4371c" alt="Virustotal Integration Prompt" title="Virustotal Integration Prompt" style={{ width:"100%" }} width="1443" height="714" data-path="images/V2/virustotal-integration-prompt.png" />
    </Frame>
  </Step>

  <Step title="Enter your VirusTotal API Key">
    You will be prompted to paste your 64-character VirusTotal API Key.

    <Frame caption="VirusTotal API Key input">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/virustotal-api-key-input.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=02998f17ebe2ac20362ba88feb765ab6" alt="Virustotal Api Key Input" title="Virustotal Api Key Input" style={{ width:"100%" }} width="1428" height="697" data-path="images/V2/virustotal-api-key-input.png" />
    </Frame>

    **Note**: If using a VirusTotal free-tier key, note it has rate limits (usually per-minute/per-day caps), so high alert volume may delay or fail enrichment requests.
  </Step>

  <Step title="Confirm Deployment">
    Select "Yes, start deployment!" to begin the stack installation.

    <Frame caption="Confirm Deployment prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/confirm-deployment-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=db0009f75c17775e3f118352d233c275" alt="Confirm Deployment Prompt" title="Confirm Deployment Prompt" style={{ width:"100%" }} width="1447" height="702" data-path="images/V2/confirm-deployment-prompt.png" />
    </Frame>
  </Step>

  <Step title="Review the default access endpoints">
    Upon successful deployment, the system displays the default access endpoints:

    <Frame caption="T-Guard Full Stack Deployment Complete">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/deployment-complete-credentials.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=2d6d508ef48fe264c37d84802385bf09" alt="Deployment Complete Credentials" title="Deployment Complete Credentials" style={{ width:"100%" }} width="681" height="652" data-path="images/V2/deployment-complete-credentials.png" />
    </Frame>

    **Security Reminder:** Change all default passwords immediately! Enable your firewall (`sudo ufw enable`) and restrict access exclusively to production ports: 443, 1443, 5678, 8443, 9200, 55000.
  </Step>

  <Step title="Configure the IRIS and MISP API keys">
    Right after Step 1 (Full Installation) completes, the installer will show an ACTION REQUIRED alert:

    <Frame caption="ACTION REQUIRED: API Configuration alert">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/action-required-api-config.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=92bc9aa74251ed18655c27b1eb52a50a" alt="Action Required Api Config" title="Action Required Api Config" style={{ width:"100%" }} width="1417" height="244" data-path="images/V2/action-required-api-config.png" />
    </Frame>

    **Action Alert:** The terminal warns you that the SOC is running but cannot automate data flow yet because the IRIS and MISP API keys must be generated manually from their respective dashboards.

    **Next Steps Menu:** You are given direct options to proceed forward immediately, choose 2: **\[2] Proceed to Integrate Manual (Configure APIs)**: Choose this option to jump directly into the setup screens for your API tokens.

    The installer guides you through these prompt fields:

    <Steps>
      <Step title="IRIS DFIR Integration">
        * **IRIS Dashboard URL**: Input the incident response application gateway

        <Frame caption="IRIS Dashboard URL prompt">
          <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/iris-dashboard-url-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b7f3a3341dcddada9176a0edd8af0d75" alt="Iris Dashboard Url Prompt" title="Iris Dashboard Url Prompt" style={{ width:"100%" }} width="1543" height="651" data-path="images/V2/iris-dashboard-url-prompt.png" />
        </Frame>

        * **IRIS API Key**: Paste the unique integration token generated directly from your IRIS dashboard profile (Profile -> My Settings -> API Key)

        <Frame caption="IRIS Dashboard — API Key location">
          <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/iris-api-key-profile.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=955fdb7072d5276948451c3185b7c05a" alt="Iris Api Key Profile" title="Iris Api Key Profile" style={{ width:"100%" }} width="1566" height="780" data-path="images/V2/iris-api-key-profile.png" />
        </Frame>
      </Step>

      <Step title="MISP Threat Intelligence Integration">
        * **MISP Platform URL**: Input the local threat intel repository path

        <Frame caption="MISP Platform URL prompt">
          <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/misp-platform-url-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b04437253ddfb544e724f07a4d2202e7" alt="Misp Platform Url Prompt" title="Misp Platform Url Prompt" style={{ width:"100%" }} width="1569" height="766" data-path="images/V2/misp-platform-url-prompt.png" />
        </Frame>

        * **MISP API Key**: Paste the administrative authorization key retrieved from the MISP web console (Administration -> List Auth Keys)

        <Frame caption="MISP — Authentication key created">
          <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/misp-auth-key-created.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b5f34c7716ee660d8544d87662d404d5" alt="Misp Auth Key Created" title="Misp Auth Key Created" style={{ width:"100%" }} width="1591" height="630" data-path="images/V2/misp-auth-key-created.png" />
        </Frame>
      </Step>
    </Steps>
  </Step>

  <Step title="Access all dashboards">
    Try to access all the dashboard:

    <Frame caption="Wazuh Dashboard">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/wazuh-dashboard-overview.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=2ab9697f61baf1db1f28a7b8c32f57e4" alt="Wazuh Dashboard Overview" title="Wazuh Dashboard Overview" style={{ width:"49%" }} className="mx-auto" width="1915" height="936" data-path="images/V2/wazuh-dashboard-overview.png" />
    </Frame>

    <Frame caption="n8n Setup Screen">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/n8n-setup-owner-account.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=5bffba1d147162ded631e2f2a436f00a" alt="N8n Setup Owner Account" title="N8n Setup Owner Account" style={{ width:"49%" }} width="1887" height="939" data-path="images/V2/n8n-setup-owner-account.png" />
    </Frame>

    <Frame caption="IRIS Dashboard">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/iris-dashboard-overview.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=735b995740ae28a5146e05920abc7d90" alt="Iris Dashboard Overview" title="Iris Dashboard Overview" style={{ width:"49%" }} className="mx-auto" width="1894" height="937" data-path="images/V2/iris-dashboard-overview.png" />
    </Frame>

    <Frame caption="MISP Dashboard">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/misp-dashboard-events.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b84b92dac733ba73f08d552b030e70a1" alt="Misp Dashboard Events" title="Misp Dashboard Events" style={{ width:"49%" }} className="mx-auto" width="1918" height="936" data-path="images/V2/misp-dashboard-events.png" />
    </Frame>
  </Step>
</Steps>

# IV. Step 2: Integrate Manual (Configure APIs)

Select Option \[2] to link or reconfigure the API connections between all external security platforms and your central orchestration engine (n8n).

If the host IP changes (e.g. after a DHCP restart or VM migration), all dashboard URLs and integrations will break, since the IP was hardcoded during install, update the URL fields (Wazuh, IRIS, MISP, n8n), and re-submit each API key. Also check this menu if an integration suddenly fails: the IRIS/MISP key may have expired or been revoked from its own dashboard.

<Steps>
  <Step title="Wazuh SIEM Integration">
    * **Wazuh Manager URL**: Input your deployment host address
    * **Wazuh API Password**: Provide the secure API password (defaults to the system credentials generated during installation)

    <Frame caption="Wazuh URL / API Password prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/wazuh-integration-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=94b89f66a21900f568713faa39831c73" alt="Wazuh Integration Prompt" title="Wazuh Integration Prompt" style={{ width:"100%" }} width="1540" height="553" data-path="images/V2/wazuh-integration-prompt.png" />
    </Frame>
  </Step>

  <Step title="IRIS DFIR Integration">
    * **IRIS Dashboard URL**: Input the incident response application gateway

    <Frame caption="IRIS URL prompt (Integrate Manual)">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/iris-dashboard-url-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b7f3a3341dcddada9176a0edd8af0d75" alt="Iris Dashboard Url Prompt" title="Iris Dashboard Url Prompt" style={{ width:"100%" }} width="1543" height="651" data-path="images/V2/iris-dashboard-url-prompt.png" />
    </Frame>

    * **IRIS API Key**: Paste the unique integration token generated directly from your IRIS dashboard profile (Profile -> My Settings -> API Key)

    <Frame caption="IRIS Dashboard — API Key location">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/iris-api-key-profile.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=955fdb7072d5276948451c3185b7c05a" alt="Iris Api Key Profile" title="Iris Api Key Profile" style={{ width:"100%" }} width="1566" height="780" data-path="images/V2/iris-api-key-profile.png" />
    </Frame>
  </Step>

  <Step title="MISP Threat Intelligence Integration">
    * **MISP Platform URL**: Input the local threat intel repository path

    <Frame caption="MISP URL prompt (Integrate Manual)">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/misp-platform-url-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b04437253ddfb544e724f07a4d2202e7" alt="Misp Platform Url Prompt" title="Misp Platform Url Prompt" style={{ width:"100%" }} width="1569" height="766" data-path="images/V2/misp-platform-url-prompt.png" />
    </Frame>

    * **MISP API Key**: Paste the administrative authorization key retrieved from the MISP web console (Administration -> List Auth Keys)

    <Frame caption="MISP — Authentication key created">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/misp-auth-key-created.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=b5f34c7716ee660d8544d87662d404d5" alt="Misp Auth Key Created" title="Misp Auth Key Created" style={{ width:"100%" }} width="1591" height="630" data-path="images/V2/misp-auth-key-created.png" />
    </Frame>
  </Step>

  <Step title="n8n Orchestration">
    * **n8n Target URL**: Input the orchestration engine dashboard address

    <Frame caption="n8n URL prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/n8n-url-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=79995b9a0b228c3e3c77257c8d1ba967" alt="N8n Url Prompt" title="N8n Url Prompt" style={{ width:"100%" }} width="1368" height="412" data-path="images/V2/n8n-url-prompt.png" />
    </Frame>
  </Step>

  <Step title="VirusTotal Integration (Threat Enrichment Layer)">
    * **VirusTotal API Key (Optional)**: If you skipped the automated VirusTotal onboarding during the initial Full Installation phase, or if you need to update an expired key, paste your 64-character key here.

    <Frame caption="VirusTotal API Key (Optional) prompt">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/virustotal-optional-prompt.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=bf211db0ea7165c65a0343ca772c1602" alt="Virustotal Optional Prompt" title="Virustotal Optional Prompt" style={{ width:"100%" }} width="1408" height="648" data-path="images/V2/virustotal-optional-prompt.png" />
    </Frame>

    **Note**: This token allows the Wazuh manager to forward extracted file hashes (such as malware diagnostic strings for POC) to the VirusTotal cloud engine for structural threat scoring.
  </Step>

  <Step title="Save and apply the integration">
    Select "Yes, SAVE and apply" at the bottom prompt. The installer engine will bundle your configurations and output a secure state schema to:

    ```text theme={null}
    /var/lib/tguard_state/integration.json
    ```
  </Step>

  <Step title="Activation Notice">
    These integrations will lock in and apply across your SOC ecosystem upon the next scheduled T-Guard service container restart.
  </Step>
</Steps>

# V. Step 3: PoC (Proof of Concept) Simulation

Select Option \[3] to test your defensive monitoring rules against simulated real-world attack behaviors.

<Frame caption="T-Guard Main Menu — PoC selected">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu-poc.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=473072e2e0431e7f35667f0a04a75731" alt="Tguard Main Menu Poc" title="Tguard Main Menu Poc" style={{ width:"100%" }} width="1606" height="724" data-path="images/V2/tguard-main-menu-poc.png" />
</Frame>

Select your target host IP (defaults to loopback 127.0.0.1) and toggle the security scenarios you want to run:

<Frame caption="Select PoC Scenarios / Target IP prompt">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/poc-scenario-select-target-ip.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=c8b178cf26f1f76cc317af2622155a24" alt="Poc Scenario Select Target Ip" title="Poc Scenario Select Target Ip" style={{ width:"100%" }} width="1614" height="724" data-path="images/V2/poc-scenario-select-target-ip.png" />
</Frame>

<Steps>
  <Step title="A. SSH Brute Force Simulation">
    **Execution**: Simulates an attacker trying to guess passwords by attempting 10 invalid login rounds on the host machine using non-existent usernames.

    <Frame caption="SSH brute force simulation — terminal output">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/poc-bruteforce-output.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=55064fc57a3a700e50899b87bbc3f6d9" alt="Poc Bruteforce Output" title="Poc Bruteforce Output" style={{ width:"100%" }} width="1362" height="355" data-path="images/V2/poc-bruteforce-output.png" />
    </Frame>

    **SIEM Verification**: You will see alert hits flagged as "Password Guessing, SSH" and "sshd brute force trying to get access to the system".

    <Frame caption="Wazuh — SSH brute force alerts">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/wazuh-bruteforce-alerts.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=cca2e8b9e50c76d32fd0b06594e15614" alt="Wazuh Bruteforce Alerts" title="Wazuh Bruteforce Alerts" style={{ width:"100%" }} width="1398" height="790" data-path="images/V2/wazuh-bruteforce-alerts.png" />
    </Frame>
  </Step>

  <Step title="B. EICAR Malware Detection Test">
    **Execution**: Drops an industry-standard EICAR malware test string file into monitored server folders (`/root/eicar.com` and `/home/user/nusantara/usecase/webdeface/uploads/eicar-sample.txt`)

    <Frame caption="EICAR PoC scenario — terminal output">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/poc-eicar-output.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=2f831c444ab67942ec1987b00e806fd5" alt="Poc Eicar Output" title="Poc Eicar Output" style={{ width:"100%" }} width="1392" height="264" data-path="images/V2/poc-eicar-output.png" />
    </Frame>

    **SIEM Verification**: The agent instantly catches the file writing event.

    <Frame caption="Wazuh — EICAR file writing event detected">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/wazuh-eicar-detection.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=0493425fc7c6393e0ec90d435cddb552" alt="Wazuh Eicar Detection" title="Wazuh Eicar Detection" style={{ width:"100%" }} width="1401" height="793" data-path="images/V2/wazuh-eicar-detection.png" />
    </Frame>

    It triggers a VirusTotal Alert within the log engine, showing that up to 61 engines flagged the signature.

    <Frame caption="VirusTotal — EICAR signature detections">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/virustotal-eicar-detections.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=3dbf7c503b220e11f37acc849d2dc31f" alt="Virustotal Eicar Detections" title="Virustotal Eicar Detections" style={{ width:"100%" }} width="1402" height="793" data-path="images/V2/virustotal-eicar-detections.png" />
    </Frame>
  </Step>

  <Step title="C. Web Defacement Detection">
    **Execution**: Simulates a website defacement compromise by modifying the application file index (`/home/user/nusantara/usecase/webdeface/index.html`).

    <Frame caption="Web defacement PoC scenario — terminal output">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/poc-webdeface-output.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=d0a19778b49b3bb862ad32344712ed1e" alt="Poc Webdeface Output" title="Poc Webdeface Output" style={{ width:"100%" }} width="1366" height="264" data-path="images/V2/poc-webdeface-output.png" />
    </Frame>

    **SIEM Verification**: T-Guard triggers a "Stored Data Manipulation" alert event. Wazuh catches the File Integrity Monitoring (FIM) change in real-time, logging the modified attributes, timestamp modifications, and cryptographic checksum differences (Old md5sum vs New md5sum).

    <Frame caption="Wazuh — Stored Data Manipulation / FIM alert">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/wazuh-fim-webdeface-alert.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=9e679393dca1ec5b0e15012a6c99adfc" alt="Wazuh Fim Webdeface Alert" title="Wazuh Fim Webdeface Alert" style={{ width:"100%" }} width="1432" height="556" data-path="images/V2/wazuh-fim-webdeface-alert.png" />
    </Frame>
  </Step>
</Steps>

# VI. Step 4: Inject n8n Workflows

Select Option \[4] to automatically load pre-built blueprint playbooks into your n8n orchestration instance.

<Steps>
  <Step title="Inject the workflows">
    Select "Yes, inject workflows" at the prompt. The installer will verify that the n8n container is up and running before importing the playbooks.

    <Frame caption="T-Guard Main Menu — Inject n8n Workflows selected">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu-inject-n8n.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=325f405402698424a169bd6c8d222f0a" alt="Tguard Main Menu Inject N8n" title="Tguard Main Menu Inject N8n" style={{ width:"100%" }} width="1329" height="643" data-path="images/V2/tguard-main-menu-inject-n8n.png" />
    </Frame>
  </Step>

  <Step title="Review the playbooks loaded">
    The system injects 4 essential SOC automation workflows directly into n8n:

    <Frame caption="n8n — Injected workflows overview">
      <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/n8n-workflows-overview.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=e7cad084e80f3bc3985bd8779a972270" alt="N8n Workflows Overview" title="N8n Workflows Overview" style={{ width:"100%" }} width="1357" height="681" data-path="images/V2/n8n-workflows-overview.png" />
    </Frame>

    a. **Master Triage**: Receives raw alerts from the Wazuh Webhook, extracts the Indicators of Compromise (Extract IOC), and splits the data into three paths: Trigger Enrichment, Trigger IRIS, and Trigger Notification.

    b. **IP Enrichment & Anti-Dupe**: Takes the parsed data, filters out repetitive IP addresses (Check Duplicate IP), and queries AbuseIPDB and VirusTotal only if the IP is new (IF Not Scanned).

    c. **IRIS Incident Response Anti-Dupe**: Checks if a ticket already exists for the alert (Search IRIS Case). If the Case Exists, it updates the ticket (Add Note); if not, it opens a new one (Create Case).

    d. **Notification Dispatcher**: Takes the final alert details and sends a direct security message to your team's chat group using the Telegram node (sendMessage).

    **Activation**: Once injected, log into your n8n web dashboard to view, review, and turn on the playbooks. The workflow templates are ready to use, but you may need to manually update or adjust the URL fields inside the nodes to match your network path (please refer to the official n8n documentation: [https://docs.n8n.io/integrations](https://docs.n8n.io/integrations)).
  </Step>
</Steps>

# VII. Step 5: View Default Credentials

Select Option \[5] from the main menu if you need to display the default system passwords and access URLs that were generated during the initial deployment.

<Frame caption="T-Guard Main Menu — View Default Credentials selected">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu-view-credentials.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=7bd7f34e55f4bdb4f0275f377a8729f2" alt="Tguard Main Menu View Credentials" title="Tguard Main Menu View Credentials" style={{ width:"100%" }} width="1398" height="631" data-path="images/V2/tguard-main-menu-view-credentials.png" />
</Frame>

* This option is helpful if you lose your login details or need a quick reference to access your web dashboards.
* When selected, the terminal will print a secure text block containing the exact URLs, ports, and default usernames for Wazuh, n8n, IRIS, and MISP.

<Frame caption="T-Guard Deployment Complete — Default credentials">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-deployment-complete-credentials.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=8950b25a176445751bdaf6dcdb4b048f" alt="Tguard Deployment Complete Credentials" title="Tguard Deployment Complete Credentials" style={{ width:"100%" }} className="mx-auto" width="444" height="601" data-path="images/V2/tguard-deployment-complete-credentials.png" />
</Frame>

**Security Check:** The screen will display a warning reminder to change these default passwords immediately to prevent unauthorized access to your SOC stack if you going to use this for production.

# VIII. Step 6: Uninstall T-Guard Components

Select Option \[6] only when you need to completely remove the T-Guard platform from your host system.

<Frame caption="T-Guard Main Menu — Uninstall selected">
  <img src="https://mintcdn.com/sgu-84307e83/QtlAcHTuI_9lBQ5Y/images/V2/tguard-main-menu-uninstall.png?fit=max&auto=format&n=QtlAcHTuI_9lBQ5Y&q=85&s=c600bd59dded13d59beca9f0dd08e042" alt="Tguard Main Menu Uninstall" title="Tguard Main Menu Uninstall" style={{ width:"100%" }} width="790" height="349" data-path="images/V2/tguard-main-menu-uninstall.png" />
</Frame>

* **Automated Cleanup**: The installer engine stops all active security services and cleanly deletes the operational containers from your Docker environment.
* **Data Removal**: This process clears out internal system states, temporary deployment certificates, and network port mappings.
* **Final State**: Your Ubuntu host environment is returned to its original configuration, leaving your hardware resources free for other applications.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.