Ubuntu 22 Runtime installation and configuration
Runtime in Ubuntu 22 runs as an unprivileged user to enhance cybersecurity by reducing the cyberattack surface. Once you are sure that all the requirements are met, proceed with the Runtime installation and configuration.
Requirements
For the installation of Runtime on Ubuntu 22, proceed as follows:
- Confirm that the kernel version running on your device or the linux-headers of the current kernel version is up to date.
- Confirm that .NET Runtime 8 is installed. If it is not installed yet and the device connects to the Internet, it will automatically be downloaded and installed during the Runtime installation.
- Install the X11 Window System to enable the Remote Desktop
feature. Instead, if Wayland is installed and enabled, disable it by editing the file:
/etc/gdm3/custom.conf
or
/etc/gdm3/daemon.conf
uncomment the following line by removing the #:
#WaylandEnable=false
- Confirm that the system does not have
remoteaccess_runtime
as a username withuid=9879
as a user ID, andgid=9879
as a group ID for the standard unprivileged user that will run the Runtime. - Install the following packages to run the installer and both the SetupHost and Runtime
services:
useradd
andgroupadd
: Install by typingsudo apt-get install passwd
xdpyinfo
: Install by typingsudo apt-get install x11-utils
xhost
: Install by typingsudo apt-get install x11-xserver-utils
mknod
,readlink
,tr
,who
: Install by typingsudo apt-get install coreutils
iptables
: Install by typingsudo apt-get install iptables
brctl
: Install by typingsudo apt-get install bridge-utils
dhclient
: Install by typingsudo apt-get install isc-dhcp-client
setcap
: Install by typingsudo apt-get install libcap2-bin
setfacl
: Install by typingsudo apt-get install acl
awk
: Install by typingsudo apt-get install gawk
systemd-run
,systemctl
,resolvectl
,loginctl
: Install by typingsudo apt-get install systemd
Note: Some scripts run by theUbiquitySetupHost.service
during the host initialization phase require these commands to work with the host system. If any of these commands are missing, the script might stop running.
- Confirm that the default session user consists of a root folder user or
a sudoers group user, and has
sbin
folders in theirPATH
environment variable. To add a user to the sudoers group, use the following commands:su -l
usermod -aG sudo <UserToAdd>
Runtime installation and configuration
- Download the UBIQUITY Runtime package related to the Ubuntu 22 distribution on
the remote device and run the installation command:
sudo apt install ./UbiquityRuntime_Ubuntu22_<version>.deb
and replace the
<version>
with the actual version.Note: See Tools to download Runtime.Important: If you are updating an older Runtime version, you might be prompted to activate specific security settings: File transfers security restriction and Processes security restriction. These settings are located in the Settings section of the Runtime user interface. - The system performs several checks and creates
UbiquityRuntimeService.service
andUbiquitySetupHost.service
. - Confirm that the created services stored in the
/etc/systemd/system
appear as follows:[Unit] Description=Ubiquity Setup Host Service After=network-online.target Onsuccess=UbiquityRuntimeService.service [Service] ExecStart=/opt/ASEM/Ubiquity/Runtime/bin/setuphost.sh -v [OPTIONS] [Install] WantedBy=multi-user.target
[Unit] Description=Ubiquity Runtime Service OnFailure=UbiquitySetupHost.service [Service] ExecStart=/opt/ASEM/Ubiquity/Runtime/bin/UbiquityRuntimeService User=remoteaccess_runtime AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW [Install] WantedBy=multi-user.target
- In
UbiquitySetupHost.service
, replace the[OPTIONS]
as needed:--enable-vpn <adapter-list> Configure the host to enable VPN on the Runtime ad running time. The adapter-list is a single parameter that contains a list of adapter names separated by a comma (,). A conventional network bridge interface will be created on each of them to perform VPN. Example: --enable-vpn eth0,eth1 --enable-p2p-vpn Configure the host to enable Point-to-Point VPN on the Runtime at running time. -v, --verbose Print detailed logs for troubleshooting.
Separate the interfaces mentioned in the
<adapter-list>
by using a comma. For example:eth0,eth1,eth2
. The script establishes a standard network bridge interface for each specified interface.Note: During the establishment of a standard network bridge, the script appends both-tap
and-bridge
to any interface listed in the<adapter-list>
wherever tap and bridge are not already in place. The script abides by the 15-character limit imposed by Linux.- Example without interface truncation:
- Adapter name (characters length 4):
eth0
- Tap name (characters length 8):
eth0-tap
- Bridge name (characters length 8):
eth0-bridge
- Adapter name (characters length 4):
- Example with interface truncation:
- Adapter name (characters length 9):
enp0s31f6
- Tap name (characters length 13):
enp0s31f6-tap
- Bridge name (characters length15):
enp0s31f-bridge
. Considering the characters length limit, the adapter name truncation here consists of the elimination of the6
digit.The maximum characters length limitation affects any bridge and tap interfaces with names that are equal to or longer than the name in the preceding example.
- Adapter name (characters length 9):
- Example without interface truncation:
The Runtime binaries will be installed in the folder:
/opt/ASEM/Ubiquity/Runtime/bin
And Runtime logs will be available in the folder:
/opt/ASEM/Ubiquity/Runtime/log
Runtime Startup
-
To start the Runtime, run the
sudo systemctl start UbiquitySetupHost.service
command in the/etc/systemd/system
folder. - Confirm that the
UbiquityRuntimeService.service
service is up and running by typingsudo systemctl status UbiquityRuntimeService.service
.
Connecting the Runtime to the UBIQUITY network infrastructure
Runtime Configuration
Serial passthrough configuration
To enable the remote use of a serial port, add a symlink to the interface in the path
/dev/serial<interface number>
.
Example:
In a system equipped with a serial interface /dev/ttyS0
, execute the
following command:
ln -s /dev/ttyS0 /dev/serial0
Password setup
To help prevent any unauthorized users from accessing the Runtime, set up a password. Once you have set up a password, a browser authentication page opens when you start the Runtime.
To access the Runtime configuration, enter https://localhost:5161
in your
browsing bar.
- Enter
sudo UbiquityRuntimeCli --setRuntimePassword --password <runtime password>
. - Replace
<runtime password>
with a password.Note:Create a strong password to reduce cybersecurity risk.
Your password must:- Be at least eight characters long
- Include at least three of the following requirements:
- at least one uppercase character
- at least one lowercase character
- at least one numeric character
- at least one symbolic character
Use passphrases longer than eight characters to enhance password strength. Strong passwords increase the time needed to guess them.