Clean Install of TOS Aurora on AWS

Overview

This procedure is for the clean installation of TOS Aurora on the AWS platform. To add a node to an existing cluster, see Adding a Node on AWS. For all other installation and upgrade options, see Installing and Upgrading.

Tufin Orchestration Suite (TOS Aurora) includes SecureTrack, SecureChange and SecureApp. You will specify the applications you want to enable, when you run the install command.

Tufin Orchestration Suite should be treated as high-risk security resource, similar to how you would treat any LDAP product (for example, Active Directory). Therefore, you should only install Tufin Orchestration Suite in an appropriately secured network and physical location, and only authorized users should be granted access to TOS products and the operating system on the server.

After the installation you will have created a single data node TOS cluster to which you can add additional worker nodes. There is no need to install TOS on any additional nodes. Worker nodes require an operating system only.

High Availability (HA)

High availability is not supported in this release.

Remote Collectors (RCs)

Remote collectors can be deployed on AWS.

Procedure

Read and understand Prerequisites before you start.

Download and extract the installation package.

Follow the steps below in sequence.

Prerequisites

  • You must know the resources you will need - CPU cores, RAM, disk space and the load-model parameter to use in the install command, all of which can be obtained from your account team, based on the procedure Calculate resources - clean install.

  • To ensure optimal performance and reliability, the required resources need to be allocated exclusively to TOS. If resources become unavailable, this will affect TOS performance.

  • Do not install any software on your server before or after the deployment of TOS Aurora that is not specified in the current procedure.

  • Allocate a 24-bit CIDR subnet for the Kubernetes service network and a16-bit CIDR subnet for the Kubernetes pods network (10.244.0.0/16 is used by default).

    The pods and services networks must be inside the following private networks: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. In addition, ensure that the dedicated CIDR for the service network and pods network don't overlap with:

    • Each other

    • The physical addresses of your TOS Aurora servers (see below)

    • Your external load balancer IP(s)

    • Any other subnets communicating with TOS or with TOS nodes

  • Disks: Select a storage type of SSD. Take into consideration that TOS requires 7,500 IOPS and the throughput expected will average 250MB/s with bursts of up to 700MB/s.

  • You will need to allow access to required Ports and Services.
  • DNS hostnames must be enabled on your VPC - see Modify the DNS attributes for your VPC (Amazon official documentation)

  • Once TOS Aurora has been installed, changing the host name or IP address will require reinstalling - see Changing IP Address/Host Names. If you want to change the host name of the node, do so before running the tos install command.

  • Partitions:

    You need to configure a separate partition for /opt, a separate disk for etcd, and the OS disk needs at least 300 GB of available storage. The /opt partition will contain your data, which will increase over time. Most of your available disk space should be allocated to this partition and the minimum is determined by the load model parameter (small, medium, large) provided by your account team.

    Minimum sizes for all partitions:

    • OS disk: 300 GB

    • /opt/ (small): 80 GB

    • /opt/ (medium): 170 GB

    • /opt/ (Large): 370 GB

    • etcd: 128 GB

    *Small, medium and large refer to the load model parameter provided by your account team.

    We recommend allocating /opt partition all remaining disk space after you have partitioned the OS disk and moved etcd to a separate disk.

  • For PGA, if you are using NFS your backup server needs to be running NFS 4.

    From PHF1.0.0 and later, if you are running NFS 3 on your backup server it will not work because of a security vulnerability. If you want to ignore the security vulnerability to enable NFS 3, you need to run the following commands on all TOS servers that are using TufinOS 4.20 and later:

    systemctl unmask rpcbind.socket rpcbind.service
    systemctl unmask rpcbind.socket rpcbind.service
    systemctl start rpcbind.socket rpcbind.service
    systemctl start rpcbind.socket rpcbind.service
    systemctl enable rpcbind.socket rpcbind.service
    systemctl enable rpcbind.socket rpcbind.service

     

  • The TOS installation removes all TOS files, directories and backups left on the machine from old deployments. If you have any files you want to keep, move them to a safe external location before starting this procedure.

Downloads

  • Download the TOS R24-2 PHF1.1.0 installation package from the Download Center.

  • The downloaded files are in .tgz format <FILENAME>.tgz.

Launch the Instance

