Linux Installation
Preliminary notes
Before you begin the installation, please ensure that the system requirements are met.
If the MetaDefender Storage Security installer package dependencies are not installed on your system the installer will attempt to automatically download them over the internet.
Acquire the package
In order to acquire the package please visit https://www.opswat.com/solution
To limit the required resources, use the ENABLED_MODULES and the DISABLED_SERVICES environment variables in the customer.env file to select which modules to install when deploying MetaDefender Storage Security, you can follow these steps:
- Locate the
customer.envfile in your MetaDefender Storage Security deployment. This file contains environment variables used for customization. - Open the
customer.envfile in a text editor. - Add the
ENABLED_MODULESenvironment variable to the file. The variable should be in the formatENABLED_MODULES=<module_list>, where<module_list>is a comma-separated list of the modules you want to enable. For example, if you want to enable modules Amazon S3, Google Cloud, and Azure Blob storage units, yourcustomer.envfile should include the following line: ENABLED_MODULES=azureblob,amazonsdk,googlecloud - Save the
customer.envfile. - Proceed with the deployment of MetaDefender Storage Security.
Recommended Article: How to Enable Specific Modules in the Configuration?
Please note that an online installation involves downloading the required docker images from Docker Hub. If image pulls fail, you may have reached Docker Hub's rate limits, especially when multiple services pull from the same IP address.
To address this, please consider one of the following solutions:
- Use
docker loginto increase your pull limit - Implement image caching or registry proxies
- Stagger deployments to avoid concurrent pulls
Advanced installation
We recommend that production deployments use an external database and ensure that web traffic is encrypted. For detailed information on how to configure an external database or HTTPS see advanced installation section:
Debian / Ubuntu package (.deb)
- Update your packages
sudo apt update- Install the necessary package dependencies
sudo apt install jq curl gnupg-agent software-properties-common- Move to the folder containing the installer and install it
sudo dpkg -i <name of the file>.deb- After the installation is completed, check if everything went fine
man mdssor using the help menu
sudo mdss -h- Run the following command in order to initialize MetaDefender Storage Security
sudo mdss -u init- Start the service
sudo mdss -c start- Optionally, you can check the status using the following command:
sudo mdss -c status- Open a browser and navigate to the web interface http://<server> to configure your deployment.
Red Hat Enterprise Linux / CentOS / Rocky package (.rpm)
Please note that Docker Engine is officially supported only on RHEL s390x architecture, but you may be able to install it manually following the CentOS installation steps: https://docs.docker.com/engine/install/centos/
On Rocky Linux, it is recommended to use Podman , as Podman is officially supported by Red Hat.
- Update your packages
sudo yum -y update- Move to the folder containing the installer and install it
sudo yum install -y <name of the file>.rpm- After the installation is completed, check if everything went fine
sudo man mdssor using the help menu
sudo mdss -h- Run the following command in order to initialize MetaDefender Storage Security
sudo mdss -u initNote: If you don’t have docker already installed, the installer will do that for you, but you will be prompted to sign out and sign back in. This is necessary because your current user needs to be added to the docker group.
- Start the service
sudo mdss -c start- Optionally, you can check the status using the following command:
sudo mdss -c status- Open a browser and navigate to the web interface http://<server> to configure your deployment.
- If you are using firewall (on CentOS8 and RHEL 8) you may need to update it’s policies:
# Check what interface docker is using, e.g. 'docker0'ip link show # Check available firewalld zones, e.g. 'public'sudo firewall-cmd --get-active-zones # Check what zone the docker interface it bound to, most likely 'no zone' yetsudo firewall-cmd --get-zone-of-interface=docker0 # So add the 'docker0' interface to the 'public' zone. Changes will be visible only after firewalld reloadsudo nmcli connection modify docker0 connection.zone public # Masquerading allows for docker ingress and egress (this is the juicy bit)sudo firewall-cmd --zone=public --add-masquerade --permanent# Optional open required incomming ports (wasn't required in my tests)# sudo firewall-cmd --zone=public --add-port=443/tcp# Reload firewalldsudo firewall-cmd --reload# Reload dockerdsudo systemctl restart dockerPodman Configuration
MDSS can also run using the Podman container engine instead of the default Docker one on RHEL operating systems. Podman, podman-docker and docker-compose need to be installed and running before installing MDSS.
After the installation is complete, MDSS needs to be configured to skip the checks for the default Docker engine. This is done by setting SKIP_DOCKER_CHECKS=yes in the /etc/mdss/customer.env file. The following commands can be used to install Podman and MDSS on RHEL.
# install podman, podman-docker and docker-composesudo yum install podmansudo yum install podman-dockersudo curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo systemctl enable podman.socketsudo systemctl start podman.socket# disable SELinux temporarilysetenforce 0# to disable selinux permanetly 'SELINUX=disabled' needs to be set in the following config filesudo vim /etc/selinux/config# install additional MDSS dependenciessudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpmssudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmsudo yum install lvm2sudo yum install wget# install MDSSsudo rpm -i mdss-3.3.2-1.noarch.rpm# edit customer.env and add SKIP_DOCKER_CHECKS=yessudo vim /etc/mdss/customer.env# start MDSSsudo mdss -c start