> For the complete documentation index, see [llms.txt](https://newdocs.keeper.io/kcm-linux-rpm-method/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://newdocs.keeper.io/kcm-linux-rpm-method/installation/preparing-for-installation.md).

# Preparing for Installation

<figure><img src="/files/unrnyohosZhaJ0XvgEas" alt=""><figcaption></figcaption></figure>

## Preparing for Installation

Since you'll be accessing Keeper Connection Manager using a browser, we need to establish where to find it.

**You'll need the following:**

**1.  A designated machine (usually a Linux VM)**\
**2.  A fully-qualified domain name (FQDN)**\
**3.  Your DNS record set to point your FQDN to the IP of your designated machine**\
**4.  An SSL certificate (or generate one during installation)**\
\
You can either bring your own SSL certificate, or you can generate one during the installation by choosing the option for [Let's Encrypt](https://letsencrypt.org/). If planning to use Let's Encrypt, make sure that ports 80 and 443 are open to the internet during the installation.

To prepare for installation:

1. Create/Identify and establish root access to the server that will run the Keeper Connection Manager gateway
2. Decide if you want your KCM gateway to be public-facing (assign public IP), or internal-only (assign private IP)
3. Add a DNS A Record (or AAAA record) to point your domain to your KCM server's IP address

**Check your firewall to make sure that traffic can flow between your server and Docker.**  Some domains that it will need to reach include docker.com, docker.io and others.

{% tabs %}
{% tab title="Public-facing Instances" %}
Make sure that ports 80 and 443 are open to the public.
{% endtab %}

{% tab title="Internal Instances" %}
If bringing your own SSL certificate, make sure that the server is accessible on port 8080 internally.
{% endtab %}
{% endtabs %}

## Platform-specific Setup

#### Virtual Machines

To check your that your linux system's entropy level is at least 1000, use the command:

```
$ cat /proc/sys/kernel/random/entropy_avail
```

To increase the speed of entropy generation, you can install the `haveged` service to ensure that the environment can efficiently create secure random numbers.

{% tabs %}
{% tab title="RHEL" %}
On RHEL, the `haveged` package is not available from the Red Hat repositories and must instead be installed from the EPEL repository. EPEL provides instructions for configuring their repository here: <https://docs.fedoraproject.org/en-US/epel/>. After EPEL is installed, run the following commands:

```
sudo yum install haveged
sudo systemctl start haveged
sudo systemctl enable haveged
```

{% endtab %}

{% tab title="Debian / Ubuntu" %}

```
sudo apt-get install haveged
```

{% endtab %}

{% tab title="CentOS / Rocky Linux" %}

```
sudo yum install epel-release
sudo yum install haveged
sudo systemctl start haveged
sudo systemctl enable haveged
```

{% endtab %}
{% endtabs %}

#### RHEL / Rocky Linux 8 (and derivatives)

If Podman is installed, you must run the following two commands before installation:

```
sudo yum remove containerd
sudo yum remove runc
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://newdocs.keeper.io/kcm-linux-rpm-method/installation/preparing-for-installation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
