Avanti Indietro Indice

28. Appendice

28.1 Intestazione IP (Internet Protocol)

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   -----------------------------------------------------------------
   |Version|  IHL  |Type of Service|          Total Length         |
   -----------------------------------------------------------------
   |         Identification        |Flags|      Fragment Offset    |
   -----------------------------------------------------------------
   |  Time to Live |    Protocol   |         Header Checksum       |
   -----------------------------------------------------------------
   |                       Source Address                          |
   -----------------------------------------------------------------
   |                    Destination Address                        |
   -----------------------------------------------------------------
   |                    Options                    |    Padding    |
   -----------------------------------------------------------------

Version

Versione del protocollo utilizzata. Attualmente è utilizzato l'IPv4 è comunque già disponibile anche la versione più recente dell'internet protocol (IPv6).

IHL

Lunghezza dell'intestazione espressa in parole di 32 bit.

Type of Service (TOS)

Consente di specificare il tipo di servizio desiderato (ritardo minimo, massimo throughput, massima affidabilità, costo minimo). In particolare contiene 3 bit per indicare la precedenza (Precedence), 3 flag (D, T ed R), e 2 bit inutilizzati.

Total length

Lunghezza totale del pacchetto (intestazioni e dati). La lunghezza massima prevista è di 65535 byte.

Identification

Questo campo permette di stabilire a quale pacchetto appartiene il frammento arrivato. In caso di frammentazione solo il primo frammento ha sia l'intestazione IP sia l'intestazione UDP o TCP, il secondo e i successivi hanno solo l'intestazione IP.

Flags