For additional help, refer to the official AWS documentation - Create your EC2 resources and launch your EC2 instance.

  1. In your AWS console, navigate to EC2 > Instances > Launch Instances.

  2. In the Name and tags pane, enter the name of the instance.

  3. In the Application and OS Images pane, choose an Amazon Machine image (AMI) from the AWS Marketplace. The AMI needs to be for:

    • Red Hat Enterprise Linux 8.10

    • Rocky Linux 8.10

    If you select Red Hat, it must be 'Red Hat Enterprise Linux Server Standard'. Other Linux distributions and versions are not supported.

  4. In the Instance type pane, select an instance type that meets your CPU and RAM resource requirements (see Prerequisites section).

  5. In the Key pair (login) pane, select or create a key pair to securely connect to your instance.

  6. In the Network Settings pane, click Edit, and enter/select the following details:

    • Network: The VPC you are using with this instance

    • Subnet: The subnet you are using with this instance

    • Auto-assign public IP: Select Disable.

    • Firewall (security groups): Create a new security group, or select an existing security group that you want to use to control the traffic to your instance.

  7. In the Configure Storage pane:

    1. Click Add new volume.

    2. For each volume, enter/select the following:

      • 300

      • General purpose SSD (gp3)

    3. Click the Advanced link, and set the IOPS, Throughput, and Encryption for each volume. Take into consideration that TOS requires 7,500 IOPS and the throughput expected will average 250MB/s with bursts of up to 700MB/s.

      The encryption should match your company's security policy.

  8. Click Launch Instance.

  9. (Optional) We recommend changing the permissions of the .pem file downloaded to your PC to prevent unauthorized users from running it. If your PC is running on a Linux-like operating system, run the command:

    [<ADMIN> ~]# chmod 400 <pem_key_name>
    chmod 400 <pem_key_name>
  10. When required, log in to the instance as follows:

    [<ADMIN> ~]# ssh -i <pem_key_name> <awsuser>@<IP>
    ssh -i <pem_key_name> <awsuser>@<IP>

    where

    • <pem_key_name> is the name of the .pem file downloaded previously from the AWS console

    • <awsuser> is the name of your AWS user

    • <IP> is its private or public IP

Create Target Groups

Target Ports

After launching the instance, you need to create a target group for the ports you are going to need. These ports are listed in the Target column in the table below. The target groups are rules that redirect traffic to the load balancer.

Protocol

Source

Target

Purpose

TCP 443 31443

Mandatory

TCP 61617 31617

Remote collector connectivity

TCP 9099 31099

OPM devices

TCP 8443 31843

Remote collector connectivity

TCP

9090

31090

Remote collector connectivity

TCP

6514

31514

TCP syslogs

UDP 514 30514

UDP syslogs

UDP 161 30161

SNMP monitoring

UDP 10161 31161

SNMP monitoring

Create a Target Group

Repeat this procedure for each port you need.

  1. In your AWS console, navigate to EC2 > Target Groups.

  2. Click Create target group.

    The Step 1 - Specify group details tab appears.

  3. Enter/select the following:

    • Target type: IP addresses

    • Target group name: A name of your choice

    • Protocol/Port: The protocol and target port . For example: UDP / 30514

    • VPC: The VPC you have defined previously

    • IP Address Types: IPv4

    • Health checks: TCP

  4. Click Next.

    The Step 2 - Register Targets tab appears.

  5. Enter details:

    • IPv4 address: The IP address of the instance created previously

    • Ports: The target port you entered above.

  6. Click Include as pending below.

  7. Click Create target group.

Create a Load Balancer

The load balancer you create is going to have listeners - one for each of the target group ports from the previous section.

  1. In your AWS console, navigate to EC2 > Load Balancers.

  2. Click Create Load Balancer.

  3. Click Create for Network Load Balancer.

  4. Enter/select details:

    • Load balancer name: A name of your choice

    • Scheme: Internal

    • VPC: The VPC you are using with the instance.

  5. Select the relevant availability zones and subnets you are using.

  6. Add a listener for each target port.

    To add a listener,

    1. Enter/select:

      • Protocol: Protocol. For example: UDP

      • Port: Source port. For example: 514

      • Target group: Name of the appropriate group created in Create Target Groups.

    2. Click Add listener.

  7. Click Create load balancer.

    The load balancer will be added to the list of load balancers

  8. Select the newly created load balancer from the list of load balancers and note the DNS name. This will be the URL of TOS Aurora when it is installed.

