Communication Through Firewalls

It is common that the Platform and EC’s hosts are protected by one or more firewalls. In order for the communication between the various components of the system to work, you may need to update your firewall settings.

Accessing Ports in Pico Instances

In MediationZone, it is always the client that establishes a connection to the Platform. Once a connection has been established, it is used as a two-way communication channel; the Platform never needs to open an outgoing connection. Typically, the Platform has the server role in the system, while mzsh, Desktops, ECs and web browsers act as clients.

The common property  pico.rcp.platform.port specifies a port used by pico instances to communicate with Platform. The default value is 6790 in a standard installation. Use the following command to retrieve the value of this property:

mzsh topo get topo://val:common.pico.rcp.platform.port

The Platform property mz.webserver.port  specifies a port used to communicate with the Platform Web Interface. The default value is 9000 in a standard installation. Use the following command to retrieve the value of this property from the Platform Container:

mzsh topo get topo://container:<container>/pico:platform/val:config.properties.mz.webserver.port

The property  ec.webserver.port specifies a port used to communicate with an EC Web Interface. The default value is 9090 in a standard ec-template. Use the following command to retrieve the value of this property for all ECs in a container:

mzsh topo get --format data-only topo://container:<container>/pico:.*/val:config.properties.ec.webserver.port

 

You can manage pico instances in one container from another by enabling remote access, using the mzsh command topo setupremote. SSH is used by the pico instances for remote access and the default port used by this protocol is 22. For further information about setting up remote access and how to configure the SSH port, see Remote Access to Containers.

 

firewall_architecture.png

Firewall Architecture

Inter Workflow Communication

The server port used for Inter Workflow communication, when one EC contacts another EC, is specified by the EC property pico.rcp.server.port. If no port is set, a dynamic port will be used and the port number will change each time the EC is restarted. To let the firewall allow a connect operation, the  property pico.rcp.server.port has to be set to the same port number as the specific port opened by the firewall.

Example

EC1 on Host1 is configured with "RCPPort1", and EC2 on Host2 with "RCPPort2".

To allow EC1 to open a connection to contact an Inter Workflow storage on EC2, EC1 will make a TCP connect from Host1 to Host2 on port "RCPPort2".

In this case, "RCPPort2" has to be allowed by the firewall.

Database Communication

For performance reasons, Audit information is logged directly from an EC to the database.

If the system is unable to log Audit information directly from the EC, Audit will instead be performed through the Platform. This might happen if an external EC is unable to connect to the database in case of, for example, a network failure or if the EC has problems to connect through a firewall. To avoid this, configure the firewall so that the EC can communicate directly with the Audit database.

For information on how to setup the Audit Profile, refer to Audit Profile in the Desktop user's guide.

Firewall Setup

The following lists the actions that should be taken to allow communication between hosts in the system. It is assumed that the standard installation ports are used. If the default ports have been changed, replace the port numbers with the ones you are using.

  • To allow mzsh, Desktops and ECs to communicate with the Platform, incoming data to, and outgoing data from port 6790 in the Platform Container must be allowed.

  • To allow the Platform Web Interface to be accessed from outside the firewall and for STR synchronization, incoming data to, and outgoing data from the Platform's port 9000 must be allowed.

  • To allow the EC Web Interface to be accessed from outside the firewall, incoming data to, and outgoing data from the EC's port 9090 must be allowed.

  • To allow remote access to Execution Containers, outgoing data must be allowed on port 22.

Type

Port(s)

Open Internally

Open Externally

Type

Port(s)

Open Internally

Open Externally

Platform

6790

9000

Refer to Additional Platform Properties in install.xml for more information.

Default scenario where MediationZone is only used within an internal network.

If it is required to provide platform ports to external scenarios, such as legacy desktop (Java Swing) running on an external network.

Web UI

9001

Refer to Desktop UI Properties for more information.

If all browser users are on an internal network.

Default scenario where Web UI is running on browsers on external network.

Execution Context(s)

9090

Refer to Execution Context Properties for more information.

Default scenario where services depending on EC is used within an internal network.

If it is required to provide access to ECs from an external network.

Example
Prometheus server is deployed on remote network and needs to work with EC in an internal network.

Legacy Java Swing Desktop

6790
9000

Default scenario when the legacy desktop is used within an internal network.

If the legacy desktop requires to run from an external network.

Operations REST Interface

9000

Refer to Operations REST Interface for more information.

Default scenario where services depending on Operations REST Interface is used within an internal network.

If it is required to provide access to Operations REST Interface from an external network.

Info!

  • It is recommended to enable the client authentication for security. For more information, refer to Enabling Client Authentication.

  • Consider to provide VPN access for services that require access to 6790 and 9000.
    For example, the access the legacy desktop (Java Swing) remotely.