LABORATORIO DI AMMINISTRAZIONE DI SISTEMI T - A.A. 2018/2019

Interessati all'interazione computer/mondo fisico?
Sono aperte le iscrizioni alla
tappa Unibo del Campionato Universitario Makers - 2019


Interessati alla sicurezza informatica?
Venite il mercoledì sera in LAB2 alle riunioni di
ULISSE

Raccolta di prove d'esame assegnate in passato
Sui siti ufficiali dell'Ateneo sono disponibili i dettagli del programma e delle modalità d'esame, nonché l'orario aggiornato con eventuali modifiche rispetto allo standard settimanale, che prevede:
  • il martedì in LAB4 dalle 14 alle 18
  • il mercoledì in aula 5.7 dalle 13 alle 16

(si noti che la divisione in moduli è puramente burocratica, il corso non prevede internamente distinzioni di docente o esame, e l'orario è da considerarsi l'unione dei due senza soluzione di continuità).


Si ricorda di portare in laboratorio una memoria USB da 4GB o superiore, più una seconda su cui effettuare regolari backup della prima.

Queste pagine verranno aggiornate durante il corso in parallelo allo svolgimento delle lezioni. Si può fare riferimento al sito dell'A.A. 2017/2018 per informazioni generali e materiale didattico.

Gli studenti sono pregati di consultare con regolarità gli avvisi (feed RSS disponibile).

Per qualsiasi informazione e per fissare un colloquio (senza vincoli prefissati di orario di ricevimento)
  • docente ing. Marco Prandini
    • marco.prandini@unibo.it
    • (05120) 93867
    • ufficio al primo piano del blocco nuovo, oltre l'aula 5.7
  • tutor Dott. Andrea Melis
    • a.melis@unibo.it
  • tutor Dott. Davide Berardi
    • davide.berardi6@unibo.it

Lezione

Materiale utilizzato

Materiale aggiuntivo
20 febbraio

introduzione al corso


Qualche definizione e link interessanti su Wikipedia
26 febbraio

Predisposizione del laboratorio

Principi di funzionamento della shell

Filtri e richiami di scripting
(saranno utilizzati anche in seguito, verificare eventuali correzioni)

Guida dettagliata alla configurazione di VirtualBox
L'appliance della macchina virtuale di base [832 MB]

Pagine man in italiano (la traduzione è incompleta), su Pluto (uno dei principali gruppi di utenti Linux italiani), link per qualunque necessità di approfondimento su Linux, e Tutorial dell'editor vim (prontuario in italiano)

Learn the shell, write scripts: LinuxCommand.org

Usare efficacemente il terminale, soprattutto per gestire molte VM: Tmux (shortcuts and cheatsheet)
27 febbraio

Hardening di base e controllo dell'accesso
notare i comandi evidenziati in rosso:
vanno studiati in preparazione dell'esercitazione successiva


Approfondimenti sui modelli avanzati di controllo dell'accesso in Linux

Firmare driver e altri file perchè vengano riconosciuti dal secure boot
5 marzo

Tracce di semplici esercitazioni su utenti, permessi, shell expansion

Soluzione esercizio aree condivise
Soluzioni degli esercizi su ssh e filtri:
sshnum.shsshload.shsshsort.sh


6 marzo

Cenni di crittografia

Approfondimenti disponibili sul sito del corso di Sicurezza dell'Informazione M
Documentazione sul sito di OpenSSH
Collisioni di MD5
Analisi sulla debolezza di alcune chiavi RSA
Articolo di Matt Blaze sui problemi del lato "fiduciario" di SSL
Solo qualche esempio di quant'è difficile implementare bene la crittografia
Un pezzo di storia fondamentale: la decifrazione del cifrario nazista
12 marzo

Lezione annullata


13 marzo

Vulnerabilità dei sistemi



SANS reading room - quasi 2000 saggi in materia di sicurezza
SecurityFocus - mailing lists, annunci di vulnerabilità, articoli (Infocus)
Corsi di scrittura di codice sicuro gratuiti @safecode
Hardware security :  Rowhammer, o come diventare root un elettrone alla volta, Spectre e Meltdown, un eccesso di efficienza delle CPU
19 marzo

Regular expression e filtri avanzati

Tracce degli esercizi proposti

Esempi di uso dei filtri di testo: individuazione e conteggio delle estensioni .

Soluzione degli esercizi proposti: slide 7 (read e IFS), slide 9 (con ciclo, con awk base, con script awk), slide 10/1 (estensioni limitate a elenco), slide 10/2 (azioni su utenti con lettura da terminale)

Note sui device files di Linux
20 marzo

Monitoraggio e intrusion detection
(include strumenti di laboratorio per monitoraggio e automazione task)

Una breve panoramica di piattaforme di monitoraggio open source
NagiosCactiMunin, OpenNMS, Zabbix
26 marzo

Tracce degli esercizi proposti

Script realizzati in laboratorio: writer.sh, logrotate.sh, syslog remoto, niceexec.sh
(base, da espandere come da tracce)

Soluzioni alle proposte di estensione:
logrotate.sh, niceexec.sh


27 marzo

Installazione di software e gestione dei servizi

Un articolo su opensource.com riassume bene il processo di boot di Linux dal BIOS a systemd
Approfondimenti su systemd: sito ufficiale - "Demystifying systemd", un talk di uno degli autori [videoslide] Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon, Resource management: Linux kernel Namespaces and cgroups
2 aprile

Tracce degli esercizi su processi, segnali e array

Soluzioni: logwatch, parallenne con due array, parallenne che usa i PID come indici non consecutivi di un solo array e realizza le estensioni proposte


