Deploying FortiSOAR
This chapter covers the process of deploying FortiSOAR, and the initial configuration required for FortiSOAR. You can perform the initial configuration for FortiSOAR using the FortiSOAR Configuration Wizard.
The following image displays the high-level tasks for deploying FortiSOAR:
You can also install FortiSOAR 7.6.0 using the FortiSOAR installer (.bin
file). For more information, see Installing FortiSOAR 7.6.0 using the FortiSOAR installer.
You can also deploy FortiSOAR using the offline repositories for air-gapped environments. For more information, see the Deploying FortiSOAR using offline repositories chapter.
Planning
Recommended Resource Requirements
Virtual Machine (VM)
Recommended Specifications
- 12 available vCPUs
- 48 GB available RAM
- 1 TB available disk space: Recommended to have high-performance storage, preferably SSDs.
- 1 vNIC
In case of multi-tenant configurations, contact FortiSOAR Support for sizing requirements. |
The disk space that you require largely depends on your usage. audit, and workflow retention policies. So, for a more precise prediction of the database usage, you can check the current disk sizes using the following command: csadm db --getsize
The csadm db --getsize
command returns the sizes of the workflow logs, audit, and primary data. Based on the current usage, and your retention policies, you can extrapolate the usage for these databases. ElasticSearch disk usage would be the same as the primary database sizes. For some examples, see the 'Sizing Guide' available on https://docs.fortinet.com/product/fortisoar.
Supported Hypervisors
When installing FortiSOAR using the installation script, it is highly recommended to install FortiSOAR on a non-hardened operating system (OS). After the installation, the OS will undergo automatic hardening by FortiSOAR. Avoid any additional hardening of the OVA or consult with FortiSOAR support, to prevent issues in the FortiSOAR running instance. Installing FortiSOAR on a pre-hardened OS can lead to installation failure and issues with starting services, file permissions, etc. |
The following hypervisors are supported:
- AWS Cloud
- Fortinet-FortiCloud
- VMware ESXi versions 5.5, 6.0, 6.5, 7.0, and 8.0
- Redhat KVM
NOTE: The KVM OVA is not certified on FortiSOAR release 7.6.0. - Docker
For any other virtualization or cloud hosting environment, you can install Rocky Linux 9.3 or RHEL 9.3, and then install FortiSOAR using CLI. For more information, see the Installing FortiSOAR 7.6.0 using the FortiSOAR installer topic. |
VM Inbound Networking
Enable the following ports for the VM within your VM network:
- 22 Management (ssh)
- 443 User Interface (https)
VM Outbound Networking
For FortiSOAR to correctly interact with your network, you must provide access between the FortiSOAR VM and the third-party products and services configured within your network.
To accomplish this, enable the following ports for SSH, SMTP, and HTTPs access:
- 22 Management (ssh)
- 25 Email SMTP relay server. This port can be different based on your environment.
- 443 User Interface (https)
Depending on the type of connectors used in Playbooks, other ports might required to be opened. |
Credentials
Credentials to access SSH management and the FortiSOAR User Interface are:
Username: csadmin
Password: changeme
The UI password of the 'csadmin' user for AWS is set to the "instance_id" of your instance.
To know the instance ID of your FortiSOAR AWS instance, you can SSH and run thecloud-init query instance_id
command.
For the 'csadmin' user, the first FortiSOAR SSH login, mandates a password change, thereby enhancing the security of your csadmin account and preventing unauthorized parties from accessing the FortiSOAR administration account. |
Requirements
It is highly recommended that Internet access is provided for a FortiSOAR upgrade, license deployment, and also for installing new out-of-the-box connectors.
Add the following entries in the allowlist of your Firewall or Proxy servers:
For installing or upgrading (migrating) to FortiSOAR 7.3.0 or later:
*.rockylinux.org
For upgrading FortiSOAR, installing connectors, and accessing the widget library: https://repo.fortisoar.fortinet.com/
For Connector Dependencies: https://pypi.python.org
For synchronization of FortiSOAR license details: https://globalupdate.fortinet.net
Port Requirements
The following ports require to be locally free for various services, i.e., all these ports do not require to be open on the firewall for external access, they are used only inter-service communication within the appliance:
Service | Port Number |
---|---|
elasticsearch (Elasticsearch service uses this port for REST communication). Port needs to be opened in case of high availability (HA) environments. |
9200 |
elasticsearch (Elasticsearch service uses this port for communication between nodes) | 9300 |
rabbitmq | 5671, 5672, 4369, 15672, and 25672 |
cyops-postman | 7575 |
fsr-workflow | 8888 |
postgresql-{version} Port needs to be opened in case of HA environments. |
5432 |
cyops-auth | 8443 |
cyops-integrations-agent | 9595 |
cyops-tomcat (hosts cyops-gateway, cyops-notifier) | 8080 |
MQ TCP traffic Port needs to be opened in case of HA environments. |
5671 |
cyops-api | 443 |
If you need to access ssh or start a terminal session from outside your network to troubleshoot or manage services or databases, then port "22/tcp open ssh" should be opened on the firewall for external access. Port 443/tcp open https must always be opened on the firewall for external access.
Importing the FortiSOAR Virtual Appliance
Use a vSphere Client or a viclient to import the Virtual Appliance into the ESX/ESXi server. See the VMware documentation for steps on how to import a Virtual Appliance.
After you import the FortiSOAR Virtual Appliance and the FortiSOAR system boots up, the IP address of the system is displayed on the command prompt. You can share this IP address with users who require to configure FortiSOAR using the FortiSOAR Configuration Wizard. |
Downloading the FortiSOAR Virtual Appliance from the Support Portal
You can download the required FortiSOAR Virtual Appliance image from the support portal, which contains images for AWS, KVM-Supported QCOW2, VMware and Docker. You will need these images to be downloaded before you can begin deploying FortiSOAR using vSphere or vCenter, or KVM. In case of AWS, you can directly launch an instance using the images present on the AWS Marketplace images.
To download the FortiSOAR Virtual Appliance, do the following:
- Log on to support.fortinet.com.
- Click Support > Firmware Download.
- On the
Fortinet Firmware Images And Software Releases
page, from the Select Product drop-down list, select FortiSOAR.
The page contains information about various released versions of FortiSOAR images, and contains two tabs: Release Notes and Download.
To view the Release Notes for a particular version, click the version and build number link, which opens the FortiSOAR Document Library, from where you can view or download the release notes for that version. - To download a firmware image, do the following:
- Click the Download tab.
- Navigate through the directory structure in the format,
<version number category>
><major version >
><minor version>
, to open the page containing the required images. For example, to download a firmware image for version 7.3.0, click v7.00 > 7.3 > 7.3.0 and locate the required firmware's image: - Download the firmware image by clicking the HTTPS link.
An HTTPS connection is used to download the firmware image. - Click the Checksum link for the image that you have downloaded.
The image file name and checksum code are displayed in theGet Checksum Code
dialog box. - Confirm that the checksum of the downloaded image file matches the checksum provided on the download site.
Deploying the FortiSOAR Virtual Appliance
Download the required FortiSOAR Virtual Appliance image from the Support Portal, which contains images for AWS, KVM-Supported QCOW2 VMware, and Docker. You will need these images to be downloaded before you can begin deploying FortiSOAR using vSphere or vCenter, or KVM. In case of AWS, you can directly launch an instance using the images present on the AWS Marketplace images. For information on how to download images from the support portal, see the Downloading the FortiSOAR Virtual Appliance from the Support Portal section. Also, ensure that your VM is configured as per the specifications outlined in the Planning section.
Deploying the FortiSOAR Virtual Appliance using vSphere or vCenter
Download the VMware enterprise and secure message exchange images as outlined in the Downloading the FortiSOAR Virtual Appliance from the Support Portal section. Then once you have ensured that you have met all the specifications, deploy the FortiSOAR Virtual Appliance using vSphere or vCenter. See the VMware documentation for steps on how to deploy a Virtual Appliance.
Deploying the FortiSOAR Virtual Appliance using AWS
Once you have ensured that you have met all the specifications, perform the following steps to deploy the FortiSOAR Virtual Appliance on Amazon Web Services (AWS):
- Log into your AWS account and from the Amazon EC2 console dashboard, choose Launch Instance, to launch the FortiSOAR instance.
- On the
Choose an Amazon Machine Image (AMI)
page, enterfortinet-fortisoar
in the search bar to find the latest version of the FortiSOAR Enterprise and SME (secure message exchange) AMIs in the AWS Marketplace. Choose the AMI and start configuring the instance. Following is a reference screenshot:
After you complete deploying your FortiSOAR and you connect the first time to your FortiSOAR VM, the EULA agreement page is displayed. You must accept the EULA to continue with your FortiSOAR configuration. If you do not accept the EULA, then the OS will halt, and you have to restart your FortiSOAR VM (power off-power on) and reconnect to the FortiSOAR VM and accept EULA to continue with your FortiSOAR configuration.
Deploying FortiSOAR using KVM
The KVM OVA is not certified on FortiSOAR release 7.6.0. |
Once you have ensured that you have met all the specifications, perform the following steps to deploy the FortiSOAR QCOW2 on KVM:
- Download the KVM-Supported QCOW2 images as outlined in the Downloading the FortiSOAR Virtual Appliance from the Support Portal section.
- Copy the FortiSOAR QCOW2 image to the VM Image Datastore.
- Open the Virtual Machine Manager application for KVM VM deployment.
- Click File > New Virtual Machine.
- On the
New VM
dialog, select the Import existing disk image option and click Forward. - Click Browse and select the FortiSOAR image from the Image Datastore, select the OS type as Linux or Rocky Linux and Version as either RHEL 9.3 or Rocky Linux 9.3, and click Forward.
Note: Rocky Linux 9.3 will be listed in the Choose the operating system you are installing drop-down only if you have the newer versions of KVM. If Rocky Linux is not available, then you can choose the 'Linux' option (generic Linux) and continue with the process.
This displays theStorage Volume
screen, where you can choose the KVM Qcowz image from the default storage volume, or you can add custom storage volume by clicking + on the bottom left corner to choose the KVM qcow2 image: - Enter
32768
(i.e. 32768 MB=32 GB) in the Memory (RAM) field and8
in the CPUs field and click Forward. - Enter the name that you want to specify for the new virtual machine in the Name field, select the correct network adapter for this new virtual machine from the Network Selection field, and click Finish to complete the deployment.
Note: The network adapter type would change depending upon your KVM environment. As an example, in the following image the "Bridge adapter.." is selected. You must select the proper network adapter as per your environment requirements. - Post VM deployment, the VM boots up and brings up the login console as shown in the following image:
CLI Deployment
If you want to deploy the FortiSOAR QCOW2 image on KVM using the CLI, then use the following command:virt-install --memory 32768 --vcpus 8 --import --os-type=linux --os-variant rhel9.3 --name <virtual machine name> --disk </path/to/qcow2/image/.qcow2> --network <network type=kvm network name>
Post deployment, perform the initial configuration steps using the FortiSOAR Configuration Wizard.
Installing FortiSOAR 7.6.0 using the FortiSOAR installer
This section describes the steps that you require to follow to install FortiSOAR 7.6.0 on a plain RHEL 9.3 or Rocky Linux 9.3 system that has minimal skew selected while installing the OS.
Prerequisites
Before you begin this procedure, ensure the following:
- Access to repo.fortisoar.fortinet.com. In case you have configured proxies, then ensure that you have added your proxy settings in the following files:
/etc/environment
/etc/yum.conf
/etc/pip.conf
Following is an example of adding proxy settings to the above-mentioned files:/etc/environment
product_yum_server=repo.fortisoar.fortinet.com
http_proxy='http://username:password@10.1.1.0:8080'
no_proxy='127.0.0.1','localhost'
https_proxy='http://username:password@10.1.1.0:8080'
/etc/yum.conf
proxy=http://10.1.1.0:8080
proxy_username=username
proxy_password=password
NOTE: From release 7.6.0 onwards, the proxy username and password can include special characters such as '@
', '.
', '$
', etc.
- Create the
/etc/pip.conf
file as follows:[global]
extra-index-url=https://repo.fortisoar.fortinet.com/connectors/deps/simple/
proxy='http://username:password@10.1.1.0:8080' - The FortiSOAR installer restricts SSH login to the user IDs, 'root' and 'csadmin', which are in "wheel" group. Post installation, users who are not part of the "wheel" group, cannot login to FortiSOAR, therefore, you must add a 'non-root' user ID, which can login to FortiSOAR using '
SSH
', to the "wheel" group before you begin the installation.
Procedure
The following procedure describes the steps that you require to run for installing FortiSOAR 7.6.0 Enterprise Edition and Secure Message Exchange:
- Provision a Rocky Linux or RHEL version 9.3 system with the
wget
andtmux
packages. - Ensure your VM has disk space of 500 GB. If you have a large volume of data being ingested daily, it is recommended to have a disk space of 1 TB. It is recommended to have a thin provisioned disk.
You can add three more disks to your Virtual Machine (VM) and create separate Logical Volume Management (LVM) partitioning for PostgreSQL, Elasticsearch and FortiSOAR RPM data. For more information about multiple disk support, see the Multidisk Support article present in the Fortinet Knowledge Base.
Note: The database disk requires most volume is required for the database disk. So, if you are provisioning the volume with multiple disks, the size of the data disk is the most important and should be sufficiently large. To support disk sizes larger than 2 TB, FortiSOAR OVAs starting with the 7.5.0 release come pre-configured with a GPT-based disk layout. Previously, FortiSOAR OVAs were shipped with an MBR-based disk layout, which limited disk management to a size of 2TB. If you already have a FortiSOAR instance and need a partition larger than 2 TB, we recommend creating a new FortiSOAR VM on release 7.5.0 and later and utilizing the Export and Import wizards to migrate your data from the old instance to the new one. This is required as FortiSOAR does not support a combination of MBR and GPT partitions.
Refer to the table that is present at the end of this procedure for the minimum and recommended disk sizes. - To ensure that the upgrade is not affected if the session times out, run the
tmux
command. - To download the installer for FortiSOAR 7.6.0:
# wget https://repo.fortisoar.fortinet.com/7.6.0/install-fortisoar-7.6.0.bin
- To install FortiSOAR 7.6.0 run the following command as a
root
user:# sh install-fortisoar-7.6.0.bin
ORchmod +x install-fortisoar-7.6.0.bin
./install-fortisoar-7.6.0.bin
Once you have completed your, tests etc., it is recommended that you install SFSP on your FortiSOAR instance before you begin working with FortiSOAR. To install SFSP, open Content Hub > Discover and search for 'SOAR Framework
'. Click the SOAR Framework card, and then click Install on the solution pack popup.
Once you run the# sh install-fortisoar-7.6.0.bin
command, the installer displays the following installation options:
1. Enterprise
2. Secure Message Exchange
Choose Enterprise in this case and complete the installation.
Note: If you are installing FortiSOAR in a closed or air-gapped environment, you will see a message such as "The system does not have connectivity to https://globalupdate.fortinet.net. Connectivity....
", ignore these warning messages and proceed with the installation as there is no requirement to check the check connectivity to globalupdate.fortinet.com in case of an air-gapped environment. For information on licensing in the case of closed environments, see the FortiSOAR licensing using FortiManager topic in the Licensing FortiSOAR chapter. - Once the installation is complete, exit the terminal session and log back in using the following default credentials:
Username:csadmin
Password:changeme
After entering the default credentials, you will immediately be prompted to change the default password. Only after you have changed the default password can you log into FortiSOAR. - Once you have logged into FortiSOAR, you will be asked to accept the EULA. You must accept the EULA before you can proceed to the FortiSOAR Configuration Wizard.
- Retrieve your FortiSOAR Device UUID, which is created automatically by the FortiSOAR installation. This Device UUID is used to identify each unique FortiSOAR environment. A
root
user can directly run the following command to retrieve the Device UUID:csadm license --get-device-uuid
Use this Device UUID to get your FortiSOAR license using the process detailed in the Licensing FortiSOAR chapter. - Before you deploy your FortiSOAR license, ensure that you can connect to https://globalupdate.fortinet.net, else the license deployment will fail. Connectivity to this address is required for fetching the license entitlements and product functioning post-upgrade.
You can deploy your FortiSOAR license using the FortiSOAR UI or using the FortiSOAR Admin CLI. For more information on deploying the FortiSOAR license, see the Licensing FortiSOAR chapter. - Once your system is licensed, you can log on to the FortiSOAR UI using the default credentials:
Username:csadmin
Password:changeme
After you enter the default credentials you will be prompted to change the password. Once you have specified the new password, you can log onto FortiSOAR.
Following is a table that contains the recommended disk sizes:
Mount Point | Recommended Size |
---|---|
/ | 30 GB |
/boot | 1.5 GB |
/tmp |
5 GB |
/opt |
20 GB |
/var |
10 GB |
/var/lib/pgsql |
1000 GB |
/var/lib/elasticsearch |
150 GB |
/var/lib/rabbitmq |
11.5 GB |
/var/log |
10 GB |
/var/log/audit |
1 GB |
/var/log/cyops/coredump |
49 GB |
/home |
10 GB |
Installing the secure message exchange
A secure message exchange establishes a secure channel that is used to relay information to the agents or tenant nodes. To create a dedicated secure channel, you are required to add the reference of the installed and configured secure message exchange, when you add agent or tenant nodes to your environment. A default "self" secure message exchange configuration is available and can be enabled. However, for a production setup, we recommend that you configure a separate secure message exchange. For more information, see the Enabling the secure message exchange and Adding a secure message exchange sections.
Steps for installing the secure message exchange are as follows:
- Provision a Rocky Linux or RHEL version 9.3 system with the
wget
andtmux
packages. - Ensure your VM has disk space of minimum 50 GB, recommended is 100 GB. It is recommended to have a thin provisioned disk.
- To ensure that the upgrade is not affected if the session times out, run the
tmux
command. - To download the installer for FortiSOAR 7.6.0 secure message exchange:
wget https://repo.fortisoar.fortinet.com/7.6.0/install-fortisoar-7.6.0.bin
- To install FortiSOAR 7.6.0 secure message exchange run the following command as a root user:
# sh install-fortisoar-7.6.0.bin
ORchmod +x install-fortisoar-7.6.0.bin
./install-fortisoar-7.6.0.bin
The installer will display the following installation options:
1. Enterprise
2. Secure Message Exchange
Choose Secure Message Exchange in this case and complete the installation.
Once you have installed the secure message exchange, a FortiSOAR Secure Message Exchange Configuration Wizard similar to the FortiSOAR Configuration Wizard is automatically run on the first ssh
login by the csadmin
user and it performs the initial configuration steps that are required for the Secure Message Exchange. In the FortiSOAR Secure Message Exchange Configuration Wizard you require to provide certain inputs such as the hostname of the Secure Message Exchange VM, port numbers to be used for the API and TCP connections to the Secure Message Exchange, etc., which are required to complete the initial configuration steps for the Secure Message Exchange.
Installing FortiSOAR on RHEL using the FortiSOAR installer
This section describes the steps that you require to follow to install FortiSOAR on a Red Hat Enterprise Linux (RHEL) system.
- Register your RHEL instance:
subscription-manager register --username <username> --password <password>--auto-attach --force
- Check if simple content access is enabled using the following command:
subscription-manager status
Output if simple content access is enabled:+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: DisabledThe Content Access Mode is set to Simple Content Access. This host has access to content, regardless of subscription status.
System Purpose Status: Disabled
Output if simple content access is disabled:+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Current
System Purpose Status: Matched
If the simple content access is enabled, you can skip to step 3.
If the simple content access is disabled, then enable the optional repositories:subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=codeready-builder-for-rhel-9-x86_64-rpms
- Install the required packages:
yum install wget tmux vim -y
- Follow the steps outlined in the Installing FortiSOAR 7.6.0 using the FortiSOAR installer topic to install FortiSOAR on your RHEL instance.
FortiSOAR Configuration Wizard
A configuration wizard runs automatically on the first ssh
login by the csadmin
user and performs the initial configuration steps that are required for FortiSOAR. The wizard guides you through the configuration process with appropriate instructions so that you can efficiently perform the initial configuration required for FortiSOAR. To begin running the configuration wizard, you must accept the Fortinet End User License Agreement.
The wizard performs the following configuration steps:
- Change hostname and refresh the MQ node name: (Optional) You can change the hostname for your FortiSOAR VM and refresh the node name of your MQ. Ensure that the hostname that you provide is resolvable. If the hostname gets resolved by a DNS server, ensure that you provide only the node name and not the complete FQDN. The wizard checks if the hostname is valid or not; and throws an error in case of an invalid hostname. FortiSOAR optionally also asks for additional DNS servers.
In an environment where DHCP is not enabled, i.e., in case of a static IP environment, the configuration wizard fails since it cannot get the network. Therefore, the configuration wizard detects whether the FortiSOAR VM has an IP; if the wizard cannot detect an IP, aStatic IP
page is displayed where you can add the Static IP, Gateway, Netmask, DNS1 and DNS2, ensuring that the configuration wizard completes without failure. This also provides users with the flexibility of changing their environment from DHCP to Static without worrying that the configuration wizard will fail since it cannot get the network.
If the configuration wizard detects an IP, i.e. in case of a DHCP enabled system, theDNS servers
input page is displayed.
Also, if you change the hostname, the configuration wizard automatically updates theHOSTNAME
variable in/etc/profile
.
NOTE: If you skip the 'Set Hostname' step in the FortiSOAR Configuration VM, the default hostname entry will be automatically added to the/etc/hosts
file. - Get DNS: Gets the DNS for your FortiSOAR system
- Update network configuration: This is an automatic process.
- Set up intra-service authentication: This is an automatic process to generate new appliance keys unique to your instance for communication to the FortiSOAR services.
- Generate certificates: This is an automatic process; you do not require to provide any inputs.
- Generate Device UUID: This is an automatic process; you do not require to provide any inputs. The wizard also saves the Device UUID in the
/home/csadmin/device_uuid
file.
This Device UUID is required for when you are generating your license for FortiSOAR. For more information, see the Licensing FortiSOAR chapter.
Important: You get logged out after the FortiSOAR VM is configured, so that the changes can take effect. Therefore, you require tossh
again to the FortiSOAR VM. - Reset database passwords: This is an automatic process to reset database password to a new password unique to your instance.
- Restart services: This is an automatic process to reset all FortiSOAR services.
- Configure default single-node HA cluster: This is an automatic process that creates the default single-node HA cluster. This FortiSOAR server is created as a primary-active node.
- Configure proxy: (Optional) You can configure a proxy server to serve all http/https requests from FortiSOAR. There is a single Proxy field used to configure both http/https proxies. To configure a proxy, you must specify the username and password, and the hostname and the port number of the proxy server. For example to configure aproxy, enter the proxy details in the following format:
http://user:password@[ip/fqdn]:port
. Once the proxy value is validated, the same is added for both http and https proxies.
You can also configure a comma-separated list of hostnames that do not require to be routed through a proxy server. For example,[ip1/fqdn1], [ip2/fqdn2]
NOTE: From release 7.6.0 onwards, the proxy username and password can include special characters such as '@
', '.
', '$
', etc. - Install python libraries: This is an automatic process to install some python libraries required by FortiSOAR.
- Install default widgets: This is an automatic process to install some default widgets as part of FortiSOAR.
- Search index initialization: This is an automatic process.
- Refresh SSH keys: This is an automatic process that refreshes the SSH key.
- Generate default encryption keys: This is an automatic process tha generates the default encryption keys.
- Refresh data indentifiers: This is an automatic process.
- Post-configuration tasks: This is an automatic process.
After the FortiSOAR Configuration Wizard is run, it displays the following:
- Device UUID
- Path where the Device UUID is saved
- Path of the Configuration Wizard log
If your FortiSOAR Configuration Wizard displays errors when it is being run, then you can troubleshoot the FortiSOAR Configuration Wizard errors by checking its logs, which are located at |
If you want to replace the Self-Signed Certificates with your own signed certificates, see the |
If the FortiSOAR Configuration Wizard fails when provisioning your instance, then a failure screen detailing the status of each configuration step is presented on the FortiSOAR UI, making it simpler to identify the issue. Before using FortiSOAR, you must use the CLI to fix any issues with the failed steps as their functioning might be hampered. However, if you choose to access FortiSOAR without rectifying the failed steps, which can cause FortiSOAR functionality to deteriorate, a Proceed Anyway button is provided that lets you to use the product while acknowledging the configuration failure:
If the FortiSOAR UI is not accessible even after clicking Proceed Anyway, you can try the following steps to fix the issues:
- Use the
csadm services --status
command to check the statuses of the services. Based on the output of this command, you can choose to restart the specific service that is not running; for example, if the 'postgresql-16' service is not running you can restart it using thesystemctl restart postgresql-16
command. Alternatively, you can use thecsadm services --restart
command. to restart all the services. Use thecsadm services --status
command once you have restarted any non-running services to verify their status.
Re-run the configuration using the/opt/cyops/scripts/config-vm.sh
command if all the services are operational. - Manually install ansible in the case of an ansible installation error using the following command:
sudo -u nginx /opt/cyops-workflow/.env/bin/pip install ansible==7.4.0 --extra-index-url https://repo.fortisoar.fortinet.com/prod/connectors/deps/simple/
- If the failure screen keeps getting displayed on the FortiSOAR UI, even after you have attempted to resolve all the backend issues, then you can update the
fsr-boot.json
to update its state from 'failed
' to'config_vm_failure_acknowledged
'.
Contact support if failures persist even after troubleshooting.
Creating a backup user for the FortiSOAR appliance to allow access to the CLI
It is highly recommended that you set up a backup user for the FortiSOAR appliance so that, in the event you forget the 'csadmin
' CLI password for CLI access and your csadmin
user gets locked you can still access the CLI using the backup user's account.
To create a backup user, follow these steps:
- Use the csadmin account to access FortiSOAR.
- Run the
sudo su
command. - Run the following command to create a backup user, csadmin-bkp:
adduser csadmin-bkp
- Specify the password for the new backup user, csadmin-bkp:
passwd csadmin-bkp
NOTE: Ensure that you note down this password. - Run the following command to add the new backup user to the wheel group:
usermod -aG wheel csadmin-bkp
Pointing the chronyd service to a valid ntp server
If the time on the FortiSOAR server is not correct, you might see issues such as ingestion workflows not pulling the latest data from an external source. It is highly recommended to keep the time in sync with an NTP server. Therefore, if you require to change the system time on your FortiSOAR instance, then perform this step immediately after running the FortiSOAR Configuration Wizard.
The chronyd
service runs on your FortiSOAR instance, and it requires to be pointed to a valid ntp server. If the /etc/chrony.conf
file contains entries to ntp server(s) that are not valid; then you might face Invalid System Time issues where you might not be able to log on to your FortiSOAR instance. Edit the /etc/chrony.conf
file to add details of a valid ntp server(s). For a list of common NTP servers, go to https://www.ntppool.org/en/.
In case your FortiSOAR VM does not have access to the internet, then you must edit the /etc/chrony.conf
to add details of a valid ntp server within your data center.
Editing the VM configuration
It is not necessary to perform the following steps, but they can quickly assist you to get access to the FortiSOAR VM:
- Setting a static IP
- Determining your DHCP IP Address
Setting a static IP
- On the ESX console for your FortiSOAR VM, login to the VM as the
csadmin
user. - Type
sudo –i
in the terminal and pressEnter
to become a root user. - Once you are logged in to the terminal, type
nmtui
and pressEnter
. - On the first screen, select the Edit a connection option and press
Enter
. - On the second screen, select the connection listed under Ethernet, which is Wired connection 1 and select
<Edit...>
. - Use the arrow keys to select
<Show>
that appears to the right of the IPv4 Configuration option and pressEnter
. - Enter the required information for your network. You must enter all the information, such as IP Address, Gateway, DNS servers address, on this screen:
- (Optional) If you want to configure IPv6, repeat steps 5 and 6 and then enter the required information, such as IPv6 Address, for your network.
- Ensure that you have selected the
Automatically connect
andAvailable to all users
options. - Select
<OK>
and pressEnter
. - Select
<Back>
and pressEnter
. - Select
<OK>
and pressEnter
. - Restart the network service using the
systemctl restart network
command.
Once the network service restarts, you can use the assigned static IP.
Determining your DHCP IP address
- On the ESX console for your FortiSOAR VM, login to the FortiSOAR VM as the root user.
- Type
ifconfig | more
in the terminal and pressEnter
.
Your IP address is listed in theeth**
section, next toinet
, as displayed in the following image:
'
Once you have completed configuring the hostname and IP address ensure that the default inbound ports mentioned in the 'VM Inbound Networking' section are open and accessible. |
Now you must follow the licensing process required for FortiSOAR and then you can use this IP address to log on to the FortiSOAR UI and begin the configuring the system. See the Licensing FortiSOAR chapter for more information.
Deploying FSR Agents
FortiSOAR supports segmented networks, which facilitates investigation in a multi-segmented network by allowing secure remote execution of connector actions. If your requirement is to be able to remotely run connector actions, then you can use the "FSR Agent".
Automated ingestion, enrichment, or triage actions using a SOAR platform require network connectivity to various endpoints on which you want to run connector actions. These devices or endpoints, can at times, be in a different network segment than the one where the FortiSOAR node is deployed. To connect to such endpoints in segmented networks, FortiSOAR provides a lightweight component, called the "FSR Agent". A FSRAgent can be deployed in a network segment and configured to receive and execute connector actions from a FortiSOAR node using its secure message exchange. The FSR Agent only needs an outbound network connectivity to the secure message exchange server on its TCP port. It does not need a VPN setup or an inbound network connectivity.
You do not require any additional licensing for the FortiSOAR secure message exchange. |
You can configure the following types of authentications to connect FSR agent and secure message exchange:
- Basic Authentication: Uses username and password to create connections between FSR agent and secure message exchange.
- Basic Authentication with Peer Verification: Uses username and password to create connections between FSR agent and secure message exchange, and also performs 'Certificate Verification'. This process will verify that the clients which are attempting to connect can be trusted by presenting a certificate that is signed by a CA and trusted by the server; thereby ensuring that only trusted clients can connect to the secure message exchange.
- Client Certificate Authentication: Presents a certificate to the server which is signed by a trusted CA. It is recommended that you create the certificate with the common name as the name of your agent or tenant. This provides enhanced security as this gives the facility to connect only to trusted clients.
To enable client certificate authentication, you can specify the authentication type as 'Certificate Auth' while adding an FSR agent.
To enforce client certificate verification, you must provide a pair of exchange event listener client certificates and exchange event listener client key when you are adding a secure message exchange. Client verification ensures that whenever any client wants to connect to secure message exchange that client must present the client certificate to the secure message exchange for verification. You must also provide the pair of exchange event listener client certificates and exchange event listener client key, if you have enabled mutual TLS (mTLS). Use the csadm mq mtls
command to enable or disable mTLS. For more information on csadm
, see the FortiSOAR Admin CLI chapter in the "Administration Guide."
Architecture
Recommended Resource Requirements for Virtual Machines (VM)
Recommended specifications for Secure Message Exchange
- 8 available vCPUs
- 16 GB available RAM
- 100 GB available disk space: Recommended to have high-performance storage, preferably SSDs.
- 1 vNIC
Recommended specifications for FSR agents
- 4 GB available RAM
-
2 available vCPUs
-
10 GB available disk space
- Rocky Linux 9.3 or Red Hat Enterprise Linux (RHEL) Server release 9.3
Prerequisites for installing an FSR agent
- Ensure that the VM on which you want to install the FSR agent matches the recommended specifications, see Recommended specifications for FSR agents.
- Ensure that repo.fortisoar.fortinet.com is reachable or resolvable from the VM where you intend to install the FSR agent. Additionally, if you plan to create custom connectors using packages not available on the FortiSOAR repo server, ensure that pypi.org is reachable or resolvable from the VM where you intend to install the FSR agent.
- Ensure that the secure message exchange that you have specified when you have added the FSR agent is reachable or resolvable from the VM.
- Ensure that the Rocky Linux or RHEL repository is enabled on the other system in the air-gapped environment for smooth installation your FSR agent. See Deploying FortiSOAR using offline repositories chapter for details on offline repo.
- Ensure the you review the
Installing an FSR agent using an offline repo, where the certificate on your offline repo is self-trusted topic in the where the certificate on your offline repo is self-trusted
in the Deploying FortiSOAR using offline repositories chapter, if you are installing an FSR agent using an offline repo. - Ensure that the following packages are installed on the instance where you are going to install the FSR agent:
- Python39-devel: The FSR agent runtime needs "python39-devel". During FSR agent installation, the installer looks for an existing installation, and in the case, it is not installed, tries to install it using
yum install
. If this package is not found, the FSR agent installation will fail.
Note: If the connector has dependency on any other packages that are not pre-installed then such packages or applications will require to be separately installed on the FSR agent. For example, the 'nmap' connector requires thenmap
application to be installed, therefore you would require to install this application separately on the agent.
- Python39-devel: The FSR agent runtime needs "python39-devel". During FSR agent installation, the installer looks for an existing installation, and in the case, it is not installed, tries to install it using
Process of setting up an FSR agent
- Add a secure message exchange.
A Secure Message server is used for communication with FSR Agents or dedicated tenant nodes. You can add both externally deployed secure message exchange or the Default (Embedded) secure message exchange.
If you want to use the local i.e., Default (Embedded) secure message exchange to connect to external FSR agents and run remote actions on various segments of your network or in case of a dedicated tenant, then you must enable the secure message exchange as described in the Enabling the secure message exchange section. In case of an external secure message exchange, then add the secure message exchange as described in the Adding a Secure Message Exchange section. - Add FSR agents to your FortiSOAR instance. See the Adding an FSR agent section.
- Install FSR agents. See the Installing an FSR agent section.
Minimal permissions required
To configure and install FSR agents:
Create
,Read
, andUpdate
permissions onAgents
.Read
permissions onApplication
andSecure Message Exchange
.
Enabling the secure message exchange
A secure message exchange establishes a secure channel using which you can relay information to your FSR agent or tenant nodes. A Default (Embedded) secure message exchange configuration is available on every FortiSOAR node that can be enabled as explained in this section.
To use the Default (Embedded) secure message exchange to connect to external FSR agents, you must enable the secure message exchange using the csadm secure-message-exchange enable
command. For more information on csadm
, see the FortiSOAR Admin CLI chapter in the "Administration Guide."
For a production setup, it is recommended that you add and configure an external secure message exchange for handling scale and high availability. |
Adding a Secure Message Exchange
Install a secure message exchange and then adding the reference of this secure message exchange in the tenant or FSR agent node(s) creates a dedicated secure channel of communication. You can have more than one secure message exchange in the configuration. You can distribute tenants across secure message exchanges based on the geographical locations, scale, or compliance policies of the respective customers.
To add a secure message exchange, do the following:
- Log on to FortiSOAR as an administrator.
Note: Administrator role must haveCreate
,Update
, andDelete
permissions on Secure Message Exchange. - Click the Settings () icon to open the
System
page. - On the
System
page, you will see theAgent Configurations
section. Click the Secure Message Exchange item in the left menu, to configure the secure message exchange. - Click Add Secure Message Exchange on the
Secure Message Exchanges
page.
Important: To add a secure message exchange and configure tenants, you must have a role that has a minimum ofCreate
andRead
permissions on the Secure Message Exchange and Tenants modules. To update the details of the secure message exchange you additionally requireUpdate
permissions on the Secure Message Exchange and Tenants modules.
To edit the configuration of an existing secure message exchange, click the secure message exchange row whose configuration you want to update. This displays theEdit Secure Message Exchange
dialog. Update the configuration parameters, as required, in the dialog and click Update. - In the
Add New Secure Message Exchange
dialog, configure the following parameters:- In the Name field, enter the name of the secure message exchange that you have configured to act as a secure channel of data replication between the FortiSOAR node and tenant or FSR agent nodes.
- In the Address field, enter the FQHN (Fully Qualified Host Name) of the secure message exchange.
Important: Ensure that the FQHN matches the Certificate Name (CN) or the Subject Alternative Name (SAN) provided in the SSL certificate used to configure the secure message exchange. - In the Username field, enter the username you will use to login to your secure message exchange as an administrator.
By default, it is set asadmin
. - In the Password field, enter the password you will use to login to your secure message exchange as an administrator.
- In the Server Name Indication field, enter the Server Name Indication (SNI) address for the Secure Message Exchange. You must specify the SNI address when the Secure Message Exchange is behind a reverse proxy or in a cluster behind a load balancer such as FortiADC.
- In the API Port field, enter the RabbitMQ Management port number that you had specified while configuring the secure message exchange, and ensure that the FortiSOAR node has outbound connectivity to the secure message exchange at this port.
By default, it is set as15671
. - In the TCP Port field, enter the TCP port number that you had specified while configuring the secure message exchange, and ensure that the FortiSOAR node has outbound connectivity to the secure message exchange at this port.
By default, it is set as5671
. - In the CA Certificate field, copy-paste the certificate text of the Certificate Authority (CA) that has signed the secure message exchange certificate in the
pem
format. You can also upload the certificate file. If it is a chain, then the complete chain must be provided.
By default, the CA certificate for the FortiSOAR self-signed certificate is present at the following location:/opt/cyops/configs/rabbitmq/ssl/cyopsca/cacert.pem
.
Important: If in the future, your secure message exchange certificate expires, and you need to deploy a new certificate, then the new certificate must be copied back to the master node as well as the tenant's router entry.
Client certificate can be opted from Certificate Authority in case CA signed certificates are deployed on secure message exchange or if there are no external CA signed certificates deployed. Client certificates can be generated using the following command:csadm mq client-certs generate --common-name MQ_CLIENT_CERT_COMMON_NAME [--target-dir MQ_CLIENT_CERT_TARGET_DIR]
Once the certificates are generated, the same can be used in the Exchange Event Listener Client Cert and Exchange Event Listener Client Key fields. For more information, see the FortiSOAR Admin CLI chapter in the "Administration Guide."
Note: The default self-signed certificates shipped with FortiSOAR are valid for one year from the inception of your FortiSOAR instance. It is recommended to regenerate these certificates before the end of one year. Steps for this are mentioned in theRegenerating self-signed certifications
topic in the Additional Configurations chapter. - (Optional) If you have enabled the mTLS, i.e., you require that clients that want to connect to secure message exchange must present their client certificate to the secure message exchange for verification, then you must also provide a pair of exchange event listener client certificates and exchange event listener client key, as follows:
- In the Exchange Event Listener Client Cert field, copy-paste the client certificate text or you can also upload the client certificate file.
- In the Exchange Event Listener Client Key field, copy-paste the client key text or you can also upload the client key file.
- To save the configuration for the secure message exchange on the FortiSOAR node, click Save.
After you have updated your secure message exchange configuration, the updated configurations might take some time to get reflected. |
Clicking Refresh in the Actions column refreshes your secure message exchange (SME) configuration and clicking Delete deletes those SMEs that are currently not communicating with FSR Agents. Note that you must first configure another Secure Message Exchange server for communication with associated FSR Agents and then delete the old SME.
Adding an FSR agent
To add an FSR agent, do the following:
- Log on to your base FortiSOAR node as an administrator and click the Settings icon to open the
System
page. - To add FSR agents, in the
Agent Configurations
section, click Agents in the left menu and click Add.
To edit the configuration of an existing FSR agent, click the FSR agent whose configuration you want to update, which opens the FSR agent record in the detail view. Update the configuration parameters as required.
If you no longer require an existing FSR agent, you can deactivate or deboard an FSR agent. To deactivate an agent, clear the Enabled checkbox in the FSR agent record.
Deboarding an FSR agent is an irreversible operation which also deletes all data related to that FSR agent from the FortiSOAR node. For more information, see Deboarding FSR Agents. - On the
Agent
page, click Add to open theAdd New Agent
dialog and configure the following parameters for the FSR agent:- In the Name field, enter the name of the FSR agent.
- From the Auth Type drop-down list, select the type of authentication you want to enforce for agents or clients to connect to the secure message exchange. You can choose between Basic Auth or Certificate Auth.
- From the Secure Message Exchange drop-down list, choose the secure message exchange that you have configured as the secure channel using which you can relay information to your FSR agent.
Note: You must ensure that you have valid Secure Message Exchange configurations available before you configure the FSR Agent. - (Optional) In the Description field, enter the description of the FSR agent.
- If you have selected Certificate Auth from the Auth Type drop-down list, then in the Client Certificate field, copy-paste the client certificate text of the Certificate Authority (CA) that has signed the secure message exchange certificate in the
pem
format. You can also upload the client certificate file.
If you want to enforce client certificate verification with Basic Auth then also you must provide client certificate in this field, so that the secure message exchange will verify the certificate before allowing connection to any client.
Note: If you are using CA signed certificates on secure message exchange, you must add these certificates to the truststore using the following command:csadm mq truststore add --ca-cert CA_CERT_PATH
For more information, see the FortiSOAR Admin CLI chapter in the "Administration Guide." - Similarly, in the Client Key field, copy-paste the client key text or you can also upload the client key file.
Client certificate and key can be opted from Certificate Authority if CA signed certificates are deployed on secure message exchange or if there are no external CA signed certificates deployed. Client certificates can be generated using the following command:csadm mq client-certs generate --common-name MQ_CLIENT_CERT_COMMON_NAME [--target-dir MQ_CLIENT_CERT_TARGET_DIR]
Once the certificates are generated, the same can be used in the Client Certificate and Client Key fields. For more information, see the FortiSOAR Admin CLI chapter in the "Administration Guide." - In the Owners section, the team of the user who is logged into the system is listed as pre-selected as the owner of the FSR agent. You can select additional teams that you want to add as owners of the FSR agent and click Link Team.
You can also delete the default team as the owner and replace it with another team. However, to add an agent, you must designate at least one team as the owner. If you remove all teams from the Owners section, the following warning message is displayed: 'As a best practice, ensure that you associate at least one of your teams with this tenant/agent else you will no longer able to access the tenant/agent settings or associated records after tenant/agent creation
Teams help in governing RBAC for the FSR agent. While running connector actions using FSR agents, users will only see FSR agents that are associated with their teams. - To complete adding the FSR agent, click Create.
Once you have completed adding the FSR agent, you will see the status for the FSR agent. Following is the list of statuses that can be displayed:
- Configuration In Progress: Process of configuring the FSR agent has begun.
- Awaiting Remote Node Connection: Connection between the FortiSOAR node and secure message exchange is established and awaiting the connection to the FSR agent.
- Remote Note Connected: FSR Agent has been connected to the FortiSOAR node using secure message exchange.
- Configuration Failed: FSR Agent failed to be added on the secure message exchange.
- Message Exchange Unreachable: Secure message exchange is unreachable.
- Remote Node Unreachable: FSR Agent is unreachable from the FortiSOAR node.
If the connection between the FortiSOAR node and secure message exchange is established, then the Status
column displays "Awaiting Remote Node Connection" along a Download Installer link. Now, you are required to download the FSR agent installer and install the FSR agent as described in the following section.
In the Agent Actions
column, you will see either the Export Config link or the Download Installer link. The Download Installer link represents a "FSR Agent" and you can use this link to install the agent at a specified endpoint. The Export Config link represents a "FSR Node", i.e., in this case the agent represents a dedicated tenant and you can use this link to export the configuration of the dedicated tenant.
If the Status
column displays statuses like "Message Exchange Unreachable" or "Remote Node Unreachable", the Agent Actions
column will also display a Retry link that allows you to again perform the operation.
You might also see a Warning symbol in the Agents Action
column as shown in the following image:
The Warning symbol indicates that the master cannot remotely execute or manage connector actions on the FSR agent. Prior to version 6.4.4., the FortiSOAR UI did not provide any indication of remote connector management, and if remote connector management was disabled at the FSR agent, then the master was not notified. Due to this if the master triggers any remote request, then that would get ignored by the FSR agent since the remote operation had been disallowed. Therefore, in version 6.4.4, the Warning icon is introduced to indicate when remote connector management is disabled.
To enable or disable remote connector management on the FSR agent, you must have a minimum of Upgrade
permission on the Agent
module, and to disallow the master from remotely executing connector actions on an FSR agent, ensure that the FSR agent's version must be 6.4.4 and later.
Then, ssh to the FSR agent's VM and edit the /opt/cyops-integrations/integrations/configs/config.ini
file and set the value of the ENABLE_REMOTE_CONNECTOR_OPERATION
parameter:
- To enable remote connector management, set the
ENABLE_REMOTE_CONNECTOR_OPERATION
parameter totrue
. - To disable remote connector management, set the
ENABLE_REMOTE_CONNECTOR_OPERATION
parameter tofalse
.
Once you have completed editing the config.ini
file and setting the value of the ENABLE_REMOTE_CONNECTOR_OPERATION
parameter, restart the cyops-integrations-agent
service. Restarting the cyops-integrations-agent
service notifies these changes to the master node.
The agent grid will also contain an Auth Type column which displays whether the agent will use Basic Auth or Certificate Auth to connect to the secure message exchange. It also contains a Certificate Expiry column, which displays when the client certificate will expire in case of Certificate Authentication or Basic Authentication with Peer Verification. In the case of Basic Auth, if you provide certificates while adding agents, then the certificate expiry will be displayed; however, if you do not provide any certificates while adding agents, then a blank will be displayed in the Certificate Expiry column shown in the following image:
If you have enabled mTLS on secure message exchange, and you have added the secure message exchange client certificate and key after the FSR agent is added or if you have updated the secure message exchange client certificate and key after they have expired, then you require to first disable and again enable the agent to re-trigger the event listener and update agent status correctly. |
Installing an FSR Agent
Before installing an FSR agent, ensure that you meet all the prerequisites. For more information, see Prerequisites for installing an FSR agent topic.
If you are installing an FSR agent using an offline repo, with a self-trusted certificate, additional steps are required. For more details, see the Installing an FSR agent using an offline repo, where the certificate on your offline repo is self-trusted topic in the Deploying FortiSOAR using offline repositories chapter. |
To install an FSR agent, follow these steps:
- Click the Download installer link on the
Agents
page. - On the
Prepare and Download Agent Installer
dialog, from the Include Specified Connectors to install on Agent drop-down list, choose which connectors you want to include while installing the FSR agent. You can choose from the following options: Do not install connectors by default, Custom, All connectors installed on Master, or Include pre-existing connectors on agent. FSR Agents use connectors to remotely run actions on a remote network.- If you select Do not install connectors by default, then connectors are not installed on the FSR agent, except for the "Utilities" and "and “FSR Agent Communication Bridge" connectors that is installed, by default, on the FSR agent.
- If you select Custom, then from the Select Connectors drop-down list you have to select the connectors that you want to install on the FSR agent. Note that only connectors that are installed on FortiSOAR (master) node can be installed on the agent.
- If you select All connectors installed on Master, then all the connectors that are installed on FortiSOAR are installed on the FSR agent.
- If you had an FSR agent system on which you had configured some connectors, which you required to re-provision, if for example, there were some issues with the FSR agent's system, then you can download the FSR agent installer again, and select the Include pre-existing connectors on agent option. Selecting the Include pre-existing connectors on agent bundles up the connectors and their configurations of those connectors that were previously installed and configured on the FSR agent.
- Click Download Installer.
Once you click Download Installer, the installer file named as <agent-name>-install.bin
is downloaded on your VM. Use 'scp
' or any other method to move this installer to the FSR agent VM and install the FSR agent.
The installer installs the following for the FSR agent:
- PostgreSQL database.
- cyops-integrations-agent
Once the installation is complete, check the status of the cyops-integrations-agent
service. Also, note that the password for PostgreSQL is the ID of the FSR Agent.
Once the FSR agent is installed you can perform actions using the following buttons in the Agent Actions
column:
- Download Installer: Install the FSR agent.
- Enable Input Bridge: Configure the FSR Agent Communication Bridge.
- Upgrade: Automatically upgrade the FSR Agent.
- Update Config: Update the configuration on the FSR Agent machine with the latest settings such as, changes in the hostname, SNI, address, etc.
Additionally, you can run connector actions on FSR agents, install and configure custom connectors, and perform administrative functions. For information on these functions and upgrading the FSR agent, see the Segmented Network Support chapter in the "Administration Guide".
Deboarding FSR Agents
To deboard existing FSR agents, you require to have Read
and Delete
permissions on the Agents
module. Deboarding agents not only deletes the FSR agent, but also removes the list of connectors installed and all the configurations of the connectors that have been installed on the specific FSR agent from the FortiSOAR node. Once you delete an FSR agent, you cannot retrieve any information related to that FSR agent, therefore you must be careful while performing this operation.
To deboard an FSR agent, log on to FortiSOAR as an administrator and click the Settings icon to open the System
page. Click Agents in the left menu and on the Agents
page, click Delete. FortiSOAR will display a warning dialog, click Confirm on the warning dialog to deboard the FSR agent.
Moving an FSR agent to a new secure message exchange
If you have added a new secure message in your environment, and you want to move your FSR agent to the new secure message exchange, do the following on the FortiSOAR system:
- Add the new secure message on your FortiSOAR system. For more information, see the Adding a Secure Message Exchange section.
- Log on to your FortiSOAR node, master node in case of a distributed multi-tenant configuration, as an administrator and click the Settings icon to open the
System
page. - In the
Agent Configurations
section, click Agents in the left menu. - Click to open the FSR agent record that you want to move to the new secure message exchange.
- In the FSR agent record, from the Secure Message Exchange drop-down list, select the secure message exchange on which you want to move the FSR agent.
- Restart the
cyops-postman
,uwsgi
, andcyops-integrations-agent
services on the master node, using the following command:systemctl restart cyops-postman uwsgi cyops-integrations-agent
After you have completed updating the router information and restarting the services, you must download the FSR agent installer again and reinstall the FSR agent on the FSR agent VM.
Adding multiple disks and partitioning disks in your FortiSOAR VM
Multiple disks are supported for the FortiSOAR installation. Having multiple disks for the FortiSOAR installation has the advantage of being able to detach the disks that contain data and recover data, in the event of a FortiSOAR system crash.
To support partition sizes larger than 2 TB, FortiSOAR includes support for GPT disk partitioning in release 7.5.0. Previously FortiSOAR, only supported MBR disk partitioning, limiting partition sizes to 2 TB. If you already have a FortiSOAR instance and need a partition larger than 2 TB, we recommend creating a new FortiSOAR VM on release 7.5.0 or later and utilizing the Export and Import wizards to migrate your data from the old instance to the new one. This is required as FortiSOAR does not support a combination of MBR and GPT partitions. |
For the procedure for recovering data see the Recovering Data topic. For the procedure for extending existing disks, see the Troubleshooting issues occurring in FortiSOAR due to insufficient space topic in the Troubleshooting FortiSOAR chapter.
You can add three more disks to your Virtual Machine (VM) and create separate Logical Volume Management (LVM) partitions for PostgreSQL and Elasticsearch data.
For example, you have added the following new disks:
/dev/sdb
: Recommended to have a thin provisioned disk for PostgreSQL data whose disk size is 500GB./dev/sdc
: Recommended to have a thin provisioned disk for Elasticsearch data whose disk size is 150GB./dev/sdd
: Recommended to have a thin provisioned disk for FortiSOAR™ RPM data whose disk size is 20GB.
Partitioning the disks
The steps mentioned in this topic are for a fresh installation of FortiSOAR that has been installed using the |
To partition the /dev/sdb
, which is the disk for PostgreSQL data, run the following commands as a root user:
pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
mkdir -p /var/lib/pgsql
lvcreate -l 100%VG -n relations vgdata
mkfs.xfs /dev/mapper/vgdata-relations
mount /dev/mapper/vgdata-relations /var/lib/pgsql
echo "/dev/mapper/vgdata-relations /var/lib/pgsql xfs defaults 0 0" >> /etc/fstab
To partition the /dev/sdc
, which is the disk for Elasticsearch data, run the following commands as a root user:
pvcreate /dev/sdc
vgcreate vgdata /dev/sdc
mkdir -p /var/lib/elasticsearch
lvcreate -l 100%VG -n search vgsearch
mkfs.xfs /dev/mapper/vgsearch-search
mount /dev/mapper/vgsearch-search /var/lib/elasticsearch
echo "/dev/mapper/vgsearch-search /var/lib/elasticsearch xfs defaults 0 0" >> /etc/fstab
To partition the /dev/sdd
, which is the disk for FortiSOAR RPM data, run the following commands as a root user:
pvcreate /dev/sdd
vgcreate vgdata /dev/sdd
mkdir -p /opt
lvcreate -l 100%VG -n csapps vgapp
mkfs.xfs /dev/mapper/vgapp-csapps
mount /dev/mapper/vgapp-csapps /opt
echo "/dev/mapper//vgapp-csapps /opt xfs defaults 0 0" >> /etc/fstab
Recovering data
Commands for recovery of data must be run as a root user. |
Following is the procedure for recovering data from the disks:
- Deploy the recovery VM that has the same version of FortiSOAR installed (OVA or AMI) and power it ON.
- In the
/etc/fstab
file, comment out the lines that contain the wordvgdata
orvgapp
. - Rename the
vgdata
andvgapp
volume groups using the following command:vgrename vgdata old_vgdata
vgrename vgapp old_vgapp
- Stop all FortiSOAR™ services using the following command:
csadm services --stop
- Run the
umount /var/lib/pgsql/ && umount /opt
command. - Deactivate the volume group using the following command:
vgchange -a n old_vgdata old_vgapp
- Find out which disks contain the
vgdata
andvgapp
volume groups using the 'pvs
' command.
For example, ifvgdata
is on/dev/sdb
andvgapp
is on/dev/sdd
, you require to skip these disks fromlvm
scanning. To skip the disks fromlvm
scanning add the 'skip' filter in the/etc/lvm/lvm.conf
file as follows:- Open the
/etc/lvm/lvm.conf
file using thevi /etc/lvm/lvm.conf
command. - In the "
devices {
" section in thelvm.conf
file, add the following line:filter = ["r|/dev/sdb|", "r|/dev/sdd|"]
- Open the
- Stop the source VM and attach the existing PostgreSQL and RPM disks from the source VM to the recovery VM.
The PostgreSQL disk will have the size of 150GB and the RPM disk will have the size of 10GB. - Run the
vgs
command, which should display thevgdata
andvgapp
volume groups. - In the
/etc/fstab
file, uncomment the lines that contain the wordvgdata
orvgapp
that we had commented out in step 2. - Reboot your recovery VM.
- Truncate the
envc
andcascade
tables using the following command:psql -U cyberpgsql -d das -c "truncate envc cascade;"
- Update the cluster table using the following shell script. You can also create a temporary shell script using the following contents and run the same. For example,
sh temp_script_for_cluster_table_updation.sh: hardware_key=`csadm license --get-hkey`
current_hostname=`hostname`
#First findout the number of nodes available in cluster table
number_of_nodes_in_cluster_table=`psql -U cyberpgsql -d das -tAc "select COUNT(*) from cluster;
if [ $number_of_nodes_in_cluster_table -eq 1 ]; then
# Only single node is available in cluster, hence directly update the nodeid.
psql -U cyberpgsql -d das -c "UPDATE cluster SET nodeid='${hardware_key}';"
csadm ha set-node-name $current_hostname
elif [ $number_of_nodes_in_cluster_table -gt 1 ]; then
# More than one node is available. Now update the nodeid where nodename in cluster table matches with current hostname
psql -U cyberpgsql -d das -c "UPDATE cluster SET nodeid='${hardware_key}' where nodename='${current_hostname}';"
else
echo "Not able to update the cluster table"
fi - Change the rabbitmq password using the following commands:
systemctl start rabbitmq-server
rabbitmq_password=`grep "cyops.rabbitmq.password" /opt/cyops/configs/rabbitmq/rabbitmq_users.conf | cut -d"=" -f2`
rabbitmqctl change_password cyops $rabbitmq_password - Change the elasticsearch password using the following commands:
elasticsearch_password=`csadm license --get-hkey`
printf $elasticsearch_password | /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password" -f
elasticsearch_password=`/opt/cyops-auth/.env/bin/python
/opt/cyops/scripts/manage_passwords.py --encrypt $elasticsearch_password`
/opt/cyops-auth/.env/bin/python /opt/cyops/scripts/confUtil.py -f
/opt/cyops/configs/database/db_config.yml -k "secret" -v $elasticsearch_password - Clear the API cache using the following commands. If any command fails, rerun that command:
systemctl start php-fpm
rm -rf /opt/cyops-api/var/cache/prod/
cd /opt/cyops-api
"sudo -u nginx php bin/console cache:clear --env=prod --no-interaction" - Refresh the keys using the following command:
csadm certs --skip-hmac
- Update the system using the following command:
cd /opt/cyops-api/
sudo -u nginx php bin/console cybersponse:system:update -la --env=prod --force - For FortiSOAR release 7.2.0 onwards:
Change the hostname using the following command:sudo csadm hostname --set <source-machine-hostname>
For FortiSOAR releases prior to 7.2.0:
Restart the services using the following command:sudo csadm services --restart
- Reindex elasticsearch using the following command:
sudo -u nginx php /opt/cyops-api/bin/console cybersponse:elastic:create --env=prod
- (Optional) If you do not remember the FortiSOAR UI password of your source instance and want to reset it to the default, which is 'changeme' for non-AWS instances and the 'instance_id' for AWS instances, run the following command:
/opt/cyops-auth/.env/bin/python -c "import sys; sys.path.append(\"/opt/cyops-auth\"); import utilities.reset_user as reset_user; reset_user.start()"
- Redeploy your FortiSOAR license.
For the embedded Secure Message Exchange, do the following:
- Delete the existing embedded Secure Message Exchange using the following command:
/opt/cyops/scripts/api_caller.py --method DELETE --endpoint https://localhost/api/3/routers/52c5cee8-5c28-4ed2-a886-ec8bf4dc5993
- Enable the embedded Secure Message Exchange again using the following command:
sudo csadm secure-message-exchange enable
- Reconfigure all your FSR agents. For information on FSR agents, see the Segmented Network Support chapter in the "Administration Guide."