Configurazione IP di un host Unix - interfacce Sono specificate da sigle come eth0, eth1, tr0, sl0, Si configurano con il comando ifconfig: ifconfig <if> [addr] [netmask <mask>] [broadcast <braddr>] [up down] Esempi ifconfig eth1 3.3.3.129 netmask 255.255.255.192 broadcast 3.3.3.191 Per sapere come è configurata un interfaccia: ifconfig eth0 Per disattivare un interfaccia: ifconfig eth0 down Configurazione IP di un host Unix - routing Le tabelle di routing devono descrivere le reti locali a cui l host è connesso e specificare i gateway per le destinazioni esterne a tali reti. Il comando usato per manipolare le tabelle è route: route [add del] -net <net> [netmask Nm] [gw Gw] Esempi reti locali: il kernel riconosce che l host ha delle interfacce che vi possono accedere direttamente route add net 3.3.3.128 netmask 255.255.255.192 (rete accessibile da eth1 dell esempio precedente) reti remote, cioè non connesse ad interfacce locali route add net 10.0.0.0 netmask 255.0.0.0 gw 3.3.3.170 (li gateway deve essere accessibile su una retel locale) default route add default gw 3.3.3.166 (default è semplicemente un alias per -net 0.0.0.0 netmask 0.0.0.0 ) Per leggere la routing table: route Per eliminare una route è sufficiente sostituire add con del.
Verifica di base della connettività IP Il controllo dei percorsi dei pacchetti IP è svolto per mezzo del protocollo ICMP (Internet Control Message Protocol). livello utente sono molto utilizzati i comandi ping e traceroute che fanno uso di ICMP per diagnosticare il funzionamento della rete: ping - È utilizzato per verificare la raggiungibilità di un host. Invia un messaggio ECHO_REQUEST all host, che risponde con un messaggio ECHO_RESPONSE. - Può essere utilizzato specificando come destinazione un indirizzo locale per verificare il corretto funzionamento dello stack TCP/IP - Può essere utilizzato per stimare grossolanamente il throughput di una connessione: l opzione -s permette infatti di specificare la dimensione del payload Traceroute - È utilizzato per visualizzare il percorso dei pacchetti. - Invia una serie di pacchetti UDP con (time to live) crescenti verso la destinazione. Si ricordi che il viene decrementato di un unità ad ogni attraversamento di router, e che quando un router pone =0 scarta il pacchetto inviando al mittente un messaggio ICMP exceeded - Ogni pacchetto può, secondo lo standard IP, fare strade diverse! - lternative: o Opzione per inviare pacchetti ICMP anziché UDP (firewall) o Opzione record route di ping (limite di dimensione) Traceroute proxy.ing.unibo.it 137.204.61.135 137.204.56.0/21 almr06_ing.ing.unibo.it 137.204.58.254 192.12.77.? =1 =2 =3 =4 [proxy@proxy proxy]$ /usr/sbin/traceroute www.unibo.it traceroute to cesias.alma.unibo.it (137.204.24.226), 30 hops max, 40 byte packets 192.12.77.0/24 192.12.77.3 137.204.1.? 137.204.1.0/24 almr22.unibo.it 137.204.1.10 137.204.24.? 1 almr06_ing (137.204.58.254) 1.578 ms 2 192.12.77.3 (192.12.77.3) 4.246 ms 3 almr22.unibo.it (137.204.1.10) 3.504 ms 4 cesias.alma.unibo.it (137.204.24.226) 3.108 ms [proxy@proxy proxy]$ 137.204.24.0/2 www.unibo.it 137.204.24.226
Servizi essenziali: risoluzione dei nomi Il componente di sistema che permette di ricavare l indirizzo IP associato ad un nome di host e viceversa fa parte della librerie essenziali e si chiama resolver - Come per tutti i servizi di mappatura di nomi simbolici, il primo livello di configurazione è affidato al file /etc/nsswitch.conf Esempio di entry: hosts: files dns - files nel caso del dns significa /etc/hosts - dns significa utilizzare l architettura DNS, il cui client è configurato in /etc/resolv.conf Esempio: search ing.unibo.it unibo.it nameserver 137.204.58.4 nameserver 137.204.59.1 - Per interrogare il risolutore dei nomi DNS si possono utilizzare i client host <nome> (restituisce l IP corrispondente) dig [categoria] <dominio> (categoria ad esempio può essere MX, NS, ) Servizi essenziali: sincronizzazione L accurata regolazione dell orologio di sistema è importantissima - per il buon funzionamento di protocolli di autenticazione - per il monitoraggio locale delle attività, registrate nei file di log - per il confronto di serie temporali di eventi tra host diversi Può essere svolta essenzialmente in due modi - avviando il demone ntpd al boot e mantenendolo sempre attivo - lanciando periodicamente il comando ntpdate meno preciso ma più pratico in caso di connettività non costante Entrambi implementano il Network Time Protocol (NTP) versione 4. I file di configurazione del demone sono: /etc/ntp.conf /var/lib/ntp/drift /etc/ntp/keys Esempio delle direttive essenziali di ntp.conf: restrict default nomodify notrap noquery restrict 127.0.0.1 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server 0.pool.ntp.org peer other.host.localdomain server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
revissima introduzione alla crittografia asimmetrica lla base dei sistemi di cifratura asimmetrici sono i cosiddetti problemi difficili, ovvero quelli che si suppone siano computazionalmente non affrontabili Esempio: diverse operazioni in aritmetica modulare (logaritmo, estrazione di radice, ) Utilità: costruire funzioni che siano facili da calcolare in un verso ma non nell'altro (unidirezionali) o lo diventino conoscendo un segreto (pseudo-unidirezionali) Nella crittografia asimmetrica le chiavi usate per cifrare e decifrare sono diverse, ed il concetto di funzione unidirezionale è usato in questo modo: Si deve poter scegliere a caso una chiave di cifratura Si deve poter determinare con facilità la chiave di decifrazione corrispondente Non si deve poter determinare la prima dalla seconda Si può rendere pubblica la chiave di cifratura chiunque può cifrare un messaggio per il suo titolare Si tiene privata la chiave di decifrazione solo il titolare potrà rimettere in chiaro il messaggio a chiave pubblica (illeggibile)
Cifrari asimmetrici reversibili - firma (inalterato) Firma Uguali? Firma e cifratura Uguali? (inalterato) Firma firmato (illeggibile) Firma
RS Generazione delle chiavi: 1. si scelgono due numeri primi p e q 2. il modulo viene calcolato come n = pq 3. si sceglie a caso un numero e e si calcola un numero d tale che ed mod (p-1)(q-1) = 1 4. si "gettano via" p e q 5. la chiave pubblica è (e, n), la chiave privata (d, n) : Decifrazione c = m e mod n m = c d mod n asato sulla difficoltà di fattorizzare grandi numeri (se fattorizzassi n, cioè risalissi a p e q, potrei ripetere il calcolo di d da e) asato sulla difficoltà di estrarre radici di grande indice in aritmetica modulare (ovviamente m potrebbe essere calcolato come radice e-esima di c) La crittografia asimmetrica per l autenticazione Identificando Verificatore ID sfida RN G r S S risposta V chiave pubblica = Si/No
Secure SHell (SSH) SSH è un protocollo per connettere un client ad un terminale virtuale di un server attraverso un canale sicuro - cifratura: i dati in transito non sono intercettabili - autenticazione dell host: un intruso non può spacciare la propria macchina per un server noto semplicemente appropriandosi del suo IP, perché non ne conosce la chiave privata - opzionalmente autenticazione dell utente tramite crittografia asimmetrica anziché tramite password. Il demone sshd è di default in ascolto sulla porta 22/tcp. Il client ssh può essere invocato - con il solo nome o indirizzo del server quale parametro si avvia una sessione interattiva di terminale remoto - con ulteriori parametri tali parametri sono inviati al terminale remoto che li esegue come comandi sul server gli stream di in, out ed err del client sono collegati ai corrispondenti stream del comando remoto; esempio: [root@client]# cat file ssh server sort > ordinato Secure SHell (SSH) passwordless login Una delle caratteristiche più utili di ssh è quella di poter preconfigurare un account per essere accessibile da remoto in modo sicuro, senza dover digitare la password. Quella che si crea è una relazione di fiducia: - l utente localadmin sulla macchina server mette in un file di configurazione a cui lui solo ha accesso la chiave pubblica dell utente remoteadmin azione consapevole e limitata esclusivamente a localadmin - quando remoteadmin tenta di connettersi a server e di loggarsi con l account localadmin, essendo in possesso della chiave privata corrispondente può completare con successo l autenticazione a chiave pubblica Come si fa: 1) remoteadmin deve generare una propria coppia di chiavi: ssh-keygen t dsa b 2048 ~remoteadmin/.ssh/id_dsa ~remoteadmin/.ssh/id_dsa.pub 2) il contenuto di id_dsa.pub viene copiato su server nel file ~localadmin/.ssh/authorized_keys2