ESET Remote Administrator: Installation on Ubuntu 16.04 LTS

ESET Remote Administrator: Installation on Ubuntu 16.04 LTS
Jérémie Kassianoff
November 1, 2017
6 min read

ESET ERA (ESET Remote Administrator) orchestrates monitoring and centralization of the devices present on an IT network.

Certified inLPI Linux Essentials – Exam 010-150

Real-world use case

You need to centralize supervision of your Linux fleet: here's how to install ESET Remote Administrator on Ubuntu 16.04 LTS.

ESET Remote Administrator on Ubuntu 16.04 LTS

The ESET ERA v6 solution is fully compatible with Linux (Kernel version 2.6.x or later).
In the following article, we'll discover installing the product on Ubuntu 16.04 LTS, which is an alternative to installing it on Windows Server or via the VMware template. For my part, I can only recommend deploying ERA on an Ubuntu LTS.

//www.youtube.com/embed/uxb_84KuHF0

Table of contents:

  • Installing ESET ERA Remote Administrator
  • Installing an SSL certificate on Tomcat7

Installing ESET ERA Remote Administrator

Let's start by updating our distribution:

bash
apt-get update && apt-get upgrade

For ERA to work, we need the following dependencies:

bash
apt-get install default-jdk tomcat7 mysql-server unixodbc libodbc1 xvfb cifs-utils libqtwebkit4 krb5-user winbind ldap-utils snmp ldap-utils

We change a value in the MySQL.ini configuration file:

bash
max_allowed_packet = 33M

We download the MySQL ODBC connector:

bash
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz

We extract it:

bash
tar xvzf mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz

Let's head to its directory:

bash
cd mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit

We copy the libmyodbc5* files to the odbc directory:

bash
cp mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/

We edit the odbc configuration file:

ini
nano /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

We now need to force the configuration file update:

bash
odbcinst –i -d -f /etc/odbcinst.ini

We restart the MySQL server:

bash
service mysql restart

We download the server's webconsole script:

bash
wget https://download.eset.com/com/eset/apps/business/era/webconsole/latest/era.war

We copy the file to the tomcat server's directory:

bash
cp era.war /var/lib/tomcat7/webapps/

We restart the web service:

bash
sudo service tomcat7 restart

We download the server installation script:

bash
wget https://download.eset.com/com/eset/apps/business/era/server/linux/latest/server-linux-x86_64.sh

We make it executable:

bash
chmod +x server-linux-x86_64.sh

Now we start installing the ERA server:

bash
/server-linux-x86_64.sh 
> --skip-license 
> --db-driver=MySQL 
> --db-hostname=127.0.0.1 
> --db-port=3306 
> --db-admin-username=root 
> --db-admin-password=your_password 
> --server-root-password=your_password 
> --db-user-username=root 
> --db-user-password=your_password 
> --cert-hostname="your.ip.x.x;esetmanager;esetmanager.local"

The result should be as follows:

bash
ESET Remote Administrator Server Installer (version: 6.5.417.0), Copyright © 1992-2017 ESET, spol. s r.o. - All rights reserved.

Extracting archive, please wait...
Archive extracted to /tmp/tmp.nMgKKPp78N.
Checking OpenSSL ... done [OpenSSL 1.0.2g 1 Mar 2016]
Reading previous installation settings ... failure
Checking installed version... done
Status of current installation is: NEW
Checking database connection ... done
Loading GUID ... done [GUID = d363a1e8-4243-433c-943f-df02c0562637]
Inserting root password ... done
Generating certificates ... done
Skipping static groups synchronization scheduling.
Stopping service... ./server-linux-x86_64.sh: 1689: ./server-linux-x86_64.sh: initctl: not found
Creating database ... done
Storing ports into configuration ... done
Storing server peer certificate to configuration ... done
Moving scripts from '/tmp/tmp.nMgKKPp78N/setup/Scripts' to /var/opt/eset/RemoteAdministrator/Server/Scripts/... done
Moving ESET Modules from '/tmp/tmp.nMgKKPp78N/setup/Modules' to /var/opt/eset/RemoteAdministrator/Server/Modules/... done
Creating 'config' directory path: /etc/opt/eset/RemoteAdministrator/Server
Creating 'libs' directory path: /opt/eset/RemoteAdministrator/Server
Creating 'data' directory path: /var/opt/eset/RemoteAdministrator/Server
Creating 'logs' directory path: /var/log/eset/RemoteAdministrator/Server
Moving LangData.dat to /var/opt/eset/RemoteAdministrator/Server/Localization/LangData.dat... done
Extracting ReportPrinter files... done
Creating startup configuration file /etc/opt/eset/RemoteAdministrator/Server/StartupConfiguration.ini ... done
Creating config file /etc/opt/eset/RemoteAdministrator/Server/config.cfg ... done
Backing up contents of /opt/eset/RemoteAdministrator/Server
Copying files to target destination: /opt/eset/RemoteAdministrator/Server
Copying installer to target destination: /opt/eset/RemoteAdministrator/Server/setup/installer_backup.sh
File ownership set to: root:root
Setting auto-start service...
Failed to get unit file state for eraserver.service: No such file or directory
Created symlink from /etc/systemd/system/multi-user.target.wants/eraserver.service to /etc/systemd/system/eraserver.service.
Skipping SELinux policy installation.
Removed backup directory: /opt/eset/RemoteAdministrator/.Server-205050466
Product installed.

