
🍯 T-Pot - La plataforma integral de múltiples honeypots 🐝

T-Pot es la plataforma honeypot todo en uno, opcionalmente distribuida, multiarquitectura (amd64, arm64), que admite más de 20 honeypots y un sinfín de opciones de visualización utilizando Elastic Stack, mapas animados de ataques en vivo y muchas herramientas de seguridad para mejorar aún más la experiencia de engaño.
ssh)curl: $ sudo [apt, dnf, zypper] install curl si aún no está instalado$HOME:```
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"* Sigue las instrucciones, lee los mensajes, verifica posibles conflictos de puertos y reinicia
<!-- TOC -->
- [T-Pot - The All In One Multi Honeypot Platform](#t-pot---the-all-in-one-multi-honeypot-platform)
- [TL;DR](#tldr)
- [Disclaimer](#disclaimer)
- [Technical Concept](#technical-concept)
- [Honeypots and Tools](#honeypots-and-tools)
- [Technical Architecture](#technical-architecture)
- [Services](#services)
- [User Types](#user-types)
- [System Requirements](#system-requirements)
- [Running in a VM](#running-in-a-vm)
- [Running on Hardware](#running-on-hardware)
- [Running in a Cloud](#running-in-a-cloud)
- [Required Ports](#required-ports)
- [LLM-Based Honeypots](#llm-based-honeypots)
- [Ollama](#ollama)
- [ChatGPT](#chatgpt)
- [System Placement](#system-placement)
- [Installation](#installation)
- [Choose your distro](#choose-your-distro)
- [Raspberry Pi 4 (8GB) Support](#raspberry-pi-4-8gb-support)
- [Get and install T-Pot](#get-and-install-t-pot)
- [macOS \& Windows](#macos--windows)
- [Red Hat Enterprise Linux](#red-hat-enterprise-linux)
- [Installation Types](#installation-types)
- [Standard / Hive](#standard--hive)
- [Distributed](#distributed)
- [Uninstall T-Pot](#uninstall-t-pot)
- [First Start](#first-start)
- [Standalone First Start](#standalone-first-start)
- [Distributed Deployment](#distributed-deployment)
- [Planning and Certificates](#planning-and-certificates)
- [Deploying Sensors](#deploying-sensors)
- [Removing Sensors](#removing-sensors)
- [Community Data Submission](#community-data-submission)
- [Opt-In HPFEEDS Data Submission](#opt-in-hpfeeds-data-submission)
- [Remote Access and Tools](#remote-access-and-tools)
- [SSH](#ssh)
- [T-Pot Landing Page](#t-pot-landing-page)
- [Kibana Dashboard](#kibana-dashboard)
- [Attack Map](#attack-map)
- [Cyberchef](#cyberchef)
- [Elasticvue](#elasticvue)
- [Spiderfoot](#spiderfoot)
- [Configuration](#configuration)
- [T-Pot Config File](#t-pot-config-file)
- [Customize T-Pot Honeypots and Services](#customize-t-pot-honeypots-and-services)
- [Maintenance](#maintenance)
- [General Updates](#general-updates)
- [Update Script](#update-script)
- [Daily Reboot](#daily-reboot)
- [Known Issues](#known-issues)
- [Docker Images Fail to Download](#docker-images-fail-to-download)
- [T-Pot Networking Fails](#t-pot-networking-fails)
- [Start T-Pot](#start-t-pot)
- [Stop T-Pot](#stop-t-pot)
- [T-Pot Data Folder](#t-pot-data-folder)
- [Log Persistence](#log-persistence)
- [Factory Reset](#factory-reset)
- [Show Containers and Images](#show-containers-and-images)
- [Blackhole](#blackhole)
- [Add Users to Nginx (T-Pot WebUI)](#add-users-to-nginx-t-pot-webui)
- [Import and Export Kibana Objects](#import-and-export-kibana-objects)
- [Export](#export)
- [Import](#import)
- [Troubleshooting](#troubleshooting)
- [Logs](#logs)
- [RAM and Storage](#ram-and-storage)
- [Contact](#contact)
- [Issues](#issues)
- [Discussions](#discussions)
- [Licenses](#licenses)
- [Credits](#credits)
- [The developers and development communities of](#the-developers-and-development-communities-of)
- [**The following companies and organizations**](#the-following-companies-and-organizations)
- [**And of course ***YOU*** for joining the community!**](#and-of-course-you-for-joining-the-community)
- [Testimonials](#testimonials)
- [Thank you 💖](#thank-you-)
<!-- TOC -->
<br><br>
# Disclaimer
- Usted instala y ejecuta T-Pot bajo su propia responsabilidad. Elija su despliegue con cuidado, ya que nunca se puede descartar un compromiso del sistema.
- Para ayuda rápida, investigue los [Issues](https://github.com/telekom-security/tpotce/issues) y [Discussions](https://github.com/telekom-security/tpotce/discussions).
- El software está diseñado y ofrecido con el mejor esfuerzo en mente. Como proyecto comunitario y de código abierto, utiliza mucho otro software de código abierto y puede contener errores y problemas. Reporte responsablemente.
- Los honeypots —por diseño— no deben alojar datos sensibles. Asegúrese de no añadir ninguno.
- Por defecto, sus datos se envían a [Sicherheitstacho](https://www.sicherheitstacho.eu/start/main). Puede desactivarlo en la configuración (`~/tpotce/docker-compose.yml`) [eliminando](#community-data-submission) la sección `ewsposter`. ¡Pero en este caso, compartir es realmente cuidar!
<br><br>
# Technical Concept
Los componentes principales de T-Pot se han movido a la imagen Docker `tpotinit`, lo que permite a T-Pot ahora soportar múltiples distribuciones de Linux, incluso macOS y Windows (aunque ambos limitados al conjunto de funcionalidades de Docker Desktop). T-Pot utiliza [docker](https://www.docker.com/) y [docker compose](https://docs.docker.com/compose/) para alcanzar su objetivo de ejecutar tantos honeypots y herramientas como sea posible simultáneamente y así utilizar el hardware del anfitrión al máximo.
<br><br>
## Honeypots and Tools
- T-Pot ofrece imágenes Docker para los siguientes honeypots:<br>
[adbhoney](https://github.com/huuck/ADBHoney),
[beelzebub](https://github.com/beelzebub-labs/beelzebub),
[ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot),
[citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot),
[conpot](http://conpot.org/),
[cowrie](https://github.com/cowrie/cowrie),
[ddospot](https://github.com/aelth/ddospot),
[dicompot](https://github.com/nsmfoo/dicompot),
[dionaea](https://github.com/DinoTools/dionaea),
[elasticpot](https://gitlab.com/bontchev/elasticpot),
[endlessh](https://github.com/skeeto/endlessh),
[galah](https://github.com/0x4D31/galah),
[go-pot](https://github.com/ryanolee/go-pot),
[glutton](https://github.com/mushorg/glutton),
[h0neytr4p](https://github.com/pbssubhash/h0neytr4p),
[hellpot](https://github.com/yunginnanet/HellPot),
[heralding](https://github.com/johnnykv/heralding),
[honeyaml](https://github.com/mmta/honeyaml),
[honeypots](https://github.com/qeeqbox/honeypots),
[honeytrap](https://github.com/armedpot/honeytrap/),
[ipphoney](https://gitlab.com/bontchev/ipphoney),
[log4pot](https://github.com/thomaspatzke/Log4Pot),
[mailoney](https://github.com/phin3has/mailoney),
[medpot](https://github.com/schmalle/medpot),
[miniprint](https://github.com/sa7mon/miniprint),
[redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot),
[rdphoneypot](https://gitlab.com/bontchev/rdphoneypot),
[sentrypeer](https://github.com/SentryPeer/SentryPeer),
[snare](http://mushmush.org/),
[tanner](http://mushmush.org/),
[wordpot](https://github.com/gbrindisi/wordpot)
Junto con las siguientes herramientas:
* [Autoheal](https://github.com/willfarrell/docker-autoheal) una herramienta para reiniciar automáticamente contenedores con comprobaciones de salud fallidas.
* [Cyberchef](https://gchq.github.io/CyberChef/) una aplicación web para cifrado, codificación, compresión y análisis de datos.
* [Elastic Stack](https://www.elastic.co/videos) para visualizar de forma hermosa todos los eventos capturados por T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) un frontend web para navegar e interactuar con un clúster de Elasticsearch.
* [Fatt](https://github.com/0x4D31/fatt) un script basado en pyshark para extraer metadatos de red y huellas digitales de archivos pcap y tráfico de red en vivo.
* [T-Pot-Attack-Map](https://github.com/telekom-security/t-pot-attack-map) un mapa de ataques bellamente animado para T-Pot.
* [P0f](https://lcamtuf.coredump.cx/p0f3/) es una herramienta para la identificación pasiva pura de tráfico.
* [Spiderfoot](https://github.com/smicallef/spiderfoot) una herramienta de automatización de inteligencia de fuentes abiertas.
* [Suricata](https://suricata.io/) un motor de monitoreo de seguridad de red.
... para brindarle la mejor experiencia lista para usar posible y un sistema multihoneypot fácil de usar.
<br><br>
## Technical Architecture

El código fuente y los archivos de configuración están completamente almacenados en el repositorio de GitHub de T-Pot. Las imágenes Docker están construidas y preconfiguradas para el entorno de T-Pot.
Los Dockerfiles y configuraciones individuales se encuentran en la [carpeta docker](https://github.com/telekom-security/tpotce/tree/master/docker).
<br><br>
## Services
T-Pot ofrece una serie de servicios que básicamente se dividen en cinco grupos:
1. Servicios del sistema proporcionados por el SO
* SSH para acceso remoto seguro.
2. Elastic Stack
* Elasticsearch para almacenar eventos.
* Logstash para ingerir, recibir y enviar eventos a Elasticsearch.
* Kibana para mostrar eventos en paneles bellamente renderizados.
3. Herramientas
* NGINX proporciona acceso remoto seguro (proxy inverso) a Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot y permite que los sensores T-Pot transmitan de forma segura datos de eventos a la colmena T-Pot.
* CyberChef una aplicación web para cifrado, codificación, compresión y análisis de datos.
* Elasticvue un frontend web para navegar e interactuar con un clúster de Elasticsearch.
* T-Pot Attack Map un mapa de ataques bellamente animado para T-Pot.
* Spiderfoot una herramienta de automatización de inteligencia de fuentes abiertas.
4. Honeypots
* Una selección de los 23 honeypots disponibles basada en el `docker-compose.yml` seleccionado.
5. Network Security Monitoring (NSM)
* Fatt un script basado en pyshark para extraer metadatos de red y huellas digitales de archivos pcap y tráfico de red en vivo.
* P0f es una herramienta para la identificación pasiva pura de tráfico.
* Suricata un motor de monitoreo de seguridad de red.
<br><br>
## User Types
Durante la instalación y durante el uso de T-Pot hay dos tipos diferentes de cuentas con las que trabajará. Asegúrese de conocer las diferencias entre los diferentes tipos de cuenta, ya que es **con diferencia** la razón más común de errores de autenticación.
| Service | Account Type | Username / Group | Description |
|:-----------------|:-------------|:-----------------|:-------------------------------------------------------------------|
| SSH | OS | `<OS_USERNAME>` | El usuario que eligió durante la instalación del SO. |
| Nginx | BasicAuth | `<WEB_USER>` | `<web_user>` que eligió durante la instalación de T-Pot. |
| CyberChef | BasicAuth | `<WEB_USER>` | `<web_user>` que eligió durante la instalación de T-Pot. |
| Elasticvue | BasicAuth | `<WEB_USER>` | `<web_user>` que eligió durante la instalación de T-Pot. |
| Geoip Attack Map | BasicAuth | `<WEB_USER>` | `<web_user>` que eligió durante la instalación de T-Pot. |
| Spiderfoot | BasicAuth | `<WEB_USER>` | `<web_user>` que eligió durante la instalación de T-Pot. |
| T-Pot | OS | `tpot` | `tpot` este usuario/grupo siempre está reservado por los servicios de T-Pot. |
| T-Pot Logs | BasicAuth | `<LS_WEB_USER>` | `LS_WEB_USER` se gestionan automáticamente. |
<br><br>
# System Requirements
Dependiendo de las [imágenes de distro Linux compatibles](#choose-your-distro), colmena/sensor, instalación en [hardware real](#running-on-hardware), en una [máquina virtual](#running-in-a-vm) u otros entornos, existen diferentes tipos de requisitos que deben cumplirse en cuanto a SO, RAM, almacenamiento y red para una instalación exitosa de T-Pot (siempre puede ajustar `~/tpotce/docker-compose.yml` y `~/tpotce/.env` según sus necesidades para superar estos requisitos).
<br><br>
| T-Pot Type | RAM | Storage | Description |
|:-----------|:-----|:----------|:-------------------------------------------------------------------------------------------------|
| Hive | 16GB | 256GB SSD | Como regla general, cuantos más honeypots, sensores y datos, más RAM y almacenamiento se necesitan. |
| Sensor | 8GB | 128GB SSD | Dado que los registros de honeypots se conservan (~/tpotce/data) durante 30 días, el almacenamiento depende del volumen de ataques. |
T-Pot requiere ...
- una dirección IPv4 mediante DHCP o asignada estáticamente
- una conexión a Internet funcional, sin proxy
... para una instalación y operación exitosas.
<br><br>
*Si necesita soporte de proxy u otras características no estándar, debe consultar la documentación de las [imágenes de distro Linux compatibles](#choose-your-distro) y/o la [documentación de Docker](https://docs.docker.com/).*
<br><br>
## Running in a VM
Todas las [imágenes de distro Linux compatibles](#choose-your-distro) se ejecutarán en una VM, lo que significa que T-Pot funcionará sin problemas. Las siguientes fueron probadas o reportadas como funcionales:
* [UTM (Intel & Apple Silicon)](https://mac.getutm.app/)
* [VirtualBox](https://www.virtualbox.org/)
* [VMWare Fusion](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) y [VMWare Workstation](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion)
* KVM también se reporta como funcional.
***Algunos consejos de configuración / instalación:***
- Mientras que las versiones Intel son estables, el soporte para Apple Silicon (arm64) tiene problemas conocidos que en UTM pueden requerir cambiar `Display` a `Console Only` durante la instalación inicial del SO y luego volver a `Full Graphics`.
- Durante la configuración, es posible que deba habilitar el modo promiscuo para la interfaz de red para que fatt, suricata y p0f funcionen correctamente.
- Si desea usar una tarjeta Wi-Fi como NIC principal para T-Pot, tenga en cuenta que no todos los controladores de interfaz de red admiten todas las tarjetas inalámbricas. En VirtualBox, por ejemplo, debe elegir el modelo *"MT SERVER"* de la NIC.
<br><br>
## Running on Hardware
T-Pot solo está limitado por el soporte de hardware de las [imágenes de distro Linux compatibles](#choose-your-distro). Se recomienda verificar la HCL (lista de compatibilidad de hardware) y probar las distros compatibles con T-Pot antes de invertir en hardware dedicado.
<br><br>
## Running in a Cloud
T-Pot está probado y se sabe que funciona en ...
* Telekom OTC usando el método de postinstalación
... otros pueden funcionar, pero permanecen sin probar.
Algunos usuarios reportan instalaciones funcionales en otras nubes y proveedores de alojamiento, como Azure y GCP. Los requisitos de hardware pueden ser diferentes. Si no está seguro, debe investigar [issues](https://github.com/telekom-security/tpotce/issues) y [discussions](https://github.com/telekom-security/tpotce/discussions) y realizar algunas pruebas funcionales. Con T-Pot 24.04.0 en adelante, nos aseguramos de eliminar configuraciones que se sabía que interferían con instalaciones basadas en la nube.
<br><br>
## Required Ports
Además de los puertos generalmente necesarios para el SO (por ejemplo, obtener una concesión DHCP, DNS, etc.), T-Pot requerirá los siguientes puertos para conexiones entrantes/salientes. Revise la [Arquitectura T-Pot](#technical-architecture) para una representación visual. También algunos puertos aparecerán duplicados, lo cual es normal ya que se usan en diferentes ediciones.| Puerto | Protocolo | Dirección | Descripción |
|:--------------------------------------------------------------------------------------------------------------------------------------|:---------|:----------|:----------------------------------------------------------------------------------------------------|
| 80, 443 | tcp | saliente | T-Pot Management: Instalación, Actualizaciones, Registros (p. ej. SO, GitHub, DockerHub, Sicherheitstacho, etc.) |
| 11434 | tcp | saliente | Honeypots basados en LLM: Accede a tu instalación de Ollama |
| 64294 | tcp | entrante | T-Pot Management: Transmisión de datos del sensor a la colmena (a través del proxy inverso NGINX) a 127.0.0.1:64305 |
| 64295 | tcp | entrante | T-Pot Management: Acceso a SSH |
| 64297 | tcp | entrante | T-Pot Management: Acceso al proxy inverso NGINX |
| 5555 | tcp | entrante | Honeypot: ADBHoney |
| 22 | tcp | entrante | Honeypot: Beelzebub (requiere LLM) |
| 5000 | udp | entrante | Honeypot: CiscoASA |
| 8443 | tcp | entrante | Honeypot: CiscoASA |
| 443 | tcp | entrante | Honeypot: CitrixHoneypot |
| 80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100 | tcp | entrante | Honeypot: Conpot |
| 161, 623 | udp | entrante | Honeypot: Conpot |
| 22, 23 | tcp | entrante | Honeypot: Cowrie |
| 19, 53, 123, 1900 | udp | entrante | Honeypot: Ddospot |
| 11112 | tcp | entrante | Honeypot: Dicompot |
| 21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081 | tcp | entrante | Honeypot: Dionaea |
| 69 | udp | entrante | Honeypot: Dionaea |
| 9200 | tcp | entrante | Honeypot: Elasticpot |
| 22 | tcp | entrante | Honeypot: Endlessh |
| 80, 443, 8080, 8443 | tcp | entrante | Honeypot: Galah (requiere LLM) |
| 8080 | tcp | entrante | Honeypot: Go-pot |
| 80, 443 | tcp | entrante | Honeypot: H0neytr4p |
| 21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900 | tcp | entrante | Honeypot: Heralding |
| 3000 | tcp | entrante | Honeypot: Honeyaml |
| 21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 5900, 6379, 6667, 8080, 9100, 9200, 11211 | tcp | entrante | Honeypot: qHoneypots |
| 53, 123, 161, 5060 | udp | entrante | Honeypot: qHoneypots |
| 631 | tcp | entrante | Honeypot: IPPHoney |
| 80, 443, 8080, 9200, 25565 | tcp | entrante | Honeypot: Log4Pot |
| 25 | tcp | entrante | Honeypot: Mailoney |
| 2575 | tcp | entrante | Honeypot: Medpot |
| 9100 | tcp | entrante | Honeypot: Miniprint |
| 6379 | tcp | entrante | Honeypot: Redishoneypot |
| 3389 | tcp | entrante | Honeypot: RDPHoneypot |
| 5060 | tcp/udp | entrante | Honeypot: SentryPeer |
| 80 | tcp | entrante | Honeypot: Snare (Tanner) |
| 8090 | tcp | entrante | Honeypot: Wordpot |
Los puertos y la disponibilidad de los servicios SaaS pueden variar según tu ubicación geográfica.
Para que algunos honeypots alcancen su funcionalidad completa (p. ej. Cowrie o Log4Pot) también son necesarias conexiones salientes, para que puedan descargar el malware del atacante. Consulta la documentación de cada honeypot para obtener más información siguiendo los [enlaces](#technical-concept) a sus repositorios.
## Honeypots basados en LLM
Creemos que los Honeypots basados en LLM marcan el **comienzo** de un cambio de juego en el campo de la decepción / honeypots. En consecuencia, a partir del lanzamiento de **T-Pot 24.04.1**, se han introducido dos honeypots basados en LLM, **Beelzebub** y **Galah**. Estos honeypots requieren una instalación de **Ollama**, que debe configurarse en el [archivo de configuración de T-Pot](#t-pot-config-file). También puedes ajustar la configuración en este archivo para soporte de **ChatGPT**, pero ten en cuenta que también se requerirán cambios en el archivo de composición de Docker (`~/tpotce/compose/llm.yml`) para acomodar estos ajustes.<br><br>
Sigue los enlaces en la sección [Honeypots y Herramientas](#honeypots-and-tools) para obtener más información sobre **Beelzebub** y **Galah**.
### Ollama
🚨 **No se recomienda el uso basado en CPU**, ni siquiera para pruebas.<br><br>
Para configurar y ejecutar **Ollama**, consulta el [repositorio de Ollama en GitHub](https://github.com/ollama/ollama) para obtener instrucciones. Para fines de nivel de entrada o pruebas, se pueden lograr resultados usando una **Nvidia RTX 4060 Ti 16GB** o equivalente (AMD ROCm también es compatible con Ollama), con modelos como **openchat** y **Llama3**. Como regla general con sistemas basados en LLM, cuanto mejor y más hardware uses, más rápidos y precisos serán los resultados, especialmente cuando las tareas se descargan en múltiples GPU y modelos más grandes.
### ChatGPT
El soporte de ChatGPT para estos honeypots permanecerá sin probar en relación con T-Pot.
<br><br>
# Ubicación del sistema
Se recomienda familiarizarse con cómo funcionan T-Pot y los honeypots antes de comenzar a exponerse a internet. Para un inicio rápido, ejecuta una instalación de T-Pot en una máquina virtual.
<br><br>
Una vez que estés familiarizado con cómo funcionan las cosas, debes elegir una red donde sospeches que hay intrusos o desde la cual puedan venir (p. ej. internet). De lo contrario, T-Pot probablemente no capturará ningún ataque (¡a menos que quieras demostrar algo!). Para empezar, se recomienda colocar T-Pot en una zona sin filtrar, donde todo el tráfico TCP y UDP se reenvíe a la interfaz de red de T-Pot. Para evitar la exploración de los puertos de administración de T-Pot, debes colocar T-Pot detrás de un firewall y reenviar todo el tráfico TCP/UDP en el rango de puertos 1-64000 a T-Pot, mientras permites el acceso a puertos > 64000 solo desde IPs de confianza y/o solo exponer los [puertos](#required-ports) relevantes para tu caso de uso. Si deseas capturar tráfico de malware en puertos desconocidos, no debes limitar los puertos que reenvías, ya que glutton y honeytrap enlazan dinámicamente cualquier puerto TCP que no esté ocupado por otros demonios de honeypot y, por lo tanto, te brindan una mejor representación de los riesgos a los que está expuesta tu configuración.
<br><br>
# Instalación
[Descarga](#choose-your-distro) una de las [imágenes de distribución de Linux compatibles](#choose-your-distro), sigue las instrucciones [TL;DR](#tldr) o clona el repositorio de T-Pot con `git clone` y ejecuta el instalador `~/tpotce/install.sh`. Es posible ejecutar T-Pot sobre un sistema Linux en funcionamiento y compatible, pero se recomienda una instalación limpia para evitar conflictos de puertos con servicios en ejecución. El instalador de T-Pot requerirá acceso directo a internet como se describe [aquí](#required-ports).
<br><br>
## Elige tu distribución
**Pasos a seguir:**
1. Descarga una distribución de Linux compatible de la lista a continuación. (NOTA: Red Hat Enterprise Linux >= 8 es compatible, pero se omite de la lista debido a su naturaleza basada en suscripción. Consulta [Red Hat Enterprise Linux](#red-hat-enterprise-linux) para más detalles).
2. Durante la instalación, elige una versión **mínima**, **netinstall** o **servidor** que solo instale paquetes esenciales.
3. **Nunca** instales un entorno de escritorio gráfico como Gnome o KDE. T-Pot fallará al trabajar con él debido a conflictos de puertos.
4. Asegúrate de instalar SSH, para poder conectarte a la máquina de forma remota.
| Nombre de la distribución | x64 | arm64 |
|:-------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| [Alma Linux OS 9.x ISO Mínima](https://almalinux.org) | [download](https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9.8-x86_64-minimal.iso) | [download](https://repo.almalinux.org/almalinux/9/isos/aarch64/AlmaLinux-9.8-aarch64-minimal.iso) |
| [Debian 13 Instalación por Red](https://www.debian.org/CD/netinst/index.en.html) | [download](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.5.0-amd64-netinst.iso) | [download](https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-13.5.0-arm64-netinst.iso) |
| [Fedora Server 42 Instalación por Red](https://fedoraproject.org/server/download) | [download](https://download.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/iso/Fedora-Server-netinst-x86_64-42-1.1.iso) | [download](https://download.fedoraproject.org/pub/fedora/linux/releases/42/Server/aarch64/iso/Fedora-Server-netinst-aarch64-42-1.1.iso) |
| [OpenSuse Tumbleweed Imagen de Red](https://get.opensuse.org/tumbleweed/#download) | [download](https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso) | [download](https://download.opensuse.org/ports/aarch64/tumbleweed/iso/openSUSE-Tumbleweed-NET-aarch64-Current.iso) |
| [Rocky Linux OS 9.x ISO Mínima](https://rockylinux.org/download) | [download](https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.8-x86_64-minimal.iso) | [download](https://download.rockylinux.org/pub/rocky/9/isos/aarch64/Rocky-9.8-aarch64-minimal.iso) |
| [Ubuntu 24.04.x Servidor en Vivo](https://ubuntu.com/download/server) | [download](https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso) | [download](https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso) |
<br>
## Soporte para Raspberry Pi 4 (8GB)
| Nombre de la distribución | arm64 |
|:-------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------|
| [Raspberry Pi OS (**64Bit, Lite**)](https://www.raspberrypi.com) | [download](https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz) |
<br><br>
## Obtener e instalar T-Pot
1. Clona el repositorio de GitHub: `$ git clone https://github.com/telekom-security/tpotce` o sigue las instrucciones [TL;DR](#tldr) y omite esta sección.
2. Cambia a la carpeta **tpotce/**: `$ cd tpotce`
3. Ejecuta el instalador como no root: `$ ./install.sh`:
* ⚠️ ***Dependiendo de tu distribución de Linux elegida, el instalador:***
* Cambia el puerto SSH a `tcp/64295`
* Deshabilita el DNS Stub Listener para evitar conflictos de puertos con honeypots
* Establece SELinux en modo Monitor
* Establece el objetivo del firewall para la zona pública en ACCEPT
* Añade el repositorio de Docker e instala Docker
* Instala paquetes recomendados
* Elimina paquetes conocidos por causar problemas
* Añade el usuario actual al grupo docker (permite la interacción con docker sin `sudo`)
* Añade los alias `dps`, `dpsw` y `dim` para vistas formateadas de contenedores e imágenes
* Añade los alias `la`, `ll` y `ls` (para `exa`, un comando `ls` mejorado)
* Añade `mi` (para `micro`, una gran alternativa a `vi` y/o `nano`)
* Muestra los puertos abiertos en el host (compara con los puertos [requeridos](https://github.com/telekom-security/tpotce#required-ports) de T-Pot)
* Añade y habilita `tpot.service` en `/etc/systemd/system` para que T-Pot pueda iniciarse y detenerse automáticamente
4. Sigue las instrucciones del instalador, deberás ingresar tu contraseña de usuario (`sudo` o `root`) al menos una vez
5. Verifica los mensajes del instalador en busca de errores y puertos abiertos que puedan causar conflictos
6. Reinicia: `$ sudo reboot`
<br><br>## macOS y Windows
A veces es agradable poder montar una instancia de T-Pot en macOS o Windows, es decir, para desarrollo, pruebas o simplemente por diversión. Como Docker Desktop es bastante limitado, no todos los tipos de honeypot o características de T-Pot son compatibles. También recuerda que, por defecto, los firewalls de macOS y Windows están bloqueando el acceso remoto, por lo que las pruebas se limitan al host. Para producción se recomienda ejecutar T-Pot en [Linux](#choose-your-distro).<br>
Para ponerlo en funcionamiento solo sigue estos pasos:
1. Instala Docker Desktop para [macOS](https://docs.docker.com/desktop/setup/install/mac-install/) o [Windows](https://docs.docker.com/desktop/setup/install/windows-install/).
2. Clona el repositorio de GitHub: `git clone https://github.com/telekom-security/tpotce` (en Windows asegúrate de que el código se descargue con `LF` en lugar de `CRLF`!)
3. Ve a: `cd ~/tpotce`
4. Copia `cp compose/mac_win.yml ./docker-compose.yml`
5. Crea un `WEB_USER` ejecutando `~/tpotce/genuser.sh` (macOS) o `~/tpotce/genuserwin.ps1` (Windows)
6. Ajusta el archivo `.env` cambiando `TPOT_OSTYPE=linux` a `mac` o `win`: ```
# OSType (linux, mac, win)
# Most docker features are available on linux
TPOT_OSTYPE=mac
docker compose up o docker compose up -d si quieres que T-Pot se ejecute en segundo plano.CTRL-C (si se estaba ejecutando en primer plano) y/o docker compose down -v para detener T-Pot por completo.Red Hat Enterprise Linux (RHEL) es un caso algo único ya que:
grc) depende de Python 2, que fue eliminado después de RHEL 7. Se omite de la instalación de T-Pot en RHEL.Con T-Pot Standard / Hive, todos los servicios, herramientas, honeypots, etc. se instalarán en un solo host que también sirve como punto final de Hive. Asegúrate de cumplir los requisitos del sistema. Puedes ajustar ~/tpotce/docker-compose.yml a tu caso de uso personal o crear tu propia configuración usando ~/tpotce/compose/customizer.py para una experiencia de T-Pot adaptada a tus necesidades.
Una vez finalizada la instalación, puedes proceder al Primer inicio.
La versión distribuida de T-Pot requiere al menos dos hosts
La desinstalación de T-Pot solo está disponible en las distribuciones Linux compatibles.
Para desinstalar T-Pot ejecuta ~/tpotce/uninstall.sh y sigue las instrucciones del desinstalador; tendrás que ingresar tu contraseña al menos una vez.
Una vez finalizada la desinstalación, reinicia la máquina con sudo reboot
Una vez que el instalador de T-Pot finalice correctamente, el sistema debe reiniciarse (sudo reboot). Una vez reiniciado, puedes iniciar sesión en el sistema usando el usuario que configuraste durante la instalación del sistema. Los inicios de sesión son según los Tipos de usuario:
<OS_USERNAME>]Puedes iniciar sesión vía SSH para acceder a la línea de comandos: ssh -l <OS_USERNAME> -p 64295 <tu.ip>:
<OS_USERNAME>]También puedes iniciar sesión desde tu navegador y acceder a la WebUI y herramientas de T-Pot: https://<tu.ip>:64297
<WEB_USER>]No hay mucho que hacer excepto iniciar sesión y verificar mediante dps si todos los servicios y honeypots se están iniciando correctamente. Puedes usar dim para revisar las imágenes Docker instaladas, incluyendo su antigüedad CREATED, luego iniciar sesión en Kibana y/o en el Mapa de Ataques Geoip para monitorear los ataques.
El despliegue distribuido implica planificación, ya que T-Pot Init solo creará un certificado autofirmado para la IP del host Hive, lo que generalmente es adecuado para configuraciones simples. Dado que logstash verificará un certificado válido al conectarse, una configuración distribuida en la que Hive sea accesible desde múltiples IPs (p. ej., RFC 1918 y una IP NAT pública) y quizás incluso un nombre de dominio resultará en un error de conexión donde el certificado no puede ser validado, ya que dicha configuración necesita un certificado con un nombre común y SANs (Subject Alternative Name).
Antes de desplegar cualquier sensor, asegúrate de haber planificado correctamente los nombres de dominio y las IPs para evitar problemas con el certificado. Para más detalles, consulta el issue #1543.
Ajusta el ejemplo a tu configuración de IP/dominio y sigue los comandos para cambiar el certificado de Hive:```
sudo systemctl stop tpot
sudo openssl req
-nodes
-x509
-sha512
-newkey rsa:8192
-keyout "$HOME/tpotce/data/nginx/cert/nginx.key"
-out "$HOME/tpotce/data/nginx/cert/nginx.crt"
-days 3650
-subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd'
-addext "subjectAltName = IP:192.168.1.200, IP:1.2.3.4, DNS:my.primary.domain, DNS:my.secondary.domain"
sudo chmod 774 $HOME/tpotce/data/nginx/cert/* sudo chown tpot:tpot $HOME/tpotce/data/nginx/cert/*
sudo systemctl start tpot
El archivo de configuración de T-Pot (`.env`) permite deshabilitar la verificación SSL para las conexiones de logstash desde **Sensor** a **Hive** configurando `LS_SSL_VERIFICATION=none`. Por razones de seguridad, esto solo se recomienda para entornos de laboratorio o prueba.<br><br>
Si eliges usar un certificado válido para **Hive** firmado por una CA (por ejemplo, Let's Encrypt), logstash y, por lo tanto, **Sensor**, no deberían tener problemas para conectarse y transmitir sus registros a **Hive**.
### Desplegando Sensores
Una vez que hayas reiniciado **Sensor** según las instrucciones del instalador, puedes continuar con el despliegue distribuido iniciando sesión en **Hive** y dirigiéndote a la carpeta `cd ~/tpotce`. Asegúrate de haber comprendido la [Planificación y Certificados](#planning-and-certificates) antes de continuar con el despliegue real.
Si aún no lo has hecho, genera una clave SSH para iniciar sesión de forma segura en **Sensor** y permitir que `Ansible` ejecute un playbook en el sensor:
1. Ejecuta `ssh-keygen`, sigue las instrucciones y deja la frase de contraseña vacía: ```
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<your_user>/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/<your_user>/.ssh/id_rsa
Your public key has been saved in /home/<your_user>/.ssh/id_rsa.pub
Implementar la clave en el Sensor ejecutando ssh-copy-id -p 64295 <Sensor_SSH_USER>@<Sensor_IP>): ```
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/<your_user>/.ssh/id_rsa.pub"
The authenticity of host '[<Sensor_IP>]:64295 ([<Sensor_IP>]:64295)' can't be stablished.
ED25519 key fingerprint is SHA256:naIDxFiw/skPJadTcgmWZQtgt+CdfRbUCoZn5RmkOnQ.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
<your_user>@172.20.254.124's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '64295' '<your_user>@<Sensor_IP>'" and check to make sure that only the key(s) you wanted were added.
Como se sugiere, siga las instrucciones para probar la conexión ssh -p '64295' '<su_usuario>@<IP_del_Sensor>'.
Una vez que la clave se haya desplegado exitosamente, ejecute ./deploy.sh y siga las instrucciones.
Identifique la variable de entorno TPOT_HIVE_USER en el sensor en el archivo de configuración $HOME/tpotce/.env (es una cadena codificada en base64). Luego, identifique la misma cadena en la variable de entorno LS_WEB_USER en el Hive en el archivo de configuración $HOME/tpotce/.env. Elimine la cadena y reinicie T-Pot.
Ahora puede eliminar de forma segura la máquina del sensor.
T-Pot se proporciona para que sea accesible para todos los interesados en honeypots. De forma predeterminada, los datos capturados se envían a un backend comunitario. Este backend comunitario utiliza los datos para alimentar Sicherheitstacho.
Puede optar por no realizar el envío eliminando el servicio # Ewsposter service de ~/tpotce/docker-compose.yml siguiendo estos pasos:
systemctl stop tpot~/tpotce/docker-compose.yml: micro ~/tpotce/docker-compose.ymlCTRL+Q):```ewsposter: container_name: ewsposter restart: always depends_on: tpotinit: condition: service_healthy networks: - ewsposter_local environment: - EWS_HPFEEDS_ENABLE=false - EWS_HPFEEDS_HOST=host - EWS_HPFEEDS_PORT=port - EWS_HPFEEDS_CHANNELS=channels - EWS_HPFEEDS_IDENT=user - EWS_HPFEEDS_SECRET=secret - EWS_HPFEEDS_TLSCERT=false - EWS_HPFEEDS_FORMAT=json image: ${TPOT_REPO}/ewsposter:${TPOT_VERSION} pull_policy: ${TPOT_PULL_POLICY} volumes: - ${TPOT_DATA_PATH}:/data - ${TPOT_DATA_PATH}/ews/conf/ews.ip:/opt/ewsposter/ews.ip
4. Inicie los servicios de T-Pot: `systemctl start tpot`
Se recomienda no deshabilitar el envío de datos, ya que es el propósito principal del enfoque comunitario; como todos saben, **compartir es cuidar** 😍
<br><br>
## Participación Voluntaria en el Envío de Datos HPFEEDS
Como participación voluntaria, es posible compartir datos de T-Pot con brokers HPFEEDS de terceros.
1. Siga las instrucciones [aquí](#community-data-submission) para detener los servicios de T-Pot y abra `~/tpotce/docker-compose.yml`.
2. Desplácese hacia abajo hasta la sección `ewsposter` y ajuste la configuración de HPFEEDS según sus necesidades.
3. Si necesita agregar un certificado CA, agréguelo a `~/tpotce/data/ews/conf` y establezca `EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>`.
4. Inicie los servicios de T-Pot: `systemctl start tpot`
<br><br>
# Acceso Remoto y Herramientas
El acceso remoto a su host / T-Pot es posible mediante SSH (en **`tcp/64295`**) y algunos servicios y herramientas vienen con T-Pot para facilitar algunas de sus tareas de investigación.
<br><br>
## SSH
Según los [Tipos de Usuario](#user-types), puede iniciar sesión mediante SSH para acceder a la línea de comandos: `ssh -l <OS_USERNAME> -p 64295 <your.ip>`:
- usuario: **[`<OS_USERNAME>`]**
- contraseña: **[password]**
<br><br>
## Página de Inicio de T-Pot
Según los [Tipos de Usuario](#user-types), puede abrir la Página de Inicio de T-Pot desde su navegador mediante `https://<your.ip>:64297`:
- usuario: **[`<WEB_USER>`]**
- contraseña: **[password]**

<br><br>
## Kibana Dashboard
En la Página de Inicio de T-Pot, simplemente haga clic en `Kibana` y será redirigido a Kibana. Puede seleccionar entre una gran variedad de paneles y visualizaciones, todas adaptadas a los honeypots compatibles con T-Pot.

<br><br>
## Mapa de Ataques
En la Página de Inicio de T-Pot, simplemente haga clic en `Attack Map` y será redirigido al Mapa de Ataques. Dado que el Mapa de Ataques utiliza web sockets, es posible que deba volver a ingresar las credenciales de `<WEB_USER>`.

<br><br>
## Cyberchef
En la Página de Inicio de T-Pot, simplemente haga clic en `Cyberchef` y será redirigido a Cyberchef.

<br><br>
## Elasticvue
En la Página de Inicio de T-Pot, simplemente haga clic en `Elasticvue` y será redirigido a Elasticvue.

<br><br>
## Spiderfoot
En la Página de Inicio de T-Pot, simplemente haga clic en `Spiderfoot` y será redirigido a Spiderfoot.

<br><br>
# Configuración
## Archivo de Configuración de T-Pot
T-Pot ofrece un archivo de configuración que proporciona variables no solo para los servicios docker (es decir, honeypots y herramientas) sino también para el entorno de docker compose. El archivo de configuración está oculto en `~/tpoce/.env`. También hay un archivo de ejemplo (`env.example`) que contiene la configuración predeterminada.<br>
Antes del primer inicio, ejecute `~/tpotce/genuser.sh` o configure el `WEB_USER` manualmente como se describe [aquí](#add-users-to-nginx-t-pot-webui).
## Personalizar Honeypots y Servicios de T-Pot
En `~/tpotce/compose` encontrará todo lo que necesita para ajustar la instalación T-Pot Standard / Hive:```
customizer.py
llm.yml
mac_win.yml
mini.yml
mobile.yml
sensor.yml
standard.yml
tarpit.yml
tpot_services.yml
Los archivos .yml son archivos de docker compose, cada uno representa un conjunto diferente de honeypots y herramientas, siendo tpot_services.yml una plantilla para que customizer.py cree un archivo docker compose personalizado.
Para activar un archivo compose, siga estos pasos:
systemctl stop tpot.cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml.systemctl start tpot.Para crear su archivo docker compose personalizado:
cd ~/tpotce/compose.python3 customizer.py.docker-compose.yml. Dado que algunos honeypots y servicios ocupan los mismos puertos, verificará si hay conflictos de puerto y notificará sobre los servicios en conflicto. Luego podrá resolverlos manualmente ajustando docker-compose-custom.yml o volver a ejecutar el script.systemctl stop tpot.cp docker-compose-custom.yml ~/tpotce y cd ~/tpotce.docker-compose -f docker-compose-custom.yml up. En caso de errores, siga la Especificación de Docker Compose para mitigarlos. Lo más probable es que sea solo un conflicto de puerto que pueda ajustar editando el archivo docker compose.CTRL-C para detener los contenedores y ejecute docker-compose -f docker-compose-custom.yml down -v.mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml.systemctl start tpot.
T-Pot está diseñado para requerir poco mantenimiento. Dado que casi todo se proporciona a través de imágenes docker, básicamente no hay nada que hacer más que dejarlo funcionar. Actualizaremos las imágenes docker regularmente para reducir los riesgos de compromiso; sin embargo, debe leer esta sección con atención.
Si falla una actualización, abrir un issue o una discusión ayudará a mejorar las cosas en el futuro, pero la solución ofrecida será siempre realizar una instalación limpia, ya que simplemente no podemos brindar soporte por datos perdidos.
La seguridad de T-Pot depende de las actualizaciones proporcionadas para las imágenes de distribuciones Linux compatibles. Asegúrese de revisar la documentación del SO y garantizar que el sistema operativo instale las actualizaciones regularmente. Por defecto (~/tpotce/.env) TPOT_PULL_POLICY=always asegurará que en cada inicio de T-Pot, docker verifique si hay nuevas imágenes docker y las descargue antes de crear los contenedores.
Las versiones de T-Pot se ofrecen a través de GitHub y se pueden obtener usando ~/tpotce/update.sh.
Si realizó cambios relevantes en los archivos de configuración de T-Pot, ¡asegúrese de hacer una copia de seguridad primero!
Las actualizaciones pueden tener consecuencias imprevistas. ¡Cree una copia de seguridad de la máquina o de los archivos más valiosos para su trabajo!
El script de actualización ...
~/tpotce~/tpotce para sincronizarlos con la rama maestra de T-Potews.cfg personalizado desde ~/tpotce/data/ews/conf y la configuración de T-Pot (~/tpotce/.env).Por defecto, T-Pot agregará un reinicio diario que incluye algo de limpieza. Puede ajustar esta línea con `sudo crontab -e```` #Ansible: T-Pot Daily Reboot 42 2 * * * bash -c 'systemctl stop tpot.service && docker container prune -f; docker image prune -f; docker volume prune -f; /usr/sbin/shutdown -r +1 "T-Pot Daily Reboot"'
## Problemas conocidos
Los siguientes problemas son conocidos, simplemente siga los pasos descritos para resolverlos.
<br><br>
### Las imágenes de Docker no se descargan
Hace algún tiempo Docker introdujo [límites de descarga](https://docs.docker.com/docker-hub/download-rate-limit/#:~:text=Docker%20Hub%20limits%20the%20number,pulls%20per%206%20hour%20period.). Si descarga imágenes de Docker con frecuencia a través de una IP compartida o única, la dirección IP podría haber agotado el límite de descarga de Docker. Inicie sesión en su cuenta de Docker para ampliar el límite de descarga.```
sudo su -
docker login
T-Pot está diseñado para ejecutarse solo en máquinas con una única NIC. T-Pot intentará capturar la interfaz con la ruta predeterminada, sin embargo, no está garantizado que esto siempre tenga éxito. Como mejor práctica, use T-Pot en máquinas con una sola NIC.
El servicio de T-Pot se inicia y detiene automáticamente en cada reinicio (que ocurre una vez al día según lo configurado en sudo crontab -l durante la instalación).
Si desea iniciar manualmente el servicio de T-Pot, puede hacerlo mediante systemctl start tpot y observar a través de dpsw el inicio de los contenedores.
El servicio de T-Pot se inicia y detiene automáticamente en cada reinicio (que ocurre una vez al día según lo configurado en sudo crontab -l durante la instalación).
Si desea detener manualmente el servicio de T-Pot, puede hacerlo mediante systemctl stop tpot y observar a través de dpsw la detención de los contenedores.
Todos los archivos de registro persistentes de los honeypots, herramientas y servicios relacionados con T-Pot se almacenan en ~/tpotce/data. Esto incluye artefactos recopilados que no se transmiten a Elastic Stack.
Todos los datos de registro se almacenan en la Carpeta de datos de T-Pot y se conservarán durante el número de ciclos establecido para TPOT_PERSISTENCE_CYCLES=<1-999> en el archivo de configuración de T-Pot ~/tpotce/.env. El valor predeterminado es 30.
Los índices de Elasticsearch son gestionados por la política de ciclo de vida del índice tpot, que se puede ajustar directamente en Kibana (asegúrese de incluir las políticas de sistema gestionadas).
Por defecto, la política de ciclo de vida del índice tpot mantiene los índices durante 30 días. Esto ofrece un buen equilibrio entre almacenamiento y velocidad. Sin embargo, puede ajustar la política según sus necesidades.
Todos los datos de registro almacenados en la Carpeta de datos de T-Pot (excepto los índices de Elasticsearch, por supuesto) se pueden borrar ejecutando clean.sh.
A veces las cosas pueden romperse más allá de la reparación y nunca ha sido más fácil restablecer un T-Pot a los valores de fábrica (asegúrese de ejecutar cd ~/tpotce).
systemctl stop tpot.~/tpotce/data a un lugar seguro (esto es opcional, por si acaso).~/tpotce/data usando sudo rm -rf ~/tpotce/data.5. Ahora puedes ejecutar `~/tpotce/install.sh`.
<br><br>
## Mostrar Contenedores e Imágenes
Puedes mostrar todos los contenedores relevantes de T-Pot ejecutando `dps` o `dpsw [interval]`. El `interval (s)` volverá a ejecutar `dps` periódicamente. Usa `dim` para mostrar las imágenes de Docker disponibles localmente, incluida la columna `CREATED`.
<br><br>
## Blackhole
Blackhole ejecutará T-Pot en una especie de modo sigiloso sin visitas permanentes de escáneres conocidos públicamente, reduciendo así la posibilidad de ser expuesto. Si bien esto siempre es un juego del gato y el ratón, la función blackhole está enrutando a nulo todas las solicitudes de [escáneres masivos conocidos](https://raw.githubusercontent.com/stamparm/maltrail/master/trails/static/mass_scanner.txt) mientras sigue capturando los eventos a través de Suricata.
<br>
La función se activa estableciendo `TPOT_BLACKHOLE=DISABLED` en `~/tpotce/.env`, luego ejecuta `systemctl stop tpot` y `systemctl start tpot` o `sudo reboot`.
<br>
Habilitar esta función reducirá drásticamente la visibilidad de los atacantes y, en consecuencia, resultará en menos actividad. Sin embargo, como ya se mencionó, no es una garantía de ser completamente sigiloso ni evitará la identificación de algunos servicios honeypot.
<br><br>
## Agregar Usuarios a Nginx (Interfaz Web de T-Pot)
Nginx (Interfaz Web de T-Pot) te permite agregar tantas cuentas `<WEB_USER>` como desees (según los [Tipos de Usuario](#user-types)).<br>
Para **agregar** un nuevo usuario ejecuta `~/tpotce/genuser.sh`.<br>
Para **eliminar** usuarios abre `~/tpotce/.env`, localiza `WEB_USER` y elimina la cadena base64 correspondiente (para decodificar: `echo <base64_string> | base64 -d`, o abre CyberChef y carga la receta "From Base64").<br>
Para que los cambios surtan efecto, debes reiniciar T-Pot usando `systemctl stop tpot` y `systemctl start tpot` o `sudo reboot`.
<br><br>
## Importar y Exportar Objetos de Kibana
Algunas actualizaciones de T-Pot requerirán que actualices los objetos de Kibana. Ya sea para admitir nuevos honeypots o para mejorar paneles o visualizaciones existentes. Asegúrate de ***exportar*** primero para no perder ninguno de tus ajustes.
### Exportar
1. Ve a Kibana
2. Haz clic en "Stack Management"
3. Haz clic en "Saved Objects"
4. Haz clic en "Export <no.> objects"
5. Haz clic en "Export all"
Esto exportará un archivo NDJSON con todos tus objetos. Siempre realiza una exportación completa para asegurarte de que todas las referencias estén incluidas.
### Importar
1. [Descarga el archivo NDJSON](https://raw.githubusercontent.com/telekom-security/tpotce/refs/heads/master/docker/tpotinit/dist/etc/objects/kibana_export.ndjson.zip) y descomprímelo.
2. Ve a Kibana
3. Haz clic en "Stack Management"
4. Haz clic en "Saved Objects"
5. Haz clic en "Import" y deja los valores predeterminados (marcar para objetos existentes y sobrescribir conflictos automáticamente) si no hiciste cambios personales a los objetos de Kibana.
6. Busca el archivo NDJSON
Cuando se te pregunte: "Si alguno de los objetos ya existe, ¿deseas sobrescribirlos automáticamente?" respondes con "Sí, sobrescribir todos".
<br><br>
# Solución de Problemas
Generalmente, T-Pot se ofrece ***tal cual*** sin ningún compromiso con respecto al soporte. Se pueden abrir incidencias y discusiones, pero prepárate para incluir información básica necesaria para que la comunidad pueda ayudar.
<br><br>
## Registros
* Verifica si tus contenedores se están ejecutando correctamente: `dps`
* Verifica las imágenes de Docker disponibles localmente y su antigüedad: `dim`
* Verifica si los recursos de tu sistema no están agotados: `htop`, `docker stats`
* Verifica si hay un conflicto de puertos:```
systemctl stop tpot
grc netstat -tulpen
mi ~/tpotce/docker-compose.yml
docker-compose -f ~/tpotce/docker-compose.yml up
CTRL+C
docker-compose -f ~/tpotce/docker-compose.yml down -v
docker logs -f <nombre_del_contenedor>tpotinit: cat ~/tpotce/data/tpotinit.log
El Elastic Stack consume mucha RAM, específicamente logstash y elasticsearch. Si Elastic Stack no está disponible, no recibe registros o simplemente se sigue bloqueando, lo más probable es que sea un problema de RAM o almacenamiento.
Mientras T-Pot intenta reiniciar los servicios/contenedores, ejecute docker logs -f <nombre_del_contenedor> (ya sea logstash o elasticsearch) y verifique si hay advertencias o fallos relacionados con la RAM.
Los fallos de almacenamiento se pueden identificar más fácilmente mediante htop.
T-Pot se proporciona tal cual, de código abierto y sin ningún compromiso de soporte (consulte el aviso legal).
Si es un investigador de seguridad y desea reportar un problema de manera responsable, comuníquese con nuestro CERT.
Por favor, reporte problemas (errores) en nuestros GitHub Issues, pero primero solucione problemas. Los problemas que no proporcionen información para abordar el error se cerrarán o se convertirán en discusiones.
Use la función de búsqueda primero; es posible que ya se haya abordado o discutido un problema similar, con la solución a solo una búsqueda de distancia.
Preguntas generales, ideas, mostrar y contar, etc. se pueden abordar en nuestras GitHub Discussions.
Use la función de búsqueda; es posible que ya se haya abierto una discusión similar, con una respuesta a solo una búsqueda de distancia.
El software sobre el que se basa T-Pot utiliza las siguientes licencias.
GPLv2:
conpot,
galah,
dionaea,
honeytrap,
suricata
GPLv3:
adbhoney,
elasticpot,
ewsposter,
log4pot,
fatt,
heralding,
ipphoney,
miniprint,
redishoneypot,
rdphoneypot,
sentrypeer,
snare,
tanner
Apache 2 License:
cyberchef,
dicompot,
elasticsearch,
go-pot,
h0neytr4p,
logstash,
kibana,
docker
MIT license:
autoheal,
beelzebub,
ciscoasa,
ddospot,
elasticvue,
glutton,
hellpot,
honeyaml,
maltrail
Unlicense:
endlessh
Other:
citrixhoneypot,
cowrie,
mailoney,
Elastic License,
Wordpot
AGPL-3.0:
honeypots
Public Domain (CC):
Harvard Dataverse
¡Sin el código abierto y la comunidad de desarrollo de la que nos enorgullece formar parte, T-Pot no habría sido posible! Nuestro agradecimiento se extiende, pero no se limita, a las siguientes personas y organizaciones:
Uno de los mejores comentarios que hemos recibido hasta ahora es de uno de los desarrolladores de Conpot:
"[...] Recomiendo encarecidamente T-Pot, que es... no es exactamente una navaja suiza... es más como un soldado suizo, equipado con una navaja suiza. Dentro de un tanque. Un tanque suizo. [...]"
Y de @robcowart (creador de ElastiFlow):
"#TPot es una de las soluciones de honeypot llave en mano mejor preparadas. Es imprescindible para cualquiera que quiera analizar y comprender el comportamiento de los actores maliciosos y la amenaza que representan para su organización."