Configure Partitions

If not done already, set up partitions according to the Prerequisites.

Configure The Operating System

  1. If you are not currently logged in as user root, do so now.

    [<ADMIN> ~]$ su -
    su -
  2. If you want to change the host name or IP of the machine, do so now. Once TOS Aurora has been installed, changing the host name or IP address will require reinstalling - see Changing IP Address/Host Names. To change the host name, use the command below, replacing <mynode> with your preferred name.

    [<ADMIN> ~]# hostnamectl set-hostname <mynode>
    hostnamectl set-hostname <mynode>
  3. Modify the environment path to run TOS CLI commands without specifying the full path (/usr/local/bin/tos).

    [<ADMIN> ~]# echo 'export PATH="${PATH}:/usr/local/bin"' | sudo tee -a /root/.bashrc > /dev/null
    echo 'export PATH="${PATH}:/usr/local/bin"' | sudo tee -a /root/.bashrc > /dev/null
  4. Synchronize your machine time with a trusted NTP server. Follow the steps in Configuring NTP Using Chrony.

  5. Configure the server timezone.

    [<ADMIN> ~]# timedatectl set-timezone <timezone>
    timedatectl set-timezone <timezone>

    where <timezone> is in the format Area/Location. Examples: America/Jamaica, Hongkong, GMT, Europe/Prague. List the time-zone formats that can be used in the command.

    [<ADMIN> ~]# timedatectl list-timezones
    timedatectl list-timezones
  6. Upgrade the kernel:

    [<ADMIN> ~]# dnf upgrade
    dnf upgrade
  7. Disable SELinux:

    • If file /etc/selinux/config exists, edit and change the value of SELINUX to disabled:

      SELINUX=disabled
    • If the file doesn't exist or SELINUX is already set to disabled, do nothing.
  8. Reboot the machine and log in.
  9. Install Wireguard. This is needed to encrypt communication between nodes (machines) within the cluster. The wireguard version must match the operating version you are installing.

  10. [<ADMIN> ~]# sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
    [<ADMIN> ~]# sudo yum install kmod-wireguard wireguard-tools
    sudo yum install kmod-wireguard wireguard-tools
  11. Reboot the machine and log in.
  12. Install tmux and rsync:

    [<ADMIN> ~]# dnf install -y rsync tmux
    dnf install -y rsync tmux
  13. Disable the firewall:

    [<ADMIN> ~]# systemctl stop firewalld
    systemctl stop firewalld
    [<ADMIN> ~]# systemctl disable firewalld
    systemctl disable firewalld
  14. Create the TOS Aurora load module configuration file /etc/modules-load.d/tufin.conf. Example using vi:

    [<ADMIN> ~]# vi /etc/modules-load.d/tufin.conf
    vi /etc/modules-load.d/tufin.conf
  15. Specify the modules to be loaded by adding the following lines to the configuration file created in the previous step. The modules will then be loaded automatically on boot.

    br_netfilter
    wireguard
    overlay
    ebtables
    ebtable_filter
    br_netfilter wireguard overlay ebtables ebtable_filter
  16. Load the above modules now:

    [<ADMIN> ~]# cat /etc/modules-load.d/tufin.conf |xargs modprobe -a 
    cat /etc/modules-load.d/tufin.conf |xargs modprobe -a

    Look carefully at the output to confirm all modules loaded correctly; an error message will be issued for any modules that failed to load.

  17. Check that Wireguard has loaded correctly.

    [<ADMIN> ~]# lsmod |grep wireguard
    lsmod |grep wireguard

    The output will appear something like this:

    wireguard              201106  0
    ip6_udp_tunnel         12755  1 wireguard
    udp_tunnel             14423  1 wireguard
    

    If Wireguard is not listed in the output, contact support.

  18. Create the TOS Aurora kernel configuration file /etc/sysctl.d/tufin.conf. Example using vi:

    [<ADMIN> ~]# vi /etc/sysctl.d/tufin.conf
    vi /etc/sysctl.d/tufin.conf
  19. Specify the kernel settings to be made by adding the following lines to the configuration file created in the previous step. The settings will then be applied on boot.

    net.bridge.bridge-nf-call-iptables = 1
    fs.inotify.max_user_watches = 1048576
    fs.inotify.max_user_instances = 10000
    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-iptables = 1 fs.inotify.max_user_watches = 1048576 fs.inotify.max_user_instances = 10000 net.ipv4.ip_forward = 1
  20. Apply the above kernel settings now:

    [<ADMIN> ~]# sysctl --system
    sysctl --system