3 aprile

Sicurezza delle reti: vulnerabilità, contromisure, VPN.

Configurazione di base della rete in Linux - per approfondimenti si veda il materiale del corso di Laboratorio di Reti di Telecomunicazioni (Interfacce, Routing
Il sito di Wireshark. Un tutorial introduttivo.
Guide e cheatsheet per la suite iproute2.
Aspetti amministrativi:
IANA (gestione domini, assegnazione numeri standard dei protocolli di rete)
Il sistema di assegnazione degli indirizzi IP
9 aprile

Configurazione istantanea e persistente di una rete client-router-server, analisi e diagnostica del traffico

Configurazione di una VPN (emulata sulla rete delle VM) con OpenVPN.

Piccolo prontuario wireshark, tcpdump, openssl 

Copia locale del pacchetto bridge-utils
File bridge config e
client config per il server "road warrior"
10 aprile

Introduzione ai firewall

Filtraggio del traffico in Linux con iptables: volume 9 del corso di Lab. Reti TLC

Homepage del progetto iptables/netfilter, l'ottimo tutorial di Oskar Andreasson ed un'eccellente raccolta di link su LinuxGuruz


16 aprile

Esempi di base di configurazione di iptables: default deny, nat su router

Tracce degli esercizi proposti

Soluzioni con iptables: netmon.sh, connection_monitor.sh, traffic_monitor.sh, log_user.sh

Soluzioni con tcpdump: netmon.sh, connection_monitor.sh, traffic_monitor.sh, log_user.sh

Schema complessivo di Netfilter [png, eps] da tenere sempre sotto mano!
17 aprile / 1

SNMP

In preparazione al laboratorio: man pages snmpcmd, snmpget, snmpset, snmpwalk, snmp.conf, snmpd.conf

Una panoramica sui sistemi di management open source NagiosCactiMunin, OpenNMS, Zabbix
Siti utili per il lookup di OID:
http://www.oid-info.com/index.htm
http://www.alvestrand.no/objectid/index.html
17 aprile / 2

LDAP

In preparazione al laboratorio: man pages ldapadd, ldapdelete, ldapmodify, ldapsearch

Qualche guida per usare LDAP come sistema di autenticazione su Linux: Arch, RedHat, Tecmint.

Integrazione di LDAP con Microsoft Active Directory: Arch, Microsoft, RedHat.
30 aprile
Tracce degli esercizi proposti

sshnum.sh rifatto con snmp
net_user.sh svolto in laboratorio con tre proposte di estensioni da svolgere

Mirror locali (per l'esame)
Gerarchia UCD-SNMP (per leggere i parametri di sistema e l'output dei check proc, disk, load)
Gerarchia NET-SNMP-EXTEND-MIB (per l'output di extend)
7 maggio
Tracce degli esercizi su configurazione server LDAP e manipolazione di entry

Soluzioni: filesystem.ldif, ldap-fs-store.sh, ldap-fs-sumspace.sh, ldap-fs-purge.sh

Soluzioni estensioni: filesystem-perm.ldif, ldap-fs-store-perm.sh, ldap-fs-purge-perm.sh

Brevi note all'uso di ldap sulle macchine virtuali del corso, corredate di link alla documentazione essenziale.
In evidenza: un ottimo prontuario delle diverse sintassi da usare in LDIF per aggiungere, rinominare, modificare entry
8 maggio

Alta disponibilità parte 1: storage affidabile

I data center di Google (visita virtuale), Fibertown,Microsoft, e i molti modi per metterli KO.
Link utili a proposito di RAID: WikipediaLa matematica del RAID6 (PDF, inglese)Guerra ai livelli 3, 4 e 5!
Sull'utilità della ridondanza solo se associata a verifiche periodiche
14 maggio

Proposta la correzione degli esercizi netmon-iptabes
Traccia dell'esercizio di riepilogo


15 maggio

Alta disponibilità parte 2: storage flessibile


21 maggio

Proposta la correzione delle estensioni di ldap-fs-purge e dell'esercitazione iniziata il 14 maggio - soluzioni:
toctoc.sh
routerconf.sh
serverconf.sh
avanti.sh
timeout.sh
openclose.sh
snmpd.conf
count.schema.ldif


22 maggio

Alta disponibilità parte 3: clustering e filesystem distribuiti

Per sperimentare il cloud pubblico: AWS free tier, GCP free tier, sconti e accesso ad altre piattaforme attraverso GitHub Education

Gestione delle configurazioni e disastri sul cloud
Cluster filesystems GPFS (IBM), GFS (RedHat) - Distributed filesystems: Hadoop, Coda (storico ma comodo per le situazioni di connettività intermittente)
28 maggio

Configurazione di un NAS affidabile: partizionamento dei dischi, definizione di un RAID software, formattazione, configurazione per il restart automatico, esportazione via NFS.
traccia dei comandi

pacchetto drbd-utils
29 maggio

Alta disponibilità parte 4: cloud e backup

Per sperimentare il cloud pubblico: AWS free tier, GCP free tier, sconti e accesso ad altre piattaforme attraverso GitHub Education

Gestione delle configurazioni e disastri sul cloud
Sistemi custom e innovazione spinta da utenti eccezionali: cold storage su disco @Facebook, @Microsoft,  esperimenti Blu Ray mai del tutto confermati

Practical recovery on Linux
4 giugno

Soluzioni automatizzate per clustering: una guida per configurare Pacemaker e una per integrarlo con DRBD

Discussione delle prove d'esame proposte (20 dicembre 2018)