
🍯 T-Pot - A Plataforma Multi-Honeypot Tudo em Um 🐝

O T-Pot é a plataforma de honeypot tudo-em-um, opcionalmente distribuída, multiarquitetura (amd64, arm64), que suporta mais de 20 honeypots e inúmeras opções de visualização usando o Elastic Stack, mapas de ataque ao vivo animados e muitas ferramentas de segurança para aprimorar ainda mais a experiência de decepção.
ssh obrigatório).curl: $ sudo [apt, dnf, zypper] install curl se ainda não estiver instalado.$HOME:```
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"* Siga as instruções, leia as mensagens, verifique possíveis conflitos de porta e reinicie
<!-- TOC -->
- [T-Pot - A Plataforma Multi Honeypot Tudo-em-Um](#t-pot---the-all-in-one-multi-honeypot-platform)
- [TL;DR](#tldr)
- [Aviso Legal](#disclaimer)
- [Conceito Técnico](#technical-concept)
- [Honeypots e Ferramentas](#honeypots-and-tools)
- [Arquitetura Técnica](#technical-architecture)
- [Serviços](#services)
- [Tipos de Utilizador](#user-types)
- [Requisitos de Sistema](#system-requirements)
- [Executar numa VM](#running-in-a-vm)
- [Executar em Hardware](#running-on-hardware)
- [Executar na Nuvem](#running-in-a-cloud)
- [Portas Necessárias](#required-ports)
- [Honeypots Baseados em LLM](#llm-based-honeypots)
- [Ollama](#ollama)
- [ChatGPT](#chatgpt)
- [Posicionamento do Sistema](#system-placement)
- [Instalação](#installation)
- [Escolha a sua distro](#choose-your-distro)
- [Suporte para Raspberry Pi 4 (8GB)](#raspberry-pi-4-8gb-support)
- [Obter e instalar o T-Pot](#get-and-install-t-pot)
- [macOS e Windows](#macos--windows)
- [Red Hat Enterprise Linux](#red-hat-enterprise-linux)
- [Tipos de Instalação](#installation-types)
- [Standard / Hive](#standard--hive)
- [Distribuída](#distributed)
- [Desinstalar o T-Pot](#uninstall-t-pot)
- [Primeiro Arranque](#first-start)
- [Primeiro Arranque Autónomo](#standalone-first-start)
- [Implementação Distribuída](#distributed-deployment)
- [Planeamento e Certificados](#planning-and-certificates)
- [Implementar Sensores](#deploying-sensors)
- [Remover Sensores](#removing-sensors)
- [Submissão de Dados da Comunidade](#community-data-submission)
- [Submissão Opcional de Dados HPFEEDS](#opt-in-hpfeeds-data-submission)
- [Acesso Remoto e Ferramentas](#remote-access-and-tools)
- [SSH](#ssh)
- [Página de Aterragem do T-Pot](#t-pot-landing-page)
- [Painel de Controlo Kibana](#kibana-dashboard)
- [Mapa de Ataques](#attack-map)
- [Cyberchef](#cyberchef)
- [Elasticvue](#elasticvue)
- [Spiderfoot](#spiderfoot)
- [Configuração](#configuration)
- [Ficheiro de Configuração do T-Pot](#t-pot-config-file)
- [Personalizar Honeypots e Serviços do T-Pot](#customize-t-pot-honeypots-and-services)
- [Manutenção](#maintenance)
- [Atualizações Gerais](#general-updates)
- [Script de Atualização](#update-script)
- [Reinício Diário](#daily-reboot)
- [Problemas Conhecidos](#known-issues)
- [Falha ao Descarregar Imagens Docker](#docker-images-fail-to-download)
- [Falha de Rede do T-Pot](#t-pot-networking-fails)
- [Iniciar o T-Pot](#start-t-pot)
- [Parar o T-Pot](#stop-t-pot)
- [Pasta de Dados do T-Pot](#t-pot-data-folder)
- [Persistência de Registos](#log-persistence)
- [Reposição de Fábrica](#factory-reset)
- [Mostrar Contentores e Imagens](#show-containers-and-images)
- [Buraco Negro](#blackhole)
- [Adicionar Utilizadores ao Nginx (WebUI do T-Pot)](#add-users-to-nginx-t-pot-webui)
- [Importar e Exportar Objetos do Kibana](#import-and-export-kibana-objects)
- [Exportar](#export)
- [Importar](#import)
- [Resolução de Problemas](#troubleshooting)
- [Registos](#logs)
- [RAM e Armazenamento](#ram-and-storage)
- [Contacto](#contact)
- [Issues](#issues)
- [Discussões](#discussions)
- [Licenças](#licenses)
- [Créditos](#credits)
- [Os desenvolvedores e comunidades de desenvolvimento de](#the-developers-and-development-communities-of)
- [**As seguintes empresas e organizações**](#the-following-companies-and-organizations)
- [**E claro ***VOCÊ*** por se juntar à comunidade!**](#and-of-course-you-for-joining-the-community)
- [Testemunhos](#testimonials)
- [Obrigado 💖](#thank-you-)
<!-- TOC -->
<br><br>
# Aviso Legal
- Você instala e executa o T-Pot sob sua responsabilidade. Escolha a sua implementação com sabedoria, pois um comprometimento do sistema nunca pode ser descartado.
- Para ajuda rápida, pesquise nas [Issues](https://github.com/telekom-security/tpotce/issues) e [Discussões](https://github.com/telekom-security/tpotce/discussions).
- O software é concebido e oferecido com a melhor intenção possível. Como projeto comunitário e de código aberto, utiliza muito outro software de código aberto e pode conter bugs e problemas. Reporte de forma responsável.
- Honeypots - por conceção - não devem conter quaisquer dados sensíveis. Certifique-se de que não adiciona nenhum.
- Por predefinição, os seus dados são submetidos ao [Sicherheitstacho](https://www.sicherheitstacho.eu/start/main). Pode desativar isto na configuração (`~/tpotce/docker-compose.yml`) [removendo](#community-data-submission) a secção `ewsposter`. Mas neste caso, partilhar é realmente cuidar!
<br><br>
# Conceito Técnico
Os principais componentes do T-Pot foram movidos para a imagem Docker `tpotinit`, permitindo que o T-Pot agora suporte várias distribuições Linux, até mesmo macOS e Windows (embora ambos limitados ao conjunto de funcionalidades do Docker Desktop). O T-Pot utiliza [docker](https://www.docker.com/) e [docker compose](https://docs.docker.com/compose/) para alcançar o seu objetivo de executar o maior número possível de honeypots e ferramentas em simultâneo, utilizando assim ao máximo o hardware do anfitrião.
<br><br>
## Honeypots e Ferramentas
- O T-Pot oferece imagens docker para os seguintes 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)
Juntamente com as seguintes ferramentas:
* [Autoheal](https://github.com/willfarrell/docker-autoheal) uma ferramenta para reiniciar automaticamente contentores com verificações de saúde falhadas.
* [Cyberchef](https://gchq.github.io/CyberChef/) uma aplicação web para encriptação, codificação, compressão e análise de dados.
* [Elastic Stack](https://www.elastic.co/videos) para visualizar lindamente todos os eventos capturados pelo T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) um frontend web para navegar e interagir com um cluster Elasticsearch.
* [Fatt](https://github.com/0x4D31/fatt) um script baseado em pyshark para extrair metadados de rede e impressões digitais de ficheiros pcap e tráfego de rede em tempo real.
* [T-Pot-Attack-Map](https://github.com/telekom-security/t-pot-attack-map) um mapa de ataques lindamente animado para o T-Pot.
* [P0f](https://lcamtuf.coredump.cx/p0f3/) é uma ferramenta para recolha de impressões digitais de tráfego puramente passiva.
* [Spiderfoot](https://github.com/smicallef/spiderfoot) uma ferramenta de automação de inteligência de código aberto.
* [Suricata](https://suricata.io/) um motor de Monitorização de Segurança de Rede.
... para lhe proporcionar a melhor experiência pronta a usar possível e um sistema multi-honeypot fácil de utilizar.
<br><br>
## Arquitetura Técnica

O código fonte e os ficheiros de configuração estão totalmente armazenados no repositório GitHub do T-Pot. As imagens docker são construídas e pré-configuradas para o ambiente T-Pot.
Os Dockerfiles e configurações individuais estão localizados na [pasta docker](https://github.com/telekom-security/tpotce/tree/master/docker).
<br><br>
## Serviços
O T-Pot oferece vários serviços que estão basicamente divididos em cinco grupos:
1. Serviços de sistema fornecidos pelo SO
* SSH para acesso remoto seguro.
2. Elastic Stack
* Elasticsearch para armazenar eventos.
* Logstash para ingerir, receber e enviar eventos para o Elasticsearch.
* Kibana para exibir eventos em painéis lindamente renderizados.
3. Ferramentas
* NGINX fornece acesso remoto seguro (proxy reverso) para Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot e permite que os sensores T-Pot transmitam dados de evento de forma segura para a colmeia T-Pot.
* CyberChef uma aplicação web para encriptação, codificação, compressão e análise de dados.
* Elasticvue um frontend web para navegar e interagir com um cluster Elasticsearch.
* Mapa de Ataques T-Pot um mapa de ataques lindamente animado para o T-Pot.
* Spiderfoot uma ferramenta de automação de inteligência de código aberto.
4. Honeypots
* Uma seleção dos 23 honeypots disponíveis com base no `docker-compose.yml` selecionado.
5. Monitorização de Segurança de Rede (NSM)
* Fatt um script baseado em pyshark para extrair metadados de rede e impressões digitais de ficheiros pcap e tráfego de rede em tempo real.
* P0f é uma ferramenta para recolha de impressões digitais de tráfego puramente passiva.
* Suricata um motor de Monitorização de Segurança de Rede.
<br><br>
## Tipos de Utilizador
Durante a instalação e durante a utilização do T-Pot existem dois tipos diferentes de contas com as quais irá trabalhar. Certifique-se de que conhece as diferenças dos diferentes tipos de conta, uma vez que é **de longe** a razão mais comum para erros de autenticação.
| Serviço | Tipo de Conta | Nome de Utilizador / Grupo | Descrição |
|:-----------------|:--------------|:---------------------------|:------------------------------------------------------------------|
| SSH | SO | `<OS_USERNAME>` | O utilizador que escolheu durante a instalação do SO. |
| Nginx | BasicAuth | `<WEB_USER>` | `<web_user>` que escolheu durante a instalação do T-Pot. |
| CyberChef | BasicAuth | `<WEB_USER>` | `<web_user>` que escolheu durante a instalação do T-Pot. |
| Elasticvue | BasicAuth | `<WEB_USER>` | `<web_user>` que escolheu durante a instalação do T-Pot. |
| Mapa de Ataques Geoip | BasicAuth | `<WEB_USER>` | `<web_user>` que escolheu durante a instalação do T-Pot. |
| Spiderfoot | BasicAuth | `<WEB_USER>` | `<web_user>` que escolheu durante a instalação do T-Pot. |
| T-Pot | SO | `tpot` | `tpot` este utilizador / grupo está sempre reservado pelos serviços T-Pot. |
| Registos T-Pot | BasicAuth | `<LS_WEB_USER>` | `LS_WEB_USER` são geridos automaticamente. |
<br><br>
# Requisitos de Sistema
Dependendo das [imagens de distribuição Linux suportadas](#choose-your-distro), colmeia / sensor, instalação em [hardware real](#running-on-hardware), numa [máquina virtual](#running-in-a-vm) ou outros ambientes, existem diferentes tipos de requisitos a cumprir relativamente a SO, RAM, armazenamento e rede para uma instalação bem-sucedida do T-Pot (pode sempre ajustar `~/tpotce/docker-compose.yml` e `~/tpotce/.env` às suas necessidades para ultrapassar estes requisitos).
<br><br>
| Tipo T-Pot | RAM | Armazenamento | Descrição |
|:-----------|:-----|:--------------|:----------------------------------------------------------------------------------------------|
| Colmeia | 16GB | 256GB SSD | Como regra geral, quanto mais honeypots, sensores e dados, mais RAM e armazenamento são necessários. |
| Sensor | 8GB | 128GB SSD | Como os registos dos honeypots são persistidos (~/tpotce/data) durante 30 dias, o armazenamento depende do volume de ataques. |
O T-Pot requer ...
- um endereço IPv4 via DHCP ou atribuído estaticamente
- uma ligação à Internet funcional e não através de proxy
... para uma instalação e operação bem-sucedidas.
<br><br>
*Se precisar de suporte para proxy ou outras funcionalidades não padrão, deve consultar a documentação das [imagens de distribuição Linux suportadas](#choose-your-distro) e/ou a [documentação do Docker](https://docs.docker.com/).*
<br><br>
## Executar numa VM
Todas as [imagens de distribuição Linux suportadas](#choose-your-distro) funcionarão numa VM, o que significa que o T-Pot funcionará bem. As seguintes foram testadas / reportadas como funcionais:
* [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) e [VMWare Workstation](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion)
* KVM também é reportado como funcional.
***Algumas dicas de configuração / instalação:***
- Enquanto as versões Intel são estáveis, o suporte para Apple Silicon (arm64) tem problemas conhecidos que no UTM podem exigir mudar `Display` para `Console Only` durante a instalação inicial do SO e depois de volta para `Full Graphics`.
- Durante a configuração, poderá ser necessário ativar o modo promíscuo para a interface de rede para que fatt, suricata e p0f funcionem corretamente.
- Se pretender usar uma placa wifi como NIC principal para o T-Pot, esteja ciente de que nem todos os controladores de interface de rede suportam todas as placas sem fios. No VirtualBox, por exemplo, terá de escolher o modelo *"MT SERVER"* da NIC.
<br><br>
## Executar em Hardware
O T-Pot é apenas limitado pelo suporte de hardware das [imagens de distribuição Linux suportadas](#choose-your-distro). Recomenda-se verificar a HCL (lista de compatibilidade de hardware) e testar as distros suportadas com o T-Pot antes de investir em hardware dedicado.
<br><br>
## Executar na Nuvem
O T-Pot foi testado e sabe-se que funciona em ...
* Telekom OTC usando o método pós-instalação
... outros podem funcionar, mas permanecem não testados.
Alguns utilizadores reportam instalações funcionais noutras nuvens e hospedeiros, por exemplo, Azure e GCP. Os requisitos de hardware podem ser diferentes. Se não tiver a certeza, deve pesquisar [issues](https://github.com/telekom-security/tpotce/issues) e [discussões](https://github.com/telekom-security/tpotce/discussions) e realizar alguns testes funcionais. Desde o T-Pot 24.04.0 em diante, garantimos remover definições que se sabia interferirem com instalações baseadas na nuvem.
<br><br>
## Portas Necessárias
Além das portas geralmente necessárias pelo SO, como obter uma concessão DHCP, DNS, etc., o T-Pot requererá as seguintes portas para ligações de entrada / saída. Consulte a [Arquitetura T-Pot](#technical-architecture) para uma representação visual. Além disso, algumas portas aparecerão como duplicadas, o que é normal, pois são utilizadas em diferentes edições.| Port | Protocol | Direction | Descrição |
|:--------------------------------------------------------------------------------------------------------------------------------------|:---------|:----------|:------------------------------------------------------------------------------------------------------|
| 80, 443 | tcp | outgoing | Gerenciamento T-Pot: Instalação, Atualizações, Logs (ex.: SO, GitHub, DockerHub, Sicherheitstacho, etc.) |
| 11434 | tcp | outgoing | Honeypots baseados em LLM: Acesse sua instalação Ollama |
| 64294 | tcp | incoming | Gerenciamento T-Pot: Transmissão de dados do sensor para o hive (através do NGINX reverse proxy) para 127.0.0.1:64305 |
| 64295 | tcp | incoming | Gerenciamento T-Pot: Acesso ao SSH |
| 64297 | tcp | incoming | Gerenciamento T-Pot: Acesso ao NGINX reverse proxy |
| 5555 | tcp | incoming | Honeypot: ADBHoney |
| 22 | tcp | incoming | Honeypot: Beelzebub (requer LLM) |
| 5000 | udp | incoming | Honeypot: CiscoASA |
| 8443 | tcp | incoming | Honeypot: CiscoASA |
| 443 | tcp | incoming | Honeypot: CitrixHoneypot |
| 80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100 | tcp | incoming | Honeypot: Conpot |
| 161, 623 | udp | incoming | Honeypot: Conpot |
| 22, 23 | tcp | incoming | Honeypot: Cowrie |
| 19, 53, 123, 1900 | udp | incoming | Honeypot: Ddospot |
| 11112 | tcp | incoming | Honeypot: Dicompot |
| 21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081 | tcp | incoming | Honeypot: Dionaea |
| 69 | udp | incoming | Honeypot: Dionaea |
| 9200 | tcp | incoming | Honeypot: Elasticpot |
| 22 | tcp | incoming | Honeypot: Endlessh |
| 80, 443, 8080, 8443 | tcp | incoming | Honeypot: Galah (requer LLM) |
| 8080 | tcp | incoming | Honeypot: Go-pot |
| 80, 443 | tcp | incoming | Honeypot: H0neytr4p |
| 21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900 | tcp | incoming | Honeypot: Heralding |
| 3000 | tcp | incoming | 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 | incoming | Honeypot: qHoneypots |
| 53, 123, 161, 5060 | udp | incoming | Honeypot: qHoneypots |
| 631 | tcp | incoming | Honeypot: IPPHoney |
| 80, 443, 8080, 9200, 25565 | tcp | incoming | Honeypot: Log4Pot |
| 25 | tcp | incoming | Honeypot: Mailoney |
| 2575 | tcp | incoming | Honeypot: Medpot |
| 9100 | tcp | incoming | Honeypot: Miniprint |
| 6379 | tcp | incoming | Honeypot: Redishoneypot |
| 3389 | tcp | incoming | Honeypot: RDPHoneypot |
| 5060 | tcp/udp | incoming | Honeypot: SentryPeer |
| 80 | tcp | incoming | Honeypot: Snare (Tanner) |
| 8090 | tcp | incoming | Honeypot: Wordpot |
Portas e disponibilidade dos serviços SaaS podem variar conforme sua localização geográfica.
Para que alguns honeypots atinham funcionalidade completa (ex.: Cowrie ou Log4Pot), conexões de saída também são necessárias, para que eles possam baixar o malware do atacante. Consulte a documentação de cada honeypot para saber mais, seguindo os [links](#conceito-técnico) para seus repositórios.
## Honeypots Baseados em LLM
Acreditamos que os Honeypots Baseados em LLM marcam o **início** de uma mudança de jogo no campo de decepção / honeypots. Consequentemente, a partir do lançamento do **T-Pot 24.04.1**, dois honeypots baseados em LLM, **Beelzebub** e **Galah**, foram introduzidos. Esses honeypots requerem uma instalação do **Ollama**, que precisa ser configurado no [arquivo de configuração do T-Pot](#arquivo-de-configuração-do-t-pot). Você também pode ajustar as configurações neste arquivo para suporte ao **ChatGPT**, mas note que alterações também serão necessárias no arquivo docker compose (`~/tpotce/compose/llm.yml`) para acomodar esses ajustes.<br><br>
Siga os links na seção [Honeypots e Ferramentas](#honeypots-e-ferramentas) para saber mais sobre **Beelzebub** e **Galah**.
### Ollama
🚨 **O uso baseado em CPU não é recomendado**, nem mesmo para testes.<br><br>
Para configurar e executar o **Ollama**, consulte o [repositório GitHub do Ollama](https://github.com/ollama/ollama) para instruções. Para fins de entrada ou teste, resultados podem ser alcançados usando uma **Nvidia RTX 4060 Ti 16GB** ou equivalente (AMD's ROCm também é suportado pelo Ollama), com modelos como **openchat** e **Llama3**. Como regra geral com sistemas baseados em LLM, quanto melhor e mais hardware você usar, mais rápidos e precisos serão os resultados, especialmente quando as tarefas são descarregadas para múltiplas GPUs e modelos maiores.
### ChatGPT
O suporte ao ChatGPT para esses honeypots permanecerá não testado em relação ao T-Pot.
<br><br>
# Posicionamento do Sistema
Recomenda-se que você se familiarize com o funcionamento do T-Pot e dos honeypots antes de expor à internet. Para um início rápido, execute uma instalação do T-Pot em uma máquina virtual.
<br><br>
Depois de familiarizado com o funcionamento, você deve escolher uma rede onde suspeite de intrusos ou de onde eles venham (ex.: a internet). Caso contrário, o T-Pot provavelmente não capturará ataques (a menos que você queira provar algo)! Para iniciantes, recomenda-se colocar o T-Pot em uma zona não filtrada, onde todo o tráfego TCP e UDP seja encaminhado para a interface de rede do T-Pot. Para evitar sondagens das portas de gerenciamento do T-Pot, coloque o T-Pot atrás de um firewall e encaminhe todo o tráfego TCP/UDP na faixa de portas 1-64000 para o T-Pot, permitindo acesso às portas > 64000 apenas a partir de IPs confiáveis e/ou exponha apenas as [portas](#portas-necessárias) relevantes para o seu caso de uso. Se desejar capturar tráfego de malware em portas desconhecidas, não limite as portas que você encaminha, pois glutton e honeytrap vinculam dinamicamente qualquer porta TCP que não esteja ocupada por outros daemons de honeypot, dando assim uma melhor representação dos riscos aos quais sua configuração está exposta.
<br><br>
# Instalação
[Baixe](#escolha-sua-distro) uma das [imagens de distribuição Linux suportadas](#escolha-sua-distro), siga as instruções [TL;DR](#tldr) ou faça `git clone` do repositório T-Pot e execute o instalador `~/tpotce/install.sh`. Executar o T-Pot sobre um sistema Linux em execução e suportado é possível, mas uma instalação limpa é recomendada para evitar conflitos de porta com serviços em execução. O instalador do T-Pot exigirá acesso direto à internet conforme descrito [aqui](#portas-necessárias).
<br><br>
## Escolha sua distro
**Passos a seguir:**
1. Baixe uma distribuição Linux suportada da lista abaixo. (NOTA: Red Hat Enterprise Linux >= 8 é suportado, mas omitido da lista abaixo devido à sua natureza baseada em assinatura. Veja [Red Hat Enterprise Linux](#red-hat-enterprise-linux) para detalhes).
2. Durante a instalação, escolha uma versão **mínima**, **netinstall** ou **servidor** que instalará apenas pacotes essenciais.
3. **Nunca** instale um ambiente de desktop gráfico como Gnome ou KDE. O T-Pot não funcionará com ele devido a conflitos de porta.
4. Certifique-se de instalar o SSH para poder conectar-se à máquina remotamente.
| Nome da Distribuição | x64 | arm64 |
|:--------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| [Alma Linux OS 9.x Minimal ISO](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 Network Install](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 Network Install](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 Network Image](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 Minimal ISO](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 Live Server](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>
## Suporte para Raspberry Pi 4 (8GB)
| Nome da Distribuição | 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>
## Obter e instalar o T-Pot
1. Clone o repositório GitHub: `$ git clone https://github.com/telekom-security/tpotce` ou siga o [TL;DR](#tldr) e pule esta seção.
2. Entre na pasta **tpotce/**: `$ cd tpotce`
3. Execute o instalador como não-root: `$ ./install.sh`:
* ⚠️ ***Dependendo da distribuição Linux escolhida, o instalador irá:***
* Alterar a porta SSH para `tcp/64295`
* Desabilitar o DNS Stub Listener para evitar conflitos de porta com honeypots
* Definir SELinux para Modo Monitoramento
* Definir o alvo do firewall para a zona pública como ACCEPT
* Adicionar o repositório do Docker e instalar o Docker
* Instalar pacotes recomendados
* Remover pacotes que causam problemas conhecidos
* Adicionar o usuário atual ao grupo docker (permitir interação com docker sem `sudo`)
* Adicionar aliases `dps`, `dpsw` e `dim` para visões gerais formatadas de contêineres e imagens
* Adicionar aliases `la`, `ll` e `ls` (para `exa`, um comando `ls` melhorado)
* Adicionar `mi` (para `micro`, uma ótima alternativa ao `vi` e/ou `nano`)
* Exibir portas abertas no host (compare com as portas [necessárias](https://github.com/telekom-security/tpotce#required-ports) do T-Pot)
* Adicionar e habilitar `tpot.service` para `/etc/systemd/system` para que o T-Pot possa iniciar e parar automaticamente
4. Siga as instruções do instalador; você precisará inserir sua senha de usuário (`sudo` ou `root`) pelo menos uma vez
5. Verifique as mensagens do instalador em busca de erros e portas abertas que possam causar conflitos de porta
6. Reinicie: `$ sudo reboot`
<br><br>## macOS e Windows
Às vezes é bom poder iniciar uma instância do T-Pot no macOS ou Windows, por exemplo, para desenvolvimento, testes ou apenas por diversão. Como o Docker Desktop é bastante limitado, nem todos os tipos de honeypot ou recursos do T-Pot são suportados. Lembre-se também que, por padrão, o firewall do macOS e do Windows bloqueia o acesso remoto, então os testes são limitados ao host. Para produção, é recomendado executar o T-Pot no [Linux](#choose-your-distro).<br>
Para colocar tudo em funcionamento, siga estes passos:
1. Instale o Docker Desktop para [macOS](https://docs.docker.com/desktop/setup/install/mac-install/) ou [Windows](https://docs.docker.com/desktop/setup/install/windows-install/).
2. Clone o repositório do GitHub: `git clone https://github.com/telekom-security/tpotce` (no Windows, certifique-se de que o código seja baixado com `LF` em vez de `CRLF`!)
3. Vá para: `cd ~/tpotce`
4. Copie `cp compose/mac_win.yml ./docker-compose.yml`
5. Crie um `WEB_USER` executando `~/tpotce/genuser.sh` (macOS) ou `~/tpotce/genuserwin.ps1` (Windows)
6. Ajuste o arquivo `.env` alterando `TPOT_OSTYPE=linux` para `mac` ou `win`: ```
# OSType (linux, mac, win)
# Most docker features are available on linux
TPOT_OSTYPE=mac
docker compose up ou docker compose up -d se quiser que o T-Pot seja executado em segundo plano.CTRL-C (se estiver sendo executado em primeiro plano) e/ou docker compose down -v para parar o T-Pot completamente.O Red Hat Enterprise Linux (RHEL) é um caso um tanto único, pois:
grc) depende do Python 2, que foi removido após o RHEL 7. Ela é omitida da instalação do T-Pot no RHEL.Com o T-Pot Padrão / Hive, todos os serviços, ferramentas, honeypots, etc. serão instalados em um único host que também serve como endpoint Hive. Certifique-se de atender aos requisitos de sistema. Você pode ajustar ~/tpotce/docker-compose.yml para seu caso de uso pessoal ou criar sua própria configuração usando ~/tpotce/compose/customizer.py para uma experiência T-Pot personalizada às suas necessidades.
Assim que a instalação for concluída, você pode prosseguir para o Primeiro Início.
A versão distribuída do T-Pot requer pelo menos dois hosts
A desinstalação do T-Pot está disponível apenas nas distribuições Linux suportadas.
Para desinstalar o T-Pot execute ~/tpotce/uninstall.sh e siga as instruções do desinstalador, você precisará inserir sua senha pelo menos uma vez.
Assim que a desinstalação for concluída, reinicie a máquina com sudo reboot
Assim que o Instalador do T-Pot for concluído com sucesso, o sistema precisa ser reiniciado (sudo reboot). Após a reinicialização, você pode fazer login no sistema usando o usuário que configurou durante a instalação do sistema. Os logins são de acordo com os Tipos de Usuário:
<OS_USERNAME>]Você pode fazer login via SSH para acessar a linha de comando: ssh -l <OS_USERNAME> -p 64295 <your.ip>:
<OS_USERNAME>]Você também pode fazer login pelo navegador e acessar a WebUI e ferramentas do T-Pot: https://<your.ip>:64297
<WEB_USER>]Não há muito o que fazer, exceto fazer login e verificar via dps se todos os serviços e honeypots estão iniciando corretamente. Você pode usar dim para revisar as imagens Docker instaladas, incluindo a idade CREATED, e então fazer login no Kibana e/ou no Mapa de Ataques Geoip para monitorar os ataques.
A implantação distribuída envolve planejamento, pois o T-Pot Init criará apenas um certificado autoassinado para o IP do host Hive, que geralmente é adequado para configurações simples. Como o logstash verificará um certificado válido na conexão, uma configuração distribuída envolvendo o Hive acessível em vários IPs (por exemplo, RFC 1918 e IP NAT público) e talvez até um nome de domínio resultará em um erro de conexão onde o certificado não pode ser validado, pois tal configuração precisa de um certificado com um nome comum e SANs (Subject Alternative Name).
Antes de implantar quaisquer sensores, certifique-se de ter planejado adequadamente os nomes de domínio e IPs para evitar problemas com o certificado. Para mais detalhes, consulte issue #1543.
Ajuste o exemplo para sua configuração de IP/domínio e siga os comandos para alterar o certificado do 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
O arquivo de configuração do T-Pot (`.env`) permite desabilitar a verificação SSL para conexões logstash do **Sensor** para a **Colmeia** definindo `LS_SSL_VERIFICATION=none`. Por razões de segurança, isso é recomendado apenas para ambientes de laboratório ou teste.<br><br>
Se você optar por usar um certificado válido para a **Colmeia** assinado por uma AC (ex.: Let's Encrypt), o logstash e, portanto, o **Sensor**, não devem ter problemas para conectar e transmitir seus logs para a **Colmeia**.
### Implantando Sensores
Depois de reiniciar o **Sensor** conforme instruído pelo instalador, você pode continuar com a implantação distribuída fazendo login na **Colmeia** e indo para a pasta `cd ~/tpotce`. Certifique-se de ter compreendido o [Planejamento e Certificados](#planning-and-certificates) antes de continuar com a implantação real.
Se ainda não o fez, gere uma chave SSH para fazer login com segurança no **Sensor** e permitir que o `Ansible` execute um playbook no sensor:
1. Execute `ssh-keygen`, siga as instruções e deixe a frase secreta vazia: ```
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
Implantar a chave no Sensor executando 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.
Conforme sugerido, siga as instruções para testar a conexão ssh -p '64295' '<seu_usuário>@<IP_do_Sensor>'.
Quando a chave for implantada com sucesso, execute ./deploy.sh e siga as instruções.
Identifique a variável de ambiente TPOT_HIVE_USER no Sensor no arquivo de configuração $HOME/tpotce/.env (é uma string codificada em base64). Agora identifique a mesma string na variável de ambiente LS_WEB_USER no Hive no arquivo de configuração $HOME/tpotce/.env. Remova a string e reinicie o T-Pot.
Agora você pode excluir a máquina do Sensor com segurança.
O T-Pot é fornecido para torná-lo acessível a todos os interessados em honeypots. Por padrão, os dados capturados são enviados para um backend da comunidade. Este backend da comunidade usa os dados para alimentar o Sicherheitstacho.
Você pode optar por não participar do envio removendo o serviço # Ewsposter service do arquivo ~/tpotce/docker-compose.yml seguindo estes passos:
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. Iniciar os serviços T-Pot: `systemctl start tpot`
É incentivado a não desativar o envio de dados, pois é o principal objetivo da abordagem comunitária - como todos sabem **compartilhar é cuidar** 😍
<br><br>
## Submissão de Dados HPFEEDS Opt-In
Como Opt-In, é possível compartilhar dados do T-Pot com corretores HPFEEDS de terceiros.
1. Siga as instruções [aqui](#community-data-submission) para parar os serviços T-Pot e abra `~/tpotce/docker-compose.yml`.
2. Role para baixo até a seção `ewsposter` e ajuste as configurações HPFEEDS conforme necessário.
3. Se precisar adicionar um certificado CA, adicione-o em `~/tpotce/data/ews/conf` e defina `EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>`.
4. Iniciar os serviços T-Pot: `systemctl start tpot`.
<br><br>
# Acesso Remoto e Ferramentas
O acesso remoto ao seu host / T-Pot é possível via SSH (na porta **`tcp/64295`**) e alguns serviços e ferramentas vêm com o T-Pot para tornar algumas de suas tarefas de pesquisa muito mais fáceis.
<br><br>
## SSH
De acordo com os [Tipos de Usuário](#user-types) você pode fazer login via SSH para acessar a linha de comando: `ssh -l <OS_USERNAME> -p 64295 <your.ip>`:
- usuário: **[`<OS_USERNAME>`]**
- senha: **[password]**
<br><br>
## Página Inicial do T-Pot
De acordo com os [Tipos de Usuário](#user-types) você pode abrir a Página Inicial do T-Pot a partir do seu navegador via `https://<your.ip>:64297`:
- usuário: **[`<WEB_USER>`]**
- senha: **[password]**

<br><br>
## Painel Kibana
Na Página Inicial do T-Pot, basta clicar em `Kibana` e você será encaminhado para o Kibana. Você pode selecionar uma grande variedade de painéis e visualizações, todos adaptados aos honeypots suportados pelo T-Pot.

<br><br>
## Mapa de Ataques
Na Página Inicial do T-Pot, basta clicar em `Attack Map` e você será encaminhado para o Mapa de Ataques. Como o Mapa de Ataques utiliza web sockets, talvez seja necessário reinserir as credenciais do `<WEB_USER>`.

<br><br>
## Cyberchef
Na Página Inicial do T-Pot, basta clicar em `Cyberchef` e você será encaminhado para o Cyberchef.

<br><br>
## Elasticvue
Na Página Inicial do T-Pot, basta clicar em `Elasticvue` e você será encaminhado para o Elasticvue.

<br><br>
## Spiderfoot
Na Página Inicial do T-Pot, basta clicar em `Spiderfoot` e você será encaminhado para o Spiderfoot.

<br><br>
# Configuração
## Arquivo de Configuração do T-Pot
O T-Pot oferece um arquivo de configuração que fornece variáveis não apenas para os serviços docker (ou seja, honeypots e ferramentas), mas também para o ambiente docker compose. O arquivo de configuração está oculto em `~/tpoce/.env`. Há também um arquivo de exemplo (`env.example`) que contém a configuração padrão.<br>
Antes da primeira inicialização, execute `~/tpotce/genuser.sh` ou configure o `WEB_USER` manualmente conforme descrito [aqui](#add-users-to-nginx-t-pot-webui).
## Personalizar Honeypots e Serviços do T-Pot
Em `~/tpotce/compose` você encontrará tudo o que precisa para ajustar a instalação T-Pot Standard / Hive:```
customizer.py
llm.yml
mac_win.yml
mini.yml
mobile.yml
sensor.yml
standard.yml
tarpit.yml
tpot_services.yml
Os arquivos .yml são arquivos docker compose, cada um representando um conjunto diferente de honeypots e ferramentas, com tpot_services.yml sendo um modelo para customizer.py criar um arquivo docker compose personalizado.
Para ativar um arquivo compose, siga estas etapas:
systemctl stop tpot.cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml.systemctl start tpot.Para criar seu arquivo docker compose personalizado:
cd ~/tpotce/compose.python3 customizer.py.docker-compose.yml. Como alguns honeypots e serviços ocupam as mesmas portas, ele verificará se há conflitos de porta e notificará sobre os serviços conflitantes. Você pode então resolvê-los manualmente ajustando docker-compose-custom.yml ou executando o script novamente.systemctl stop tpot.cp docker-compose-custom.yml ~/tpotce e cd ~/tpotce.docker-compose -f docker-compose-custom.yml up. Em caso de erros, siga a Especificação do Docker Compose para mitigação. Provavelmente é apenas um conflito de porta que você pode ajustar editando o arquivo docker compose.CTRL-C para parar os contêineres e execute docker-compose -f docker-compose-custom.yml down -v.mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml.systemctl start tpot.
O T-Pot foi projetado para ter baixa manutenção. Como quase tudo é fornecido por meio de imagens docker, basicamente não há nada que você precise fazer além de deixá-lo funcionar. Atualizaremos as imagens docker regularmente para reduzir os riscos de comprometimento; no entanto, você deve ler esta seção com atenção.
Se uma atualização falhar, abrir uma issue ou uma discussão ajudará a melhorar as coisas no futuro, mas a solução oferecida será sempre realizar uma instalação limpa, pois simplesmente não podemos fornecer suporte para dados perdidos!
A segurança do T-Pot depende das atualizações fornecidas para as imagens de distribuição Linux suportadas. Certifique-se de revisar a documentação do SO e garantir que as atualizações sejam instaladas regularmente pelo SO. Por padrão (~/tpotce/.env), TPOT_PULL_POLICY=always garantirá que, a cada inicialização do T-Pot, o docker verifique novas imagens docker e as baixe antes de criar os contêineres.
As versões do T-Pot são oferecidas através do GitHub e podem ser baixadas usando ~/tpotce/update.sh.
Se você fez alterações relevantes nos arquivos de configuração do T-Pot, certifique-se de criar um backup primeiro!
As atualizações podem ter consequências imprevistas. Crie um backup da máquina ou dos arquivos mais valiosos para o seu trabalho!
O script de atualização irá ...
~/tpotce~/tpotce para ficar em sincronia com o branch master do T-Potews.cfg personalizado de ~/tpotce/data/ews/conf e a configuração do T-Pot (~/tpotce/.env).Por padrão, o T-Pot adicionará uma reinicialização diária incluindo alguma limpeza. Você pode ajustar esta linha com `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 Conhecidos
Os seguintes problemas são conhecidos, basta seguir os passos descritos para resolvê-los.
<br><br>
### Imagens Docker Falham ao Fazer Download
Há algum tempo, o Docker introduziu [limites de download](https://docs.docker.com/docker-hub/download-rate-limit/#:~:text=Docker%20Hub%20limits%20the%20number,pulls%20per%206%20hour%20period.). Se você está baixando imagens Docker frequentemente por um único IP ou IP compartilhado, o endereço IP pode ter excedido o limite de download do Docker. Faça login na sua conta do Docker para aumentar o limite.```
sudo su -
docker login
O T-Pot foi projetado para ser executado apenas em máquinas com uma única NIC. O T-Pot tentará capturar a interface com a rota padrão, no entanto, não é garantido que isso sempre funcione. É melhor usar o T-Pot em máquinas com apenas uma única NIC.
O serviço T-Pot inicia e para automaticamente a cada reinicialização (o que ocorre uma vez por dia, conforme configurado em sudo crontab -l durante a instalação).
Se quiser iniciar manualmente o serviço T-Pot, pode fazê-lo através de systemctl start tpot e observar via dpsw a inicialização dos contentores.
O serviço T-Pot inicia e para automaticamente a cada reinicialização (o que ocorre uma vez por dia, conforme configurado em sudo crontab -l durante a instalação).
Se quiser parar manualmente o serviço T-Pot, pode fazê-lo através de systemctl stop tpot e observar via dpsw o encerramento dos contentores.
Todos os ficheiros de registo persistentes dos honeypots, ferramentas e serviços relacionados com o T-Pot são armazenados em ~/tpotce/data. Isto inclui artefactos recolhidos que não são transmitidos para o Elastic Stack.
Todos os dados de registo são armazenados na Pasta de Dados do T-Pot e serão persistidos pelo número de ciclos definido para TPOT_PERSISTENCE_CYCLES=<1-999> no ficheiro de configuração do T-Pot ~/tpotce/.env. O padrão é 30.
Os índices do Elasticsearch são geridos pela Política de Ciclo de Vida do Índice tpot, que pode ser ajustada diretamente no Kibana (certifique-se de "Incluir políticas de sistema geridas").
Por padrão, a Política de Ciclo de Vida do Índice tpot mantém os índices por 30 dias. Isto oferece um bom equilíbrio entre armazenamento e velocidade. No entanto, pode ajustar a política conforme as suas necessidades.
Todos os dados de registo armazenados na Pasta de Dados do T-Pot (exceto os índices do Elasticsearch, claro) podem ser apagados executando clean.sh.
Às vezes, as coisas podem quebrar além do reparo e nunca foi tão fácil repor um T-Pot para as predefinições de fábrica (certifique-se de entrar em cd ~/tpotce).
systemctl stop tpot.~/tpotce/data para um local seguro (isto é opcional, apenas por precaução).~/tpotce/data usando sudo rm -rf ~/tpotce/data.5. Agora você pode executar `~/tpotce/install.sh`.
<br><br>
## Mostrar Contêineres e Imagens
Pode mostrar todos os contêineres relevantes do T-Pot executando `dps` ou `dpsw [intervalo]`. O `intervalo (s)` executará novamente o `dps` periodicamente. Use `dim` para mostrar as imagens Docker disponíveis localmente, incluindo a coluna `CREATED`.
<br><br>
## Blackhole
O Blackhole executará o T-Pot de forma furtiva, sem visitas permanentes de scanners conhecidos publicamente, reduzindo assim a possibilidade de exposição. Embora seja sempre um jogo de gato e rato, a funcionalidade Blackhole está a encaminhar para nulo todos os pedidos de [scanners em massa conhecidos](https://raw.githubusercontent.com/stamparm/maltrail/master/trails/static/mass_scanner.txt) enquanto ainda captura os eventos através do Suricata.
<br>
A funcionalidade é ativada definindo `TPOT_BLACKHOLE=DISABLED` em `~/tpotce/.env`, depois execute `systemctl stop tpot` e `systemctl start tpot` ou `sudo reboot`.
<br>
Ativar esta funcionalidade reduzirá drasticamente a visibilidade dos atacantes e, consequentemente, resultará em menos atividade. No entanto, como já mencionado, não é garantia de total invisibilidade nem impedirá a identificação de alguns serviços honeypot.
<br><br>
## Adicionar Utilizadores ao Nginx (Interface Web do T-Pot)
O Nginx (Interface Web do T-Pot) permite adicionar quantas contas `<WEB_USER>` desejar (de acordo com os [Tipos de Utilizador](#user-types)).<br>
Para **adicionar** um novo utilizador execute `~/tpotce/genuser.sh`.<br>
Para **remover** utilizadores abra `~/tpotce/.env`, localize `WEB_USER` e remova a string base64 correspondente (para descodificar: `echo <base64_string> | base64 -d`, ou abra o CyberChef e carregue a receita "From Base64").<br>
Para que as alterações tenham efeito, precisa reiniciar o T-Pot usando `systemctl stop tpot` e `systemctl start tpot` ou `sudo reboot`.
<br><br>
## Importar e Exportar Objetos do Kibana
Algumas atualizações do T-Pot exigirão que atualize os objetos do Kibana. Seja para suportar novos honeypots ou para melhorar painéis ou visualizações existentes. Certifique-se de ***exportar*** primeiro para não perder as suas personalizações.
### Exportar
1. Vá para o Kibana
2. Clique em "Stack Management"
3. Clique em "Saved Objects"
4. Clique em "Exportar <n.º> objetos"
5. Clique em "Exportar tudo"
Isto exportará um ficheiro NDJSON com todos os seus objetos. Execute sempre uma exportação completa para garantir que todas as referências estão incluídas.
### Importar
1. [Descarregue o ficheiro NDJSON](https://raw.githubusercontent.com/telekom-security/tpotce/refs/heads/master/docker/tpotinit/dist/etc/objects/kibana_export.ndjson.zip) e descompacte-o.
2. Vá para o Kibana
3. Clique em "Stack Management"
4. Clique em "Saved Objects"
5. Clique em "Importar" e mantenha as predefinições (verificar objetos existentes e substituir automaticamente conflitos) se não tiver feito alterações pessoais aos objetos do Kibana.
6. Selecione o ficheiro NDJSON
Quando for perguntado: "Se algum dos objetos já existir, deseja substituí-los automaticamente?" responda "Sim, substituir todos".
<br><br>
# Resolução de Problemas
Geralmente, o T-Pot é oferecido ***tal como está*** sem qualquer compromisso de suporte. Podem ser abertos issues e discussões, mas prepare-se para incluir informações básicas necessárias para que a comunidade possa ajudar.
<br><br>
## Registos
* Verifique se os seus contêineres estão a funcionar corretamente: `dps`
* Verifique as imagens Docker disponíveis localmente e a sua idade: `dim`
* Verifique se os recursos do sistema não estão esgotados: `htop`, `docker stats`
* Verifique se existe um conflito de portas:```
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 <nome_do_container>tpotinit: cat ~/tpotce/data/tpotinit.log
O Elastic Stack é faminto por RAM, especificamente logstash e elasticsearch. Se o Elastic Stack estiver indisponível, não receber logs ou simplesmente continuar travando, provavelmente é um problema de RAM ou armazenamento.
Enquanto o T-Pot tenta reiniciar os serviços/contêineres, execute docker logs -f <nome_do_container> (logstash ou elasticsearch) e verifique se há avisos ou falhas envolvendo RAM.
Falhas de armazenamento podem ser identificadas mais facilmente via htop.
O T-Pot é fornecido como está, em código aberto, sem qualquer compromisso de suporte (veja o aviso legal).
Se você é um pesquisador de segurança e deseja reportar um problema de forma responsável, entre em contato com nosso CERT.
Por favor, reporte problemas (erros) em nosso GitHub Issues, mas faça a solução de problemas primeiro. Problemas que não fornecerem informações para resolver o erro serão fechados ou convertidos em discussões.
Use a função de pesquisa primeiro, é possível que um problema semelhante já tenha sido abordado ou discutido, com a solução a uma pesquisa de distância.
Perguntas gerais, ideias, mostre e conte, etc., podem ser abordadas em nossas GitHub Discussions.
Use a função de pesquisa, é possível que uma discussão semelhante já tenha sido aberta, com uma resposta a uma pesquisa de distância.
O software no qual o T-Pot é construído utiliza as seguintes licenças.
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
Sem o código aberto e a comunidade de desenvolvimento da qual temos orgulho de fazer parte, o T-Pot não teria sido possível! Nossos agradecimentos se estendem, mas não se limitam, às seguintes pessoas e organizações:
Um dos maiores feedbacks que recebemos até agora é de um dos desenvolvedores do Conpot:
"[...] Eu recomendo fortemente o T-Pot, que é... não é exatamente um canivete suíço... é mais como um soldado suíço, equipado com um canivete suíço. Dentro de um tanque. Um tanque suíço. [...]"
E de @robcowart (criador do ElastiFlow):
"O #TPot é uma das soluções de honeypot turnkey mais bem montadas. É obrigatório para qualquer pessoa que queira analisar e entender o comportamento de atores maliciosos e a ameaça que representam para sua organização."