
🍯 T-Pot - La piattaforma multi-honeypot tutto in uno 🐝

T-Pot è la piattaforma honeypot tutto in uno, opzionalmente distribuita, multiarch (amd64, arm64), che supporta oltre 20 honeypot e innumerevoli opzioni di visualizzazione utilizzando Elastic Stack, mappe animate degli attacchi in tempo reale e molti strumenti di sicurezza per migliorare ulteriormente l'esperienza di simulazione.
ssh)curl: $ sudo [apt, dnf, zypper] install curl se non è già installato$HOME:```
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"* Seguire le istruzioni, leggere i messaggi, verificare eventuali conflitti di porte e riavviare
<!-- TOC -->
- [T-Pot - La Piattaforma Multi Honeypot Tutto in Uno](#t-pot---la-piattaforma-multi-honeypot-tutto-in-uno)
- [TL;DR](#tldr)
- [Disclaimer](#disclaimer)
- [Concetto Tecnico](#concetto-tecnico)
- [Honeypot e Strumenti](#honeypot-e-strumenti)
- [Architettura Tecnica](#architettura-tecnica)
- [Servizi](#servizi)
- [Tipi di Utente](#tipi-di-utente)
- [Requisiti di Sistema](#requisiti-di-sistema)
- [Esecuzione in una VM](#esecuzione-in-una-vm)
- [Esecuzione su Hardware](#esecuzione-su-hardware)
- [Esecuzione nel Cloud](#esecuzione-nel-cloud)
- [Porte Richieste](#porte-richieste)
- [Honeypot Basati su LLM](#honeypot-basati-su-llm)
- [Ollama](#ollama)
- [ChatGPT](#chatgpt)
- [Posizionamento del Sistema](#posizionamento-del-sistema)
- [Installazione](#installazione)
- [Scegli la tua distribuzione](#scegli-la-tua-distribuzione)
- [Supporto Raspberry Pi 4 (8GB)](#supporto-raspberry-pi-4-8gb)
- [Ottieni e installa T-Pot](#ottieni-e-installa-t-pot)
- [macOS e Windows](#macos-e-windows)
- [Red Hat Enterprise Linux](#red-hat-enterprise-linux)
- [Tipi di Installazione](#tipi-di-installazione)
- [Standard / Hive](#standard--hive)
- [Distribuito](#distribuito)
- [Disinstalla T-Pot](#disinstalla-t-pot)
- [Primo Avvio](#primo-avvio)
- [Primo Avvio Standalone](#primo-avvio-standalone)
- [Distribuzione Distribuita](#distribuzione-distribuita)
- [Pianificazione e Certificati](#pianificazione-e-certificati)
- [Distribuzione dei Sensori](#distribuzione-dei-sensori)
- [Rimozione dei Sensori](#rimozione-dei-sensori)
- [Invio dei Dati alla Community](#invio-dei-dati-alla-community)
- [Invio Dati HPFEEDS Opt-In](#invio-dati-hpfeeds-opt-in)
- [Accesso Remoto e Strumenti](#accesso-remoto-e-strumenti)
- [SSH](#ssh)
- [Pagina di Benvenuto di T-Pot](#pagina-di-benvenuto-di-t-pot)
- [Dashboard Kibana](#dashboard-kibana)
- [Mappa degli Attacchi](#mappa-degli-attacchi)
- [Cyberchef](#cyberchef)
- [Elasticvue](#elasticvue)
- [Spiderfoot](#spiderfoot)
- [Configurazione](#configurazione)
- [File di Configurazione di T-Pot](#file-di-configurazione-di-t-pot)
- [Personalizza Honeypot e Servizi di T-Pot](#personalizza-honeypot-e-servizi-di-t-pot)
- [Manutenzione](#manutenzione)
- [Aggiornamenti Generali](#aggiornamenti-generali)
- [Script di Aggiornamento](#script-di-aggiornamento)
- [Riavvio Giornaliero](#riavvio-giornaliero)
- [Problemi Noti](#problemi-noti)
- [Download delle Immagini Docker Fallito](#download-delle-immagini-docker-fallito)
- [Rete di T-Pot Non Funzionante](#rete-di-t-pot-non-funzionante)
- [Avvia T-Pot](#avvia-t-pot)
- [Ferma T-Pot](#ferma-t-pot)
- [Cartella Dati di T-Pot](#cartella-dati-di-t-pot)
- [Persistenza dei Log](#persistenza-dei-log)
- [Ripristino alle Impostazioni di Fabbrica](#ripristino-alle-impostazioni-di-fabbrica)
- [Mostra Contenitori e Immagini](#mostra-contenitori-e-immagini)
- [Blackhole](#blackhole)
- [Aggiungi Utenti a Nginx (WebUI di T-Pot)](#aggiungi-utenti-a-nginx-webui-di-t-pot)
- [Importa ed Esporta Oggetti Kibana](#importa-ed-esporta-oggetti-kibana)
- [Esporta](#esporta)
- [Importa](#importa)
- [Risoluzione dei Problemi](#risoluzione-dei-problemi)
- [Log](#log)
- [RAM e Storage](#ram-e-storage)
- [Contatti](#contatti)
- [Problemi](#problemi)
- [Discussioni](#discussioni)
- [Licenze](#licenze)
- [Crediti](#crediti)
- [Gli sviluppatori e le comunità di sviluppo di](#gli-sviluppatori-e-le-comunità-di-sviluppo-di)
- [**Le seguenti aziende e organizzazioni**](#le-seguenti-aziende-e-organizzazioni)
- [**E naturalmente ***TU*** per esserti unito alla community!**](#e-naturalmente-tu-per-esserti-unito-alla-community)
- [Testimonianze](#testimonianze)
- [Grazie 💖](#grazie-)
<!-- TOC -->
<br><br>
# Disclaimer
- Installi ed esegui T-Pot sotto la tua responsabilità. Scegli la tua distribuzione con saggezza poiché un compromesso del sistema non può mai essere escluso.
- Per un aiuto rapido, consulta gli [Issues](https://github.com/telekom-security/tpotce/issues) e le [Discussion](https://github.com/telekom-security/tpotce/discussions).
- Il software è progettato e offerto con la massima attenzione possibile. Come progetto comunitario e open source, utilizza molto altro software open source e può contenere bug e problemi. Segnala in modo responsabile.
- Gli honeypot - per progettazione - non dovrebbero ospitare dati sensibili. Assicurati di non aggiungerne.
- Per impostazione predefinita, i tuoi dati vengono inviati a [Sicherheitstacho](https://www.sicherheitstacho.eu/start/main). Puoi disabilitarlo nel config (`~/tpotce/docker-compose.yml`) [rimuovendo](#community-data-submission) la sezione `ewsposter`. Ma in questo caso condividere è prendersi cura!
<br><br>
# Concetto Tecnico
I componenti principali di T-Pot sono stati spostati nell'immagine Docker `tpotinit` consentendo a T-Pot di supportare ora più distribuzioni Linux, persino macOS e Windows (anche se entrambi limitati alle funzionalità di Docker Desktop). T-Pot utilizza [docker](https://www.docker.com/) e [docker compose](https://docs.docker.com/compose/) per raggiungere il suo obiettivo di eseguire quanti più honeypot e strumenti possibili contemporaneamente, utilizzando così al massimo l'hardware dell'host.
<br><br>
## Honeypot e Strumenti
- T-Pot offre immagini docker per i seguenti honeypot:<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)
Insieme ai seguenti strumenti:
* [Autoheal](https://github.com/willfarrell/docker-autoheal) uno strumento per riavviare automaticamente i contenitori con healthcheck falliti.
* [Cyberchef](https://gchq.github.io/CyberChef/) un'app web per crittografia, codifica, compressione e analisi dei dati.
* [Elastic Stack](https://www.elastic.co/videos) per visualizzare magnificamente tutti gli eventi catturati da T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) un frontend web per navigare e interagire con un cluster Elasticsearch.
* [Fatt](https://github.com/0x4D31/fatt) uno script basato su pyshark per estrarre metadati di rete e impronte digitali da file pcap e traffico di rete in tempo reale.
* [T-Pot-Attack-Map](https://github.com/telekom-security/t-pot-attack-map) una mappa degli attacchi splendidamente animata per T-Pot.
* [P0f](https://lcamtuf.coredump.cx/p0f3/) è uno strumento per il fingerprinting passivo puro del traffico.
* [Spiderfoot](https://github.com/smicallef/spiderfoot) uno strumento di automazione dell'intelligence open source.
* [Suricata](https://suricata.io/) un motore di Network Security Monitoring.
... per darti la migliore esperienza out-of-the-box possibile e un sistema multi-honeypot facile da usare.
<br><br>
## Architettura Tecnica

Il codice sorgente e i file di configurazione sono completamente archiviati nel repository GitHub di T-Pot. Le immagini docker sono costruite e preconfigurate per l'ambiente T-Pot.
I singoli Dockerfile e le configurazioni si trovano nella [cartella docker](https://github.com/telekom-security/tpotce/tree/master/docker).
<br><br>
## Servizi
T-Pot offre una serie di servizi che sono sostanzialmente suddivisi in cinque gruppi:
1. Servizi di sistema forniti dal sistema operativo
* SSH per l'accesso remoto sicuro.
2. Elastic Stack
* Elasticsearch per l'archiviazione degli eventi.
* Logstash per l'inserimento, la ricezione e l'invio di eventi a Elasticsearch.
* Kibana per la visualizzazione degli eventi su dashboard splendidamente renderizzate.
3. Strumenti
* NGINX fornisce accesso remoto sicuro (proxy inverso) a Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot e consente ai sensori T-Pot di trasmettere in modo sicuro i dati degli eventi all'alveare T-Pot.
* CyberChef un'app web per crittografia, codifica, compressione e analisi dei dati.
* Elasticvue un frontend web per navigare e interagire con un cluster Elasticsearch.
* T-Pot Attack Map una mappa degli attacchi splendidamente animata per T-Pot.
* Spiderfoot uno strumento di automazione dell'intelligence open source.
4. Honeypot
* Una selezione dei 23 honeypot disponibili basata sul `docker-compose.yml` selezionato.
5. Network Security Monitoring (NSM)
* Fatt uno script basato su pyshark per estrarre metadati di rete e impronte digitali da file pcap e traffico di rete in tempo reale.
* P0f è uno strumento per il fingerprinting passivo puro del traffico.
* Suricata un motore di Network Security Monitoring.
<br><br>
## Tipi di Utente
Durante l'installazione e l'uso di T-Pot ci sono due diversi tipi di account con cui lavorerai. Assicurati di conoscere le differenze tra i diversi tipi di account, poiché è **di gran lunga** la ragione più comune per errori di autenticazione.
| Servizio | Tipo di Account | Nome Utente / Gruppo | Descrizione |
|:-----------------|:----------------|:---------------------|:--------------------------------------------------------------------|
| SSH | Sistema Operativo | `<OS_USERNAME>` | L'utente scelto durante l'installazione del sistema operativo. |
| Nginx | BasicAuth | `<WEB_USER>` | `<web_user>` scelto durante l'installazione di T-Pot. |
| CyberChef | BasicAuth | `<WEB_USER>` | `<web_user>` scelto durante l'installazione di T-Pot. |
| Elasticvue | BasicAuth | `<WEB_USER>` | `<web_user>` scelto durante l'installazione di T-Pot. |
| Mappa Attacchi GeoIP | BasicAuth | `<WEB_USER>` | `<web_user>` scelto durante l'installazione di T-Pot. |
| Spiderfoot | BasicAuth | `<WEB_USER>` | `<web_user>` scelto durante l'installazione di T-Pot. |
| T-Pot | Sistema Operativo | `tpot` | `tpot` questo utente/gruppo è sempre riservato ai servizi di T-Pot. |
| Log T-Pot | BasicAuth | `<LS_WEB_USER>` | `LS_WEB_USER` sono gestiti automaticamente. |
<br><br>
# Requisiti di Sistema
A seconda delle [immagini delle distribuzioni Linux supportate](#scegli-la-tua-distribuzione), hive / sensore, installazione su [hardware reale](#esecuzione-su-hardware), in una [macchina virtuale](#esecuzione-in-una-vm) o altri ambienti, ci sono diversi tipi di requisiti da soddisfare riguardanti sistema operativo, RAM, storage e rete per un'installazione riuscita di T-Pot (puoi sempre modificare `~/tpotce/docker-compose.yml` e `~/tpotce/.env` in base alle tue esigenze per superare questi requisiti).
<br><br>
| Tipo T-Pot | RAM | Storage | Descrizione |
|:-----------|:-----|:----------|:----------------------------------------------------------------------------------------------------|
| Hive | 16GB | 256GB SSD | Come regola generale, più honeypot, sensori e dati, maggiore RAM e storage sono necessari. |
| Sensore | 8GB | 128GB SSD | Poiché i log degli honeypot vengono conservati (~/tpotce/data) per 30 giorni, lo storage dipende dal volume di attacchi. |
T-Pot richiede:
- un indirizzo IPv4 tramite DHCP o assegnato staticamente
- una connessione internet funzionante, non proxyata
... per un'installazione e un funzionamento riusciti.
<br><br>
*Se hai bisogno del supporto proxy o di altre funzionalità non standard, dovresti consultare la documentazione delle [immagini delle distribuzioni Linux supportate](#scegli-la-tua-distribuzione) e/o la [documentazione di Docker](https://docs.docker.com/).*
<br><br>
## Esecuzione in una VM
Tutte le [immagini delle distribuzioni Linux supportate](#scegli-la-tua-distribuzione) funzioneranno in una VM, quindi T-Pot funzionerà senza problemi. Le seguenti sono state testate / segnalate come funzionanti:
* [UTM (Intel e 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)
* Anche KVM è stato segnalato funzionante.
***Alcuni suggerimenti per la configurazione / installazione:***
- Mentre le versioni Intel sono stabili, il supporto Apple Silicon (arm64) presenta problemi noti che in UTM potrebbero richiedere di passare `Display` a `Console Only` durante l'installazione iniziale del sistema operativo e successivamente di tornare a `Full Graphics`.
- Durante la configurazione potresti aver bisogno di abilitare la modalità promiscua per l'interfaccia di rete affinché fatt, suricata e p0f funzionino correttamente.
- Se desideri utilizzare una scheda WiFi come NIC primaria per T-Pot, tieni presente che non tutti i driver dell'interfaccia di rete supportano tutte le schede wireless. In VirtualBox, ad esempio, devi scegliere il modello *"MT SERVER"* della NIC.
<br><br>
## Esecuzione su Hardware
T-Pot è limitato solo dal supporto hardware delle [immagini delle distribuzioni Linux supportate](#scegli-la-tua-distribuzione). Si consiglia di controllare la HCL (hardware compatibility list) e testare le distribuzioni supportate con T-Pot prima di investire in hardware dedicato.
<br><br>
## Esecuzione nel Cloud
T-Pot è stato testato e noto per funzionare su ...
* Telekom OTC utilizzando il metodo post install
... altri potrebbero funzionare, ma rimangono non testati.
Alcuni utenti segnalano installazioni funzionanti su altri cloud e hosting, ad esempio Azure e GCP. I requisiti hardware potrebbero essere diversi. Se non sei sicuro, dovresti fare ricerche negli [issues](https://github.com/telekom-security/tpotce/issues) e nelle [discussions](https://github.com/telekom-security/tpotce/discussions) ed eseguire alcuni test funzionali. Con T-Pot 24.04.0 in poi, abbiamo assicurato di rimuovere le impostazioni che erano note per interferire con le installazioni basate su cloud.
<br><br>
## Porte Richieste
Oltre alle porte generalmente necessarie per il sistema operativo (ad esempio, ottenere un lease DHCP, DNS, ecc.), T-Pot richiederà le seguenti porte per le connessioni in entrata/uscita. Consulta l'[Architettura di T-Pot](#architettura-tecnica) per una rappresentazione visiva. Inoltre, alcune porte appariranno come duplicate, il che è normale poiché utilizzate in diverse edizioni.| Port | Protocol | Direction | Descrizione |
|:--------------------------------------------------------------------------------------------------------------------------------------|:---------|:----------|:----------------------------------------------------------------------------------------------------|
| 80, 443 | tcp | uscente | Gestione T-Pot: Installazione, Aggiornamenti, Log (es. OS, GitHub, DockerHub, Sicherheitstacho, ecc.) |
| 11434 | tcp | uscente | Honeypot basati su LLM: Accesso alla tua installazione Ollama |
| 64294 | tcp | entrante | Gestione T-Pot: Trasmissione dati sensore verso l'alveare (tramite proxy inverso NGINX) a 127.0.0.1:64305 |
| 64295 | tcp | entrante | Gestione T-Pot: Accesso a SSH |
| 64297 | tcp | entrante | Gestione T-Pot: Accesso al proxy inverso NGINX |
| 5555 | tcp | entrante | Honeypot: ADBHoney |
| 22 | tcp | entrante | Honeypot: Beelzebub (richiede 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 (richiede 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 |
Le porte e la disponibilità dei servizi SaaS possono variare in base alla tua posizione geografica.
Per alcuni honeypot, per raggiungere la piena funzionalità (es. Cowrie o Log4Pot) sono necessarie anche connessioni verso l'esterno, per permettere loro di scaricare il malware dell'attaccante. Consulta la documentazione del singolo honeypot per saperne di più seguendo i [link](#technical-concept) ai loro repository.
## Honeypot Basati su LLM
Riteniamo che gli honeypot basati su LLM segnino l'**inizio** di un cambiamento epocale nel campo della deception / honeypot. Di conseguenza, a partire dal rilascio di **T-Pot 24.04.1**, sono stati introdotti due honeypot basati su LLM: **Beelzebub** e **Galah**. Questi honeypot richiedono un'installazione di **Ollama**, che deve essere configurata nel [file di configurazione di T-Pot](#t-pot-config-file). Puoi anche modificare le impostazioni in questo file per il supporto di **ChatGPT**, ma tieni presente che saranno necessarie modifiche anche nel file docker compose (`~/tpotce/compose/llm.yml`) per adattarsi a queste regolazioni.<br><br>
Segui i link nella sezione [Honeypot e Strumenti](#honeypots-and-tools) per saperne di più su **Beelzebub** e **Galah**.
### Ollama
🚨 **L'uso basato su CPU non è raccomandato**, nemmeno per test.<br><br>
Per configurare ed eseguire **Ollama**, consulta il [repository GitHub di Ollama](https://github.com/ollama/ollama) per le istruzioni. Per scopi introduttivi o di test, è possibile ottenere risultati utilizzando una **Nvidia RTX 4060 Ti 16GB** o equivalente (AMD's ROCm è supportato da Ollama), con modelli come **openchat** e **Llama3**. Come regola generale per i sistemi basati su LLM, migliore e maggiore è l'hardware utilizzato, più veloci e precisi saranno i risultati, specialmente quando i compiti vengono scaricati su più GPU e modelli più grandi.
### ChatGPT
Il supporto di ChatGPT per questi honeypot rimarrà non testato in relazione a T-Pot.
<br><br>
# Posizionamento del Sistema
Si consiglia di familiarizzare con il funzionamento di T-Pot e degli honeypot prima di esporli verso internet. Per un avvio rapido, esegui un'installazione di T-Pot in una macchina virtuale.
<br><br>
Una volta che avrai familiarizzato con il funzionamento, dovresti scegliere una rete in cui sospetti la presenza di intrusi (es. internet). Altrimenti, T-Pot molto probabilmente non catturerà alcun attacco (a meno che tu non voglia dimostrare un punto)! Per iniziare, si consiglia di posizionare T-Pot in una zona non filtrata, dove tutto il traffico TCP e UDP viene inoltrato all'interfaccia di rete di T-Pot. Per evitare la scansione delle porte di gestione di T-Pot, dovresti mettere T-Pot dietro un firewall e inoltrare tutto il traffico TCP/UDP nell'intervallo di porte 1-64000 a T-Pot, consentendo l'accesso alle porte > 64000 solo da IP fidati e/o esponendo solo le [porte](#required-ports) rilevanti per il tuo caso d'uso. Se desideri catturare il traffico malware su porte sconosciute, non dovresti limitare le porte che inoltri, poiché glutton e honeytrap legano dinamicamente qualsiasi porta TCP non occupata da altri demone honeypot, dandoti così una migliore rappresentazione dei rischi a cui la tua configurazione è esposta.
<br><br>
# Installazione
[Scarica](#choose-your-distro) una delle [immagini Linux supportate](#choose-your-distro), segui le istruzioni [TL;DR](#tldr) oppure esegui `git clone` del repository T-Pot ed esegui l'installer `~/tpotce/install.sh`. È possibile eseguire T-Pot su un sistema Linux già in esecuzione e supportato, ma si consiglia un'installazione pulita per evitare conflitti di porte con i servizi in esecuzione. L'installer di T-Pot richiederà l'accesso diretto a internet come descritto [qui](#required-ports).
<br><br>
## Scegli la tua distribuzione
**Passaggi da seguire:**
1. Scarica una distribuzione Linux supportata dall'elenco seguente. (NOTA: Red Hat Enterprise Linux >= 8 è supportato, ma omesso dall'elenco seguente a causa della sua natura basata su abbonamento. Vedi [Red Hat Enterprise Linux](#red-hat-enterprise-linux) per i dettagli).
2. Durante l'installazione scegli una versione **minima**, **netinstall** o **server** che installerà solo i pacchetti essenziali.
3. **Non** installare mai un ambiente desktop grafico come Gnome o KDE. T-Pot non funzionerà a causa di conflitti di porte.
4. Assicurati di installare SSH, in modo da poterti connettere alla macchina da remoto.
| Nome Distribuzione | x64 | arm64 |
|:-----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| [Alma Linux OS 9.x Minimal ISO](https://almalinux.org) | [scarica](https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9.8-x86_64-minimal.iso) | [scarica](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) | [scarica](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.5.0-amd64-netinst.iso) | [scarica](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) | [scarica](https://download.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/iso/Fedora-Server-netinst-x86_64-42-1.1.iso) | [scarica](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) | [scarica](https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso) | [scarica](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) | [scarica](https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.8-x86_64-minimal.iso) | [scarica](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) | [scarica](https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso) | [scarica](https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso) |
<br>
## Supporto Raspberry Pi 4 (8GB)
| Nome Distribuzione | arm64 |
|:-----------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------|
| [Raspberry Pi OS (**64Bit, Lite**)](https://www.raspberrypi.com) | [scarica](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>
## Ottieni e installa T-Pot
1. Clona il repository GitHub: `$ git clone https://github.com/telekom-security/tpotce` oppure segui il [TL;DR](#tldr) e salta questa sezione.
2. Entra nella cartella **tpotce/**: `$ cd tpotce`
3. Esegui l'installer come non-root: `$ ./install.sh`:
* ⚠️ ***A seconda della distribuzione Linux scelta, l'installer:***
* Cambierà la porta SSH in `tcp/64295`
* Disabiliterà il DNS Stub Listener per evitare conflitti di porte con gli honeypot
* Imposterà SELinux in Modalità Monitor
* Imposterà il target del firewall per la zona pubblica su ACCEPT
* Aggiungerà il repository di Docker e installerà Docker
* Installerà i pacchetti consigliati
* Rimuoverà i pacchetti noti per causare problemi
* Aggiungerà l'utente corrente al gruppo docker (consentire l'interazione con docker senza `sudo`)
* Aggiungerà gli alias `dps`, `dpsw` e `dim` per visualizzazioni formattate di container e immagini
* Aggiungerà gli alias `la`, `ll` e `ls` (per `exa`, un comando `ls` migliorato)
* Aggiungerà `mi` (per `micro`, un'ottima alternativa a `vi` e/o `nano`)
* Mostrerà le porte aperte sull'host (confronta con le porte [richieste](https://github.com/telekom-security/tpotce#required-ports) di T-Pot)
* Aggiungerà e abiliterà `tpot.service` in `/etc/systemd/system` in modo che T-Pot possa avviarsi e fermarsi automaticamente
4. Segui le istruzioni dell'installer, dovrai inserire la password del tuo utente (`sudo` o `root`) almeno una volta
5. Controlla i messaggi dell'installer per errori e porte aperte che potrebbero causare conflitti
6. Riavvia: `$ sudo reboot`
<br><br>## macOS e Windows
A volte è bello poter avviare un'istanza di T-Pot su macOS o Windows, ad esempio per sviluppo, test o semplicemente per divertimento. Poiché Docker Desktop è piuttosto limitato, non tutti i tipi di honeypot o le funzionalità di T-Pot sono supportati. Ricorda anche che, per impostazione predefinita, il firewall di macOS e Windows blocca l'accesso da remoto, quindi i test sono limitati all'host. Per la produzione si consiglia di eseguire T-Pot su [Linux](#choose-your-distro).<br>
Per avviare e far funzionare il tutto, segui questi passaggi:
1. Installa Docker Desktop per [macOS](https://docs.docker.com/desktop/setup/install/mac-install/) o [Windows](https://docs.docker.com/desktop/setup/install/windows-install/).
2. Clona il repository GitHub: `git clone https://github.com/telekom-security/tpotce` (su Windows assicurati che il codice sia estratto con `LF` invece di `CRLF`!)
3. Vai a: `cd ~/tpotce`
4. Copia `cp compose/mac_win.yml ./docker-compose.yml`
5. Crea un `WEB_USER` eseguendo `~/tpotce/genuser.sh` (macOS) o `~/tpotce/genuserwin.ps1` (Windows)
6. Modifica il file `.env` cambiando `TPOT_OSTYPE=linux` in `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 se vuoi che T-Pot venga eseguito in background.CTRL-C (se era in esecuzione in primo piano) e/o docker compose down -v per fermare completamente T-Pot.Red Hat Enterprise Linux (RHEL) è un caso un po' particolare in quanto:
grc) dipende da Python 2, che è stato rimosso dopo RHEL 7. Viene omessa dall'installazione di T-Pot su RHEL.Con T-Pot Standard / Hive, tutti i servizi, gli strumenti, gli honeypot, ecc. verranno installati su un singolo host che funge anche da endpoint Hive. Assicurati di soddisfare i requisiti di sistema. Puoi modificare ~/tpotce/docker-compose.yml in base al tuo caso d'uso personale o creare la tua configurazione personalizzata utilizzando ~/tpotce/compose/customizer.py per un'esperienza T-Pot su misura per le tue esigenze.
Una volta completata l'installazione, puoi procedere a Primo Avvio.
La versione distribuita di T-Pot richiede almeno due host
La disinstallazione di T-Pot è disponibile solo sulle distribuzioni Linux supportate.
Per disinstallare T-Pot esegui ~/tpotce/uninstall.sh e segui le istruzioni del programma di disinstallazione; dovrai inserire la tua password almeno una volta.
Una volta terminata la disinstallazione, riavvia la macchina con sudo reboot
Una volta che l'installer di T-Pot termina con successo, il sistema deve essere riavviato (sudo reboot). Dopo il riavvio, puoi accedere al sistema utilizzando l'utente che hai impostato durante l'installazione del sistema. Gli accessi avvengono secondo i Tipi di Utente:
<OS_USERNAME>]Puoi accedere tramite SSH alla riga di comando: ssh -l <OS_USERNAME> -p 64295 <your.ip>:
<OS_USERNAME>]Puoi anche accedere dal tuo browser e accedere alla WebUI e agli strumenti di T-Pot: https://<your.ip>:64297
<WEB_USER>]Non c'è molto da fare se non accedere e verificare tramite dps che tutti i servizi e gli honeypot si avviino correttamente. Puoi usare dim per rivedere le immagini Docker installate, inclusa la loro età CREATED, quindi accedere a Kibana e/o alla Mappa degli Attacchi Geoip per monitorare gli attacchi.
La distribuzione distribuita implica una pianificazione, poiché T-Pot Init creerà solo un certificato autofirmato per l'IP dell'host Hive, che di solito è adatto per configurazioni semplici. Poiché logstash verificherà la validità del certificato al momento della connessione, una configurazione distribuita in cui Hive è raggiungibile su più IP (es. RFC 1918 e IP NAT pubblico) e magari anche un nome di dominio causerà un errore di connessione in cui il certificato non può essere convalidato, poiché tale configurazione necessita di un certificato con un nome comune e SAN (Subject Alternative Name).
Prima di distribuire qualsiasi sensore, assicurati di aver pianificato correttamente nomi di dominio e IP per evitare problemi con il certificato. Per maggiori dettagli, vedi issue #1543.
Adatta l'esempio alla tua configurazione IP/dominio e segui i comandi per cambiare il certificato di 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
Il file di configurazione di T-Pot (`.env`) permette di disabilitare la verifica SSL per le connessioni logstash dal **Sensor** all'**Hive** impostando `LS_SSL_VERIFICATION=none`. Per motivi di sicurezza ciò è consigliato solo per ambienti di laboratorio o di test.<br><br>
Se si sceglie di utilizzare un certificato valido per l'**Hive** firmato da una CA (ad esempio Let's Encrypt), logstash, e quindi il **Sensor**, non dovrebbe avere problemi a connettersi e a trasmettere i suoi log all'**Hive**.
### Distribuzione dei Sensori
Una volta riavviato il **Sensor** come indicato dal programma di installazione, puoi proseguire con la distribuzione distribuita accedendo all'**Hive** e andando nella cartella `cd ~/tpotce`. Assicurati di aver compreso la sezione [Pianificazione e Certificati](#planning-and-certificates) prima di procedere con l'effettiva distribuzione.
Se non lo hai già fatto, genera una chiave SSH per accedere in modo sicuro al **Sensor** e per consentire ad `Ansible` di eseguire un playbook sul sensore:
1. Esegui `ssh-keygen`, segui le istruzioni e lascia vuota la passphrase: ```
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
Distribuisci la chiave al Sensore eseguendo 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.
Come suggerito, segui le istruzioni per testare la connessione ssh -p '64295' '<your_user>@<Sensor_IP>'.
Una volta che la chiave è stata distribuita con successo, esegui ./deploy.sh e segui le istruzioni.
Identifica la variabile TPOT_HIVE_USER sul Sensor nel file di configurazione $HOME/tpotce/.env (è una stringa codificata in base64). Ora identifica la stessa stringa nella variabile LS_WEB_USER sul Hive nel file di configurazione $HOME/tpotce/.env. Rimuovi la stringa e riavvia T-Pot.
Ora puoi eliminare in sicurezza la macchina Sensor.
T-Pot è fornito per renderlo accessibile a tutti gli interessati agli honeypot. Per impostazione predefinita, i dati catturati vengono inviati a un backend della community. Questo backend della community utilizza i dati per alimentare Sicherheitstacho.
Puoi rinunciare all'invio rimuovendo il servizio # Ewsposter service da ~/tpotce/docker-compose.yml seguendo questi passaggi:
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. Avvia i servizi T-Pot: `systemctl start tpot`
È consigliato non disabilitare l'invio dei dati poiché è lo scopo principale dell'approccio comunitario - come tutti sapete **condividere è prendersi cura** 😍
<br><br>
## Invio dei Dati HPFEEDS Opt-In
Come Opt-In è possibile condividere i dati di T-Pot con broker HPFEEDS di terze parti.
1. Segui le istruzioni [qui](#community-data-submission) per fermare i servizi T-Pot e aprire `~/tpotce/docker-compose.yml`.
2. Scorri fino alla sezione `ewsposter` e modifica le impostazioni HPFEEDS in base alle tue esigenze.
3. Se hai bisogno di aggiungere un certificato CA, aggiungilo a `~/tpotce/data/ews/conf` e imposta `EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>`.
4. Avvia i servizi T-Pot: `systemctl start tpot`.
<br><br>
# Accesso Remoto e Strumenti
L'accesso remoto al tuo host / T-Pot è possibile tramite SSH (su **`tcp/64295`**) e alcuni servizi e strumenti vengono forniti con T-Pot per rendere alcuni dei tuoi compiti di ricerca molto più facili.
<br><br>
## SSH
Secondo i [Tipi di Utente](#user-types) puoi accedere tramite SSH alla riga di comando: `ssh -l <OS_USERNAME> -p 64295 <your.ip>`:
- utente: **[`<OS_USERNAME>`]**
- password: **[password]**
<br><br>
## Pagina Iniziale di T-Pot
Secondo i [Tipi di Utente](#user-types) puoi aprire la Pagina Iniziale di T-Pot dal tuo browser all'indirizzo `https://<your.ip>:64297`:
- utente: **[`<WEB_USER>`]**
- password: **[password]**

<br><br>
## Dashboard Kibana
Dalla Pagina Iniziale di T-Pot clicca su `Kibana` e verrai reindirizzato a Kibana. Puoi selezionare tra una vasta gamma di dashboard e visualizzazioni tutte personalizzate per gli honeypot supportati da T-Pot.

<br><br>
## Mappa degli Attacchi
Dalla Pagina Iniziale di T-Pot clicca su `Attack Map` e verrai reindirizzato alla Mappa degli Attacchi. Poiché la Mappa degli Attacchi utilizza web socket, potresti dover reinserire le credenziali di `<WEB_USER>`.

<br><br>
## Cyberchef
Dalla Pagina Iniziale di T-Pot clicca su `Cyberchef` e verrai reindirizzato a Cyberchef.

<br><br>
## Elasticvue
Dalla Pagina Iniziale di T-Pot clicca su `Elasticvue` e verrai reindirizzato a Elasticvue.

<br><br>
## Spiderfoot
Dalla Pagina Iniziale di T-Pot clicca su `Spiderfoot` e verrai reindirizzato a Spiderfoot.

<br><br>
# Configurazione
## File di Configurazione di T-Pot
T-Pot offre un file di configurazione che fornisce variabili non solo per i servizi docker (cioè honeypot e strumenti) ma anche per l'ambiente docker compose. Il file di configurazione è nascosto in `~/tpoce/.env`. C'è anche un file di esempio (`env.example`) che contiene la configurazione predefinita.<br>
Prima del primo avvio esegui `~/tpotce/genuser.sh` o configura manualmente il `WEB_USER` come descritto [qui](#add-users-to-nginx-t-pot-webui).
## Personalizza Honeypot e Servizi di T-Pot
In `~/tpotce/compose` troverai tutto ciò che ti serve per regolare l'installazione T-Pot Standard / Hive:```
customizer.py
llm.yml
mac_win.yml
mini.yml
mobile.yml
sensor.yml
standard.yml
tarpit.yml
tpot_services.yml
I file .yml sono file docker compose, ciascuno rappresenta un diverso insieme di honeypot e strumenti, con tpot_services.yml che è un template per customizer.py per creare un file docker compose personalizzato.
Per attivare un file compose segui questi passaggi:
systemctl stop tpot.cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml.systemctl start tpot.Per creare il tuo file docker compose personalizzato:
cd ~/tpotce/compose.python3 customizer.py.docker-compose.yml. Poiché alcuni honeypot e servizi occupano le stesse porte, verificherà se sono presenti conflitti di porte e notificherà riguardo ai servizi in conflitto. Puoi quindi risolverli manualmente modificando docker-compose-custom.yml o rieseguire lo script.systemctl stop tpot.cp docker-compose-custom.yml ~/tpotce e cd ~/tpotce.docker-compose -f docker-compose-custom.yml up. In caso di errori, segui la Docker Compose Specification per la risoluzione. Molto probabilmente si tratta solo di un conflitto di porte che puoi risolvere modificando il file docker compose.CTRL-C per fermare i container ed esegui docker-compose -f docker-compose-custom.yml down -v.mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml.systemctl start tpot.
T-Pot è progettato per essere a bassa manutenzione. Poiché quasi tutto è fornito tramite immagini docker, non c'è praticamente nulla da fare se non lasciarlo funzionare. Aggiorneremo regolarmente le immagini docker per ridurre i rischi di compromissione; tuttavia dovresti leggere attentamente questa sezione.
Se un aggiornamento dovesse fallire, aprire un issue o una discussione aiuterà a migliorare le cose in futuro, ma la soluzione offerta sarà sempre quella di eseguire una fresh install poiché semplicemente non possiamo fornire alcun supporto per dati persi!
La sicurezza di T-Pot dipende dagli aggiornamenti forniti per le immagini delle distribuzioni Linux supportate. Assicurati di consultare la documentazione del sistema operativo e di garantire che gli aggiornamenti vengano installati regolarmente dal sistema operativo. Per impostazione predefinita (~/tpotce/.env) TPOT_PULL_POLICY=always garantirà che a ogni avvio di T-Pot docker controlli la presenza di nuove immagini docker e le scarichi prima di creare i container.
Le release di T-Pot sono offerte tramite GitHub e possono essere scaricate usando ~/tpotce/update.sh.
Se hai apportato modifiche rilevanti ai file di configurazione di T-Pot, assicurati di creare prima un backup!
Gli aggiornamenti possono avere conseguenze impreviste. Crea un backup della macchina o dei file più preziosi per il tuo lavoro!
Lo script di aggiornamento ...
~/tpotce~/tpotce per essere sincronizzati con il branch master di T-Potews.cfg personalizzato da ~/tpotce/data/ews/conf e la configurazione di T-Pot (~/tpotce/.env).Per impostazione predefinita, T-Pot aggiungerà un riavvio giornaliero che include una pulizia. Puoi modificare questa riga 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"'
## Problemi Noti
I seguenti problemi sono noti, è sufficiente seguire i passaggi descritti per risolverli.
<br><br>
### Download delle Immagini Docker non Riuscito
Qualche tempo fa Docker ha introdotto i [limiti di download](https://docs.docker.com/docker-hub/download-rate-limit/#:~:text=Docker%20Hub%20limits%20the%20number,pulls%20per%206%20hour%20period.). Se stai scaricando frequentemente immagini Docker tramite un IP singolo o condiviso, l'indirizzo IP potrebbe aver esaurito il limite di download di Docker. Accedi al tuo account Docker per estendere il limite di download.```
sudo su -
docker login
T-Pot è progettato per funzionare solo su macchine con una singola NIC. T-Pot tenterà di utilizzare l'interfaccia con la rotta predefinita, tuttavia non è garantito che questo abbia sempre successo. Al meglio, usa T-Pot su macchine con una sola NIC.
Il servizio T-Pot si avvia e si ferma automaticamente a ogni riavvio (che si verifica una volta al giorno come impostato in sudo crontab -l durante l'installazione).
Se desideri avviare manualmente il servizio T-Pot, puoi farlo tramite systemctl start tpot e osservare tramite dpsw l'avvio dei container.
Il servizio T-Pot si avvia e si ferma automaticamente a ogni riavvio (che si verifica una volta al giorno come impostato in sudo crontab -l durante l'installazione).
Se desideri fermare manualmente il servizio T-Pot, puoi farlo tramite systemctl stop tpot e osservare tramite dpsw lo spegnimento dei container.
Tutti i file di log persistenti provenienti dagli honeypot, strumenti e servizi correlati a T-Pot sono memorizzati in ~/tpotce/data. Questo include gli artefatti raccolti che non vengono trasmessi a Elastic Stack.
Tutti i dati di log sono memorizzati nella Cartella dei dati di T-Pot e verranno conservati per il numero di cicli impostato per TPOT_PERSISTENCE_CYCLES=<1-999> nel file di configurazione di T-Pot ~/tpotce/.env. Il valore predefinito è 30.
Gli indici di Elasticsearch sono gestiti dalla politica del ciclo di vita degli indici tpot che può essere modificata direttamente in Kibana (assicurati di includere "Include managed system policies").
Per impostazione predefinita, la politica del ciclo di vita degli indici tpot mantiene gli indici per 30 giorni. Questo offre un buon equilibrio tra archiviazione e velocità. Tuttavia puoi modificare la politica in base alle tue esigenze.
Tutti i dati di log memorizzati nella Cartella dei dati di T-Pot (eccetto gli indici di Elasticsearch, ovviamente) possono essere cancellati eseguendo clean.sh.
A volte le cose potrebbero rompersi irreparabilmente e non è mai stato così facile ripristinare un T-Pot alle impostazioni di fabbrica (assicurati di entrare in cd ~/tpotce).
systemctl stop tpot.~/tpotce/data in un posto sicuro (facoltativo, per sicurezza).~/tpotce/data usando sudo rm -rf ~/tpotce/data.5. Ora puoi eseguire `~/tpotce/install.sh`.
<br><br>
## Mostra contenitori e immagini
Puoi mostrare tutti i contenitori rilevanti per T-Pot eseguendo `dps` o `dpsw [interval]`. L'`interval (s)` ripeterà `dps` periodicamente. Usa `dim` per mostrare le immagini Docker disponibili localmente, inclusa la colonna `CREATED`.
<br><br>
## Blackhole
Blackhole eseguirà T-Pot in una sorta di modalità stealth senza visite permanenti da parte di scanner pubblicamente noti, riducendo così la possibilità di essere esposti. Sebbene questo sia ovviamente sempre un gioco del gatto e del topo, la funzione blackhole instrada verso il nulla tutte le richieste provenienti da [scanner di massa noti](https://raw.githubusercontent.com/stamparm/maltrail/master/trails/static/mass_scanner.txt) mentre continua a catturare gli eventi tramite Suricata.
<br>
La funzione viene attivata impostando `TPOT_BLACKHOLE=DISABLED` in `~/tpotce/.env`, quindi esegui `systemctl stop tpot` e `systemctl start tpot` o `sudo reboot`.
<br>
Abilitare questa funzione ridurrà drasticamente la visibilità degli aggressori e di conseguenza si avrà meno attività. Tuttavia, come già accennato, non è né una garanzia di essere completamente invisibili né impedirà il fingerprinting di alcuni servizi honeypot.
<br><br>
## Aggiungi utenti a Nginx (T-Pot WebUI)
Nginx (T-Pot WebUI) ti consente di aggiungere tutti gli account `<WEB_USER>` che desideri (secondo i [Tipi di utente](#user-types)).<br>
Per **aggiungere** un nuovo utente esegui `~/tpotce/genuser.sh`.<br>
Per **rimuovere** utenti apri `~/tpotce/.env`, individua `WEB_USER` e rimuovi la stringa base64 corrispondente (per decodificare: `echo <base64_string> | base64 -d`, o apri CyberChef e carica la ricetta "From Base64").<br>
Per rendere effettive le modifiche è necessario riavviare T-Pot usando `systemctl stop tpot` e `systemctl start tpot` o `sudo reboot`.
<br><br>
## Importa ed esporta oggetti Kibana
Alcuni aggiornamenti di T-Pot richiederanno di aggiornare gli oggetti Kibana. Sia per supportare nuovi honeypot che per migliorare dashboard o visualizzazioni esistenti. Assicurati di ***esportare*** prima per non perdere le tue modifiche.
### Esporta
1. Vai a Kibana
2. Fai clic su "Stack Management"
3. Fai clic su "Saved Objects"
4. Fai clic su "Export <no.> objects"
5. Fai clic su "Export all"
Questo esporterà un file NDJSON con tutti i tuoi oggetti. Esegui sempre un'esportazione completa per assicurarti che tutti i riferimenti siano inclusi.
### Importa
1. [Scarica il file NDJSON](https://raw.githubusercontent.com/telekom-security/tpotce/refs/heads/master/docker/tpotinit/dist/etc/objects/kibana_export.ndjson.zip) e decomprimilo.
2. Vai a Kibana
3. Fai clic su "Stack Management"
4. Fai clic su "Saved Objects"
5. Fai clic su "Import" e lascia le impostazioni predefinite (controlla gli oggetti esistenti e sovrascrivi automaticamente i conflitti) se non hai apportato modifiche personali agli oggetti Kibana.
6. Sfoglia per il file NDJSON
Quando viene chiesto: "Se alcuni oggetti esistono già, vuoi sovrascriverli automaticamente?" rispondi con "Sì, sovrascrivi tutto".
<br><br>
# Risoluzione dei problemi
In generale T-Pot è offerto ***così com'è*** senza alcun impegno di supporto. È possibile aprire issue e discussioni, ma bisogna essere pronti a includere le informazioni di base necessarie, in modo che la comunità possa aiutare.
<br><br>
## Log
* Controlla se i tuoi contenitori funzionano correttamente: `dps`
* Controlla le immagini Docker disponibili localmente e la loro età: `dim`
* Controlla se le risorse di sistema non sono esaurite: `htop`, `docker stats`
* Controlla se c'è un conflitto di porte:```
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_container>tpotinit: cat ~/tpotce/data/tpotinit.log
L'Elastic Stack è affamato di RAM, in particolare logstash e elasticsearch. Se l'Elastic Stack non è disponibile, non riceve alcun log o continua a crashare, molto probabilmente è un problema di RAM o storage.
Mentre T-Pot continua a tentare di riavviare i servizi / container, esegui docker logs -f <nome_container> (logstash o elasticsearch) e verifica se ci sono avvisi o errori relativi alla RAM.
I problemi di storage possono essere identificati più facilmente tramite htop.
T-Pot è fornito così com'è open source senza alcun impegno di supporto (vedi il disclaimer).
Se sei un ricercatore di sicurezza e vuoi segnalare un problema in modo responsabile, contatta il nostro CERT.
Segnala i problemi (errori) su GitHub Issues, ma prima risolvi i problemi. I problemi che non forniscono informazioni per risolvere l'errore verranno chiusi o convertiti in discussioni.
Usa prima la funzione di ricerca, è possibile che un problema simile sia già stato affrontato o discusso, con la soluzione a portata di ricerca.
Domande generali, idee, show & tell, ecc. possono essere affrontate su GitHub Discussions.
Usa la funzione di ricerca, è possibile che una discussione simile sia già stata aperta, con una risposta a portata di ricerca.
Il software su cui è costruito T-Pot utilizza le seguenti licenze.
GPLv2:
conpot,
galah,
dionaea,
honeytrap,
suricata
GPLv3:
adbhoney,
elasticpot,
ewsposter,
log4pot,
fatt,
heralding,
ipphoney,
miniprint,
redishoneypot,
rdphoneypot,
sentrypeer,
snare,
tanner
Licenza Apache 2:
cyberchef,
dicompot,
elasticsearch,
go-pot,
h0neytr4p,
logstash,
kibana,
docker
Licenza MIT:
autoheal,
beelzebub,
ciscoasa,
ddospot,
elasticvue,
glutton,
hellpot,
honeyaml,
maltrail
Unlicense:
endlessh
Altre:
citrixhoneypot,
cowrie,
mailoney,
Elastic License,
Wordpot
AGPL-3.0:
honeypots
Pubblico Dominio (CC):
Harvard Dataverse
Senza l'open source e la comunità di sviluppo di cui siamo orgogliosi di far parte, T-Pot non sarebbe stato possibile! I nostri ringraziamenti vanno, senza limitarsi, alle seguenti persone e organizzazioni:
Uno dei migliori feedback che abbiamo ricevuto finora è da uno degli sviluppatori di Conpot:
"[...] Raccomando vivamente T-Pot che è... non è esattamente un coltellino svizzero... è più come un soldato svizzero, equipaggiato con un coltellino svizzero. Dentro un carro armato. Un carro armato svizzero. [...]"
E da @robcowart (creatore di ElastiFlow):
"#TPot è una delle soluzioni honeypot chiavi in mano più ben realizzate. È un must per chiunque voglia analizzare e comprendere il comportamento degli attori malintenzionati e la minaccia che rappresentano per la tua organizzazione."