Contract
Esame di stato |
6. SERVIZI DI SISTEMA
La condivisione di risorse, interna o esterna, richiede l’attivazione di servizi di sistema che possono essere anche distribuiti tra più nodi e realizzati sia in hardware che in software. Alcuni di questi servizi sono già stati almeno citati in sezioni precedenti come ad esempio il servizio intranet e la connettività ma in questa unità vengono analizzati tutti i principali servizi di sistema per identificare se il servizio è richiesto dal problema e in che modo può essere realizzato.
Questo capitolo percorre una ipotetica configurazione di un nodo server, ipotizzando che tutti i servizi siano concentrati sullo stesso host anche se nella realtà potrebbe essere conveniente o necessario suddividere i servizi su più host. Ad esempio i servizi di routing, firewall, dns e dhcp potrebbero essere concentrati su un unico host che si trova sulla linea di frontiera tra la rete interna e il mondo esterno perché sono servizi che riguardano l’indirizzamento e la sicurezza mentre tutti gli altri servizi, di natura più applicativa potrebbero essere concentrati su un altro host interno alla rete locale.
Gli esempi si riferiscono ad un host basato sul sistema operativo Linux perché è più semplice documentare le scelte di configurazione che sono tutte contenute in files di testo, ma poiché i servizi si riferiscono a configurazione dei vari strati della catasta di comunicazioni o ad applicazioni standard le considerazioni fatte valgono per qualsiasi sistema operativo.
6.1 Connettività
Gli aspetti hardware e contrattuali del problema della connettività sono già stati trattati nella sezione 5. In questo paragrafo viene mostrata la configurazione di un host che svolge le funzioni di gateway nei confronti di una rete intranet. Il termine gateway è più generico del termine router perché, come sarà posto in evidenza nei punti successivi esistono diverse soluzioni sia hardware che software. Nella terminologia Linux questo insieme di impostazioni viene chiamato Network service ed è gestito direttamente dal kernel senza l’intervento di processi applicativi (demoni)
Indirizzo IP
L’indirizzo IP del server è un numero IP pubblico che appartiene alla rete dell’ISP che fornisce il servizio di connettività. Questo numero può essere assegnato dinamicamente (in genere nelle utenze domestiche) oppure può essere un numero statico preassegnato. In una rete di grandi dimensioni possono essere forniti più numeri IP in modo da suddividere i servizi su più host (vedere l’esempio 5.1 Connettività di un fornitore di servizi).
Se il numero IP è dinamico l’host si deve comportare come un DHCP client mentre se è statico deve essere configurato localmente
L’esempio mostra due files di configurazione da applicare al comando ifconfig per ottenere rispettivamente una configurazione dinamica ed una configurazione statica.
# IP dinamico DEVICE=eth0ONBOOT=yes BOOTPROTO=dhcp PEERDNS=no
|
# IP statico DEVICE=eth1 ONBOOT=yes IPADDR="172.16.0.254" NETMASK="255.255.255.0" PEERDNS=no
|
Nome host
Associato al numero IP deve esistere un nome host che deve essere configurato localmente. Da notare che questo nome host è il nome che l’host ha nella catasta TCP/IP, completo di dominio, il nome cioè che può essere risolto da un DNS. Questo nome è distinto dal nome NBT che invece è piatto, cioè privo di dominio. E’ opportuno che il nome NBT coincida con la prima parte del nome host.
L’esempio un file di configurazione da applicare al comando network per ottenere l’assegnazione del nome host.
NETWORKING=yes HOSTNAME=labsis23.itis.scuolebo |
Per motivi di efficienza è bene che questo nome compaia anche nel file hosts che effettua una risoluzione dei nomi locale prima di tentare una risoluzione DNS.
# The next line "127.0.0.1" is needed. Do not remove it. 127.0.0.1 localhost.localdomain localhost 172.16.0.254 labsis23.itis.scuolebo labsis23 |
Protocollo di accesso
Possiamo immaginare due situazioni: l’host è direttamente collegato con il modem e quindi con la linea WAN (router software) oppure l’host è collegato con un dispositivo hardware programmabile che svolge le funzioni di router ed è a sua volta collegato con il modem (router hardware)
Nel primo caso l’host deve gestire il Layer 2 della WAN che è distinto dal Layer2 della LAN quindi è necessaria la presenza di un servizio che gestisca il protocollo di L2 di WAN, in genere PPP. Questa è la situazione in cui ci si trova in una piccola rete domestica ma può essere anche una LAN priva di router hardware. In questo caso tutte le funzioni di routing sono svolte a livello di questo host.
Nel secondo caso il router hardware ha anch’esso un proprio numero IP distinto da quello del gateway. Il collegamento tra gateway e router avviene in una LAN separata dalla Intranet perché i suoi numeri IP fanno parte della rete pubblica dell’ISP. Sul gateway non c’è un diverso protocollo L2 perché la WAN in questo caso è gestita direttamente dal router che va configurato in modo da svolgere il servizio di routing. Si hanno quindi almeno due numeri IP pubblici (quello del router e quello del server) che vanno a formare una piccola LAN interna basata su numeri IP pubblici. Questa rete è distinta a livello IP (non necessariamente a livello fisico) dalla rete interna quindi il server deve svolgere la funzione di routing tra le due reti IP.
MODEM HW ROUTER MODEM GATEWAY HOST & SW ROUTER
GATEWAY HOST HOST INTERNI HOST INTERNI
|
Note:
Le linee viola rappresentano i collegamenti WAN (doppino, fibra ottica ...)
Le linee arancioni rappresentano i collegamenti punto a punto tra router e modem (seriale, PCI, USB, V34, ETH con cross cable ...)
Le linee blu rappresentano le LAN 802.x
Nel primo esempio il routing è interamente svolto dal host che svolge le funzioni di gateway, quindi questo host ha un collegamento diretto con il modem. Ha inoltre una scheda di rete che lo mette in comunicazione con la LAN interna.
Nel secondo esempio (è la situazione del Belluzzi) il gateway è distinto dal router vero e proprio. In questo caso è il router ad essere collegato punto-a-punto con il modem (nella rete del belluzzi la linea WAN è in fibra ottica, il modem ha una interfaccia Ethernet che è collegata con un cross cable ad una interfaccia ethernet del router). Il gateway ha due interfacce di rete, una lo inserisce nella rete pubblica (blu scuro) e l’altra nella rete privata (blu chiaro) e quindi deve avere due numeri IP uno pubblico ed uno privato.
Se l’host è collegato direttamente al modem deve gestire il protocollo di Layer 2. Nell’esempio che segue è mostrata la configurazione di Layer 2 (PPPoE) per una connessione con modem ADSL da applicare sempre con ifconfig. Il modem ADSL dell’esempio ha una interfaccia ethernet ed è connesso con un cross cable all’intefaccia eth0 dell’host.
USERCTL=yes BOOTPROTO=dialup NAME=DSLppp0 DEVICE=ppp0 TYPE=xDSL ONBOOT=no PIDFILE=/var/run/xxxxx-xxxx.xxx FIREWALL=NONE PING=. PPPOE_TIMEOUT=80 LCP_FAILURE=3 LCP_INTERVAL=20 CLAMPMSS=1412 CONNECT_POLL=6 CONNECT_TIMEOUT=60 DEFROUTE=yes SYNCHRONOUS=no ETH=eth0 PROVIDER=DSLppp0 USER=labsis23 PEERDNS=no |
6.2 Routing
Il routing è una funzione del Network service che opera al Layer 3 ed è svolta direttamente dal kernel. Lo scopo del routing è trasferire un pacchetto IP da una sottorete ad un’altraServe a trasferire i pacchetti a livello IP da una sottorete ad un’altra. In particolare serve a trasferire pacchetti da e per la rete interna e quella pubblica e viceversa.
Il routing viene gestito direttamente dal kernel mediante una tabella di associazione tra reti e gateway a cui indirizzare i pacchetti.
L’esempio che segue mostra la tabella di routing del router di una sottorete (172.16.0)
Il router della rete 172.16.0 è 172.16.0.254 (labsis24) con le seguenti interfacce:
eth0 Link encap:Ethernet Hwaddr 00:50:FC:4D:9D:6D inet addr:192.168.0.55 Bcast:192.168.0.255 Mask:255.255.255.0 ... eth1 Link encap:Ethernet Hwaddr 00:A0:C9:98:AF:73 inet addr:172.16.0.254 Bcast:10.0.0.255 Mask:255.255.255.0 ... |
Etho è collegata alla rete di istituto mentre eth1 è collegata ad una rete di prova
L’host vede entrambe le rete e usa come gateway il router della rete di istituto.
... Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface172.16.0.0 * 255.255.255.0 U 0 0 0 eth1 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
|
Nelle esempio che segue viene mostrata l’impostazione di un routing dalla rete (172.16.0) verso un’altra rete (10.0.0):
Il route deve essere effettuato verso il router della rete 10.0.0 (10.0.0.254) visibile però dall’esterno con il numero 192.168.0.56 (labsis23). Il comando di route è:
route add –net 10.0.0.0 netmask 255.255.255.0 gw 102.168.0.56 |
ll risultato della impostazione è l’aggiunta della seconda riga nella tabella di routing:
... Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface172.16.0.0 * 255.255.255.0 U 0 0 0 eth1 10.0.0.0 192.168.0.56 255.255.255.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
|
La seconda riga indica che i pacchetti indirizzati ai nodi della rete 10.0.0 devono essere inoltrati all’host 192.168.0.56
6.3 Firewall
Un firewall è un componente (può essere sia software che hardware) che seziona e collega tra loro due sottoreti. In genere la separazione è tra la rete interna e tutta la rete Internet esterna.
Un firewall agisce sui pacchetti in transito tra le due sezioni, aprendoli fino al livello IP e prendendo decisioni riguardo a:
Controllo
Modifica
Monitoraggio
L’azione del firewall è comunque indispensabile, a prescindere da eventuali limitazioni sul traffico, nel caso in cui si debba consentire l’accesso a Internet a nodi interni della rete locale che non hanno numeri IP pubblic. Questa operazione si chiama NAT (Network Address Translation). Il firewall operando a livello 3 è in grado di cambiare nel pacchetto IP l’indirizzo sorgente o destinazione operando a livello di kernel.
Source NAT: l'alterazione dell'IP sorgente del primo pacchetto che apre la connessione. Avviene sempre dopo che il pacchetto ha subito il routing (post-routing).
Un esempio di SNAT è il masquerading, con cui tutti gli IP sorgenti di una rete locale vengono convertiti in un unico IP sorgente (del dispositivo che fa masquerading) con cui i pacchetti vengono mandati in rete.
Destination NAT: cioè l'alterazione dell'IP di destinazione del primo pacchetto.
A differenza del SNAT il DNAT avviene sempre prima che il pacchetto subisca il routing (pre-routing). Una forma di DNAT è il port-forwarding.
L’azione del firewall è sempre da vedere in stretta relazione con il routing; infatti le operazioni di firewall vengono distinte in due categorie:
Prerouting: il pacchetto che entra dall’interfaccia viene sottoposto alla operazione prima del routing. Il routing può determinare l’ingresso del pacchetto nell’host locale o il forwarding cioè l’invio ad una interfaccia di uscita.
Postrouting: il pacchetto destinato all’interfaccia di uscita, sia che generato localmente che proveniente da un forwarding viene processato prima dell’uscita.
L
e
due azioni possono essere schematizzate nello schema seguente:
Esempi:
Masquerading iptables -t nat -A POSTROUTING -o ppp0 –j MASQUERADE Tutto ciò che passa in uscita dal proprio modem viene mascherato con l'ip pubblico assegnato dal proprio ISP.
Source Natting iptables -t nat -A POSTROUTING -o eth0 –j SNAT --to 10.0.0.1 Tutti i pacchetti che escono dall'interfaccia eth0, subiscono una variazione dell'ip sorgente in 10.0.0.1
Destination Natting iptables -t nat -A PREROUTING -p tcp –dport 80 -i eth1 -j DNAT --to 10.0.0.1:8080 Tutti i pacchetti TCP, arrivati dall'interfaccia eth1 con destinazione porta 80 vengono "dirottati" all'ip 10.0.0.1 alla porta 8080
|
L’applicazione di regole di firewall produce una tabella che viene consultata dal kernel e che descrive nel complesso le regole applicabili. Ad esempio nel banco di simulazione l’azione di masquerading fatta in inizializzazione sul router produce il seguente risultato:
Masquerading iptables -A POSTROUTING -t nat -s 000.00.0.0/00 -j MASQUERADE
# Risultato generato da iptables (non editare) *nat :PREROUTING ACCEPT [8:1596] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 000.00.0.0/000.000.000.0 -j MASQUERADE *filter :INPUT ACCEPT [36:5319] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # passa tutto sia in entrata che in uscita, c’è solo il mascheramento
|
Alle regole di firewall possono essere aggiunte regole di protezione:
regole di INPUT: impediscono l’accesso dall’esterno a numeri IP o porte TCP/UDP
regole di OUTPUT: impediscono l’uscita dalla rete interna da parte di numeri IP o porte TCP/UDP
Nell’esempio seguente viene mostrato la chiusura verso l’esterno di una porta TCP per accessi non autorizzati
Chiusura della porta tcp 20000
iptables -A INPUT -s 0/0 -p tcp --destination-port 20000 -j REJECT
|
In realtà una tecnica più sicura ma troppo complessa per essere completamente definita in dettaglio in questa traccia potrebbe essere quella di chiudere dapprima tutti gli accessi e poi abilitare selettivamente solo ciò che serve effettivamente:
#Chiudi tutto iptables
-P INPUT DROP #mascheramento rete interna iptables -A FORWARD -s <rete interna> -d 0/0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -s <rete interna> -j MASQUERADE #altre regole su IP o porte specifiche ... iptables
-A INPUT -i eth0 -p <protocollo> –sport <numero>
-j ACCEPT |
6.4 Risoluzione DNS
E’ un servizio di sistema che Risolve i nome pubblici della rete su richiesta di nodi esterni …
Risolve anche i nomi interni su richiesta dei nodi interni …
Il servizio DNS si basa su una applicazione server che risponde alle richieste di risoluzione dei nomi. Ogni zona DNS ha un singolo master name server che mantiene le informazioni di risoluzione in modo “autoritativo”. Ci possono essere anche name server secondari che attingono periodicamente le informazioni dal master e le copiano localmente.
Se un name server non ha informazioni su un host le richiede ad un name server di livello gerarchicamente superiore.
Le informazioni di risoluzione sono contenute in un database che associa i numeri IP ai nomi host del dominio servito dal name server sia nella relazione diretta nomeIP che nella relazione inversa IPnome
#esempio di configurazione di nameserver della rete di prova #il nameserver di livello superiore è il dns di scuolebo zone "scuolebo" IN { type slave; masters { 192.168.0.1; }; file "slaves/scuolebo"; }; #risoluzione inversa di scuolebo zone "000.000.xx-xxxx.xxxx" IN { type slave; masters { 192.168.0.1; }; file "slaves/192.168"; }; #questo dns è autoritativo per la propria rete zone "lan172.itis.scuolebo" IN { type master; file "direct.conf"; allow-update { none; }; notify no; }; #risoluzione inversa zone "0.00.000.xx-xxxx.xxxx" IN { type master; file "reverse.conf"; allow-update { none; }; notify no; }; #file che contiene i dati di risoluzione diretta (direct.conf) dns 1D IN A 172.16.0.254 serv00 1D IN A 172.16.0.254 cli001 1D IN A 172.16.0.1 cli200 1D IN A 172.16.0.200
#file che contiene i dati di risoluzione inversa (reverse.conf) @ IN SOA serv00.lan172.itis.scuolebo. ( ...) IN NS serv00.lan172.itis.scuolebo. 1 IN PTR cli001.lan172.itis.scuolebo. 200 IN PTR cli200.lan172.itis.scuolebo. 254 IN PTR serv00.lan172.itis.scuolebo.
|
Il server opera sulla porta 53/UDP e viene interrogato dai client chi si chiamano resolver. Il resolver per potere operare deve essere configurato in modo da conoscere il numero IP dell’host su cui è ospitato il name server.
In ambiente linux il più comune name server si chiama “bind”
database Server dns Client Numero IP Nome? Numero IP Nome? Server dns Gerarchicamente superiore
|
Note: il resolver è una funzione di sistema operativo invocata dalle varie applicazioni client. Per operare una configurazione che può essere statica oppure dinamica ottenuta via DHCP.
6.5 Servizio proxy
Un proxy server è un servizio di rete che consente ai clients di fare connessioni indirette ad altri servizi di rete. Un cliente si connette, non al servizio effettivo ma al proxy server, che effettua per lui la effettiva connessione con la richiesta della risorsa. Il server proxy fornisce la risorsa al client connettendosi a sua volta al servizio effettivamente richiesto o estraendolo da una memoria cache fornendolo in genere mantengono una memoria cache. In questo modo, in una rete locale molto popolata si riduce il traffico da/per l’esterno, perché si evita di richiedere nuovamente risorse che sono già presenti localmente ottenendo anche un miglioramento del tempo di risposta (se la risorsa è già in cache la comunicazione è solo intranet e non Internet)
Una comune applicazione del proxy è il proxy WEB (squid in ambiente linux)
LAN Host esterno risorsa Scache Server proxy Porta http CPorta proxy SCClient
|
Note:
Il client (browser) deve essere configurato in modo da interrogare il proxy invece che il vero host che fornisce la risorsa specificando nome host proxy e porta proxy.
Il server proxy deve essere configurato specificando la porta di servizio (default=3128) e la cartella di archiviazione
Il firewall può impedire il collegamento diretto dei client agli host esterni costringendo i clienti con numeri IP privati a passare dal proxy.
Il procy può essere escluso per gli accessi intranet dove costituirebbe un inutile salto. La configurazione va fatta sul client.
6.6 Servizio web
Il servizio web (http) è un servizio di rete che espone sulla rete Internet o intranet risorse accessibili attraverso una connessione client alla porta predefinita (80).
Se è necessario avere visibilità web un host della rete pubblica deve avere il servizio web attivo sulla porta predefinita accessibile dall’esterno attraverso il firewall.
Il principio di funzionamento si basa sull’impiego di protocolli di comunicazione standard. Cerchiamo di seguire il flusso delle informazioni che portano alla estrazione delle informazioni facendo riferimento allo schema grafico che segue.
Si parte da un normale browser (Internet Explorer, Netscape …) in esecuzione su un computer che viene quindi definito “client”. Inserendo l’indirizzo di una pagina web (URL) il browser chiede la pagina all’host specificato (RICHIESTA HTTP).
Ad esempio:xxxx://xxx.xxxxxx.xx.xx/xxxx/xxxxxxxx/xxxxxxxx.xxx vuole dire che il client chiede all’host xxx.xxxxxx.xx.xx di fornirgli la pagina generale.php che si trova nella cartella /fahr/archivio usando il protocollo http (Hyper Text Transfer Protocol).
Nell’host deve essere in esecuzione un web server (apache, IIS …) che è un programma che riceve le richieste dal client e le processa.
Se la richiesta si riferisce ad una pagina statica (un documento in formato html) il web server lo preleva dalla cartella specificata (RICERCA DOCUMENTO) e lo inoltra al client (RISPOSTA HTTP) allegando eventuali files non di puro testo specificati nelle tag html (immagini, applet, suoni …). E’ compito del client trasformare le tag contenute nel documento in presentazioni nella finestra del browser (PRESENTAZIONE) eventualmente elaborando le eventuali tag di script client side (JAVASCRIPT).
Se invece la pagina richiesta è attiva (il web server riconosce il tipo di pagina dall’estensione, nel nostro caso “php” ma esistono anche molte altre estensioni riconosciute come “asp”, “jsp” …) il web server inoltra la pagina (DOCUMENTO DINAMICO) ad un altro programma contemporaneamente in esecuzione sull'host.
Questo programma, genericamente chiamato “script interpreter” ,(nel nostro caso php ma esiste anche asp, jsp …) legge ed interpreta le tag contenute nel documento, manda in uscita, indietro (OUTPUT HTML) verso il web server, inalterate tutte le tag html mentre esegue le istruzioni contenute all’interno delle tag di script che lo riguardano.
Tutto ciò che sta dentro a queste tag viene interpretato come un programma dall’interpreter che esegue sequenzialmente come una CPU le istruzioni che incontra. Le istruzioni possono fare una ampia gamma di elaborazioni in stile “C” ma soprattutto possono produrre risultati in uscita con opportune istruzioni di output.
Le uscite prodotte dalla elaborazione, che normalmente sono in forma di tag html (OUTPUT HTML) tornano verso il web server che si vede tornare la pagina trasformata da programma a risultato della elaborazione del programma (cioè una normale pagina html).
A questo punto il web server inoltra la pagina elaborata al client che la presenta nella finestra del browser (PRESENTAZIONE). Eventuali tag di script client-side (JAVASCRIPT) passano inalterate in questo processo perché devono essere elaborate dal client.
Il motivo principale per cui ha senso usare il web attivo è la necessità di estrarre dati “vivi” (cioè variabili nel tempo) da una banca dati.
Una banca dati è un insieme di archivi organizzati sotto forma di tabelle e gestiti da un programma di interrogazione detto sql server.
Per potere accedere ai dati di una banca dati deve essere in esecuzione sull’host il programma sql server (nel nostro caso mySql). Lo script interpretato dallo script interpreter può contenere l’invocazione funzioni che chiedono dati al sql server (FUNZIONI DI DATABASE). Queste funzioni mandano una richiesta al programma sql server detta “QUERY”; il sql server risponde estraendo i dati richiesti dalla banca dati residente nel file system secondo i criteri specificati nella query e rendendo disponibile l’accesso ad una tabella generata “al volo” che contiene il risultato della richiesta (TABELLA DINAMICA). Questa tabella è vista dallo script come un file sequenziale in cui ogni record è costituito da una array di stringhe; quindi lo script scorrendo la tabella può estrarre le informazioni richieste (ESTRAZIONE RECORD) e formattarle per l’uscita verso il web server (OUTPUT HTML).
Il web server estrae le risorse dal file-system web hce è una porzione del file system dell’host
Lo schema che segue mostra, integrati tra loro, il funzionamento di un web server, di uno script interpreter server side, e di un sql server.
HOST COMPUTER
CLIENT COMPUTER
RICERCA
DOCUMENTO
RICHIESTA
HTTP
WEB SERVER
FILE SYSTEM
BROWSER
DOC.
HTML
STATICO
O
DINAMICO
(PHP,ASP…)
URL
PRESENTAZIONE
(HTML,
JAVASCRIPT)
DOCUMENTO
STATICO
ESTRAZIONE
DOCUMENTO
RISPOSTA
HTTP
DOCUMENTO
DINAMICO
OUTPUT
HTML
SCRIPT
INTERPRETER
TAG
STATICHE
ESECUTORE
ISTRUZIONI
FUNZIONI
DI DATABASE
ESTRAZIONE
RECORD
QUERY
TABELLE
DI
DATABASE
SQL
SERVER
TABELLA
DINAMICA
Note:
Nello schema a blocchi compare anche la funzione di web attivo che non è indispensabile per la funzionalità base del web server.
Nello schema a blocchi compare anche la interazione con il sql server la cui presenza è in genere abbinata alla presenza di un interpreter server side.
6.7 Servizio e-mail
Il servizio e-mail, che consente il trasferimento di messaggi tra utenti di di host diversi, è associato alla disponibilità di un user account e quindi deve essere garantito a tutti gli utenti del sistema.
Ad ogni utente registrato sul server è associata una casella postale che è una porzione di file-system gestita dai servizi di posta.
Il servizio di posta si compone di due protocolli:
Spedizione: SMTP: esegue la spedizione del messaggio postale dal client al server postale (send) ed il relay cioè la consegna del messaggio al server postale di destinazione connettendosi a tale server come client. Una copia del messaggio può essere depositata nella casella postale locale.
Ricezione: IMAP/POP: in alternativa eseguono la lettura dei messaggi postali contenuti nella casella postale inviandoli al client postale.
Lo schema seguente mostra il flusso delle informazioni:
SCread send CCrelay Smailbox Server postale Altro Server postale SClient
|
6.8 Servizio ftp
Il servizio, che consente il trasferimento di file tra due host in entrambe le direzioni (dpwnload = remotolocale, upload = localeremoto), può essere utilizzato sia in modo autenticato che anonimo.
Nel caso autenticato da accesso sia alle aree pubbliche del file-server in lettura che a quelle private dell’utente autenticato in lettura/scritutra. mentre nel caso anonimo si ha accesso solo alle aree pubbliche solo in lettura le-mail è associato alla disponibilità di un user account e quindi deve essere garantito a tutti gli utenti del sistema.
Il protocollo FTP si compone di due connessioni TCP; una serve per il trasferimento dei comandi e delle risposte e viene aperta dal client sul server FTP sempre sulla porta 21, mentre la seconda che serve per il trasferimento dei dati viene negoziata dopo la connessione della prima mediante comandi sulla porta di comando. Nella seconda connessione il server può essere sia dal lato locale (active mode) e in tale caso è il server FTP remoto che chiede la connessione all’host locale oppure può essere sul lato remoto (passive mode) e in tale caso è ancora il client locale che chiede una ulteriore connessione al server ftp. In ogni caso il numero porta (in genere un numero alto) viene negoziato sulla connessione di controllo aperta. Il modo di defult in genere è attivo, può essere necessario ricorrere al modo passivo per scavalcare ostacoli alla visibilità delle porte posti dal firewall
Connessione dati Connessione di controllo S/CC/SSCServer ftp Client File-system locale File-system remoto
|
6.9 Servizio SQL
Il servizio SQL è realizzato da una applicazione (detta motore SQL) che opera come DBMS (Data Base Management System) gestendo banche dati e consentendo ad applicazioni ed interfacce l’accesso ai dati contenuti nelle banche dati.
Esistono molti tipi di DBMS. In questo paragrafo vengono trattati solo i motori SQL che operano come server TCP. Questi motori (MySQL, Postgess, ...) sono applicazioni in ascolto su una porta TCP predefinita e accettano connessioni dai client. Sul socket connesso il client invia in comandi SQL e riceve le risposte.
Il vantaggi di questi sistemi rispetto ad altri che adottano tecniche proprietarie è che questi sistemi si integrano facilmente con gli altri servizi basati su TCP/IP come i web server consentendo una semplice realizzazione di banche dati online.
Lo schema a blocchi è infatti integrato con il precedente schema del servizio web e non viene ripetuto.
Si deve comunque tenere presente che l’interfaccia web non è l’unica soluzione possibile per la comunicazione con un SQL server ma potrebbe essere anche una applicazione cliente locale o remota, visuale o a linea di comando o anche infine un'altra applicazione server priva di interfaccia (daemon nella terminologia linux, service nella terminologia windows)
6.10 Servizio CRON
E’ uno schedulatore applicativo che consente di eseguire azioni programmate secondo un calendario configurabile. La gestione di questo servizio di sistema scarica i servizi applicativi dalla necessità di mantenere un proprio calendario di schedulazione perché si può progettare un modulo applicativo che viene invocato da CRON secondo una schedulazione di sistema.
Esempio: Per schedulare automaticamente il servizio di acquisizione dei dati meteorologici dalla stazione di data-logger il server studenti invoca ogni ora uno script php a linea di comando (quindi senza interfaccia web) che in modo silente effettua la connessione al data-logger e tenta di estrarre i dati. Nella tabella cron.hourly che schedula le azioni da fare ogni ora si trova il seguente comando:
/usr/bin/php -q /var/www/html/meteo/meteoserv.php |
Note:
/usr/bin/php è la invocazione del motore di interpretazione comprensiva di percorso di ricerca
-q indica che l’azione deve essere ‘quiet’ cioè senza alcuna generazione di output come è tipico dei daemon
/var/www/html/meteo/meteoserv.php è il nome dello script da eseguire comprensiva del percorso di ricerca nel file-system host (notare che sebbene lo script sia nel file-system web il percorso deve essere assoluto)
6.11 Servizio VOIP (Voice Over Internet Protocol)
La tecnologia VoIP si può definire come una infrastruttura alternativa per le comunicazioni telefoniche. In sostituzione delle comuni linee telefoniche pubbliche o private (centralini), si possono utilizzare le reti dati che sfruttano il protocollo TCP/IP tipico di Internet e delle Intranet aziendali per il trasporto delle informazioni. La voce, che è una grandezza analogica, viene convertita in digitale, compressa ed "impacchettata" sulla rete dati per poi, una volta giunta a destinazione, essere "spacchettata" , decompressa e e riconvertita in analogico.
Voce (sorgente) - - ADC - - - - Internet - - - DAC - - Voce (dest)
|
I vantaggi nell’utilizzo di VOIP sono:
riduzione dei costi telefonici
utilizzo di un’unica infrastruttura di comunicazione
Svantaggi:
Anche il corrispondente deve essere collegato a Internet
La fonia richiede comunicazione in ‘tempo reale’ che non è tipica di Internet e rende necessaria la presenza di componenti speciali sia hardware che software(Gateway VOIP, Gestore di banda, Gatekeeper).
Dal punto di vista software la catasta di comunicazione si presenta così:
|
||||
|
Application |
|
Appl. Voice H323 |
|
Presentation |
||||
Session |
RTP |
|||
Trasport |
|
UDP |
||
Network |
|
IP |
||
Datalink |
|
Dipendente da hw |
||
Phisical |
||||
|
La comunicazione avviene attraverso una catasta di protocolli standardizzata con la sigla H323. Una applicazione conforme allo standard H323 utilizza il protocollo applicativo RTP ( Real Time Protocol) appoggiato su UDP/IP. Il protocollo RTP non usa TCP perché è troppo lento per il ‘tempo reale’ e provvede all’ordinamento dei pacchetti (indispensabile in fonia) che non è garantito da UDP.
Dal punto di vista hardware è indispensabile una scheda audio full duplex ma esistono anche schede acceleratrici per effettuare in hw la compressione.
Un esempio di applicazione conforme al protocollo H323 è ‘Netneeting’.
Riassumendo le operazioni da effettuare per la generazione dei servizi di sistema sono:
Connettività
Configurazione delle interfacce di rete del router e degli host pubblici
Assegnazione dei nomi degli host pubblici
Configurazione della interfaccia WAN
Routing
Definizione dei percorsi di route
Mascheramento dei numeri IP privati
Eventuale forwarding
Risoluzione dei nomi
Configurazione del name server
Configurazione del resolver
Web proxy
Porta di servizio
Cartella cache
Servizio web
Definizione della percorso del file system web
Servizio e-mail
Configurazione degli utenti
Tipo di accesso POP/IMAP
Servizio ftp
Configurazione degli utenti
Tipo di accesso Active/Passive
Servizio sql
Configurazione degli utenti sql
Generazione delle banche dati applicative
Servizio cron
Schedulazione degli eventi
|
|
ITIS “X.Xxxxxxxx” – Laboratorio di Sistemi |
13-13 |