For maximum security, we recommend only installing official security updates and security patches for your Linux distribution, as well as the RPMs specifically mentioned in this section.

Mount The etcd Database on a Separate Volume

The etcd database should be on a separate volume to improve the stability of TOS Aurora and reduce latency. Moving the etcd database to a separate volume ensures that the kubernetes database has access to all the resources required to ensure an optimal TOS performance.

See Move etcd - New AWS Instance.

Install TOS Aurora

Deploy the Install File

  1. On the target machine, create the directory /opt/tufin/data, if it does not exist already.

  2. Transfer the TOS installation package (still in archive format .tgz) to the /opt/tufin/data directory.

  3. Switch to the target directory

    [<ADMIN> ~]$ cd /opt/tufin/data
    cd /opt/tufin/data
  4. Verify the integrity of the TOS installation package by entering the following commands and comparing the output with the checksum information.

  5. [<ADMIN> ~]$ sha256sum tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
    sha256sum tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
    [<ADMIN> ~]$ sha1sum tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
    sha1sum tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
  6. Extract the TOS run file from the archive.

    [<ADMIN> ~]$ tar -xvzf tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
    tar -xvzf tos-xxxx-xxxxxxxx-final-xxxx.run.tgz
  7. Run the TOS Aurora run file.

    [<ADMIN> ~]$ sudo sh <runfile>
    sudo sh <runfile>
  8. You must have permissions to execute TOS CLI commands. Grant permissions as shown below or allow use of sudo command.

    [<ADMIN> ~]# chmod +x /usr/local/bin/tos
    chmod +x /usr/local/bin/tos

Start the Install

  1. Run the tmux command:

    [<ADMIN> ~]$ sudo tmux new-session -s install
    sudo tmux new-session -s install
  2. Run the install command, replacing the parameters:

    • <SERVICE-CIDR> with the CIDR you want TOS Aurora to use for the Kubernetes service network, as described in Prerequisites
    • <PODS-CIDR> (Optional) with the CIDR you want to use for the Kubernetes pods network, as described in Prerequisites. The default pods network is 10.244.0.0/16

    • <MODULE-TYPE> with one of the following values:

      • ST for SecureTrack only
      • ST, SC for both SecureTrack and SecureChange
      • RC for a remote collector
    • <LOAD> with the load-model parameter value obtained from your account team as described in Prerequisites.
    [<ADMIN> ~]$ sudo tos install --modules=<MODULE-TYPE> --primary-vip=<PRIMARY> --services-network=<SERVICE-CIDR> --pod-network=<PODS-CIDR> --load-model=<LOAD> -d
    sudo tos install --modules=<MODULE-TYPE> --primary-vip=<PRIMARY> --services-network=<SERVICE-CIDR> --pod-network=<PODS-CIDR> --load-model=<LOAD> -d

    Example:

    # sudo tos install --modules=ST,SC --primary-vip=external --services-network=10.10.10.0/24 --load-model=medium -d

  3. The EULA is displayed. After reading, enter 'q' to exit the document and then enter 'y' to accept the EULA and continue until the command completes.

  4. You can now safely exit the CLI tmux session:

    [<ADMIN> ~]$ exit
    exit
  5. Go to the TOS Aurora login page by going to the URL of the load balancer DNS in your browser. You can see it in the AWS console by selecting the load balancer, looking under Description at the section Basic Configuration. There you can copy the DNS name and paste it into your browser.

  6. Log in with user=admin, password=admin. If a warning message is shown regarding the site security certificate, 'accept the risk' and continue to the site. You will be prompted to set a new password.

Post-Install Configuration

SSL Certificates

Secured connections to TOS Aurora require a valid SSL certificate. Such a certificate is generated during the installation. It is automatically renewed when it expires and also when upgrading to later versions of TOS Aurora. When connecting for the first time after certificate renewal, you will be prompted to accept the new certificate. You can also use your own CA signed certificate, but such certificates will not be renewed automatically.

