> For the complete documentation index, see [llms.txt](https://apuntes-alex.gitbook.io/apuntes-sistemas-y-redes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apuntes-alex.gitbook.io/apuntes-sistemas-y-redes/ciberseguridad/securizando-un-servidor-linux/passbolt-gestor-de-contrasenas-autohospedado.md).

# Passbolt: gestor de contraseñas autohospedado

### **Guía de Instalación de Passbolt en un Servidor Linux (Debian/Ubuntu)**

#### **Requisitos Previos**

Antes de instalar Passbolt, asegúrate de cumplir con los siguientes requisitos:

* **Servidor Linux**: Debian 11/Ubuntu 22.04 o superior.
* **RAM recomendada**: Mínimo 2GB de RAM.
* **Dominio o subdominio**: Para configurar HTTPS con un certificado SSL (ej. `passbolt.midominio.com`).
* **Usuario con privilegios sudo**.
* **Software necesario**: Nginx, MariaDB/MySQL, PHP y GPG.
* **Servidor SMTP**: **Sí, es obligatorio**, ya que Passbolt envía correos electrónicos para la activación de usuarios y recuperación de cuenta.

***

### **1. Configuración del Servidor**

Actualiza los paquetes de tu sistema:

```bash
bashCopiarEditarsudo apt update && sudo apt upgrade -y
```

Instala las dependencias necesarias:

```bash
bashCopiarEditarsudo apt install -y sudo gnupg2 ca-certificates lsb-release curl software-properties-common
```

***

### **2. Instalación de Nginx y MariaDB**

#### **2.1 Instalar y configurar Nginx**

```bash
bashCopiarEditarsudo apt install -y nginx
sudo systemctl enable --now nginx
```

#### **2.2 Instalar y configurar MariaDB**

```bash
bashCopiarEditarsudo apt install -y mariadb-server mariadb-client
sudo systemctl enable --now mariadb
```

Asegura la base de datos ejecutando:

```bash
bashCopiarEditarsudo mysql_secure_installation
```

Crea la base de datos y usuario para Passbolt:

```bash
bashCopiarEditarsudo mysql -u root -p
```

```sql
sqlCopiarEditarCREATE DATABASE passbolt;
CREATE USER 'passboltuser'@'localhost' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON passbolt.* TO 'passboltuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

***

### **3. Instalación de PHP**

Passbolt requiere PHP 8.2. Instálalo con los módulos necesarios:

```bash
bashCopiarEditarsudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-gd php8.2-xml php8.2-zip php8.2-mbstring php8.2-curl php8.2-gmp
```

Verifica la versión:

```bash
bashCopiarEditarphp -v
```

***

### **4. Instalación de Passbolt**

Agrega el repositorio oficial:

```bash
bashCopiarEditarcurl -fsSL https://download.passbolt.com/passbolt-repo.gpg | sudo tee /usr/share/keyrings/passbolt-repo.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/passbolt-repo.gpg] https://download.passbolt.com/ce/debian bookworm main" | sudo tee /etc/apt/sources.list.d/passbolt.list
```

Instala Passbolt y sus dependencias:

```bash
bashCopiarEditarsudo apt update
sudo apt install -y passbolt-ce-server
```

***

### **5. Configuración de Passbolt**

Ejecuta el asistente de configuración interactiva:

```bash
bashCopiarEditarsudo passbolt-ce-configure
```

Este asistente te pedirá:

* **Configuración de la base de datos** (usar los datos creados en el paso 2.2).
* **Configuración de GPG** (se generará una clave automáticamente).
* **Configuración del correo SMTP** (**obligatorio** para el envío de correos de activación).

***

### **6. Configuración del Servidor SMTP**

Passbolt necesita un servidor SMTP para enviar correos electrónicos. Puedes usar servicios como **Postfix (local)** o proveedores externos como **Gmail, SendGrid o Mailgun**.

Ejemplo con Gmail SMTP:

```bash
bashCopiarEditarsudo nano /etc/passbolt/passbolt.php
```

Edita la sección SMTP:

```php
phpCopiarEditar'EmailTransport' => [
    'default' => [
        'host' => 'smtp.gmail.com',
        'port' => 587,
        'username' => 'tu_correo@gmail.com',
        'password' => 'tu_contraseña_o_app_password',
        'className' => 'Smtp',
        'tls' => true
    ],
]
```

Guarda los cambios y reinicia Passbolt:

```bash
bashCopiarEditarsudo systemctl restart nginx php8.2-fpm
```

Si usas un servidor SMTP local, instala y configura **Postfix**:

```bash
bashCopiarEditarsudo apt install -y postfix
sudo dpkg-reconfigure postfix
```

***

### **7. Configuración HTTPS con Let's Encrypt**

Si tienes un dominio configurado, instala **Certbot** para obtener un certificado SSL gratuito:

```bash
bashCopiarEditarsudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d passbolt.midominio.com
```

Configura la renovación automática:

```bash
bashCopiarEditarsudo certbot renew --dry-run
```

***

### **8. Finalización y Acceso**

Ahora puedes acceder a **Passbolt** desde tu navegador:

```
arduinoCopiarEditarhttps://passbolt.midominio.com
```

Crea un usuario administrador y sigue las instrucciones en pantalla.


---

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

```
GET https://apuntes-alex.gitbook.io/apuntes-sistemas-y-redes/ciberseguridad/securizando-un-servidor-linux/passbolt-gestor-de-contrasenas-autohospedado.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.