Il campo flags è composto da 3 bit, il primo è inutilizzato, il secondo detto DF (Don't Fragment) se impostato serve a segnalare di non frammentare i pacchetti. Il terzo bit MF (More Fragments) serve ad indicare che il "pacchetto" è in realtà un frammento, a parte l'ultimo tutti i frammenti hanno questo bit impostato.

Fragment Offset

Serve per specificare in quale posizione del pacchetto corrente si trova questo frammento.

Time to Live (TTL)

Questo campo è impostato con un valore che stabilisce quanto può vivere un pacchetto. In genere ad ogni salto da un host all'altro è decrementato. Quando un host riceve un pacchetto con campo TTL pari a zero provvede ad eliminarlo. Questa operazione è necessaria per impedire che i pacchetti continuino a viaggiare nella rete a tempo indeterminato.

Protocol

Un pacchetto IP incapsula in genere un pacchetto TCP o ICMP o UDP. Questo campo è utilizzato per specificare il tipo di pacchetto.

Header checksum

Questo campo è utilizzato per controllare se il pacchetto è corretto o se è stato danneggiato durante il passaggio da un host all'altro.

Source Address

Indirizzo IP sorgente dell'host che ha inviato il pacchetto

Destination Address

Indirizzo IP destinazione ossia indirizzo IP dell'host a cui è destinato il pacchetto.

Options

Questo campo è stato aggiunto per supportare le nuove caratteristiche, informazioni richieste da nuove versioni del protocollo.

28.2 Intestazione TCP (Transmission Control Protocol)

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   -----------------------------------------------------------------
   |          Source Port          |       Destination Port        |
   -----------------------------------------------------------------
   |                        Sequence Number                        |
   -----------------------------------------------------------------
   |                    Acknowledgment Number                      |
   -----------------------------------------------------------------
   |  Data |           |U|A|P|R|S|F|                               |
   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
   |       |           |G|K|H|T|N|N|                               |
   -----------------------------------------------------------------
   |           Checksum            |         Urgent Pointer        |
   -----------------------------------------------------------------

Source Port

Il campo Source Port (porta sorgente) è indispensabile per specificare a quale porta devono essere indirizzati i pacchetti tcp di risposta.

Destination Port

Destination Port (porta destinazione) serve per specificare a quale porta (telnet, www, ...) è destinato il pacchetto tcp.

Sequence Number e Acknowledgment Number

Numeri di sequenza utilizzati per riordinare i pacchetti ed effettuare controlli.

Data Offset

Questo campo è utilizzato per specificare la lunghezza in parole di 32 bit dell'intestazione TCP.

Reserved

Campo riservato per uso futuro.

URG,ACK,PSH,RST,SYN,FIN

Flag (1 bit ciascuno) con ciascuno con diversa funzione. URG è impostato per segnalare dati urgenti. ACK è utilizzato per indicare che il pacchetto è di conferma. PSH (PUSH) da impostare se si desidera che il pacchetto giunga a destinazione e direttamente all'applicazione senza essere memorizzato temporaneamente in un buffer. RST (RESET) è impostato quando si desidera reinializzare una connessione a causa di problemi. SYN è utilizzato per indicare che il pacchetto è di richiesta connessione. La "three way handshake" utilizzata per stabilire una connessione richiede l'invio di pacchetti SYN e ACK. FIN quando si desidera chiudere una connessione stabilita è richiesto l'invio di un pacchetto con il flag FIN impostato.

Window Size

Questo campo è utilizzato per specificare quanti byte possono essere spediti a partire dal byte confermato.

Checksum

Come nel caso dell'intestazione IP, anche TCP prevede un campo dedicato alla verifica della correttezza dell'intestazione.

Urgent Pointer

E' utilizzato per specificare lo scostamento in byte a partire dal numero di sequenza attuale dove possono essere trovati i dati urgenti.

28.3 Intestazione UDP (User Datagram Protocol)


    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   -----------------------------------------------------------------
   |          Source Port          |       Destination Port        |
   -----------------------------------------------------------------
   |            Lenght             |           Checksum            |
   -----------------------------------------------------------------
 

Source Port

Porta sorgente.

Destination Port

Porta destinazione.

Lenght

Dimensione del pacchetto (intestazione + dati).

Checksum

Utilizzato per garantire l'affidabilità e la correttezza delle informazioni contenute.

Anche i pacchetti UDP sono incapsulati in pacchetti IP.

28.4 Intestazione ICMP (Internet Control Message Protocol)

I pacchetti ICMP possono avere intestazioni con campi diversi, tutti comunque hanno i campi Type, Code e Checksum. Seguono le intestazioni dei pacchetti ICMP "destination unreachable" (tipo 3) e "echo-request/reply" (tipo 8 e 0):


Destination unreachable

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   -----------------------------------------------------------------
   |       Type    |      Code     |           Checksum            |
   -----------------------------------------------------------------
   |                            Unused                             | 
   -----------------------------------------------------------------
  

echo-request/echo-reply

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   -----------------------------------------------------------------
   |       Type    |      Code     |           Checksum            |
   -----------------------------------------------------------------
   |           Identifier          |        Sequence number        | 
   -----------------------------------------------------------------

Type

Tipo di pacchetto icmp. I tipi disponibili sono: Echo Reply (0), Destination Unreachable (3), Source Quench (4), Redirect (5), Echo (8), Time Exceeded (11), Parameter Problem (12), Timestamp (13), Timestamp Reply (14), Information Request (15) e Information Reply (16).

Code

Codice associato. Ad esempio al tipo "Destination Unreachable" può essere associato: net unreachable (code=0), host unreachable (1), protocol unreachable (2), port unreachable (3), fragmentation needed and DF set (4), source route failed (5).

Identifier e Sequence number

Utilizzati per identificare i pacchetti icmp.

28.5 Servizi

I seguenti servizi presentano dei problemi per quanto riguarda la sicurezza se si permette di accedervi dall'esterno.

Se non servono allora è il caso di filtrarli.


NOME SERVIZIO          PORTA            PROTOCOLLO
-------------          -----            ----------
echo                       7                TCP/UDP
systat                   11                TCP
netstat                  15                TCP
bootp                    67                UDP
tftp                     69                UDP
link                     87                TCP
supdup                   95                TCP
sunrpc                  111                TCP/UDP
NeWS                    144                TCP
snmp                    161                UDP
xdmcp                   177                UDP
exec                    512                TCP

login                   513                TCP
shell                   514                TCP
printer                 515                TCP
biff                    512                UDP
who                     513                UDP
syslog                  514                UDP
uucp                    540                TCP
route                   520                UDP
openwin                 2000               TCP
NFS                     2049               UDP/TCP
X11                     6000 6000+n        TCP
 

n = numero max. di server X.

Fonte: www.linux-firewall-tools.com/linux/papers/AUSCERT_checklist1.1


Avanti Indietro Indice