Università
di Bologna
Universita di Bologna
Facoltà di
Ingegneria
Facolta di Ingegneria

Dipartimento di Elettronica
Informatica e Sistemistica

Laboratorio di Informatica 
Avanzata
lia

uniwex logo
Iscrizione agli esami

Corso di Amministrazione di Reti di Calcolatori L-A

A.A. 2003/2004

Informazioni generali
Materiale didattico
Laboratorio
Calendario


Le esercitazioni si svolgono in LAB3, secondo il calendario comunicato su questo sito, in ambiente Linux. L'accesso al sistema richiede:

  • uno username che può essere calcolato inserendo la matricola qui e premendo

  • una password che è il PIN del badge

Modalità di svolgimento degli esercizi: ogni studente deve depositare, entro la mattina precedente la data d'inizio di ciascun appello, nella cartella ARC2004 creata all'interno della propria home directory tutti i file che riguardano gli esercizi, nominandoli come indicato di seguito

Elenco degli esercizi da svolgere
Per ogni esercizio è riportato il nome del file che deve contenere la soluzione. Nel caso sia necessario configurare syslog, cron o init per eseguire correttamente i compiti assegnati,
non è richiesto di inventare soluzioni sofisticate per impostare tali configurazioni automaticamente dallo script stesso, è sufficiente indicare nei commenti come si procederebbe.

Nome file
Testo
estensioni.sh
Contare quanti file esistono con una certa estensione, per tutte le estensioni presenti nel sistema
estparam.sh
Contare quanti file esistono con una certa estensione, dato un elenco di estensioni passate sulla riga di comando
runlevel.sh
Elencare in quali runlevel viene avviato dalla procedura di inizializzazione del sistema un servizio passato come argomento
logproc.sh

Registrare in un logfile il numero di istanze attive di un processo indicato come argomento, con una frequenza di campionamento di 1 minuto.
logfast.sh

Variante all'esercizio precedente: progettare un wrapper che invochi logproc.sh in modo da abbassare la frequenza di campionamento a 5 s.
usermon.sh

Monitorare continuamente il sistema e avvertire immediatamente root appena un utente specificato come argomento lancia un qualunque processo
diskmon.sh

Monitorare continuamente il sistema e avvertire root quando lo spazio libero di una qualunque partizione scende sotto il 10%
filemon.sh
(bozza: processi.sh)
Elencare tutti i file impegnati da un utente (specificato come argomento) per mezzo dei suoi processi. L'elenco deve essere composto dei soli nomi dei file, e non deve contenere duplicati
sshnum.sh
Visualizzare il numero di processi in esecuzione su una macchina remota il cui nome sia passato coe argomento
sshload.sh
Dato un file "lista"che contiene un nome di macchina in ciascuna riga, visualizzare il nome di quella che ha meno processi che girano
sshsort.sh
Dato un file "testo" composto da 1 parola per ogni riga lo si faccia remotamente ordinare alla macchina che ha meno processi in esecuzione tra quelle elencate nel file "lista"
snmpmax.sh
Scrivere uno script bash che faccia il polling del traffico in ingresso allo switch ogni 10 secondi ed estragga la porta fisica con maggiore traffico, appendendo il valore ottenuto nel file max_traffic.txt. Si consiglia di utilizzare l’OID 1.3.6.1.2.1.2.2.1.10.
snmparp.sh
Cercare su Internet la struttura del MIB-II standard, e dedurre come si può interrogare lo switch per sapere la porta fisica alla quale siete collegati.
iptlog1.sh
Fare il log del traffico diretto alla porta 631 della propria macchina.
iptlog2.sh
Fare il log del traffico diretto alla porta 631 della propria macchina che non sia proveniente dalla macchina stessa.
iptping.sh
Dato un file di nome "elenco" contentente diversi IP (uno per riga), e dato sulla riga di comando un parametro "durata"  espresso in secondi, produrre uno script che consenta di far passare ping dalla propria macchina verso una qualunque delle macchine presenti in elenco per un tempo “durata” dalla partenza dello script. Scaduto il periodo blocchi l’uscita dei ping, ma consenta comunqe alle altre macchine di pingare la propria
super1.sh
Costruire uno script che appena lanciato impedisca a chiunque di accedere da remoto via ssh, e all’arrivo di un ping da una macchina qualsiasi che chiameremo "m" consenta alla macchina "m" stessa di accedere alla nostra macchina via
ssh.
super2.sh
Modificare lo script precedente in modo che, senza mai fermarsi, osservi i tutti i ping in arrivo, chiudendo l'accesso ssh alla macchina "m" alla ricezione di un ping successivo a quello che aveva richiesto l'apertura dell'accesso. Il sistema deve essere multiuser, cioè deve gestire correttamente le richieste provenienti da una molteplicità di macchine.
super3.sh
Modificare lo script precedente in modo che, se una macchina ha avuto accesso ssh in seguito ad un ping, l'accesso venga automaticamente revocato (anche se non arriva un altro ping) se tale macchina non produce traffico ssh per "durata" secondi.