Labtainers: Un framework per laboratori cyber basato su Docker
Labtainers: un framework per laboratori informatici basato su Docker ============================================== Labtainers include più di 50 esercizi di laboratorio informatico e strumenti per crearne di propri. Importa una singola [VM appliance][vm-appliance] o installa su un sistema Linux e i tuoi studenti hanno finito con il provisioning e la configurazione amministrativa, per questi e futuri esercizi di laboratorio. * Ambienti di esecuzione dei laboratori coerenti e provisioning automatizzato tramite container Docker * Topologie di rete multi-componente su un computer portatile di modeste prestazioni * Valutazione automatizzata dell'attività e dei progressi degli studenti nei laboratori * Esercizi di laboratorio individualizzati per scoraggiare la condivisione delle soluzioni Labtainers fornisce ambienti di esecuzione controllati e coerenti in cui gli studenti svolgono i laboratori interamente all'interno del proprio computer, indipendentemente dalla distribuzione Linux e dai pacchetti installati sul computer dello studente. Labtainers funziona sulla nostra [VM appliance][vm-appliancee], o su qualsiasi Linux con Docker installato. E Labtainers è disponibile come VM basate su cloud, ad esempio su Azure come descritto nella [Student Guide][student-guide]. Consulta la [Student Guide][student-guide] per l'installazione e l'utilizzo, e la [Instructor Guide][instructor-guide] per la valutazione degli studenti. Lo sviluppo e la personalizzazione degli esercizi di laboratorio sono descritti nella [Designer Guide][designer-guide]. Consulta i [Papers][Papers] per ulteriori informazioni sul framework. Il sito web di Labtainers e i download (incluse le VM appliance con Labtainers preinstallato) sono disponibili su <https://nps.edu/web/c3o/labtainers>. [vm-appliance]: https://nps.edu/web/c3o/virtual-machine-images [student-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/student/labtainer-student.pdf [instructor-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/instructor/labtainer-instructor.pdf [designer-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/labdesigner/labdesigner.pdf [Papers]: https://nps.edu/web/c3o/labtainers#papers Distribution created: 09/11/2026 11:33 </br> Revision: v1.4.4n </br> Commit: 9f1012dc </br> Branch: master </br> ## Content [Distribution and Use](#distribution-and-use) [Guide to directories](#guide-to-directories) [Support](#support) [Release notes](#release-notes) ## Distribution and Use Consulta le informazioni sulla licenza e sulla distribuzione nel [file docs/license.md](https://github.com/mfthomps/labtainers/blob/master/docs/license.md). ## Guide to directories * scripts/labtainers-student -- la directory di lavoro per eseguire e testare i laboratori degli studenti. Devi trovarti in quella directory per eseguire i laboratori degli studenti. * scripts/labtainers-instructor -- la directory di lavoro per eseguire e testare la valutazione automatizzata e visualizzare i risultati degli studenti. * labs -- File specifici per ciascuno dei laboratori * setup\_scripts -- script per installare Labtainers e Docker e aggiornare Labtainers * docs -- sorgente latex per labdesigner.pdf e altra documentazione. * UI -- codice sorgente dell'editor di laboratori Labtainers (Java). * headless-lite -- script per gestire Docker Workstation e istanze cloud di Labtainers (sistemi che non dispongono di server X11 nativi.) * scripts/designer -- Strumenti per creare nuovi laboratori e gestire le immagini Docker di base. * config -- impostazioni di configurazione a livello di sistema (queste non sono le impostazioni di configurazione specifiche dei laboratori. * distrib -- script di supporto alla distribuzione, ad esempio per pubblicare laboratori sull'hub Docker. * testsets -- Procedure di test e risultati attesi. (I driver per-lab per SimLab non sono distribuiti). * pkg-mirrors -- script di utilità per il mirroring interno dei pacchetti NPS al fine di ridurre il prelievo esterno di pacchetti durante i test e la distribuzione. ## Support Usa le segnalazioni di problemi su GitHub, oppure scrivimi a [email protected] Vedi anche <https://my.nps.edu/web/c3o/support1> ## Release notes La distribuzione standard di Labtainers non include i file necessari per lo sviluppo di nuovi laboratori. Per quelli, esegui ./update-designer.sh dalla directory labtainer/trunk/setup\_scripts. Lo script di installazione e lo script update-designer.sh impostano variabili d'ambiente, quindi potresti voler effettuare logout/login, o avviare una nuova shell bash prima di usare Labtainers la prima volta. Jauary 6, 2026 - Corretto bug introdotto nello script di installazione a causa di indentazioni. December 30, 2025 - Modificato il formato del report checkwork per essere verticale; guida video per headless; percorsi di convenienza October 15, 2025 - Revisionato il laboratorio packet-introspection per aggiornare il link per il database di geolocalizzazione maxmind e nota sull'uso del database legacy. April 24, 2025 - Corretto imodule per creare correttamente le directory mancanti secondo la pull request #96 November 22, 2024 - Sostituita la VM di google cloud, questa volta a causa di un guasto di systemd all'interno dei container. September 23, 2024 - Sostituita la VM di google cloud, che utilizzava la versione sbagliata di Docker September 10, 2024 - Refuso nella creazione del percorso imodule July 26, 2024 - Modificato capinout per non usare la funzione clib grantpt, che ora sembra andare in crash quando eseguita da un container. July 22, 2024 - Aggiunto un container di base per Ubuntu22 e modifiche al framework per supportarlo. July 5, 2024 - Migrazione a Ubuntu 24 come VM appliance - Il pacchetto python docker usa una libreria http python difettosa, richiede il downgrade del pacchetto. - Usa un ambiente python virtuale per evitare il blocco dei pacchetti python da parte di Ubuntu. - Aggiunto parametro di boot per consentire la condivisione di systemd tra container e VM. - Reindirizzati i messaggi di errore dall'utility tar difettosa durante gli aggiornamenti. - Rottura dell'aggiornamento di Ubuntu per i pacchetti msc (vedi update-ubuntu.sh) per le VM versione 18 - Il comando docker-compose è difettoso, usa "docker compose" - Forzati i permessi del socket in headless labtainers. - Aggiornato headless Labtainers per usare Ubuntu 24 November 27, 2023 - Aggiunta l'opzione Google Cloud Platform per ubuntu22 su macchina ec2. September 18, 2023 - L'implementazione della correzione precedente era difettosa. August 8, 2023 - Gestito il cambiamento al formato json delle immagini DockerHub. Grazie Kees! April 17, 2023 - Forza l'uso della versione più recente del laboratorio, ad esempio iptables2 invece di iptables. Corretto il completamento con tab per visualizzare solo la più recente. (Issue #77) - L'installazione del laboratorio CyberCIEGE falliva a causa di una race condition di X11. (Issue #76) - Nota nel readme di CyberCIEGE per indirizzare gli studenti a salvare i log raccolti nella directory $HOME. (Issue #75) - Il checkwork del laboratorio Radius riportava erroneamente "radiusd not running", mancava lo script prestop. (Issue #74) - Labedit corrompeva il file di configurazione di avvio quando veniva usata l'opzione MACVLAN\_EXT. (Issue #73) February 1, 2023 - La cronologia Bash per gli utenti non predefiniti non veniva salvata. January 26, 2023 - Modificati gli script powershell per gcloud per usare la zona selezionata per qualificare i nomi delle VM. January 4, 2023 - I container che usavano systemd fallivano su systemd più recente presente in Ubuntu 22 - Aggiunto il parametro --zone agli script di google cloud, con valore derivato dallo script set\_defaults. December 21, 2022 - Corretto il criterio dei risultati di xforge per non aspettarsi un pathname, e aggiunto un controllo per vedere se è stata inviata una POST per modificare il profilo. E corretto il server http dell'attaccante per essere eseguito dalla directory home. December 19, 2022 - Aggiunto il laboratorio strace per introdurre il tracing delle chiamate di sistema. - Il valore X11 DISPLAY era errato se erano presenti più dispositivi nella directory /tmp/.X11-unix. - L'uso di python/bash/sh/ecc. senza argomenti causava il crash di capinout. December 9, 2022 - Modificato lo script di creazione della VM Azure per usare un'immagine VM Labtainer precompilata dalla Azure Community Gallery. - I terminali sulle VM cloud vanno in crash per motivi sconosciuti durante l'avvio o con il clic destro sul terminale. Tentativo di risolvere con start/stop di un terminale. December 5, 2022 - Durante la raccolta degli artefatti, includi i file modificati dalle directory degli utenti non predefiniti, ad esempio le loro cronologie bash. - Modificata la valutazione web per visualizzare i nuovi file "other user". - Includi i file da .local/bin su ciascun container negli artefatti. Inteso a renderli disponibili all'istruttore tramite valutazione web. - Nel laboratorio ACL, includi il file /shared\_data/bob/fun nei risultati per riferimento da parte dell'istruttore. - Rileva l'uso di "sh" o "bash" dalla riga di comando e salta durante l'analisi per un dato comando, ad esempio come fatto con "time" o "sudo". - Nel laboratorio tcpip, non era possibile fare ssh nel server durante le sessioni di laboratorio successive, la directory /run/sshd non veniva ricreata. November 16, 2022 - Corretto il percorso al Snort Manual nel laboratorio snort. - Nel manuale ossec, corretto il percorso a manage\_agents October 12, 2022 - Google cloud: rimosso l'operatore in background dal comando gnome-terminal, va ancora in crash con il clic destro ma sembra stabile dopo aver eseguito un newterm.sh. October 10, 2022 - Corretto newterm.sh di Google cloud; espanso quel disco di boot a 30G. September 20, 2022 - Nota l'id utente e la password per il laboratorio TCP/IP nel manuale del laboratorio. August 30, 2022 - Usa il nome del socket X11 quando si imposta DISPLAY dal .profile di un container August 9, 2022 - Corretto il nome della funzione processValueMax nel grader. Issue #63 August 4, 2022 - Il programma labedit è stato ricompilato con il JDK sbagliato, impedendo alle JRE più vecchie di eseguire labedit July 18, 2022 - La creazione di container basati su Ubuntu20 falliva all'interno degli IModule. Issue #61. March 23, 2022 - Corretto il percorso della directory tap lock; causava il fallimento dei laboratori che usavano network tap - Aggiornato il computer netmon di plc-traffic per avere openjfx necessario per il nuovo grassmarlin nell'ambiente java - Velocizzato l'avvio del laboratorio evitando chown -R, che è molto lento in docker. - Un altro tentativo di evitare la cancellazione del link X11 nella directory /tmp del container. - Corretto il conteggio di webtrack dei siti visitati e rimosso l'obiettivo live-headers, quello strumento non è più disponibile. Chiariti alcuni passaggi del manuale del laboratorio. March 2, 2022 - Aggiunto il nuovo laboratorio ssh-tunnel (grazie GWD!) - Corretto il fallimento di labedit nel riflettere il valore X11 impostato da new\_lab\_setup - Aggiunta l'opzione per non parametrizzare un container February 23, 2022 - labedit corrompeva start.config dopo l'aggiunta di nuovi container - Percorso errato alla student guide nel file README dello studente; modifica dinamica per le configurazioni cloud - Estensione errata per update-labtainer.sh - Miglioramenti alla guida Msc - Aggiornato il laboratorio ghidra per includere la versione 10.1.2 di Ghidra February 15, 2022 - Ripristinato il supporto cloud Azure per il provisioning per ogni studente. Azure scoraggia la condivisione delle risorse. January 24, 2022 - Azure cloud ora usa un'immagine memorizzata in un blob Azure invece del provisioning per ogni studente. - Aggiunto il supporto per Google Cloud. January 19, 2022 - Introdotto Labtainers sul cloud Azure. Consulta la Student Guide per dettagli su come usarlo. January 3, 2022 - Revisionato il laboratorio setuid-env per aggiungere una valutazione migliore; test simlab ed evitare sighup nel figlio printenv. - Corretta la direttiva del conteggio degli obiettivi di valutazione per escludere i valori del tag risultato pari a false. - Non richiedere labname quando si usa gradelab -a con un grader avviato con l'opzione debug. - Revisionato capinout (mirroring stdin/stdout) per gestire l'orfanizzazione dei processi figli del comando, migliorata la documentazione e la gestione degli errori. - Aggiunta la visualizzazione delle barre di avanzamento delle immagini docker in fase di pull quando un laboratorio viene eseguito per la prima volta. - Feedback all'utente sull'avanzamento dell'inizializzazione del container. - Al laboratorio pcap-lib mancava un file notify necessario per la valutazione automatizzata; Rimosso un passaggio superfluo dal Lab Manual. November 23, 2021 - Disabilitati gli errori popup di ubuntu sulla VM di test. - Corretta la gestione di formati diversi della variabile DISPLAY. October 22, 2021 - Revisionata la guida del laboratorio tcpip per notare che un attacco syn-flood riuscito non è possibile. Corretta la sua valutazione automatizzata e aggiunti gli script SimLab. - Cambiata l'estensione del file artefatto da zip a lab, e aggiunto un preambolo per confondere i gestori di file GUI. Gli studenti aprivano lo zip e inviavano il suo contenuto. - Resa l'opzione -r di gradelab quella predefinita, aggiunta un'opzione -c per l'uso cumulativo del grader. - Modificato refresh\_mirror per fare riferimento alla data di rilascio locale per evitare frequenti query a DockerHub. Ogni tale query conta come un pull di immagine, e ora stanno cercando di monetizzare queste. September 30, 2021 - Modificata la guida del laboratorio bufoverflow e la valutazione per non aspettarsi successo con ASLR attivo, valuta se è stato eseguito. - Gestione degli errori per il grader web nei casi in cui lo studente non ha risultati. - Stampa un avviso quando viene eseguito un laboratorio deprecato. - Modificata la valutazione di formatstring per rimuovere la descrizione inutilizzata "\_leaked\_secret" e chiarire il valore di leaked\_no\_scanf. - Modificata anche la valutazione di formatstring per consentire qualsiasi nome per l'eseguibile vulnerabile. September 29, 2021 - Gestione degli errori di Gradelab, ridotte le istanze di crash dovute a file zip danneggiati. - Limitati i file artefatto stdout a 1MB September 17, 2021 - La guida del laboratorio Ghidra aveva un indirizzo IP errato, non era stata ricreata dal sorgente. September 14, 2021 - Laboratori di esempio per LDAP e Mariadb con SSL. Intesi come modelli per nuovi laboratori. - Gestione del formato di log di Mariadb - Aggiunti parametri per-container per limitare l'uso della CPU o vincolare il container a un set di CPU. - La creazione di Labpack ora è disponibile tramite una GUI (makepackui). - Completamento con tab per i comandi labtainer, labpack e gradelab. - Nuovo laboratorio di calcolo parallelo ``parallel'' che usa MPI. August 3, 2021 - Aggiunta un'opzione di configurazione "WAIT\_FOR" per far ritardare la parametrizzazione di un container fino a quando un altro container completa la sua parametrizzazione. - Supporto per i formati di log di Mariadb nell'analisi dei risultati - Rimosso il supporto per l'uso di Docker Desktop su Mac e Windows. Quel prodotto è troppo instabile perché possiamo supportarlo. - Soppressi i messaggi stderr quando l'utente usa comandi bash integrati come "which". - Correzioni di bug ai programmi makepack/labpack. July 19, 2021 - Aggiunto un laboratorio DNS per introdurre il protocollo e la configurazione DNS. - Revisionata l'immagine dell'appliance VirtualBox per avviarsi con lo script di aggiornamento corretto. - Separato il parametro nameserver di resolv.conf dal campo di configurazione lab\_gw in un valore proprio. - Il comando IModule falliva se eseguito prima che fosse stato avviato qualsiasi laboratorio. July 5, 2021 - Errori nella gestione della variabile d'ambiente DISPLAY rompevano le applicazioni GUI su Docker Desktop. July 1, 2021 - Supporto all'installazione del pacchetto Mac di headless Labtainers. - La valutazione automatizzata del laboratorio routing-basics falliva per mancanza dei file treataslocal - Corretti refusi e indirizzi errati nel laboratorio routing-basics, e corretta la valutazione automatizzata. - La valutazione di pcapanalysis falliva. June 10, 2021 - Tutti i PDF dei manuali dei laboratori sono ora nel repo github - Convertite le istruzioni di vpnlab e vpnlab2 in manuali di laboratorio PDF. May 25, 2021 - Aggiunte parole chiave ricercabili a ciascun laboratorio. Vedi "labtainer -h" per l'uso. - Ampliato il laboratorio routing-basics e il manuale del laboratorio - Rimosso il laboratorio routing-basics2, ora è ridondante. - sudo su alcuni container falliva perché gli hostname rimuovono gli underscore, portando a una mancata corrispondenza con il file hosts. Corretto con una voce extra nel file hosts con il nome del container senza underscore. - Nuova funzionalità Labpack per impacchettare una raccolta di laboratori, e strumento makepack per creare Labpack. - Controllo degli errori per la directory /sbin quando si usa ubuntu20 -- sarebbe stato silenziosamente fatale. - Nuovo laboratorio network-basics May 5, 2021 - Introdotto un nuovo laboratorio users per introdurre la gestione di utenti/gruppi - Soppressi i messaggi di Apparmor dell'host nei syslog dei container centos April 28, 2021 - Le nuove immagini base2 mancavano delle man pages. Usato unminimize per ripristinarle nell'immagine di base. - Introdotto un laboratorio OSSEC per IDS basato su host. April 13, 2021 - Il laboratorio CyberCIEGE falliva perché il socket X11 non veniva ricollocato prima di avviare Wine tramite fixlocal. April 9, 2021 - Nuovo laboratorio tutorial gdb-cpp per usare GDB su un semplice programma C++. - Le eccezioni in virgola mobile rivelavano l'uso di exec\_wrap.sh per il mirroring stdin/stdout. April 7, 2021 - Il laboratorio ldap falliva quando spostato su Ubuntu 20. Problema riconducibile a un problema con la cache nscd di pwd. Spostato ldap su Ubuntu 20 March 23, 2021 - La parametrizzazione con RANDOM non includeva il limite superiore. - Aggiunto un parametro step opzionale a RANDOM, ad esempio per garantire i confini delle parole. - Laboratorio db-access: aggiunto mysql-workbench al computer database. - Nuovo laboratorio overrun per illustrare i riferimenti di memoria oltre i limiti delle strutture dati c. - Nuovo laboratorio printf per introdurre i riferimenti di memoria fatti dalla funzione printf. March 19, 2021 - gradelab ignora l'errore makdirs, problema con rmtree di Windows sulle cartelle condivise. - gradelab gestisce gli spazi nei nomi dei file zip degli studenti. - gradelab gestisce i nomi dei file zip da Moodle, inclusi i download delle build. March 12, 2021 - UI di labedit: Rimossa la vecchia immagine wireshark dall'elenco delle immagini di base. - UI di labedit: Aumentate alcune dimensioni dei font. - L'interfaccia web del grader non riusciva a visualizzare i manuali dei laboratori se il nome del manuale non segue le convenzioni di denominazione. March 11, 2021 - UI di labedit: aggiunta l'impostazione del registry nel nuovo pannello di configurazione globale del laboratorio. March 10, 2021 - Correzioni alla UI di labedit per non compilare se c'è un errore di sintassi nel laboratorio - Corretto l'indicatore "Lab running" della UI di labedit per riflettere il laboratorio corrente. March 8, 2021 - Deprecato l'uso di HOST\_HOME\_XFER, tutti i laboratori usano la directory secondo il file labtainer.config. - Aggiunto un commento di documentazione a start.config per REGISTRY e BASE\_REGISTRY March 5, 2021 - Gestione degli errori sull'interfaccia web di gradelab quando mancano i risultati. - Aggiunta di precheck a labedit, correzioni di bug msc. February 26, 2021 - Il laboratorio dmz-example aveva errori nel routing e nella configurazione di dnsmasq su alcuni componenti. February 18, 2021 - La UI ricostruiva le immagini perché aggiornava gli orari dei file senza motivo - Ripulito il codice della UI per rimuovere alcune copie ridondanti di dati. February 14, 2021 - Aggiunta l'opzione di build locale alla UI - Creato un faux\_init vuoto per le basi centos6. February 11, 2021 - Corretta la gestione della modifica dei file nella UI. Revisionato il layout ed eliminati i campi inutilizzati. - Aggiunta la configurazione di base ubuntu20 base2 insieme a ssh2, network2 e wireshark2 - Il nuovo wireshark risolve il problema delle finestre nere/rumorose. - Mappato /tmp/.X11-unix su /var/tmp e creato un link. Necessario per ubuntu20 (stava cancellando /tmp?) e potrebbe risolvere altri casi. February 4, 2021 - Aggiunta l'opzione SIZE agli artefatti dei risultati - Semplificata la valutazione e la parametrizzazione di wireshark-intro e aggiunto il manuale del laboratorio PDF. - Forniti i valori dell'elenco dei parametri allo script pregrade.sh come variabili d'ambiente - abilitato X11 sul grader - messo update-designer.sh nel path degli utenti. January 19, 2021 - Cambiata la gestione della data/rev del README per aggiornare il file nel repo sorgente. - Introdotta una GUI per creare/modificare laboratori -- vedi il comando labedit. December 21, 2020 - La funzione gradelab falliva quando i file zip venivano copiati da una cartella condivisa di VirtualBox. - Aggiornata la Instructor Guide per descrivere la gestione dei file zip degli studenti sui computer host. December 4, 2020 - Transizione della distribuzione del tar verso gli artefatti di release di GitHub - Eliminato il file tar separato del designer, usa il tarball del repo git. - Test delle funzioni web del grader per l'analisi degli artefatti dei laboratori degli studenti - Pulizia dei log dal smoketest completo ed eliminazione del container del grader nel comando removelab. December 1, 2020 - La valutazione del laboratorio iptables2 si basava su porte casuali "sconosciute" a nmap. - Usata una directory di sincronizzazione per ritardare l'avvio degli smoketest prima dell'avvio del laboratorio. - Iniziata l'integrazione degli elementi della UI del Lab designer. October 13, 2020 - Configurazioni headless per l'esecuzione su Docker Desktop su Mac e Windows - Supporto server headless, file cloud-config per distribuzioni cloud - Supporto ai test per configurazioni headless - Forzato mynotify ad attendere che rc.local venga eseguito all'avvio - Migliorata la capacità del servizio mynotify di unire l'output in un singolo timestamp - Python3 per lo script stopgrade - SimLab ora usa docker top invece di system ps September 26, 2020 - Ripuliti gli script stoplab per ignorare i container non-lab - Aggiunto il laboratorio db-access per il controllo degli accessi al database per la condivisione controllata di un db mysql. September 17, 2020 - Il laboratorio macs-hash non riusciva a eseguire Leafpad a causa dell'impostazione X11. - Il logging del Grader veniva reindirizzato al file di log sbagliato, ora cattura gli errori da instructor.py - Copia instructor.log dal grader alla directory dei log dell'host se c'è un errore. August 28, 2020 - Corretto lo script di installazione per usare python3-pip e corretti gli script difettosi: getinfo.py e pull-all.py - La logica del Registry era difettosa, i sistemi di test non usavano il registry di test, aggiunta la documentazione di sviluppo. - Aggiunti i file di base juiceshop e owasp per i laboratori di sicurezza web basati su OWASP - Rimossi i sudo non necessari da check\_nets - Aggiunta la direttiva di documentazione CHECK\_OK per la valutazione automatizzata - Modificato check\_nets per correggere i problemi di iptables e routing se così indicato. August 12, 2020 - Aggiunto un timeout agli script prestop - Aggiunti quiz e checkwork a dmz-lab - Riavviare dmz-lab senza l'opzione -r rompeva il routing in uscita dall'ISP. - Consentiti più file per i risultati time\_delim.6 agosto 2020 - Bug nella gestione degli errori quando manca il socket X11 - Le virgole nelle domande del quiz causavano errori di parsing - Aggiunto quiz e checkwork al laboratorio iptables2 28 luglio 2020 - Aggiunto supporto per i quiz -- si tratta di quiz di orientamento, non di valutazione. Consultare la guida per il progettista. - Aggiunta la valutazione dello stato corrente da utilizzare con il comando checkwork. 21 luglio 2020 - Aggiunto testsets/bin al path del progettista - Correzioni ed esplicazioni nella guida per il progettista per i passaggi di IModule. - Aggiunto il tipo di risultato RANGE\_REGEX per definire intervalli temporali utilizzando espressioni regolari sulle voci di log. - Verifica che il socket X11 esista se necessario all'avvio di un laboratorio. - Aggiunta immagine di base per mysql - Gestione dei formati di timestamp dei log mysql nel parsing dei risultati. 15 giugno 2020 - Nuova immagine di base contenente il router open source Bird - Aggiunto il laboratorio bird-bgp Border Gateway Protocol. - Aggiunto bird-ospf Open Shortest Path First routing protocol. - Migliorata la gestione dei cambiamenti DNS, l'accesso esterno da alcuni container era bloccato in alcuni siti. - Aggiunta una sezione alla Guida per l'istruttore sull'uso di Labtainers in ambienti privi di accesso a Internet. 21 maggio 2020 - Spostati tutti i repository nel registry labtainers di Docker Hub - Supporto per i mount definiti in start.config per consentire installazioni software persistenti - Modificato il laboratorio ida per utilizzare l'installazione persistente di IDA -- il nuovo nome è ida2 - Aggiunto il laboratorio cgc per l'esplorazione di oltre 200 servizi vulnerabili del DARPA Cyber Grand Challenge - Aggiunto il comando type\_string a SimLab - Aggiunto il laboratorio netflow per l'uso dell'analisi del traffico di rete NetFlow - Aggiunte le versioni a 64 bit dei laboratori bufoverflow e formatstring 9 aprile 2020 - Il grader falliva la valutazione delle condizioni CONTAINS e FILE\_REGX quando venivano usati wildcard per la selezione dei file. - Inclusi suggerimenti per l'uso di hexedit nel laboratorio symlab. - Aggiunto l'operatore hash\_equal e hash-goals.py alla valutazione automatizzata per evitare di pubblicare le risposte attese nei file di configurazione. - Valutazione automatizzata per il laboratorio pcap-lib. 7 aprile 2020 - I log sono stati spostati in $LABTAINER\_DIR/logs - Altra pulizia per consentire ricostruzioni e test tramite Jenkins, incluso l'uso di directory temporanee univoche per le build - Spostate le funzioni di supporto alla build da labutils a build.py - Aggiunto il laboratorio pcap-lib per lo sviluppo di programmi di analisi del traffico basati sulla libreria PCAP 13 marzo 2020 - Aggiunto il laboratorio plc-traffic per l'uso di GrassMarlin con il traffico generato durante il laboratorio. - Introdotta la possibilità di aggiungere container "tap" per raccogliere PCAP da reti selezionate. - Aggiornata la documentazione di GNS3 per l'accesso esterno ai container e l'uso di dummy\_hcd per simulare unità USB. - Modificato il template kali per utilizzare faux\_init invece di tentare di usare systemd. - Spostamento delle distribuzioni (file tar) su box.com - Modificato l'uso di netstat in SimLab per non effettuare il lookup DNS. 26 febbraio 2020 - Se il comando labtainer non trova il laboratorio, suggerisce all'utente di eseguire update-labtainer.sh - Aggiunto supporto preliminare per un componente network tap per visualizzare tutto il traffico di rete. - Script per scaricare le immagini dei laboratori per preparare VM che verranno utilizzate senza internet. - Forniti username e password per il laboratorio nmap-discovery. 18 febbraio 2020 - Ereditata la variabile d'ambiente DISPLAY dall'host (es. VM) invece di assumere :0 14 febbraio 2020 - Aggiunto esercizio introduttivo di reverse engineering del software Ghidra. 11 febbraio 2020 - Aggiornate le guide per descrivere l'accesso remoto ai container all'interno di ambienti GNS3 - Nascosti componenti e link selezionati all'interno di GNS3. - Le figure nella guida del laboratorio webtrack non erano visibili; refusi in questa e in nmap-ssh 6 febbraio 2020 - Introdotta una funzione per gestire i container in remoto, ad es. push di file. - Aggiunta una funzione dell'ambiente GNS3 per simulare l'inserimento di un'unità USB. - Migliorata la gestione degli errori di build di Docker. 3 febbraio 2020 - Nel laboratorio metasploit, il servizio postgresql non era in esecuzione sulla vittima. - Unito il contenuto del manuale IModule nella guida Lab Designer. - Ulteriore supporto per IModule. 27 gennaio 2020 - Introdotto il supporto iniziale per gli IModule (laboratori sviluppati dagli istruttori). Consultare docs/imodules.pdf. - Corretta la variabile d'ambiente LABTAINER\_DIR all'interno di update-labtainer - Corretto il modo di accesso al file accounting.txt nel laboratorio ACL (era diventato rw-r-r). Usare chmod esplicito in fixlocal.sh. 14 gennaio 2020 - Portato il framework e gradelab a Python3 (i laboratori Python2 esistenti non cambieranno) - Usate opzioni random.seed retrocompatibili - Adattato randint non compatibile per restituire i vecchi valori - Continuare a supportare python2 per le piattaforme che mancano di python3 (o quelle come la vecchia appliance VM che includono python 3.5.2, che rompe la compatibilità di random.seed). - Aggiunto l'alias rebuild per rebuild.py che selezionerà python2 se necessario. - Le manpage dei laboratori basati su Centos fallivano; usare mandb all'interno del file docker di base - La netmask di dmz-lab per la rete DMZ era errata (rilevato da python3); così come l'indirizzo IP del gateway interno nel manuale del laboratorio - ghex rimosso dai laboratori centos -- non più facilmente supportato da centos 7 - Il laboratorio file-deletion deve essere completato senza riavviare la VM, notare questo nel Manuale del Laboratorio. - Aggiunto lo switch NO\_GW a start.config per disabilitare i gateway predefiniti sui container. - Laboratorio Metasploit, manda in crash la VM host se eseguito come privilegiato; lunghi ritardi su su se systemd è abilitato; quindi eseguire senza systemd. Rimosso l'uso del database dal manuale del laboratorio, configurato per usare il nuovo switch no\_gw - Aggiornate le intestazioni dei file per licenza/termini; aggiunto file di licenza consolidato. - Modificato publish.py per impostare come predefinito l'uso del test registry, usare -d per forzare l'uso di default\_registry - Revisionate le procedure di controllo del codice sorgente per usare un test registry diverso per ogni branch, e usare un branch premaster per il test finale di una release. 9 ottobre 2019 - Rimosso dnsmasq dal componente dns nel dmz-lab. Causava il fallimento di bind su alcune installazioni. 8 ottobre 2019 - Errore di sintassi nella configurazione del test registry; informazioni per il progettista del laboratorio sui file di grandi dimensioni; recupero dei file bigexternal.txt 30 settembre 2019 - Il recupero dal registry DockerHub falliva di nuovo per alcuni utenti. Ignorare il prefisso html nel json. 20 settembre 2019 - La valutazione di onewayhash dovrebbe consentire operazioni hmac su un file scelto dallo studente. 5 settembre 2019 - Ricostruito il laboratorio metasploit, metasploit-framework presentava un bug. E il file "treataslocal" dei laboratori era stato omesso nello spostamento da svn. Corretto un refuso nel manuale del laboratorio metasploit. 30 agosto 2019 - Annullato il test per l'esistenza delle directory dei container, non esistono sempre. 29 agosto 2019 - Il pull delle immagini dei laboratori da docker hub falliva a causa di un cambiamento in github o curl? Gestito il redirect a cloudflare. Aggiunto il supporto a GNS3. Corretto il dnssec di dmz-lab. 11 luglio 2019 - Valutazione automatizzata per i container CentOS6, correzione per il problema di memoria di firefox, supporto per argomenti arbitrari di docker create nel file start.config. 6 giugno 2019 - Introdotta una base Centos6, ma non ancora il supporto per la valutazione automatizzata 23 maggio 2019 - La valutazione automatizzata di setuid-env falliva a causa di refusi nei separatori di campo. 8 maggio 2019 - Correzioni al manuale del laboratorio Capabilities 2 maggio 2019 - Correzione dei permessi di bobstuff.txt nel laboratorio Acl. Usare chmod esplicito in fixlocal.sh --- [Read more](https://github.com/mfthomps/labtainers)