SAN Certificates

For every FortiManager device you intend to monitor, add a SAN signed certificate.

License Activation

Relevant only for central clusters, skip for remote collectors.

After the license is activated, have all TOS users enable the automatic license mechanism in their browser. For more information, see Site Usage Monitoring.

Using Syslog for Accountability and More

To include accountability and rule usage information in TOS Aurora you must configure your devices to send syslogs. For more information see Sending Additional Information via Syslog.

Adding Worker Nodes to Your Cluster

TOS Aurora is deployed as a single node Kubernetes cluster. See Multi-Node Cluster for more information about adding additional nodes.

Setting up External Backups

We recommend setting up backups on external storage.

Setting up Scheduled Backups

We recommend creating a backup policy as soon as possible.

DR (Disaster Recovery)

To setup TOS redundancy across sites, see Disaster Recovery.

Sending Cluster Health Status to Tufin

Enabled by default, system information is sent periodically to Tufin Support for the purpose of troubleshooting and identifying performance issues. It can be disabled (see Sending Cluster Health Status). The information includes:

  • DB status and size

  • Backup status

  • Kubernetes status and metrics

  • CPU metrics

  • Memory status

  • I/O

  • Configuration changes

  • TOS status

  • Cluster performance

It does not include IP addresses, personal user information, or device information. All the information sent is encrypted and is accessible only to Tufin support teams.

The information is sent to Tufin from TOS users' browsers to the Tufin sub-domain mailbox.tufin.com, therefore requests from user browsers to this sub-domain must be allowed.

TOS Monitoring

TOS Monitoring lets you monitor the status of the TOS cluster and its nodes by generating a notification whenever a change in status occurs, such as a node failing, or a usage threshold reached, such as CPU or disk usage.

We recommend that you set up notifications in TOS Monitoring (see TOS Monitoring).

Additional Configuration

A number of additional parameters can be set now or later e.g. session timeout and SNMP - see Configuring TOS.

SecureChange Settings

Relevant only for central clusters; skip for remote collectors.

If you have installed SecureChange:

  1. Go into SecureChange by one the following means:

    • Sign in to TOS with the URL given previously and then select SecureChange from the app launcher.

    • Sign in directly to SecureChange by entering https://<IP>/tufinapps/securechange in the browser.

  2. Configure the DNS.

    1. Go to Settings > Miscellaneous.

    2. Delete the default value that appears in the field Server DNS name. Enter a value for Server DNS name - the DNS server to use for links in email notifications. This can be an IP address in the format 11.22.33.44 or a FQDN in the format https://mydomain.com. The SecureChange DNS name is published by SecureChange so it can be accessed from external sources. For example, it is embedded in notification mails sent by SecureChange, which include a link to a ticket, such as an email notifying a handler assigned with a task, or informing a requester that the ticket has been successfully resolved.

  3. Additional setup that can be done now or later:

    • Internal SSO Authentication. Internal SSO is enabled by default when TOS is installed, giving user access to all TOS components using the same credentials - SecureTrack, SecureChange, SecureApp, and extensions. When disabled, there is no connection between a SecureTrack user and SecureChange user with the same name.
    • Mail server connection
    • LDAP directory connection to use LDAP user accounts
    • Local users and user roles
    • Subsequent password changes can be made from the command line , see SecureChange Command Line Reference.
    • Change access to SecureTrack from SecureChange

      1. Go to Settings > SecureTrack:

      2. Change the default SecureTrack administrator. For SecureChange to access SecureTrack data, a SecureTrack administrator must be specified. By default this is the predefined user 'Admin' and everything will work fine if you leave it as it is. However, if you want a different user, create a new administrator and enter the user name. If you have already configured multi-domain management, this user can be either a super administrator or multi-domain administrator, depending on whether you want to restrict the administrator to selected domains.

      3. Remove link to SecureTrack . By default you can go from SecureChange to SecureTrack by selecting the SecureTrack link in the app launcher. If you want to remove this option, unmark the checkbox.

      4. Change connection check interval. The default value for the frequency of SecureChange testing connectivity to SecureTrack can be changed if desired.

      5. Click Test connection to verify that SecureChange has a connection to SecureTrack.

      6. Click Refresh license status. This will ensure that SecureTrack and SecureChange share the highest level of connectivity.

      7. Click Save.