We download the server agent's script:

bash
wget https://download.eset.com/com/eset/apps/business/era/agent/latest/agent-linux-x86_64.shc

We make it executable:

bash
chmod +x agent-linux-x86_64.sh

We start installing the ERA agent:

bash
./agent-linux-x86_64.sh --skip-license --hostname=your.ip.x.x --port=2222 --webconsole-hostname=your.ip.x.x --webconsole-port=2223 --webconsole-user=administrator --webconsole-password="your_password" --cert-auto-confirm

The result should be as follows:

bash
Initialized log file: /var/log/eset/RemoteAdministrator/EraAgentInstaller.log

ESET Remote Administrator Agent Installer (version: 6.5.417.0), Copyright © 1992-2017 ESET, spol. s r.o. - All rights reserved.

Creating directories...
Creating 'install' directory path: /opt/eset/RemoteAdministrator/Agent
Creating 'config' directory path: /etc/opt/eset/RemoteAdministrator/Agent
Creating 'data' directory path: /var/opt/eset/RemoteAdministrator/Agent
Creating 'logs' directory path: /var/log/eset/RemoteAdministrator/Agent
Creating 'libs' directory path: /opt/eset/RemoteAdministrator/Agent
Directories created
The archive will be extracted to: /opt/eset/RemoteAdministrator/Agent
Extracting, please wait...
Checking OpenSSL ... done [OpenSSL 1.0.2g 1 Mar 2016]
Checking installed version ...
Status of current installation is: NEW
New connection settings are 'hostname': 'your_ip.x.x', 'port': 2222
Getting certificate from server...

Received Server certificate details:
Subject: CN=Server at your_ip.x.x and esetmanager and esetmanager.local;C=US;
Issuer: CN=Server Certification Authority;C=US;
Fingerprint: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

Adding computer to group...
Loading correct GUID...
Loading of GUID was successful (new GUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Checking peer certificate ... done
Creating config file: /etc/opt/eset/RemoteAdministrator/Agent/config.cfg ...
Creating 'modules' directory path: /var/opt/eset/RemoteAdministrator/Agent/Modules/
Moving ESET Modules from '/opt/eset/RemoteAdministrator/Agent/setup/Modules' to /var/opt/eset/RemoteAdministrator/Agent/Modules/...
Reading database status...
Database read successfully.
Database status is 'DB_MISSING'
Database status is 'DB_MISSING'. Database does not exists - it will be created
Inserting certificate authority into database...
Certificate authority inserted successfully.
Creating database.
Database created.
Setting connection into config...
Connection set successfully.
Resetting replication interval...
Replication interval reset was successful.
Setting peer certificate into config...
Peer certificate set successfully.
Copying installer to target destination: /opt/eset/RemoteAdministrator/Agent/setup/installer_backup.sh
File ownership set to: root:root
Setting auto-start service...
Failed to get unit file state for eraagent.service: No such file or directory
Created symlink from /etc/systemd/system/multi-user.target.wants/eraagent.service to /etc/systemd/system/eraagent.service.
Skipping SELinux policy installation.
Service started.
Product installed.

We've installed ERA's server module and the ERA agent on our Ubuntu server. It's now possible to access the Eset ERA webconsole interface via: http://your\_ip.x.x/era

The problem is that we're on HTTP (unencrypted), a yellow message appears: "Using an unencrypted connection! Configure the Web server to use the HTTPS protocol". So I recommend following the procedure below to use the console over HTTPS.

Installing an SSL certificate on Tomcat7

We use the tomcat7 tool and generate our certificate:

bash
keytool -genkey -alias tomcat -keylalg RSA -keystore /etc/tomcat7/SSL/esetcert

You can test the certificate like this:

bash
keytool -list -keystore /etc/tomcat7/ssl/esetcert
Enter the keystore password:  

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

tomcat, Nov 1, 2017, PrivateKeyEntry
Certificate fingerprint (SHA1): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

We then edit our tomcat7 configuration file:

bash
nano /etc/tomcat7/server.xml

We need to uncomment the following line, and add keystoreFile and keystorePass:

bash
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" keystoreFile="/etc/tomcat7/ssl/esetcert" keystorePass="your_password" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

We restart our tomcat7 service:

bash
/etc/init.d/tomcat7 restart

We can now connect over https: https://your\_ip::8443/era/.

Conclusion