Laboratorio di Reti di Telecomunicazioni LA A.A. 2005/2006 Walter Cerroni Il corso Complemento pratico/applicativo dei corsi di Reti di Telecomunicazioni Obiettivo: effettuare esperienze didattiche di installazione e configurazione di servizi di rete basati su TCP/IP in ambienti operativi di tipo public-domain Risultato: acquisire parte delle competenze pratiche di un amministratore di rete 2 1
System and Network Administrator Amministratore dei sistemi informativi di un azienda o di un ente ha il controllo totale del sistema utente root nel mondo Linux/Unix utente administrator nel mondo Windows spesso non basta una persona sola Cosa deve fare: Pianificare la rete (apparati, topologia, cablaggio) Dotarla di connettività con l esterno (Internet) hardware Acquisire e gestire attrezzature hardware Applicare una strategia di recupero dai guasti Installare e aggiornare il sistema operativo Installare e aggiornare il software applicativo software Installare e configurare servizi di rete Gestire l accesso degli utenti Rendere sicuro il sistema e monitorarlo costantemente 3 Scelta degli strumenti di lavoro software Occorre un sistema operativo adatto all ambiente di rete Unix/Linux Multiutente (multiuser) Concorrente (multitasking) Tradizionalmente adottato per gestire/fornire servizi di rete Ne esistono distribuzioni sia commerciali che libere Disponibilità di pacchetti software open-source Windows Server Recentemente evoluto e migliorato Molte funzionalità equivalenti a quelle del mondo Unix/Linux Richiede l acquisizione di licenze software 4 2
Programma del corso Introduzione al sistema operativo Linux Cenni sui comandi di base Linux Configurazione interfacce di rete, proxy ARP, DHCP IP forwarding, firewall e NAT (iptables) Studio e configurazione di una implementazione opensource di un router (click modular router + quagga) Configurazione di VPN con protocollo IPsec Gestione dei servizi applicativi e amministrativi di rete Configurazione di un server web (Apache) TUTTO TRAMITE LINEA DI COMANDO 5 Conoscenze richieste Reti di Telecomunicazioni LA (tutti) Ethernet IP ARP TCP/UDP Reti di Telecomunicazioni LB (chi lo ha nel piano di studi) instradamento IP ICMP DHCP Firewall NAT VPN HTTP Tecniche di crittografia e autenticazione 6 3
Svolgimento lezioni/esercitazioni Lezioni introduttive in aula Esercitazioni in laboratorio Lab. di Elettronica e Telecomunicazioni (via Rasi) 18 PC Linux distribuzione open-source Fedora tutti su rete privata condivisa 192.168.8.0/24 a due a due su reti private punto-punto 10.0.0.X/30 rete fisicamente separata dagli altri lab all avvio del boot loader selezionare l opzione Lab. Reti TLC accesso tramite username e password locali, forniti dal docente via mail modifiche della configurazione IP rendono impossibile l autenticazione di rete home directory locale 7 Materiale didattico e testi consigliati Lucidi proiettati a lezione disponibili sulla home page del corso http://deisnet.deis.unibo.it Didattica II Facoltà Lab. Di Reti di TLC LA Per approfondimenti: Comandi man e info Documentazione on-line suggerita dal docente Manuali del sistema operativo Linux 8 4
Informazioni Altre informazioni e avvisi sulla home page del corso Ricevimento studenti mercoledì: 11.00-13.00 via Venezia Per contattare il docente wcerroni@deis.unibo.it 0547 339207 051 2093089 Esame finale prova pratica al calcolatore 9 Introduzione al S.O. Linux e comandi di base A.A. 2005/2006 Walter Cerroni 5
Sistema operativo Linux Linux è nato nel 1991 dal progetto di uno studente dell'università di Helsinki, Linus Torvalds, che aveva come obiettivo l implementazione su microprocessori i386 di un S.O. multiutente e concorrente, simile a Unix. Linux ha adottato la GNU General Public License (GPL), un contratto di licenza d'uso del software libero (free) che permette a chiunque di modificare e distribuire il software stesso a seconda delle proprie esigenze. Grazie alla libera disponibilità del codice sorgente, una vasta comunità di utenti e sviluppatori si è subito creata attorno al sistema Linux e alle relative applicazioni. Oggi è diventato uno dei sistemi operativi più diffusi, nonché il prodotto di punta del mondo open-source. 11 Distribuzioni Linux Linux è disponibile oggi sottoforma di diverse distribuzioni. Ogni distribuzione aggiunge al kernel tutto il software necessario per avere un sistema operativo completo di applicativi e servizi. Debian: distribuzione completamente sviluppata da una comunità che consta di centinaia di persone in tutto il mondo ed è quella che meglio incarna lo spirito del Free Software. Viene considerata per puristi ed esperti e risulta generalmente meno user-friendly delle altre. Mandriva/Ubuntu: sono user-friendly e probabilmente le più adeguate per un sistema desktop. Red Hat/Fedora: sono tra le più popolari e si adattano bene ad usi diversi (desktop, server, laptop). Slackware: è stata una delle prime distribuzioni. SuSE: un altra distribuzione molto popolare. Per una lista completa delle distribuzioni: http://www.linux.org/dist/index.html 12 6
Installazione di Linux su PC 1. Controllo dell hardware supportato 2. Partizionamento e formattazione del disco rigido 3. Installazione del Boot Loader (LILO, GRUB) 4. Configurazione delle interfacce di rete 5. Scelta della password di root 6. Configurazione dell autenticazione utenti 7. Selezione dei pacchetti applicativi da installare 8. Configurazione di scheda video e monitor E POSSIBILE ESEGUIRE INSTALLAZIONI AUTOMATIZZATE ATTRAVERSO LA RETE 13 Partizioni del disco Necessarie / radice del file system swap spazio per la memoria virtuale (per sistemi recenti da 1 a 2 volte la memoria fisica) Consigliabili a seconda dei casi /var contiene i log e le directory di spool di posta e stampanti /usr contiene gran parte delle applicazioni /home contiene le home directory degli utenti /boot contiene il kernel e i file di avvio /tmp contiene file temporanei Esempi di nomi di unità e/o partizioni: /dev/hda /dev/hdb3 /dev/sda2 /dev/fd0 14 7
Linux File System e mount point Altre importanti directory /bin eseguibili dei comandi usati dagli utenti /dev file che rappresentano i dispositivi /etc file di configurazione di sistema /lib librerie di sistema /mnt mount point di dispositivi vari /opt applicazioni aggiuntive /proc informazioni sui processi di sistema /root home directory dell amministratore /sbin eseguibili dei comandi di sistema Unico file system principale con radice / File system secondari distribuiti su più partizioni e/o unità attraverso i mount point 15 Linux File System e mount point / /home /var /tmp swap 16 8
Esempio 1 Il comando fdisk l <unità> visualizza le partizioni del disco [root@deis76 root]# fdisk l /dev/hda Disco /dev/hda: 40.0 GB, 40000000000 byte 255 testine, 63 settori, 4866 cilindri Unità = cilindri di 16065 * 512 byte Dispositivo Avvio Inizio Fine Blocchi Id Sistema /dev/hda1 * 1 1275 10241406 83 Linux /dev/hda2 1276 1721 3582495 83 Linux /dev/hda3 1722 2167 3582495 83 Linux /dev/hda4 2168 4865 21671685 f Esteso /dev/hda5 2168 2320 1228941 82 Linux swap /dev/hda6 2321 4865 20442681 83 Linux 17 Esempio 2 Il comando fdisk l <unità> visualizza le partizioni del disco [root@deis73 root]# fdisk l /dev/hda Disco /dev/hda: 40.0 GB, 40000000000 byte 255 testine, 63 settori, 4866 cilindri Unità = cilindri di 16065 * 512 byte Dispositivo Avvio Inizio Fine Blocchi Id Sistema /dev/hda1 1 2 16033 de Dell Utility /dev/hda2 * 3 1022 8193150 7 HPFS/NTFS /dev/hda3 1023 3317 18434587 f Esteso /dev/hda4 3318 4866 12442342 83 Linux /dev/hda5 1023 2042 8193118 b Win95 FAT32 /dev/hda6 2043 2173 1052226 82 Linux swap /dev/hda7 2174 3317 9189148 83 Linux 18 9
Esempio 3 Il comando df visualizza le partizioni, i rispettivi mount point e l'ammontare di spazio libero su disco [root@deis76 root]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 10080488 307968 9260452 4% / /dev/hda6 20121812 6248500 12851180 33% /home /dev/hda3 3526204 1962660 1384420 59% /usr /dev/hda2 3526204 331488 3015592 10% /var 19 Esempio 4 Il file /etc/fstab elenca tutti i file system con i rispettivi mount point [root@deis73 root]# cat /etc/fstab /dev/hda4 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 /dev/hda7 /home ext3 defaults 1 2 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda5 /win vfat defaults 0 0 /dev/hda6 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /dev/cdrom1 /mnt/cdrom1 iso9660 noauto,owner,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner 0 0 20 10
Esempio 5 Il comando mount mostra i file system attualmente montati [root@deis73 root]# mount /dev/hda4 on / type ext3 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda7 on /home type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/hda5 on /win type vfat (rw) 21 Inizializzazione del sistema init è il primo processo che parte Livelli di esecuzione (runlevels): 0 halt 1 single-user 2 multi-user senza servizi di rete 3 multi-user 4 non usato 5 multi-user con interfaccia grafica 6 reboot /etc/inittab è il file di configurazione /etc/rc.d/ contiene gli script di inizializzazione dei servizi relativi a ciascun livello 22 11
Comandi di base per il file system ls cd pwd mkdir cp rm mv chown chmod ln cat/more/less elenca file cambia directory corrente mostra la directory corrente crea directory copia rimuovi sposta cambia il proprietario cambia i permessi crea un collegamento mostra il contenuto di un file 23 Gestione dei permessi dei file Ogni file (dati, programma o directory) ha un proprietario (owner) appartenente ad un gruppo di utenti (group) e presenta determinati permessi di accesso visualizzabili tramite il comando ls l nove bit determinano i permessi di lettura, scrittura ed esecuzione (r,w,x) per il proprietario, il gruppo del proprietario e per gli altri utenti del sistema (u,g,o) tre bit ulteriori fanno riferimento a speciali modalità di accesso SUID (Set User ID) si accede al file utilizzando l identificativo del proprietario (UID) SGID (Set Group ID) si accede al file utilizzando l identificativo del gruppo a cui appartiene il proprietario (GID) Sticky se applicato ad una directory, i file contenuti in essa non possono essere cancellati o rinominati da un utente diverso dal proprietario, pur avendo il permesso di scrittura nella directory 24 12
Gestione dei permessi dei file chmod permette di modificare tali permessi (2 modalità) u g o chmod 0755 file rwx r-x r-x chmod 0644 file rw- r-- r-- chmod 0400 file r-- --- --- chmod 4555 file r-s r-x r-x (SUID) u g o u g o rwx r-x r-x chmod u-w file r-x r-x r-x r-x r-x r-x chmod go-x file r-x r-- r-- rw- r-- r-- chmod a+x file rwx r-x r-x r-x r-x r-x chmod u+s file r-s r-x r-x 25 Gestione di Utenti e Gruppi locali useradd crea un account utente userdel elimina un account utente usermod modifica un account utente passwd cambia password groupadd crea un gruppo groupdel elimina un gruppo groupmod modifica un gruppo Esempio: useradd -g utenti -d /home/newusr -p newpasswd -s /bin/bash -c Nuovo Utente newusr 26 13
Database utenti locali /etc/passwd contiene l elenco degli account e relative informazioni newusr:x:503:100:nuovo Utente:/home/newusr:/bin/bash /etc/shadow contiene l elenco delle password cifrate e la loro scadenza newusr:$1$sppz2wcbqrciuu:12145:-1:99999:-1::: /etc/group contiene l elenco dei gruppi utenti:x:100:oldusr1,oldusr2,newusr 27 Home directory e inizializzazione Shell All atto della creazione, la home directory viene riempita con il contenuto di /etc/skel/ Quando si avvia una shell, vengono eseguiti degli script di inizializzazione Bash login: /etc/profile e poi ~/.bash_profile oppure /etc/profile e poi ~/.bash_login oppure /etc/profile e poi ~/.profile Bash logout: ~/.bash_logout Bash interattiva: ~/.bashrc 28 14
Quote del file system (1) E possibile limitare superiormente lo spazio su un file system a disposizione di ciascun utente 1. In /etc/fstab aggiungere l opzione usrquota al file system considerato e aggiornare il mount point /dev/hda7 /home ext3 defaults,usrquota 1 2 # mount /home -o remount 2. Creare il file aquota.user che descrive le quote # quotacheck uv /home 29 Quote del file system (2) 3. Abilitare/disabilitare le quote # quotaon uv /home # quotaoff uv /home 4. Configurare il valore delle quote # edquota user 5. Controllare l utilizzo delle quote # quota -u user # repquota /home 30 15
Monitoraggio last mostra l elenco degli accessi più recenti who mostra gli utenti attualmente connessi ps mostra lo stato dei processi attivi top mostra i processi in tempo reale kill termina un processo du mostra le dimensioni di un file system df mostra lo spazio disponibile su disco /var/log contiene i registri (log) di sistema messages log degli eventi di base secure log degli eventi inerenti questioni di sicurezza httpd/access_log log degli accessi al server web httpd/error_log log degli errori di accesso al server web 31 Deleghe di amministrazione Se un file eseguibile di proprietà di root ha il bit SUID settato, chiunque lo esegua, lo farà assumendo l identificativo di root (con pieni poteri) non è consentito un uso selettivo sulla base dell utente delegato Per una gestione più efficiente delle deleghe si può utilizzare il comando sudo (superuser do) permette a determinati utenti (e solo a loro) di eseguire determinati comandi (e solo quelli) da determinati host (e solo da quelli) con i privilegi di amministratore consente di monitorare l attività dei delegati inserendo nel registro di sistema (syslog) tutte le chiamate a sudo si impostano le deleghe tramite il file di configurazione /etc/sudoers, che tipicamente è accessibile solo a root e che deve essere modificato tramite l editor preposto visudo 32 16
Invocazione di comandi tramite sudo Gli utenti delegati possono eseguire comandi con i diritti di root facendoli precedere dal comando sudo e rispettando le restrizioni specificate in /etc/sudoers La prima volta che si invoca un comando tramite sudo, il programma chiede di inserire la password dell utente delegato per effettuarne l autenticazione, dopodiché controlla che la sintassi del comando da eseguire sia coerente con quanto specificato in /etc/sudoers Da quel momento in poi, ogni altra invocazione tramite sudo non richiede la password, a meno che non sia trascorso un certo intervallo di tempo (tipicamente 5 minuti) dall ultima invocazione 33 Note operative sudo l visualizza l elenco dei comandi che è possibile eseguire tramite sudo molti dei comandi eseguibili solo da root si trovano nelle directory /sbin e /usr/sbin, che in genere non sono incluse nel PATH degli utenti normali verificare il valore della variabile d ambiente con echo $PATH sudo b <comando> esegue tramite sudo un comando in background scadenza della password per sudo : 180 min. mc (Midnight Commander) utile per esplorare il filesystem ed editare file di testo xemacs: editor di testo consigliato per editare file di testo scrivibili solo da root tramite sudo: sudo b xemacs <nomefile> 34 17
Strumenti di monitoraggio Uno strumento indispensabile è l analizzatore di protocollo (o packet sniffer) cattura i pacchetti in transito e ne mostra i dettagli richiede i diritti di root (usare sudo) tcpdump: analizzatore di protocollo a linea di comando ethereal: analizzatore di protocollo con interfaccia grafica Consultazione dei log di sistema basta un visualizzatore di file di testo comandi less o more da linea di comando comando tail per visualizzare la fine del file tail n N <nomefile> viualizza le ultime N righe del file tail f <nomefile> visualizza le ultime righe e continua a mostrare quelle aggiunte in coda in tempo reale 35 Accesso a PC remoti attraverso la rete Per accedere ad un altro host da remoto, usare il comando ssh <username>@<ip_address> (omettendo lo username si assume quello corrente) l opzione X permette il tunneling delle applicazioni grafiche Per copiare un file locale su un altro host, usare il comando scp <filename> <username>@<ip_address>:<path/remote_filename> Il comando ping <host> permette di verificare la raggiungibilità di un host (con eccezioni che vedremo) 36 18