# Preparando el servidor

## Chequear updates

Primer paso siempre debería ser verificar que nuestro servidor cuenta con las últimas actualizaciones, para esto podemos correr los siguientes comandos:

```
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get autoremove
```

{% hint style="info" %}
&#x20;Si el server solicita que reiniciemos el equipo es recomendable hacerlo antes de continuar.
{% endhint %}

## Instalar dependencias

```
sudo apt-get install automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev \
libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 \
libtool autoconf nano screen iptables iptables-persistent iputils* chrony \
net-tools curl htop liblmdb-dev -y
```

Cuando se instala iptables vamos a recibir un aviso para guardar las reglas IPv4, es buena idea aceptar para poder probar modificaciones con `iptables-apply`.

## Preparar firewall

Este paso es opcional, se debe verificar las reglas existentes y asegurarnos de incluir el puerto de SSH, cardano-node, y los puertos de métricas de cardano-node y node\_exporter.

```
sudo iptables -F

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p icmp -s ip_otros_nodos -j ACCEPT
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3001 -j ACCEPT
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp -s ip_grafana_collector --dport 12798 -j ACCEPT
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp -s ip_grafana_collector --dport 9001 -j ACCEPT
sudo iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

sudo /sbin/iptables-save
```

Como alternativa, se puede editar el archivo `/etc/iptables/rules.v4` e ingresar las reglas manualmente (iptables -A), no incluir *"sudo"*. De esta manera podemos aplicar los cambios temporalmente y en caso no podamos iniciar sesión los cambios se revierten de forma automática.

```bash
sudo iptables-apply -t 60 /etc/iptables/rules.v4
```

{% hint style="danger" %}
Por favor tomar en cuenta que esta configuración en meramente informativa, siempre se debe verificar los puertos para evitar perder el acceso a su servidor.&#x20;

**MUY IMPORTANTE**: SSH debería estar asegurado con llaves RSA, Multi-factor authentication, puerto personalizado u otros métodos que están fuera del scope del presente artículo. No prestar atención a la seguridad puede comprometer su pool y su pledge.
{% endhint %}

## Puntos adicionales

Otros puntos que se recomienda revisar son:

* Creación de Swap
* Swappiness
* Cache Pressure

Pueden utilizar como guía [este artículo](https://do.co/3j0CPSD) de Digital Ocean, pronto armaremos un *howto* en este sitio.


---

# Agent Instructions: 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:

```
GET https://es-kb.topopool.com/primeros-pasos/preparacion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
