<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: manhtml.xml 2940 2006-05-28 19:31:00Z lgrespan $ -->
<article id="man">
  <artheader>
    <title>Guida di riferimento di Nmap (pagina di manuale)</title>
  </artheader>

  <refentry id="man-nmap1">
    <refmeta>
      <refentrytitle>nmap</refentrytitle>

      <manvolnum>1</manvolnum>
    </refmeta>

    <refnamediv id="man-name">
      <refname>nmap</refname>

      <refpurpose>Strumento di network exploration e security / port
      scanner</refpurpose>
    </refnamediv>

    <!-- body begins here -->

    <refsynopsisdiv id="man-synopsis">
      <cmdsynopsis sepchar=" ">
        <command moreinfo="none">nmap</command>

        <arg choice="opt" rep="repeat">
          <replaceable>Tipo di Scansione</replaceable>
        </arg>

        <arg choice="opt" rep="norepeat">
          <replaceable>Opzioni</replaceable>
        </arg>

        <arg choice="req" rep="norepeat">
          <replaceable>Obbiettivo</replaceable>
        </arg>
      </cmdsynopsis>
    </refsynopsisdiv>

    <refsect1 id="man-description">
      <title>Descrizione</title>

      <para>Nmap (<quote>Network Mapper</quote>) e` uno strumento open source
      per la network exploration e l'auditing. E` stato progettato per
      scansionare rapidamente reti di grandi dimensioni, ma e` indicato anche
      per l'utilizzo verso singoli host. Nmap usa pacchetti IP raw (grezzi,
      non formattati) in varie modalita` per determinare quali host sono
      disponibili su una rete, che servizi (nome dell'applicazione e versione)
      vengono offerti da questi host, che sistema operativo (e che versione
      del sistema operativo) e` in esecuzione, che tipo di firewall e packet
      filters sono usati, e molte altre caratteristiche. Nonostante Nmap sia
      comunemente usato per audits di sicurezza, molti sistemisti e
      amministratori di rete lo trovano utile per tutte le attivita`
      giornaliere come ad esempio l'inventario delle macchine presenti in
      rete, per gestire gli aggiornamenti programmati dei servizi, e per
      monitorare gli host o il loro uptime.</para>

      <para>L'output di Nmap e` uno scan di un elenco di obbiettivi, con
      informazioni supplementari per ognuno a seconda delle opzioni usate. Tra
      queste informazioni e` vitale la <quote>tabella delle porte interessanti
      </quote>. Questa tabella elenca il numero della porta e il protocollo,
      il nome del servizio, e lo stato attuale. Lo stato puo` essere <literal
      moreinfo="none">open (aperto)</literal>, <literal
      moreinfo="none">filtered (filtrato)</literal>, <literal
      moreinfo="none">closed (chiuso)</literal>, o <literal
      moreinfo="none">unfiltered (non filtrato)</literal>. Aperto significa
      che vi e` sulla macchina obbiettivo un'applicazione in ascolto su quella
      porta per connessioni o pacchetti in entrata. <literal
      moreinfo="none">Filtrato</literal> significa che un firewall, un filtro
      o qualche altro ostacolo di rete sta bloccando la porta al punto che
      Nmap non riesce a distinguere tra <literal
      moreinfo="none">aperta</literal> o <literal
      moreinfo="none">chiusa</literal>. Le porte <literal
      moreinfo="none">chiuse</literal> non hanno alcuna applicazione in
      ascolto, anche se potrebbero aprirsi in ogni momento. Le porte vengono
      classificate come <literal moreinfo="none">non filtrate</literal> quando
      rispondono ad una scansione di Nmap, ma non e` stato possibile
      determinare se sono aperte o chiuse. Nmap mostra le combinazioni
      <literal moreinfo="none">aperta|filtrata</literal> e <literal
      moreinfo="none">chiusa|filtrata</literal> quando non puo` determinare
      quale dei due stati descrive una porta. La tabella delle porte puo`
      anche includere dettagli quali le versioni dei software disponibili se
      e` stata usata l'opzione appropriata. Quando viene richiesto una
      scansione IP (<option>-sO</option>), Nmap fornisce informazioni sui
      protocolli IP supportati anziche` sulle porte in ascolto.</para>

      <para>In aggiunta alla tabella delle porte notevoli, Nmap puo` fornire
      ulteriori informazioni sugli obbiettivi come ad esempio i nomi DNS
      risolti (reverse DNS names), il probabile sistema operativo in uso, il
      tipo di device e l'indirizzo fisico (MAC address).</para>

      <para>Una tipica scansione con Nmap e` mostrata su <xref
      linkend="man-ex-repscan" />. Le uniche opzioni usate di Nmap in questo
      esempio sono <option>-A</option>, per abilitare il detection del sistema
      operativo e della versione , <option>-T4</option> per un'esecuzione piu`
      rapida e infine i due host obbiettivi</para>

      <example id="man-ex-repscan">
        <title>Una scansione di esempio</title>

        <screen>
# nmap -A -T4 scanme.nmap.org playground

Starting nmap ( http://www.insecure.org/nmap/ )
Interesting ports on scanme.nmap.org (205.217.153.62):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT    STATE  SERVICE VERSION
22/tcp  open   ssh     OpenSSH 3.9p1 (protocol 1.99)
53/tcp  open   domain
70/tcp  closed gopher
80/tcp  open   http    Apache httpd 2.0.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)

Interesting ports on playground.nmap.org (192.168.0.40):
(The 1659 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE       VERSION
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn
389/tcp  open  ldap?
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
1002/tcp open  windows-icfw?
1025/tcp open  msrpc         Microsoft Windows RPC
1720/tcp open  H.323/Q.931   CompTek AquaGateKeeper
5800/tcp open  vnc-http      RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900)
5900/tcp open  vnc           VNC (protocol 3.8)
MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications)
Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro RC1+ through final release
Service Info: OSs: Windows, Windows XP

Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
</screen>
      </example>
    </refsect1>

    <refsect1 id="man-briefoptions">
      <title>Elenco delle opzioni</title>

      <para>Questo elenco delle possibili opzioni viene stampato quando Nmap
      viene eseguito senza argomenti; una versione aggiornata di questo elenco
      e` sempre disponibile sul sito <ulink
      url="http://www.insecure.org/nmap/data/nmap.usage.txt" />. E` utile per
      ricordarsi le opzioni piu` comuni ma non dev'essere inteso come
      un'alternativa alla documentazione approfondita presente in questa
      pagina di manuale. Alcune opzioni "oscure" non sono neanche incluse
      qui.</para>

      <para>
        <literallayout class="normal">Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254
  -iL &lt;inputfilename&gt;: Input from list of hosts/networks
  -iR &lt;num hosts&gt;: Choose random targets
  --exclude &lt;host1[,host2][,host3],...&gt;: Exclude hosts/networks
  --excludefile &lt;exclude_file&gt;: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sP: Ping Scan - go no further than determining if host is online
  -P0: Treat all hosts as online -- skip host discovery
  -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes resolve]
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags &lt;flags&gt;: Customize TCP scan flags
  -sI &lt;zombie host[:probeport]&gt;: Idlescan
  -sO: IP protocol scan
  -b &lt;ftp relay host&gt;: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p &lt;port ranges&gt;: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
  -F: Fast - Scan only the ports listed in the nmap-services file)
  -r: Scan ports consecutively - don't randomize
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version_light: Limit to most likely probes for faster identification
  --version_all: Try every single probe for version detection
  --version_trace: Show detailed version scan activity (for debugging)
OS DETECTION:
  -O: Enable OS detection
  --osscan_limit: Limit OS detection to promising targets
  --osscan_guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  -T[0-6]: Set timing template (higher is faster)
  --min_hostgroup/max_hostgroup &lt;msec&gt;: Parallel host scan group sizes
  --min_parallelism/max_parallelism &lt;msec&gt;: Probe parallelization
  --min_rtt_timeout/max_rtt_timeout/initial_rtt_timeout &lt;msec&gt;: Specifies
      probe round trip time.
  --host_timeout &lt;msec&gt;: Give up on target after this long
  --scan_delay/--max_scan_delay &lt;msec&gt;: Adjust delay between probes
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu &lt;val&gt;: fragment packets (optionally w/given MTU)
  -D &lt;decoy1,decoy2[,ME],...&gt;: Cloak a scan with decoys
  -S &lt;IP_Address&gt;: Spoof source address
  -e &lt;iface&gt;: Use specified interface
  -g/--source_port &lt;portnum&gt;: Use given port number
  --data_length &lt;num&gt;: Append random data to sent packets
  --ttl &lt;val&gt;: Set IP time-to-live field
  --spoof_mac &lt;mac address, prefix, or vendor name&gt;: Spoof your MAC address
OUTPUT:
  -oN/-oX/-oS/-oG &lt;file&gt;: Output scan results in normal, XML, s|&lt;rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA &lt;basename&gt;: Output in the three major formats at once
  -v: Increase verbosity level (use twice for more effect)
  -d[level]: Set or increase debugging level (Up to 9 is meaningful)
  --packet_trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --append_output: Append to rather than clobber specified output files
  --resume &lt;filename&gt;: Resume an aborted scan
  --stylesheet &lt;path/URL&gt;: XSL stylesheet to transform XML output to HTML
  --no_stylesheet: Prevent Nmap from associating XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enables OS detection and Version detection
  --datadir &lt;dirname&gt;: Specify custom Nmap data file location
  --send_eth/--send_ip: Send packets using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  nmap -v -A scanme.nmap.org
  nmap -v -sP 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -P0 -p 80
</literallayout>
      </para>
    </refsect1>

    <refsect1 id="man-target-specification">
      <title>Target Specification</title>

      <para>Ogni cosa sulla linea di comando di Nmap che non e` un'opzione (o
      un argomento di un'opzione) e` considerato come una specifica di un host
      obbiettivo. Il caso piu` semplice consiste nello specificare
      semplicemente un indirizzo IP o un nome di host per la scansion</para>

      <para>A volte puo` essere utile scansionare un'intera rete di host
      adiacenti. Per questo, Nmap supporta l'indirizzamento CIDR. Si possono
      aggiungere /<replaceable>numero di bit</replaceable> a un indirizzo IP o
      a un nome di host e Nmap eseguira` la scansione su ogni indirizzo IP per
      il quale i primi <replaceable>numero di bit</replaceable> e` identico a
      quello specificato nell'IP o nel nome di host fornito. Ad esempio,
      192.168.10.0/24 eseguira` la scansione sui primi 256 host tra
      192.168.10.0 (in binario: <literal moreinfo="none">11000000 10101000
      00001010 00000000</literal>) e 192.168.10.255 (in binario: <literal
      moreinfo="none">11000000 10101000 00001010 11111111</literal>), estremi
      inclusi. 192.168.10.40/24 fa esattamente la stessa cosa. Dato che l'host
      scanme.nmap.org corrisponde all'indirizzo IP 205.217.153.62, la
      specifica scanme.nmap.org/16 eseguirebbe la scansione sui 65,536
      indirizzi IP tra 205.217.0.0 e 205.217.255.255. Il piu` piccolo valore
      permesso e` /1, che effettua la scansione su meta` Internet. Il valore
      maggiore e` 32, che effettua la scansione solo sull'host o sull'IP
      specificato poiche` tutti i bit di indirizzo sono fissati.</para>

      <para>La notazione CIDR e` breve ma non sempre abbastanza flessibile. Ad
      esempio, si potrebbe voler controllare 192.168.0.0/16 ma saltando
      qualsiasi IP termini con .0 o con .255 perche` sono usati generalmente
      come indirizzi di broadcast. Nmap supporta questa funzione attraverso
      l'indirizzamento per intervalli di ottetti. Anziche` specificare un
      normale indirizzo IP e` possibile speficiare una lista di valori o
      intervalli di valori separati da virgola. Ad esempio,
      192.168.0-255.1-254 saltera` tutti gli indirizzi nell'intervallo che
      termina per .0 o .255. Gli intervalli non devono necessariamente essere
      limitati agli ottetti finali: una specifica come 0-255.0-255.13.37
      effettuera` una scansione su tutta Internet per ogni indirizzo IP che
      termina per 13.37. Questa tipologia di campionamento puo` essere utile
      per ricerche e sondaggi su tutta la rete Internet.</para>

      <para>Indirizzi IPV6 possono essere indicati solo mediante il loro
      indirizzo IPv6 completo o il loro hostname. L'indirizzamento CIDR e gli
      intervalli di ottetti non sono supportati per IPv6 poiche` non vengono
      quasi mai usati.</para>

      <para>Nmap accetta piu` indirizzi di obbiettivi sulla linea di comando,
      ed essi non devono essere necessariamente indicati nello stesso modo. Il
      comando <command moreinfo="none">nmap scanme.nmap.org 192.168.0.0/8
      10.0.0,1,3-7.0-255</command> fa esattamente cio` che ci si
      aspetta.</para>

      <para>Mentre gli obbiettivi sono generalmente indicate sulla linea di
      comando, le seguenti opzioni sono disponibili per la selezione degli
      obbiettivi:</para>

      <variablelist>
        <varlistentry>
          <term><option>-iL &lt;inputfilename&gt;</option> (Input from
          list)</term>

          <listitem>
            <para>Legge gli obbiettivi da
            <replaceable>inputfilename</replaceable>. Inserire una grossa
            lista di host e` spesso scomodo sulla linea di comando, anche se
            spesso e` una necessita` comune. Ad esempio, un server DHCP
            potrebbe esportare un elenco di 10.000 leases che si potrebbero
            voler controllare. Oppure si vogliono controllare tutti gli
            indirizzi IP di una rete <emphasis>tranne</emphasis> quelli
            presenti nel DHCP per individuare eventuali IP statici non
            autorizzati. E` sufficiente generare la lista di host da
            controllare e passarla a Nmap come argomento dell'opzione
            <option>-iL</option>. Ogni elemento puo` essere in uno qualsiasi
            dei formati accettati da Nmap sulla linea di comando (indirizzo
            IP, nome dell'host, notazione CIDR, IPv6 o intervalli di
            indirizzi). Ogni elemento dev'essere separato da uno o piu` spazi,
            indentazioni (tabulazioni) o caratteri di a-capo. Si puo` usare un
            trattino (o segno di sottrazione) (<literal
            moreinfo="none">-</literal>) come nome di file se si vuole che
            Nmap legga gli host dallo standard input piuttosto che da un file
            esistente.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-iR &lt;num hosts&gt;</option> (Choose random
          targets)</term>

          <listitem>
            <para>Durante certe indagini su tutta Internet o altri tipi di
            ricerca si potrebbe desiderare di scegliere le obbiettivi in
            maniera casuale. L'argomento <replaceable>num hosts</replaceable>
            indica a Nmap quanti indirizzi IP generare. Gli indirizzi privati,
            multicast o in pool di indirizzi non allocati vengono
            automaticamente saltati. Si puo` specificare l'argomento <literal
            moreinfo="none">0</literal> per una scansione senza fine. Va
            ricordato che alcuni amministratori di rete non apprezzano
            scansioni non autorizzate delle loro reti e potrebbero lamentarsi.
            Usare questa opzione a proprio rischio e pericolo. Se in un
            pomeriggio piovoso ci si trova ad essere annoiati, si puo` provare
            questo comando <command moreinfo="none">nmap -sS -PS80 -iR 0 -p
            80</command> per trovare in maniera casuale dei server web sui
            quali navigare.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--exclude &lt;host1[,host2][,host3],...&gt;</option>
          (Exclude hosts/networks)</term>

          <listitem>
            <para>Questa opzione specifica un elenco, separato da virgola, di
            obbiettivi da escludere dalla scansione anche se sono parte
            dell'intervallo di rete specificato. La lista va specificata nella
            notazione usuale di Nmap, ovvero puo` includere nomi di host,
            blocchi di indirizzi specificati mediante notazione CIDR,
            intervalli di ottetti, etc. Questo puo` essere utile quando la
            rete che si vuole controllare include server intoccabili o di
            vitale importanza, sistemi che sono conosciuti per reagire in
            maniera negativa ad eventuali scansioni, o sottoreti amministrate
            da altra gente.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--excludefile &lt;exclude_file&gt;</option> (Exclude
          list from file)</term>

          <listitem>
            <para>Questa opzione offre le stesse funzionalita`
            dell'opzione<option>--exclude</option>, con la differenza che gli
            obbiettivi da escludere dalla scansione sono elencate in un
            <replaceable>exclude_file</replaceable> (separate da spazi
            bianchi, a-capo o tabulazioni) anziche` sulla linea di
            comando.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect1>

    <refsect1 id="man-host-discovery">
      <title>Host Discovering (Ricerca di host)</title>

      <para>Uno dei primi passi in qualsiasi approccio di mappatura di una
      rete e` quello di ridurre un intervallo di indirizzi IP (talvolta di
      notevoli dimensioni) ad una lista di host attivi o interessanti. Uno
      scan di ogni porta di ogni singolo indirizzo IP e` lento e generalmente
      non necessario. Ovviamente cio` che rende un host interessante dipende
      in larga misura dalle motivazioni della scansione. Amministratori di
      rete possono essere interessati solo a host sui quali e` in esecuzione
      uno specifico servizio, mentre chi fa auditing di sicurezza e` piu`
      interessato a ogni singola periferica dotata di un indirizzo IP. Un
      sistemista puo` accontentarsi di semplici ping ICMP per trovare gli host
      sulla propria rete, ma un penetration tester esterno puo` dover usare un
      insieme di molti differenti probing (tentativi di scansione) per cercare
      di evitare le restrizioni imposte da un firewall.</para>

      <para>Poiche` le necessita` di host discovering sono cosi` diverse, Nmap
      offre una notevole varieta` di opzioni per la customizzazione delle
      tecniche usate. Il semplice host discovery e` spesso chiamato "ping
      scan", anche se va molto oltre il semplice pacchetto ICMP di echo
      request associato con il famoso strumento di <application
      moreinfo="none">ping</application>. Un utete puo` evitare il passaggio
      per l'utility "ping" usando una list scan (scansione di tipo lista:
      (<option>-sL</option>) o disabilitando il ping degli host
      (<option>-P0</option>), oppure mettendo alla prova la rete usando
      combinazioni arbitrarie di probe TCP SYN/ACK, UDP e ICMP su differenti
      porte. Lo scopo di questi approcci e` quello di sollecitare una risposta
      che dimostri l'esistenza di un host o di un apparecchio di rete con
      quell'indirizzo IP. In molte reti solo una piccola percentuale di
      indirizzi IP e` attiva in ogni momento, specialmente negli spazi di
      indirizzamento privati previsti dall'RFC1918 come ad esempio 10.0.0.0/8.
      Una rete di questo tipo ha 16 milioni di possibili IP, anche se e` di
      uso comune in aziende con meno di un migliaio di macchine. L'host
      discovery puo` trovare queste macchine in un mare di indirizzi IP non
      consecutivi.</para>

      <para>Se non viene fornita alcuna opzione di host discovery, Nmap manda
      di default un pacchetto TCP ACK alla porta 80 e una richiesta ICMP Echo
      Request ad ogni macchina obbiettivo. Un'eccezione a questo comportamento
      consiste nel fatto che uno scan ARP e` usato per tutti gli obbiettivi
      che sono in una rete ethernet locale. Se Nmap viene lanciato da un
      utente non privilegiato all'interno di un ambiente UNIX verra` usato un
      pacchetto SYN al posto dell'ACK mediante la chiamata di sistema
      <function moreinfo="none">connect()</function>. Queste opzioni di
      default sono equivalenti alle opzioni <option>-PA -PE</option>. Questo
      tipo di host discovery e` spesso sufficiente quando si deve effettuare
      una scansione su reti locali, anche se per un security auditing si
      raccomanda di usare un set di opzioni piu` avanzato.</para>

      <para>L'opzione <option>-P*</option> (che permette di scegliere il tipo
      di ping) puo` essere combinata. Si possono inoltre aumentare le
      probabilita` di bypassare firewall particolarmente restrittivi mandando
      molti tipi di probe diversi usando porte o flag TCP differenti e
      svariati codici ICMP. Inoltre si tenga presente che l'ARP discovery
      (<option>-PR</option>) viene effettuata di default all'interno di una
      rete locale, anche se vengono specificate altre opzioni
      <option>-P*</option>, poiche` e` quasi sempre piu` veloce ed
      efficiente.</para>

      <para>Di default Nmap lancia un host discovery e in seguito un port scan su tutti gli host che sono online. Questo approccio viene tenuto anche quando si specificano metodi non standard per l'host discovery come i probe UDP (<option>-PU</option>). Si consulti la spiegazione per l'opzione <option>-sP</option> per sapere come effettuare <emphasis>solo</emphasis> host discovery; si usi <option>-P0</option> per evitare l'host discovery e fare un portscan di tutti gli host di destinazione. Le seguenti opzioni controllano il comportamento dell'host
      discovery:</para>

      <variablelist>
        <varlistentry>
          <term><option>-sL</option> (List Scan)</term>

          <listitem>
            <para>La list scan e` una forma banale di host discovery che
            semplicemente elenca ogni host delle reti specificate, senza
            inviare alcun pacchetto agli host obbiettivo. Di default Nmap
            effettua una risoluzione inversa mediante DNS sugli host per
            ottenerne il nome completo. Spesso e` sorprendente vedere quante
            informazioni utili possono fornire dei semplici hostname. Ad
            esempio, <literal moreinfo="none">fw.chi.playboy.com</literal> e`
            il firewall per l'ufficio di Chicago della Playboy Enterprises.
            Nmap mostra anche il numero totale di indirizzi IP alla fine della
            scansione. La lista scan e` un buon controllo per essere sicuri di
            avere gli indirizzi IP corretti per la propria scansione. Se gli
            host mostrano nomi di dominio non conosciuti, vale la pena
            indagare oltre per evitare di scansionare la rete dell'azienda
            sbagliata.</para>

            <para>Poiche` l'idea e` quella di stampare semplicemente una lista
            di obbiettivi, le opzioni per funzionalita` di livello piu` alto
            (come ad esempio il port scanning, le indagini sul tipo di sistema
            operativo in esecuzione o il ping scan non possono essere
            combinate con questa. Se si vuole disabilitare il ping scan e
            mantenere allo stesso tempo la possibilita` di utilizzare
            funzionalita` di alto livello, si legga la sezione sull'opzione
            <option>-P0</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sP</option> (Ping Scan)</term>

          <listitem>
            <para>Questa opzione indica a Nmap di effettuare
            <emphasis>solo</emphasis> un ping scan (ovvero un host discovery)
            e di mostrare gli host che hanno risposto. Nessun test aggiuntivo
            (come ad esempio port scan o OS detection) viene effettuato.
            Quest'azione e` un gradino piu` invadente della list scan, e puo`
            essere usata spesso per lo stesso scopo. Essa permette una
            mappatura di una rete obbiettivo senza attrarre molta attenzione.
            Sapere quanti host sono attivi e` piu` utile ad un attaccante
            rispetto ad una semplice list scan di ogni indirizzo IP e nome di
            host.</para>

            <para>&gt;Gli amministratori di sistemi trovano spesso questa
            opzione utile allo stesso modo. Puo` essere usata facilmente per
            enumerare le macchine disponibili in una rete o tenere sotto
            osservazione la disponibilita` di un singolo server. Questo
            approccio viene anche chiamato "ping sweep", ed e` piu` affidabile
            di un ping all'indirizzo broadcast poiche` molti host non
            rispondono alle richieste di questa categoria.</para>

            <para>L'opzione <option>-sP</option> invia di default un echo
            request ICMP e un pacchetto TCP alla porta 80. Quando viene
            eseguita da un utente non privilegiato, viene inviato un pacchetto
            SYN (usando la chiamata <function
            moreinfo="none">connect()</function> ) alla porta 80
            dell'obbiettivo. Quando invece un utente privilegiato prova ad
            effettuare una scansione all'interno di una rete locale, vengono
            usate richieste ARP (<option>-PR</option>) a meno che non venga
            specificata l'opzione <option>--send_ip</option>. L'opzione
            <option>-sP</option> puo` essere usata in combinazione con
            qualsiasi tipo di discovery probe (ovvero la famiglia di opzioni
            <option>-P*</option>, tranne <option>-P0</option>) per avere una
            migliore flessibilita`. Se viene usato uno qualsiasi di questi
            probe con opzioni sul numero di porta, allora i probe di default
            (ovvero ACK ed echo request) vengono annullati. Si raccomanda di
            usare queste tecniche evolute se ci sono dei firewall restrittivi
            tra l'host che lancia Nmap e le reti di destinazione, altrimenti
            le destinazioni potrebbero non essere raggiunte nel caso in cui il
            firewall dovesse bloccare i probe o le risposte a questi
            ultimi.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-P0</option> (No ping)</term>

          <listitem>
            <para>Questa opzione evita del tutto il passaggio di ricerca degli
            host di Nmap. Normalmente Nmap usa questo passaggio per trovare le
            macchine attive da sottoporre ad una scansione piu` approfondita.
            Di default, Nmap esegue un probing approfondito (come ad esempio
            un port scan, una version detection dei servizi o un Operating
            System detection) solo su quegli host che sono trovati attivi.
            Disabilitare l'host discovery attraverso l'opzione
            <option>-P0</option> obbliga Nmap a tentare la scansione richiesta
            su <emphasis>tutti</emphasis> gli host destinazione specificati.
            Quindi se si specifica sulla linea di comando una rete di
            destinazione di classe B (in CIDR /16) verranno sottoposti a
            scansione tutti i 65 535 indirizzi IP. Il secondo carattere
            nell'opzione <option>-P0</option> e` uno zero, non la lettera O. A
            differenza del list scan, nel quale l'host discovery viene
            saltato, anziche` interrompersi e mostrare la lista di
            destinazioni Nmap continua ad eseguire le funzioni richieste come
            se ogni IP di destinazione fosse attivo.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-PS [portlist]</option> (TCP SYN Ping)</term>

          <listitem>
            <para>Questa opzione invia un pacchetto TCP vuoto con il flag SYN
            attivo. La porta di destinazione di default e` la 80
            (configurabile durante la compilzione cambiando il parametro di
            define DEFAULT_TCP_PROBE_PORT nel file <filename
            moreinfo="none">nmap.h</filename>), ma in questo caso si puo`
            specificare un'altra porta come parametro. Si puo` anche
            specificare una lista di porte separata da virgola (ad esempio
            <option>-PS22,23,25,80,113,1050,35000</option>), nel cuo caso si
            tentera` un probe verso ogni porta in parallelo.</para>

            <para>Il flag SYN indica al sistema remoto che si sta tentando di
            stabilire una connessione. Normalmente la porta di destinazione
            dovrebbe essere chiusa, e un pacchetto di RST (reset) viene
            mandato indietro. Se la porta fosse aperta, il destinatario
            effettuera` il secondo passo della connessione TCP a tre vie
            (3-way-handshake) rispondendo con un pacchetto TCP SYN/ACK. La
            macchina che sta eseguendo Nmap interrompera` la connessione
            inviando un pacchetto RST al posto di mandare l'usuale pacchetto
            RST che completerebbe l'handshake e stabilirebbe una connessione
            completa. Il paccheto RST viene mandato dal kernel della macchina
            che sta eseguendo Nmap, non da Nmap stesso.</para>

            <para>A Nmap non interessa se la porta e` aperta o chiusa. In ogni
            caso l'RST o il SYN/ACK ricevuti indicano che l'host e`
            disponibile e risponde alle connessioni.</para>

            <para>Nelle macchine UNIX solo l'utente privilegiato <literal
            moreinfo="none">root</literal> generalmente e` abilitato all'invio
            e alla ricezione di pacchetti TCP "raw" (non formattati, grezzi).
            Per quanto riguarda gli utenti non privilegiati si deve ricorrere
            alla system call connect(), la quale viene lanciata su ogni porta
            di destinazione. Questo ha l'effetto di inviare pacchetti SYN
            all'host di destinazione come per stabilire una connessione. Se la
            connect() ritorna rapidamente con un messaggio di successo o con
            un messaggio di errore ECONNREFUSED significa che lo stack TCP
            sottostante deve aver ricevuto un SYN/ACK o un RST e l'host viene
            marcato come disponibile. Se il tentativo di connessione viene
            lasciato in sospeso fino al raggiungimento di un certo timeout
            l'host e` marcato come down o non disponibile. Questa scorciatoia
            si usa anche per le connessioni IPv6, poiche` la costruzione di
            pacchetti IPv6 raw non e` ancora supportata in Nmap.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-PA [portlist]</option> (TCP ACK Ping)</term>

          <listitem>
            <para>Il ping TCP ACK e` molto simile al ping SYN appena discusso.
            La differenza, come si puo` facilmente indovinare, consiste nel
            fatto che viene sollevato il flag TCP ACK al posto del SYN. Un
            tale paccketto ACK finge di confermare dei dati inviati in una
            connessione TCP gia` stabilita, anche se tale connessione non
            esiste. In questo modo un host remoto rispondera` sempre con un
            pacchetto RST, svelando cosi` la propria esistenza e il fatto che
            siano attivi.</para>

            <para>L'opzione <option>-PA</option> usa la stessa porta di
            default del SYN probe (ovvero la porta 80) e puo` ricevere in
            input un elenco di porte di destinazione nello stesso formato. Se
            un utente non privilegiato tenta quest'approccio, o se viene
            specificato un target IPv6, si usa la scorciatoia della connect()
            spiegata in precedenza. Questa strategia della connect() non e`
            ottimale perche` in ogni caso la connect() invia un paccketto SYN
            e non un ACK.</para>

            <para>La ragione per offrire entrambi i tipi di probe (SYN e ACK)
            e` quella di massimizzare le possibilita` di bypassare firewall.
            Molti amministratori configurano router e semplici firewall per
            bloccare pacchetti SYN in arrivo tranne quelli destinati a servizi
            pubblici come il sito web aziendale o il mail server. Questo
            impedisce ogni altro tipo di connessione in entrata garantendo al
            tempo stesso agli utenti di effettuare connessioni verso l'esterno
            senza incontrare ostacoli. Questo approccio "non-stateful"
            utilizza poche risorse sul firewall/router ed e` largamente
            supportato da filtri software e hardware. (per "non-stateful" si
            intende in questo caso la capacita` di un firewall di tenere
            traccia delle connessioni che lo attraversano, NdT). Il firewall
            di GNU/Linux conosciuto come Netfilter/iptables offre l'opzione
            <option>--syn</option> per implementare questo approccio
            "stateless". Quando un firewall implementa regole di questo tipo,
            un probe SYN (<option>-PS</option>) viene facilmente bloccato
            quando viene mandato ad una porta chiusa. In tali casi un probe
            ACK passa indisturbato come se non vi fossero quelle
            regole.</para>

            <para>Un altro tipo comune di firewall utilizza regole "stateful"
            che lasciano cadere ("drop") pacchetti non attesi. Questa
            caratteristica era inizialmente disponibile solo su firewall di
            fascia alta, anche se e` diventata sempre piu` comune nel corso
            degli anni. Il sistema Netfilter/iptables supporta questa mediante
            l'opzione <option>--state</option>, la quale marca pacchetti a
            seconda dello stato della connessione. Un probe SYN funzionera`
            piu` facilmente verso un tale sistema, poiche` pacchetti ACK non
            attesi sono generalmente riconosciuti come non validi e lasciati
            cadere. Una soluzione a questa situazione poco piacevole e` quella
            di inviare emtrambe le tipologie di probe specificando le opzioni
            <option>-PS</option> e <option>-PA</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-PU [portlist]</option> (UDP Ping)</term>

          <listitem>
            <para>Un'altra opzione di host discovery e` il ping UDP, il quale
            manda un pacchetto UDP vuoto alle porte indicate(a meno che non
            venga specificata l'opzione <option>--data_length</option>).
            L'elenco di porte va specificato nello stesso formato gia`
            discusso in precedenza nelle opzioni <option>-PS</option> e
            <option>-PA</option>. Se non si specifica alcuna porta viene usata
            la 31338 di default. Questo valore puo` essere impostato durante
            la compilazione cambiando il parametro DEFAULT_UDP_PROBE_PORT nel
            file <filename moreinfo="none">nmap.h</filename>. Si usa di
            default una porta poco comune perche` inviare dati ad una porta
            gia` aperta e` spesso non desiderabile per questo tipo particolare
            di scansione.</para>

            <para>Una volta raggiunta una porta UDP chiusa sulla macchina di
            destinazione, il probe UDP dovrebbe provocare un pacchetto ICMP di
            "port unreachable" (porta irraggiungibile). Questo indica a Nmap
            che l'host e` funzionante e disponibile. Altri tipi di pacchetti
            ICMP di errore, come ad esempio host o rete "unreachable" (non
            disponibile) o "TTL exceeded" (superato il tempo di vita del
            pacchetto) indicano un host non funzionante o irraggiungibile. Una
            mancanza di risposta viene interpretata alla stessa maniera. Se si
            raggiunge una porta aperta la maggior parte dei servizi
            semplicemente ignorano il pacchetto vuoto e non rimandano alcuna
            risposta. Questo spiega perche` il probe di default e` la porta
            31338, la quale si usa molto raramente. Pochi servizi, tra i quali
            "chargen", rispondono a un pacchetto UDP vuoto, rivelando cosi` a
            Nmap la disponibilita` della macchina in questione.</para>

            <para>Il vantaggio primario di questo tipo di scansione e` che
            riesce a bypassare firewall e filtri che controllano solo
            pacchetti TCP. Ad esempio, una volta avevo un router a banda larga
            wireless Linksys BEFW11S4. L'interfaccia esterna di questa
            periferica filtrava tutte le porte TCP di default, ma i probee UDP
            provocavano messaggi di "port unreachable" rivelando cosi`
            l'esistenza della device.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-PE</option>; <option>-PP</option>;
          <option>-PM</option> (ICMP Ping Types)</term>

          <listitem>
            <para>In aggiunta ai meno comuni tipi di host discovery TCP e UDP
            discussi in precedenza, Nmap puo` anche mandare i pacchetti
            standard come il famoso programma <application
            moreinfo="none">ping</application>. Nmap manda un pacchetto ICMP
            type 8 ("echo request") all'indirizzo IP di destinazione,
            aspettandosi un type 0 ("echo reply") di ritorno dagli host
            disponibili. Sfortunatamente per chi deve scoprire la topologia di
            una rete, molti host e firewall ora bloccano questo tipo di
            pacchetti anziche` rispondere come richiesto dall'<ulink
            url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC 1122</ulink>.
            Per questa ragione le scansione basate solo su ICMP sono raramente
            abbastanza affidabili nei riguardi di destinzioni sconosciute su
            Internet. Tuttavia per i sistemisti di rete che devono tenere
            sotto controllo una rete interna, esse possono essere un approccio
            pratico ed efficiente. Si usi l'opzione <option>-PE</option> per
            abilitare questo comportamento di echo request.</para>

            <para>Mentre la "echo request" e` la richiesta standard del ping
            ICMP, Nmap non si ferma qui. Lo standard ICMP (<ulink
            url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink>)
            specifica inoltre i pacchetti "timestamp request", "information
            request" e "address mask request" (rispettivamente "richiesta di
            timestamp", ovvero data e ora, "richiesta di informazioni" e
            "richiesta della maschera di rete") mediante i codici ICMP 13, 15
            e 17. Mentre lo scopo dichiarato di questo tipo di richieste e`
            quello di sapere informazioni quali la maschera di rete e l'ora
            corrente, essi possono facilmente essere usati per l'host
            discovery. Un sistema che risponde e` funzionante e disponibile.
            Nmap non implementa allo stato attuale pacchetti di information
            request, poiche` in genere non sono supportati comunemente. L'RFC
            1122 specifica che <quote>un host NON DOVREBBE implementare questi
            messaggi</quote>. (il maiuscolo negli RFC indica comportamenti
            precisi). Il timestamp (data e ora) e le richieste di maschera di
            rete possono essere inviate rispettivamente mediante le opzioni
            <option>-PP</option> e <option>-PM</option>. Una risposta di tipo
            timestamp (codice ICMP 14) o di tipo address mask (codice 18)
            rivela che un host e` disponibile. Queste due richieste possono
            essere utili qualora un amministratore dovesse bloccare i
            pacchetti di "echo request" ma dimenticarsi che altre query ICMP
            possono essere usate per lo stesso scopo.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-PR</option> (ARP Ping)</term>

          <listitem>
            <para>Una delle situazioni piu` comuni di utilizzo di Nmap e` la
            scansione di una LAN ethernet. Nella maggior parte delle LAN,
            specialmente quelle in cui viene usato il benedetto intervallo di
            indirizzi privati specificato dall'RFC1918, la maggior parte degli
            indirizzi IP e` inutilizzato. Quando Nmap prova ad inviare
            pacchetti IP raw come le "echo request" ICMP, il sistema operativo
            deve determinare l'indirizzo hardware (ARP) corrispodente
            all'indirizzo IP di destinzione, in modo da poter indirizzare
            correttamente il frame Ethernet. Questo e` spesso lento e
            problematico, in quanto i sistemi operativi non sono stati scritti
            prevedendo di dover fare milioni di richieste ARP verso host
            inesistenti in un breve lasso di tempo.</para>

            <para>L'ARP scan lascia a Nmap e ai suoi algoritmi ottimizzati
            l'incarico delle richieste ARP. Nel caso in cui si riceva una
            risposta, Nmap non si deve neanche preoccupare dei ping basati su
            ICMP perche` a questo punto sa gia` che l'host e` raggiungibile.
            Questo rende l'ARP scan molto veloce e molto piu` affidabile delle
            normali scansioni basate su IP. Questo e` il comportamento di
            default quando si deve effettuare uno scan su host che Nmap
            riconosce come presenti nella rete locale. Anche se vengono
            specificati differenti tipi di ping (come <option>-PI</option> o
            <option>-PS</option>), Nmap usa comunque ARP per ogni target che
            e` sulla stessa LAN. Se non si vuole assolutamente un ARP scan,
            specificare l'opzione <option>--send_ip</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-n</option> (No DNS resolution)</term>

          <listitem>
            <para>Indica a Nmap di <emphasis>non effettuare mai</emphasis> una
            risoluzione inversa del nome mediante DNS sull'indirizzo IP
            rilevato. Poiche` il DNS e` spesso lento, questo rende l'intero
            processo di scansione piu` veloce.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-R</option> (DNS resolution for all targets)</term>

          <listitem>
            <para>Indica a Nmap di effettuare <emphasis>sempre</emphasis> la
            risoluzione inversa dei nomi mediante DNS. Generalmente questo
            viene effettuato solo quando un host viene rilevato come
            attivo.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--system-dns</option> (Use system DNS resolver)</term>

          <listitem>
            <para>Di default Nmap risolve gli indirizzi IP mandando richieste
            direttamente ai name servers (server dei nomi) configurati sulla
            macchina su cui e` in esecuzione Nmap. Molte richieste (spesso
            dell'ordine delle dozzine) sono effettuate in parallelo per
            migliorare le performance. Si specifichi quest'opzione se si vuole
            usare il proprio DNS (richiedendo un indirizzo IP alla volta
            usando la system call getnameinfo() ). Questo e` piu` lento e
            raramente utile a meno che non ci sia un bug nel codice di
            risoluzione dei nomi di Nmap -- per favore si contattino gli
            sviluppatori se questo e` il caso. Il resolver di sistema e`
            sempre usato per le scansioni su IPv6.</para>
          </listitem>
        </varlistentry>



<varlistentry>
        <term>
          <option>--dns-servers &lt;server1[,server2],...&gt;
          </option> (Server da usare per le reverse DNS query)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--dns-servers</primary></indexterm>

          <para>Di default Nmap cerchera` di determinare i server DNS da usare per le reverse query usando il file resolv.conf (UNIX) o il registro (Win32). In alternativa si puo` usare quest'opzione per indicare server alternativi. Tuttavia quest'opzione viene ignorata nel caso si specifichi anche <option>--system-dns</option> o una scansione IPv6. L'uso di piu` server DNS e` spesso piu` veloce e meno visibile rispetto all'uso di un unico server DNS. Le performance migliori si ottengono spesso specificando tutti i server DNS authoritative per lo spazio IP di destinazione.</para>

        </listitem>
      </varlistentry>


	
      </variablelist>
    </refsect1>

    <refsect1 id="man-port-scanning-basics">
      <title>Fondamenti di port scanning</title>

      <para>Nonostante Nmap nel corso degli anni abbia ampliato le proprie
      funzionalita`, inizio` come un port scanner e tale resta la sua funzione
      di base. Il semplice comando <command moreinfo="none">nmap
      <replaceable>target</replaceable></command> effettua una scansione si
      piu` di 1660 porte TCP sull'host <replaceable>target</replaceable>.
      Mentre molti port scanner considerano tutte le porte chiuse o aperte,
      Nmap e` molto piu` preciso. Divide le porte in sei categorie o stati:
      <literal moreinfo="none">open</literal> (aperta), <literal
      moreinfo="none">closed</literal> (chiusa), <literal
      moreinfo="none">filtered</literal> (filtrata), <literal
      moreinfo="none">unfiltered</literal> (non filtrata), <literal
      moreinfo="none">open|filtered</literal> (aperta|filtrata), o <literal
      moreinfo="none">closed|filtered</literal> (chiusa|filtrata).</para>

      <para>Questi stati non sono proprieta` intrinseche delle porte stesse,
      ma descrivono come Nmap le vede. Ad esempio, uno scan Nmap proveniente
      dalla stessa rete nella quale risiede l'obbiettivo puo` mostrare la
      porta 135/tcp come aperta, mentre una scansione nello stesso momento con
      gli stessi parametri ma proveniente da Internet puo` mostrare quella
      stessa porta come <literal moreinfo="none">filtered</literal>.</para>

      <variablelist>
        <title>I sei stati nei quali Nmap classifica le porte</title>

        <varlistentry><term>open</term> (aperta) <listitem>
            <para>Un'applicazione accetta attivamente su questa porta
            connessioni TCP o UDP. La ricerca di questo tipo di porte e`
            spesso l'obbiettivo primario del port scanning. Chi si dedica alla
            sicurezza sa che ogni porta aperta e` una strada verso un attacco.
            Gli attaccanti e i tester di sicurezza (penetration testers,
            conosciuti anche come "pen-testers", NdT) hanno come obbiettivo
            quello di trovare e trarre vantaggio dalle porte aperte, mentre
            d'altro canto gli amministratori di rete e i sistemisti provano a
            chiuderle o a proteggerle con firewall senza limitare gli utenti
            autorizzati al loro uso. Le porte aperte sono anche interessanti
            per le tutta una serie di scansioni non indirizzate unicamente
            alla sicurezza, perche` mostrano che servizi sono disponibili in
            una rete.</para>
          </listitem></varlistentry>

        <varlistentry><term>closed</term> (chiusa) <listitem>
            <para>Una porta chiusa e` accessibile (riceve e risponde ai
            pacchetti di probe di Nmap) ma non vi e` alcuna applicazione in
            ascolto su di essa. Esse possono rendersi utili nel mostrare che
            un host e` attivo su un indirizzo IP (durante l'host discovery o
            il ping scanning) o in quanto parte integrante dell'Operating
            System discovery. Poiche` una porta chiusa e` raggiungibile, puo`
            essere interessante effettuare una scansione piu` tardi nel caso
            alcune vengano aperte. Chi amministra una macchina o una rete puo`
            voler bloccare tali porte con un firewall - ed in questo caso esse
            apparirebero come filtrate, come mostrato in seguito.</para>
          </listitem></varlistentry>

        <varlistentry><term>filtered</term> (filtrata) <listitem>
            <para>In questo caso Nmap non puo` determinare con esattezza se la
            porta sia aperta o meno, perche` un filtro di pacchetti impedisce
            ai probe di raggiungere la porta. Questo filtro puo` esser dovuto
            a un firewall dedicato, alle regole di un router, o a un firewall
            software installato sulla macchina stessa. Queste porte forniscono
            poche informazioni e rendono frustrante il lavoro dell'attaccante.
            A volte esse rispondono con un messaggio ICMP del tipo 3, codice
            13 ("destination unreachable: communication administratively
            prohibited", ovvero "destinazione non raggiungibile: comunicazione
            impedita da regole di gestione"), ma in genere sono molto piu`
            comuni i filtri di pacchetti che semplicemente ignorano i
            tentativi di connessione senza rispondere. Questo obbliga Nmap a
            riprovare diverse volte, semplicemente per essere sicuri che il
            pacchetto non sia stato perduto a causa di una congestione di rete
            o di problemi simili piuttosto che dal firewall o dal filtro
            stesso. Questo riduce drammaticamente la velocita` della
            scansione.</para>
          </listitem></varlistentry>

        <varlistentry><term>unfiltered</term> (non filtrata) <listitem>
            <para>Lo stato "unfiltered" indica che una porta e` accessibile,
            ma che Nmap non e` in grado di determinare se sia aperta o chiusa.
            Solo la scansione di tipo ACK, usata per trovare e classificare le
            regole di un firewall, posiziona una porta in questo stato. Una
            scansione di porte in questo stato ("non filtrate") mediante altri
            tipi di scansione come il Window scan (scan per finestre di
            connessione), il SYN scan o il FIN scan aiuta a determinare se la
            porta sia aperta o chiusa.</para>
          </listitem></varlistentry>

        <varlistentry><term>open|filtered</term> (aperta|filtrata) <listitem>
            <para>Nmap posiziona le porte in questo stato quando non e` in
            grado di determinare se una porta sia aperta o filtrata. Questo
            accade in quelle scansioni per le quali una porta aperta non
            risponde in alcun modo. La mancanza di informazioni puo`
            significare inoltre che un filtro di pacchetti ha lasciato cadere
            ("drop") il probe o qualsiasi risposta sia stata generata in
            seguito a questo. Scansioni che classificano porte in questo stato
            sono le scansioni IP, UDP, FIN, Null, e Xmas.</para>
          </listitem></varlistentry>

        <varlistentry><term>closed|filtered</term> (chiusa|filtrata) <listitem>
            <para>Questo stato e` usato quando Nmap non e` in grado di
            determinare se una porta sia chiusa o filtrata. Esso viene usato
            solo per l'IPID Idle scan.</para>
          </listitem></varlistentry>
      </variablelist>
    </refsect1>

    <refsect1 id="man-port-scanning-techniques">
      <title>Tecniche di Port Scanning</title>

      <para>Un neofita inesperto che cerca di aggiustarsi l'automobile puo`
      arrovellarsi per ore cercando di usare i pochi strumenti che ha
      (martello, nastro isolante, pinza, eccetera) per cio` che deve fare. Una
      volta che si e` arreso dopo l'ennesimo fallimento e si e` deciso a
      portare il proprio veicolo da un vero meccanico, ecco che questi
      inevitabilmente si mette a cercare in una gigantesca cassetta degli
      attrezzi estraendone il "coso" perfetto per fare quel lavoro senza
      alcuno sforzo. L'arte del port scanning e` molto simile. Chi e` esperto
      capisce e conosce tutte le tecniche e sceglie quella appropriata (o una
      combinazione appropriata) per un certo lavoro. Utenti inesperti o script
      kiddes, d'altro canto, provano a risolvere ogni problema con la
      scansione SYN di default. Poiche` Nmap e` free (in lingua inglese
      significa sia "libero" che "gratuito", e per questo e` lasciato
      inalterato, NdT) l'unico limite alla capacita` di fare port scanning e`
      solo la conoscenza. Questo lo rende sicuramente piu` accessibile del
      mondo delle automobili, dov'e` richiesta non solo una notevole abilita`
      per sapere che serve uno specifico strumento, ma e` anche necessario
      andarselo a comprare.</para>

      <para>La maggior parte delle scansioni e` disponibile solo per gli
      utenti privilegiati. Questo e` dovuto al fatto che esse inviano e
      ricevono pacchetti "raw" (non formattati o "grezzi", ovvero semplici
      stringhe di bit), i quali richiedono accesso di root su sistemi UNIX.
      L'uso di un account di amministrazione su Windows e` raccomandato,
      nonostante Nmap a volte funzioni anche per gli utenti non privilegiati
      quando WinPcap e` gia` stato caricato nel sistema operativo. Nel 1997,
      quando Nmap venne rilasciato, la necessita` di avere privilegi di root
      era una seria limitazione perche` molti utenti avevano solo accesso ad
      account su macchine che davano semplici shell non privilegiate. Ora il
      mondo e` cambiato: i computer sono piu` economici, molta piu` gente ha
      una connessione a Internet diretta e sempre attiva, e i sistemi UNIX per
      desktop (includendo tra questi macchine Linux o OS X) sono ormai la
      maggioranza tra gli UNIX. Per tutte queste ragioni gli utenti hanno
      sempre meno necessita` di usare Nmap da account limitati - il che non fa
      che migliorare la situazione, poiche` le opzioni privilegiate fanno di
      Nmap uno strumento molto piu` potente e flessibile.</para>

      <para>Nonostante Nmap faccia del proprio meglio per produrre risultati
      accurati, si tenga in mente che tutte le sue conclusioni sono basate su
      pacchetti che tornano indietro dalle macchine di destinazione (o dai
      firewall che le proteggono). Tali host possono essere inaffidabili o
      ritornare risposte mirate proprio a confondere e sviare Nmap. Sono molto
      piu` comuni inoltre host che non rispettano gli RFC e che non rispondono
      come dovrebbero ai tentativi di connessione di Nmap. Scansioni come FIN,
      Null e Xmas sono particolarmente suscettibili a questo problema. Tali
      problematiche sono specifiche a certi tipi di scansione ed in quanto
      tali vengono discusse nelle sezioni individuali ad esse dedicate.</para>

      <para>Questa sezione documenta le molteplici tecniche di port scanning
      supportate da Nmap. Si puo` usare solo un metodo per volta, a parte
      l'UDP scan (<option>-sU</option>) che puo` essere combinato con con uno
      qualsiasi dei TCP scan. Per ricordarsi le varie opzioni di port scan,
      esse sono della forma <option>-s<replaceable>C</replaceable></option>,
      dove <replaceable>C</replaceable> e` un carattere significativo del nome
      della scansione - in genere il primo. L'unica eccezione a questa regola
      generale e` il cosiddetto "FTP bounce scan" che viene tuttavia
      sconsigliato (opzione <option>-b</option>). Di default Nmap effettua un
      SYN scan, usando la syscall connect() se l'utente non ha privilegi
      sufficienti per mandare pacchetti raw (che richiede accesso di root su
      UNIX), o se e` stato richiesto uno scan su obbiettivi su IPv6. Di tutte
      le scansioni elencate di seguito, gli utenti non privilegiati possono
      solo effettuare scansioni mediante connect() e "FTP bounce".</para>

      <variablelist>
        <varlistentry>
          <term><option>-sS</option> (TCP SYN scan)</term>

          <listitem>
            <para>La SYN scan e` l'opzione di default ed e` la piu` usata per
            buone ragioni. Puo` essere effettuata velocemente: effettua la
            scansione su migliaia di porte al secondo su una rete veloce non
            limitata da firewall intrisivi. La SYN scan e` relativamente poco
            invasiva e nascosta, poiche` non completa mai connessioni TCP
            complete. Funziona inoltre con ogni stack TCP compatibile e non
            dipende sulle idiosincrasie di piattaforme specifiche come fanno
            gli altri tipi di scan di Nmap quali Fin/Null/Xmas, Maimon e Idle
            scan. Inoltre permette una differenziazione chiara ed affidabile
            tra le porte appartenenti agli stati <literal
            moreinfo="none">open</literal> (aperta) , <literal
            moreinfo="none">closed</literal>, e <literal
            moreinfo="none">filtered</literal> (filtrata).</para>

            <para>Questa tecnica e` spesso indicata come "scanning
            semi-aperto" (tradotto letteralmente per esigenze di comprensione,
            da "half-open scanning", NdT), perche` non viene aperta una
            connessione TCP completa. Viene mandato un pacchetto SYN come se
            si fosse sul punto di aprire una connessione reale e si attende
            una risposta. Un SYN/ACK indica che la porta e` in ascolto
            (aperta), mentre un RST (reset) indica che la porta non e` in
            ascolto. Se non viene ricevuta nessuna risposta dopo diverse
            ritrasmissioni la porta viene marcata come filtrata. La porta
            viene marcata come tale anche se viene ricevuto un pacchetto di
            errore "ICMP unreachable" (tipo 3, codici 1, 2, 3, 9, 10,
            13).</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sT</option> (TCP connect() scan)</term>

          <listitem>
            <para>La scansione di tipo TCP connect() e` la scansione TCP di
            default dove la scansione SYN non e` un'opzione viabile. Questo e`
            il caso in cui un utente non ha privilegi sull'invio di pacchetti
            "raw" o se si sta lavorando su reti IPv6. Anziche` scrivere
            pacchetti "raw" come in molti altri tipi di scansioni, Nmap
            richiede al sistema operativo sottostante di stabilire una
            connessione con la macchina di destinazione invocando la chiamat
            di sistema <literal moreinfo="none">connect()</literal>. Questo e`
            la stessa chiamata di alto livello invocata per stabilire una
            connessione da browser web, client p2p e molte altre applicazioni
            orientate all'utilizzo in rete. Essa e` parte dell'interfaccia di
            programmazione conosciuta come Berkeley Sockets API. Anziche`
            inviare pacchetti "raw" direttamente sul cavo, Nmap usa questa API
            per ottenere informazioni sullo stato di ogni tentativo di
            connessione.</para>

            <para>Quand'e` possibile il SYN scan e` generalmente una scelta
            migliore. Nmap ha meno controllo sulla syscall <literal
            moreinfo="none">connect()</literal> rispetto ai pacchetti "raw",
            rendendolo quindi piu` efficiente in quest'ultimo caso. La syscall
            completa le connessioni alle porte aperte specificate anziche`
            limitarsi al reset dovuto alla scansione semi-aperta del SYN scan.
            Non solo questo approccio mediante connect() richiede un tempo
            maggiore e piu` pacchetti per ottenere le stesse informazioni, ma
            le macchine obbiettivo sono piu` propense a memorizzare la traccia
            (log) della connessione. Inoltre un IDS (Intrusion Detection
            System, sistema di controllo delle intrusioni) decente se ne
            accorgera`. Tuttavia la maggior parte delle macchine non hanno
            tali sistemi di allarme. Molti servizi sui propri sistemi UNIX
            standard aggiungeranno una nota al syslog, e a volte un messaggio
            di errore criptico, quando Nmap si connette e chiude la
            connessione senza inviare dati di alcun tipo. Solo alcuni patetici
            servizi andranno in crash in queste condizioni, nonostante non sia
            comune. Un amministratore che dovesse vedere un insieme di
            tentativi di connessioni provenienti da un singolo sistema sapra`
            infine che e` vittima di un connect scan.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sU</option> (UDP scans)</term>

          <listitem>
            <para>Mentre i servizi piu` comuni su Internet girano attraverso
            il protocollo TCP, i servizi <ulink
            url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink> sono
            altrettanto diffusi. DNS, SNMP e DHCP (sulle porte registrate 53,
            161/162 e 67/68) sono tre dei piu` comuni. Poiche` lo scan su UDP
            e` generalmente piu` lento e piu` difficoltoso di quello su TCP,
            alcuni esaminatori di sicurezza ("security auditors") ignorano
            questo tipo di porte. Cio` e` un errore, poiche` i servizi UDP
            vulnerabili sono abbastanza comuni e un attaccante sicuramente non
            ignorera` completamente questo protocollo. Fortunatamente Nmap
            puo` aiutare ad enumerare le porte UDP.</para>

            <para>Lo scan UDP si attiva con l'opzione <option>-sU</option>.
            Esso puo` essere combinato con uno scan di tipo TCP come ad
            esempio un SYN scan (<option>-sS</option>) per controllare
            entrambi i protocolli nel corso della stessa sessione.</para>

            <para>Lo scan UDP funziona inviando pacchetti UDP vuoti (senza
            dati ma formati solo dall'intestazione) ad ogni porta di
            destinazioe. Se viene ritornato un errore ICMP di "port
            unreachable" (tipo 3, codice 3) significa che la porta e` <literal
            moreinfo="none">closed</literal> (chiusa). Altri errori ICMP di
            tipo "unreachable" (irraggiungibile) come quelli del tipo 3,
            codici 1, 2, 9, 10 o 13 andranno ad identificare la porta come
            <literal moreinfo="none">filtered</literal> (filtrata). Talvolta
            un servizio rispondera` con un pacchetto UDP, dimostrando quindi
            che lo stato della porta e` <literal
            moreinfo="none">open</literal> (aperta). Se non viene ricevuta
            alcuna risposta dopo alcune ritrasmissioni, la porta viene
            classificata come <literal moreinfo="none">open|filtered</literal>
            (aperta|filtrata). Questo significa che la porta puo` essere
            aperta o che probabilmente un filtro di pacchetti sta bloccando la
            comunicazione. I version scan (<option>-sV</option>) possono
            essere usati per aiutare a differenziare le porte veramente aperte
            da quelle che sono filtrate.</para>

            <para>La sfida maggiore con l'UDP scan e` la velocita`. Le porte
            aperte e filtrate raramente inviano qualche risposta, lasciando
            Nmap in timeout e facendolo ritrasmettere per evitare il caso in
            cui il probe o la risposta sia andato perduto. Le porte chiuse
            sono spesso un problema ancora maggiore: esse generalmente
            rimandano un pacchetto ICMP di "port unreachable error", ma a
            differenza dei pacchetti RST rimandati dalle porte chiuse TCP come
            rispota ad un SYN o Connect scan, molti host limitano il tasso di
            invio di tali pacchetti di default. Linux e Solaris sono
            particolarmente restrittivi da questo punto di vista. Ad esempio,
            il kernel 2.4.20 limita i messaggi di "destination unreachable" a
            uno al secondo (definito in <filename
            moreinfo="none">net/ipv4/icmp.c</filename>).</para>

            <para>Nmap si accorge di questi limiti sulla frequenza di invio e
            rallenta l'invio dei probe in maniera dinamica, per evitare di
            intasare la rete con pacchetti inutili che la macchina di
            destinazione ignorera` comunque. Sfortunatamente, un limite come
            quello di Linux di un pacchetto al secondo rende una scansione su
            65 535 porte di una durata teorica di piu` di 18 ore. Suggerimenti
            per rendere piu` veloce gli UDP scan sono quelli di effettuare
            scansioni su piu` host in parallelo, o di fare uno scan veloce
            preliminare sulle porte piu` usate, o ancora di effettuare la
            scansione dall'interno del firewall, e infine di usare l'opzione
            <option>--host_timeout</option> per evitare host troppo lenti nel
            rispondere.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sN</option>; <option>-sF</option>;
          <option>-sX</option> (TCP Null, FIN, and Xmas scans)</term>

          <listitem>
            <para>Queste tre tipologie di scansione (e molte altre sono
            possibili con l'opzione <option>--scanflags</option> descritta
            nella prossima sezione) sfruttano una piccola vulnerabilita` nell'
            <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC del
            protocollo TCP</ulink> per distinguere tra le porte <literal
            moreinfo="none">open</literal> (aperte) e <literal
            moreinfo="none">closed</literal> (chiuse). A pagina 65 si dice che
            <quote> se lo stato della porta [di destinazione] e` CHIUSO ... un
            segmento in arrivo che non contiene un RST causera` l'invio di un
            RST in risposta. </quote> La pagina successiva discute di
            pacchetti inviati a porte aperte senza i bit di SYN, RST o ACK
            impostati, indicando che: <quote>questa situazione e` decisamente
            improbabile, ma se dovesse capitare i segmenti vanno ignorati e si
            deve ritornare [alla funzione chiamante, NdT] </quote></para>

            <para>Quando si scansionano sistemi aderenti a questo testo RFC,
            qualunque pacchetto che non contenga i bit di SYN, RST, o ACK
            causera` un RST di ritorno se la porta e` chiusa e nessuna
            risposta se la porta e` aperta. Finche` questi tre bit sono
            inclusi, qualunque combinazione di questi tre bit (FIN, PSH, e
            URG) va bene. Nmap sfrutta questi tre tipi di scan:</para>

            <variablelist>
              <varlistentry>
                <term>Null scan (<option>-sN</option>)</term>

                <listitem>
                  <para>Non manda nessun bit (il tcp flag header e` 0)</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>FIN scan (<option>-sF</option>)</term>

                <listitem>
                  <para>Setta solo il FIN.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>Xmas scan (<option>-sX</option>)</term>

                <listitem>
                  <para>setta FIN, PSH, e URG, accendendo il pacchetto come un
                  albero di natale.</para>
                </listitem>
              </varlistentry>
            </variablelist>

            <para>Questi tre tipi di scan sono esattamente identici nel
            comportamento ad eccezione delle attivazioni dei tre bit nei
            pacchetti TCP usati per la verifica delle porte. Se viene ricevuto
            un pacchetto RST, la porta e` considerata chiusa, mentre l'assenza
            di risposta indica che la porta e` aperta o filtrata. La porta e`
            marcata come filtrata se viene ricevuto un pacchetto ICMP
            unreachable (tipo 3, codice 1, 2, 3, 9, 10, o 13).</para>

            <para>Il vantaggio sostanziale di questi tipi di scan e` che
            possono penetrare in certi non-stateful firewalls e packet
            filtering routers. Un altro vantaggio e` che questi tipi di
            scansione sono un po` piu' invisibili anche dei SYN scan. In ogni
            caso non e` corretto fare cieco affidamento su questo, gran parte
            dei moderni prodotti IDS possono essere configurati in modo da
            rilevarli. Il grande svantaggio e` che non tutti i sistemi seguono
            alla lettera la RFC 793. Un buon numero di sistemi manda risposte
            RST ai pacchetti di controllo indipendentemente dal fatto che le
            porte siano aperte o chiuse. Questo causa il fatto che tutte le
            porte appaiano come chiuse. I piu' diffusi sistemi operativi che
            fanno questo sono Microsoft Windows, molti apparati Cisco, BSDI, e
            IBM OS/400. Questo scan funziona applicato alla maggior parte dei
            sistemi UNIX. Un altro svantaggio di questi scan e` che non
            riescono a distinguere una porta aperta da quelle filtrate, dando
            la risposta di <literal
            moreinfo="none">open|filtered</literal>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sA</option> (TCP ACK scan)</term>

          <listitem>
            <para> Questo scan e` diverso dagli altri scan discussi fino ad
            ora dal momento che non serve per determinare se le porte sono
            aperte (o aperte|filtrate). E' usato per mappare le regole di
            firewalling determinando se sono stateful o no e quali porte sono
            filtrate.</para>

            <para>I pacchetti dell' ACK scan hanno soltanto la flag ACK
            abilitata (a meno che non si usi <option>--scanflags</option>).
            Mentresi scansionano sistemi non filtrati, sia le porte aperte che
            le porte chiuse manderanno pacchetti RST. Nmap poi le cataloga
            come non filtrate, nel senso che e` possibile raggiungerle con un
            pacchetto ACK, ma che siano aperte o chiuse non e` determinabile.
            Le porte che non rispondono, o mandano certi errori ICMP (tipo 3,
            codice 1, 2, 3, 9, 10, o 13), sono etichettate come
            filtrate<literal moreinfo="none" />.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sW</option> (TCP Window scan)</term>

          <listitem>
            <para>Il window scan e` esattamente la stessa cosa di ACK scan, ad
            eccezione del fatto che sfrutta un dettaglio di implementazione di
            certi sistemi per differenziare le porte aperte e quelle chiuse,
            invece di scrivere sempre non filtrata quando ritorna un RST. Lo
            fa esaminando il campo TCP Windowdel pacchetto RST che ritorna. In
            alcuni sistemi le porte aperte usano una grandezza della finestra
            positiva (anche per i pacchetti RST), mentre nelle porte chiuse la
            grandezza della finestra e` zero. Quindi, invece di catalogare
            sempre le porte come non filtrate quando si riceve un RST di
            ritorno, il Window scan lista le porte come aperte o chiuse a
            seconda che il valore in quel RST (reset) e` positivo o pari a
            zero rispettivamente.</para>

            <para>Questo scan fa affidamento a un dettaglio implementativo di
            una minoranza di sistemi presenti in internet, segue che questo
            non e` sempre affidabile. Nei sistemi in cui questo dettaglio
            implementativo non sussiste, di norma lo scan segnalera` tutte le
            porte chiuse. Sicuramente sara` possibile che la macchina non
            abbia realmente nessuna porta aperta. Se la maggior parte delle
            porte e` chiusa, e alcune porte comuni appaiono filtrate, il
            sistema e` quasi sicuramente suscettibile a questo tipo di scan.
            Occasionalmente, alcuni altri sistemi presenteranno un
            comportamento esattamente opposto. Se lo scan risulta in 1000
            porte aperte e 3 chiuse, allora quelle saranno con ogni
            probabilita` proprio quelle aperte.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sM</option> (TCP Maimon scan)</term>

          <listitem>
            <para>Il Maimon scan e` stato nominato cosi` in onore al suo
            scopritore, Uriel Maimon. Egli descrisse questa tecnica
            nell'articolo #49 della rivista Phrack (Novembre 1996). Nmap, che
            incluse questa tecnica, fu rilasciato due articoli dopo. Questa
            tecnica esattamente uguale ai Null, FIN e Xmas scan, ad eccezione
            del fatto che i pacchetti di scansione sono FIN/ACK. In accordo
            con la RFC 793 (TCP), un pacchetto RST dovrebbe venir generato in
            risposta a tale stimolo. Ad ogni modo, Uriel noto` che in molti
            sistemi derivati da BSD il pacchetto veniva scartato se la porta
            era aperta.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--scanflags</option> (Custom TCP scan)</term>

          <listitem>
            <para>Gli utilizzattori molto avanzati di Nmap hanno necessita` di
            non limitarsi semplicemente ad utiulizzare le scansioni tipiche
            offete. L'opzione <option>--scanflags</option> consente di
            designare una scansione personalizzata specificando
            arbitrariamente i flag TCP necessari. Liberate la vostra
            inventiva, ed evitate cosi` che i vendor di Intrusion Detection
            Systems trovino nuove regole da aggiungere ai loro sistemi
            semplicemente sfogliando la "Man Page" di Nmap!</para>

            <para>I parametri dell'opzione <option>--scanflags</option>
            possono essere un valore numerico indicante i falg TCP, come ad
            esepio 9 (PSH e FIN). L'utilizzo di nomi simbolici risulta
            comunque piu` semplice. Una combinazione di <literal
            moreinfo="none">URG</literal>, <literal
            moreinfo="none">ACK</literal>, <literal
            moreinfo="none">PSH</literal>, <literal
            moreinfo="none">RST</literal>, <literal
            moreinfo="none">SYN</literal>, e <literal
            moreinfo="none">FIN</literal>. Per esempio, <option>--scanflags
            URGACKPSHRSTSYNFIN</option> imposta tutti i flag, anche se non
            risulta multo utilie al fine della scansione. L'ordine con cui
            vengono specificati non e` rilevante.</para>

            <para>Oltre allo specificare i falg desidearti, e` possibile
            indicare uno tipo di scansione TCP (come <option>-sA</option> o
            <option>-sF</option>). Questo specifica come Nmap deve
            interpretare le risposte. Per esempio, un "SYN scan" considera la
            mancanza di risposta come una ad indicare la porta <literal
            moreinfo="none">filtered</literal>, mentre un "FIN scan"
            interpreta lo stesso comportamento per identificare una porta
            <literal moreinfo="none">open|filtered</literal>. Nmap si
            comportera` nello stesso modo che per la scansione normale, tranne
            che per il fatto di interpretare i flag TCP che sono stati
            diveramente specificarti. Se non viene indicata una diverso tipo
            di cansione, viene automaticamente utilizzata la "SYN
            scan".</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sI &lt;zombie host[:probeport]&gt;</option>
          (Idlescan)</term>

          <listitem>
            <para>Questo metodo di scansione avanzato permette di effettuare
            una scansione TCP completamente invisibile dell'obiettivo (ovvero
            nessun pacchetto viene inviato dall'indirizzo IP reale da cui si
            sta effettuando la scansione.) Viene diversamente utilizzato un
            unico attacco parallelo che utilizza la predicibilita` dell'ID
            relativo alla sequanza di frammentazione generato dallo "Zombie"
            per ottenere informazioni sulle porte aperte. I sistemi IDS
            intrepreteranno la scansione come se provenisse dalla macchina
            "Zombie" specificata (e che deve rispondere a certi criteri).
            Questa affascinante tecnica di scansione e` troppo complessa per
            essere descritta a fondo in questa guida, per questa ragione ho
            scritto e reso pubblico un documento informale contenente tutti i
            dettagli al seguente url: <ulink
            url="http://nmap.org/book/idlescan.html" />.</para>

            <para>Oltre che essere straodrinariamente nascosto (grazie alla
            sua natura "invisibile"), questo tipo di scansione permette di
            creare una mappa indicante le relazioni tra le macchine da un
            punto di vista dell'indirizzo IP. I risultati dalla scansione
            mostrano le porte aperte <emphasis>dalla prospettiva
            dell'indirizzo IP della macchina "Zombie".</emphasis> Risulta
            cosi` possibile effettuare scansioni utilizzando diversi "Zombie"
            che si ritiene possano attraversare router o sistemi con packet
            filter.</para>

            <para>E' possibile aggiungere i due punti seguiti dal numero di
            porta per l'host Zombie, se si vuole sondare una particolare porta
            per vedere i cambiamenti nell'IPID. Diversamente Nmap utilizzera`
            the porta che utilizza di default per i ping TCP (80).</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sO</option> (IP protocol scan)</term>

          <listitem>
            <para>"IP Protocol" permette di determinare che protocolli IP
            (TCP, ICMP, IGMP, etc.) sono supportati dalla macchine su cui
            viene effettuata la scansione. Non e` "Tecnicamente" un port scan,
            dato che utilizza i numeri indicanti il protocollo IP e non i
            numeri di porta TCP o UDP. Utilizza comunque ancora l'opzione
            <option>-p</option> per scegliere il protocollo da scansionare e
            riporta i risultati nel normale formato della tabella delle porte,
            ed utilizza lo stesso engine sottostante al port scanning reale.
            Per questo motivo e` profondamente analogo ad un port scan e viene
            trattato in questa sezione.</para>

            <para>Oltre che essere intrinsicamente utile, il protocol scan
            dimostra la potenza del software open source. Per quanto l'idea
            fondamentale e` abbastanza semplice, non immaginavo di aggiungerla
            fino a quando non avessi ricevuto richieste per questa
            funzionalita`, Nell'estate del 2000, Gerhard Rieger concepi`
            l'idea e scrisse un'eccellente patch che la implementasse,
            spedendola poi alla mailing list nmap-hackers. Io incorporai
            questa patch in Nmap e ne rilasciai una nuova versione il giorno
            seguente. Alcuni software commerciali ebbero clienti talmente
            soddisfatti da contribuire allo sviluppo di questa tecnica con i
            loro miglioramenti!</para>

            <para>La "Protocol Scan" funziona in modo simile all'UDP Scan.
            Invece di agire sul campo "port number" del pacchetto UDP, invia
            un pacchetto contenente negli 8 bit dell'header IP relativi al
            protocollo. Questi headers sono tipicamente vuoti, non contengo
            dati e nemmeno l'header proprietario del protocollo dichiarato. Le
            tre eccezioni sono: TCP, UDP e ICMP. Un header valido per queste
            eccezioni viene incluso perche`, diversamente, alcuni sistemi non
            li invierebbero e perche` Nmap e` gia` provvisto di funzioni per
            crearli. Invece che cercare un messaggio di "ICMP port
            unreachable", la "Protocol Scan" e` alla ricerca di un messaggio
            "ICMP <emphasis>protocol</emphasis> unreachable". Se Nmap riceve
            una qualunque risposta di qualunque protocollo dall'Host
            scansionato, Nmap lo indica tale protocollo come <literal
            moreinfo="none">open</literal>. Un errore "ICMP protocol
            unreachable" (tipo 3, codice 2) fa si` che il protocollo sia
            indicato come <literal moreinfo="none">closed</literal>. Altri
            errori di tipo "ICMP unreachable" (tipo 3, codice 1, 3, 9, 10, or
            13) fanno classificare il protocollo come <literal
            moreinfo="none">filtered</literal> (Denotando, contestualmente,
            che il protocollo ICMP e` <literal
            moreinfo="none">open</literal>). Se non viene ricevuta alcuna
            risposta, il protocollo e` identificato come <literal
            moreinfo="none">open|filtered</literal>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-b &lt;ftp relay host&gt;</option> (FTP bounce
          scan)</term>

          <listitem>
            <para>Un'interessante caratteristica del protocollo FTP (<ulink
            url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) e`
            il supporto per le cosi` chiamate "proxy ftp connections". Cio`
            permette all'utente di connettersi al server FTP e richiedere che
            il file sia inviato ad un differente FTP server. Tale
            caratteristica si presta per vare tipologie di abuso, cosicche`
            molti server hanno smesso di supportarla. Uno degli abusi
            nell'utilizzo di questa peculiarita` e` la possibilita` far
            effettuare al server FTP un port scan verso altri host. Basta
            semplicemente richiedere al server FTP di inviare un file ad
            ognuna delle porte che vogliamo scansionare Il messaggio di errore
            ci permettera` di dedurre se la porta e` aperta o meno. Questo e`
            un'ottimo modo per aggiare i firewall in quanto gli FTP aziendali
            sono spesso posizionati nella rete cosi` da poter accedere a piu`
            host interni di quanto sia possibile fare da Internet. Nmap
            supporta la "ftp bounce scan" attraverso l'optione
            <option>-b</option>. I parametri per tale opzione devono
            rispettare il formato:
            <replaceable>username</replaceable>:<replaceable>password</replaceable>@<replaceable>server</replaceable>:<replaceable>port</replaceable>.
            Dove: <replaceable>Server</replaceable> e` l'hostname o
            l'indirizzo IP di un FTP server vulnerabile a questo attacco. Come
            in una URL normale, e` possibile omettere
            <replaceable>username</replaceable>:<replaceable>password</replaceable>,
            ed in tal caso verranno utilizzate credinziali anonime (user:
            <literal moreinfo="none">anonymous</literal> password:<literal
            moreinfo="none">-wwwuser@</literal>). Il numero di porta (ed i due
            punti che lo precedono) possono essere altresi` omessi, in tal
            caso viene utilizzata la porta FTP di default (21) per la
            connessione al <replaceable>server</replaceable>.</para>

            <para>Questa vulnerabilita` e` stata diffusa nel 1997 quando Nmap
            e` stato rilasciato, ma e` stata risolta su gran parte dei
            sistemi. Esistno alcuni server ancora vulnerabili, ed ha senso
            provare ad utilizzarla quando ogni altra cosa fallisce. Se
            l'obiettivo e` oltrepassare un firewall, e` necessario effettuare
            una scansione sulla rete cercando di trovare la porta 21 aperta (o
            anche cercando un servizio FTP su di una qualsiasi porta,
            utilizzando la "Version Detection") e provare quindi un "FTP
            Bounce Scan" su ognuno dei server individuati. Nmap sara` in grado
            di evidenziare se un host e` vulnerabile o meno a questa tecnica.
            Se si sta cercando semplicemente di nascondere le tracce, non vi
            e` bisogno (e di fatto non si dovrebbe) di limitare la scansione
            alla rete che realmente ci interessa. Prima di iniziare ad
            effettuare scansioni su indirizzi Internet casuali e` bene tenere
            presente che gli amministratori di sistema potrebbero non
            apprezzare che i loro server siano soggetti a tali abusi.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect1>

    <refsect1 id="man-port-specification">
      <title>Port Specification e Scan Order</title>

      <para>Oltre a tutti i metodi discussi in precedenza, Nmap offre la
      possibilita` di specificare che porte devono essere scansionati e se
      l'ordine delle porte da scansionare deve essere casuale oppure
      sequenziale. Per defalult Nmap effettua la scansione di tutte le porte
      fino alla 1024 inclusa e le porte superiori indicate nel file <filename
      moreinfo="none">nmap-services</filename> relative ai protocolli
      interessati dalla scansione.</para>

      <variablelist>
        <varlistentry>
          <term><option>-p &lt;port ranges&gt;</option> (Only scan specified
          ports)</term>

          <listitem>
            <para>Questa opzione permette di ignorare le impostazioni di
            default e di specificare quali porte si vogliono scansionare. E'
            possibile indicare i singoli numeri delle porte, cosi` come gli
            intervalli, indicati da un trattino (per esempio 1-1023). I primo
            e/o l'ultimo valore di un intervallo puo` essere omesso, facendo
            si` che Nmap utilizzi rispettivamente 1 e 65535. E' quindi
            possibile utilizzare l'opzione <option>-p-</option> per effettuare
            la scansione delle porte da 1 a 65535. E' possibile effettuare
            scansioni sulla porta zero se viene espressamente specificato. Nel
            caso di un "IP Protocol Scan" (<option>-sO</option>), questa
            opzione indica il numero di protocollo che si desidera scansionare
            (0-255).</para>

            <para>Quando si effettua una scansione di porte sia TCP che UDP,
            e` possibile specificare un protocollo particolare anteponendo al
            numero di porta <literal moreinfo="none">T:</literal> o <literal
            moreinfo="none">U:</literal>. Tale indicazione risulta valida sino
            a che non ne viene indicata un'altra. Per esempio, l'opzione
            <option>-p U:53,111,137,T:21-25,80,139,8080</option> effettua una
            scansione delle porte 53, 111 e 137, sia per il protocollo UDP che
            TCP. Si noti che per effettuare una scansione su entrambi i
            protocolli UDP &amp; TCP, e` necessario specificare l'opzione
            <option>-sU</option> e almeno un metodo di "TCP Scan" (Come
            <option>-sS</option>, <option>-sF</option>, o
            <option>-sT</option>). Se non viene indicato nulla, i numeri di
            porta vengono aggiunti a tutte le liste dei protocolli.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-F</option> (Fast (limited port) scan)</term>

          <listitem>
            <para>Indica che si intende effettuare la scansione delle sole
            porte indicate nel file <filename
            moreinfo="none">nmap-services</filename> che viene fornito con
            Nmap. (Oppure utilizzando i file di protocollo indicati con
            l'opzione <option>-sO</option>). Questo risulta molto piu` rapido
            che non controllare tutte le 65535 porte su di un Host. Dato che
            la lista contine comunque molte porte TCP (piu` di 1200) non vi e`
            molta differenza rispetto ad una scansione TCP di defalut (circa
            1650 porte). La differenza risulta essere enorme se si utilizza un
            file <filename moreinfo="none">nmap-services</filename> creato
            appositamente. Per indicare tale file si utilizza l'opzione
            <option>--datadir</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-r</option> (Don't randomize ports)</term>

          <listitem>
            <para>Per default, Nmap effettua la scansione delle porte in
            ordine casuale, (eccetto che per certe porte comuni che vengono
            controllate tra le prime per motivi di efficenza). La scansione
            delle porte in ordine casuale e` tipicamente un vantaggio, ma e`
            possibile utilizzare l'opzione <option>-r</option> cosi` da
            effettuare i controlli in ordine sequenziale.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect1>

    <refsect1 id="man-version-detection">
      <title>Service e Version Detection</title>

      <para>Utilizzando Nmap e dirigendo la scansione su una macchina remota
      e` possible scoprire che le porte 25/tcp 80/tcp, and 53/udp sono aperte.
      Utilinzando il suo database di circa 2200 servizi noti, contenuto nel
      file <filename moreinfo="none">nmap-services</filename>, Nmap
      probabilmente sara` in grado di indicare che ti tratta rispettivamente
      di un Mail Server (SMTP), si un web server (HTTP), e di un name server
      (DNS). Tale riconoscimento e` solitamente accurato -- la maggior parte
      di demoni in ascolto sulla porta 25 sono, in effetti, Mail Server. Non
      si comunuqe opportuno fidarsi ciecamente di tali indicazioni! E' infatti
      possibile erogare servizi su porte non convenzionali.</para>

      <para>Anche se le indicazioni di Nmap sono corrette, e gli ipotetici
      server sopracitati sono effettivamente SMTP, HTTP e DNA, queste
      informazioni non sono esaustive. Quando si eseguono dei "vulnerability
      assessments" (o anche semplicemente un inventario della rete) della
      vostra societa` o di clienti, e` interessante sapere esattamente di che
      mail e DNS server si tratta e quale versione e` in uso. Conoscere
      accuratamente la versione del software e` di fondamentale importanza per
      derminare a quali exploits e` vulnerabile il server. "Version Detection"
      e` di grande aiuta nel ricercare queste informazioni.</para>

      <para>Al momento dell'identificazione delle porte TCP e/o UDP da parte
      di uno dei vari metodi di scansione, il "Version Detection" interroga
      queste porte per rilevare ulteriori dati sui servizi erogati. Il
      database contenuto nel file <filename
      moreinfo="none">nmap-service-probes</filename> contiene instruzioni per
      interrogare i vari servizi e per intepretarne le risposte. Nmap cerca
      quindi di terminare di che servizio si tratta (Es.: ftp, ssh, telnet,
      http), di che applicazione (Es.: ISC, Bind, Apache httpd, Solaris
      telnetd), la versione, l'hostname, il tipo di device, la famiglia del
      sistema operativo (Es.: Windows, Linux...) e spesso altri dettagli come
      l'apertura di un X server alle connessioni, la versione del protocollo
      SSH, o l'untenza utilizzata da KaZaA. Ovviamente la maggior parte dei
      serivizi non rilasciano tutte queste informazioni, ma se NMap viene
      copilato il supporto per OpenSSL, sara` in grado di connettersi ai
      server SSL per dudurre quale tipo di servizio viene offerto dietro al
      suo "Encryption Layer". Quando i servizi RPC vengono identificati, Nmap
      e` in grado di raffinare quanto rilevato (<option>-sR</option>) cosi` da
      riconoscere versione e nome del servizio RPC. Alcune delle porte UDP
      vengono indicate come <literal moreinfo="none">open|filtered</literal>
      se un "UDP Port Scan" non e` in grado di derminare con precisione se la
      porta e` open o filtered. "Version Detection" cerchera` di ottenere una
      risposta da queste porte (esattamente come per le porte aperte), e
      modifichera` lo stato in "Open" se ci riuscira`. Le porte <literal
      moreinfo="none">open|filtered</literal> vengono trattate nello stesso
      modo. Bisogna tener presente che l'opzione <option>-A</option> abilita,
      fra le varie cose, il Version Detection. E' disponibile un documento sul
      funzionamento e sull'utilizzo nonche` sulla personalizzazione del
      "Version Detection" e` disponibile al seguente indirizzo: <ulink
      url="http://www.insecure.org/nmap/vscan/" />.</para>

      <para>Quando Nmap riceve delle risposte da un Servizio ma non e` in
      grado di trovarne una iterpretazione nel suo database, visualizza una
      particolare "FingerPrint" e una URL per permettere di inviare quanto
      rilevato nel caso si conosca a priori che cosa sta effettivamente
      girando su quella porta. E' importante perdere qualche minuto per
      effettuare l'invio di questi dati quando possibile perche` cosi` facendo
      chiunque in futuro potra` benificiare dei dati raccolti e riconoscere
      anche questo serizio. Grazie a questo sistema Nmap e` in grado di
      identificare circa 3.000 differenti varianti per piu` di 350 protocolli
      come smtp, ftp, http, ecc.</para>

      <para>"Version Detection" viene attivato e controllato dalle seguenti
      opzioni:</para>

      <variablelist>
        <varlistentry>
          <term><option>-sV</option> (Version detection)</term>

          <listitem>
            <para>Abilita il "Version Detection", come precedentemente
            illustrato. In alternativa, e` possibile utilizzare l'opzione
            <option>-A</option> per attivare sia "OS Detection" che "Version
            Detection".</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--allports</option> (Non esclude alcuna porta dal
          Version Detection)</term>

          <listitem>
            <para>Normalmente, il Version Detection di Nmap non invia
            pacchetti alla porta TCP 9100 poiche` alcune stampanti accettano e
            stampano direttamente qualunque dato ricevuto su questa porta. Se
            tale porta fosse sottoposta a scansione, verrebbero stampate
            decine di pagine contenenti richieste HTTP get, puri dati binari,
            sessioni SSL e via discorrendo. E' possibile cambiare il
            comportamento del Version Detection di NMap con la modifica o la
            rimozione della direttiva <literal
            moreinfo="none">Exclude</literal> nel file <filename
            moreinfo="none">nmap-service-probes</filename> oppure specificando
            l'opzione <option>--allports</option> cosi` da effettuare la
            scansione di tutte le porte, indipendentemente da quanto indicato
            nella direttiva <literal moreinfo="none">Exclude</literal>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--version_intensity &lt;intensity&gt;</option>
          (Imposta l'accuratezza del Version Scan)</term>

          <listitem>
            <para>Quando si effettua un Version Scan (<option>-sV</option>),
            NMap invia una serie di pacchetti-sonda, ognuno delle quali ha
            assegnato un valore compreso tra 1 e 9. I pacchetti con valore
            piu` basso sono in grado di riconoscere i servizi comunemente
            diffusi, mentre quelli con valori piu` alti sono raramente
            necessari. Il livello di accuratezza specifica quali
            pacchetti-sonda devono essere impiegati; piu` alto e` il livello,
            piu` e` probabile che il servizio venga correttamente
            identificato. D'altro canto, piu` una scansione e` accurata e piu`
            tempo sara` necessario. I valori devono essere compresi tra 1 e 9;
            il valore di default e` 7. Quando viene assegnato direttamente un
            pacchetto-sonda ad una porta utilizzando la direttiva <literal
            moreinfo="none">ports</literal> nel file <filename
            moreinfo="none">nmap-service-probes</filename>, esso viene
            utilizzato indipendentemente dal valore indicato per l'accuratezza
            del Version Scan. Questo garantisce, per esempio, che ogni volta
            che viene trovata la porta 53 aperta vengano effettuati i
            controlli specifici per il DNS; cosi` come in caso di porta 443
            vengano invece utilizzati quelli per l'SSH e cosi` via.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--version_light</option> (Attiva la modalita`
          Light)</term>

          <listitem>
            <para>Questa opzione e` equivalente alla
            <option>--version_intensity 2</option>. Questa modalita` rende il
            Version Scanning drasticamente piu` veloce, riducendone pero` la
            capacita` di identificare accuratamente i servizi.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--version_all</option> (Prova ogni singolo
          pacchetto-sonda)</term>

          <listitem>
            <para>Questa opzione e` equivalente alla
            <option>--version_intensity 9</option>, assicurando che ogni
            singolo pacchetto-sonda venga utilizzato su ogni singola
            porta.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--version_trace</option> (Evidenzia l'attivita` del
          Version Scan)</term>

          <listitem>
            <para>Indica a Nmap di visualizzare informazioni di debug estese
            relative all'attivita` del Version Scanning. E' un subset di
            quanto si ottiene con l'opzione
            <option>--packet_trace</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>-sR</option> (RPC scan)</term>

          <listitem>
            <para>Questo metodo lavora in congiuntamente agli altri metodi di
            scansione delle porte, riversando su ogni singola porta TCP o UDP
            trovata aperta i comandi NULL di SunRPC, cercando cosi` di
            determinare se le porte analizzate sono RPC o meno e, nel caso,
            quale programma e versione utilizzano. E' cosi` possibile ottenere
            le stesse informazioni rilevate dal comando <command
            moreinfo="none">rpcinfo -p</command> anche se l'host indagato e`
            dietro un firewall (o protetto da TCP wrappers). Al momento la
            scansione Decoys non funziona con l'RPC Scan Viene automaticamente
            abilitato come parte del Version Scan (<option>-sV</option>) se
            indicato. Visto che Version Detection impiega tale sistema, che e`
            molto piu` completo, l'opzione <option>-sR</option> e` raramente
            necessaria.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect1>

    <refsect1 id="man-os-detection">
      <title>OS Detection</title>

      <para>Una delle piu` famose caratteristiche di NMap e` la possibilita`
      di identificare remotamente il sistema operativo di un host attraverso
      il "Fingerprint" dello stack TCP/IP. Nmap invia una serie di pacchetti
      TCP ed UDP all'Host Remoto ed esamina ogni bit ricevuto in risposta.
      Dopo aver effettuato decine di test come il "TCP ISN sampling", il "TCP
      option support and ordering", il "IPID Sampling" ed il controllo del
      Window Size iniziale, NMap compara i risultati con il suo database
      (<filename moreinfo="none">nmap-os-fingerprints</filename>) contenente
      piu` di 1500 "OS Fingreprints" conosciuti e ne visualizza i dettagli se
      ne trova riscontro. Ogni fingerprint comprendo una descrizione del
      sistema operativo ed una classificazione che tale da indicare il Vendor
      (per esempio Sun), il sistema operativo (per esempio Solaris), la
      versione (per esempio 10) ed il tipo di device (per esempio "general
      purpose", router, switch, "game console" ecc).</para>

      <para>Se NMap non e` in grado di indovinare il sistema operativo di una
      macchina e le condizioni sono propizie (almeno una porta trovata aperta
      ed una trovata chiusa), NMap fornira` una URL che potra` essere
      utilizzata per inviare la FingerPrint (nel solo caso che si conosca con
      certezza il sistema operativo dell'host in questione) Inviando queste
      FingerPrint e` possibile contribuire ad ampliare la gamma di sistemi
      operativi conosciuti da NMap, cosi` da rendelo piu` accurato per
      tutti.</para>

      <para>OS Detection abilita diversi altri test che utlizzano le
      informazioni che sono state ottenute durante questo processo. Una di
      queste e` la misura dell'UpTime, che sfrutta l'opzione TimeStamp (RFC
      1323) per indovinare quando una macchina ha effettuato l'ultimo reboot.
      Questo e` riportato solo per quelle macchine che forniscono tale
      informazione. Un'altra e` la "TCP Sequence Predictability
      Classification", che misura approssimativamente quanto e` stato
      complesso stabilire una "Forged TCP Connection" verso un host remoto. E'
      utile per sfruttare exploit basati sul controllo del SourceIP (rlogin,
      filtri firewall, ecc.) o per nascondere la sorgente di un attacco.
      Questo tipo di spoofing e` attualmente utilizzato di rado, ma molte
      macchine sono tuttora vulnerabili ad esso. Il numero indicante la
      "difficulty" e` basato su campionamenti statistici e puo` fluttuare. E'
      generalmente preferibile utilizzare la classificazione verbale, come
      <quote>worthy challenge</quote> oppure <quote>trivial joke</quote>. Tale
      indicazione e` riportata nel normale output in modalita` "Verbose"
      (<option>-v</option>) Quando la modailita` "Vervose" e` utilizzata
      congiuntamente all'opzione <option>-O</option>, anche la sequenza di
      generazione dell'IPID viene riportata. La maggior parte delle macchine
      e` nella classe <quote>incremental</quote>, il che significa che
      incrementano il campo ID dell'Header IP per ogni pacchetto inviato. Cio`
      le rende vulnerabili a diversi attacchi avanzati di spoofing ed
      "Information Gathering".</para>

      <para>Un documento riguardante il funzionamento, l'utilizzo e la
      personalizzazione del "Version Detection" e` disponibile tradotto in
      oltre una dozzina di lingue: <ulink
      url="http://www.insecure.org/nmap/osdetect/" />.</para>

      <para>OS detection viene attivato e controllato dalle le seguenti
      opzioni:</para>

      <variablelist>
        <varlistentry>
          <term><option>-O</option> (Enable OS detection)</term>

          <listitem>
            <para>Abilita l'OS detection, come descritto sopra. In
            alternativa, e` possibile utilizzare l'opzione <option>-A</option>
            per attivare sia l'OS detection che il version detection.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--osscan_limit</option> (Limit OS detection to
          promising targets)</term>

          <listitem>
            <para>L'OS detection e` molto piu` efficace se vengono rilevate
            almeno una porta aperta ed una chiusa. Utilizzando questa opzione
            NMap non cerchera` di effettuare la OS Detection su quegli host
            che non rispondo a questo criterio. E' cosi` possibile un
            sensibile risparmio di tempo, specialmente se si utilizza anche
            l'opzione <option>-P0</option> su molti host. E' importante
            unicamente quando l'OS Detection e` richiesto attravero le opzioni
            <option>-O</option> o <option>-A</option>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><option>--osscan_guess</option>; <option>--fuzzy</option>
          (Guess OS detection results)</term>

          <listitem>
            <para>Quando NMap non e` in grado di rilevare una corrispondenza
            esatta dell'OS, propone come possibilita` gli OS piu` vincini alla
            rilevazione. La corrispondenza pero` deve essere molto simile
            perche` NMap lo faccia per default. Entrambe queste opzioni
            (equivalenti) fanno si che NMap proceda con il riconoscimento
            dell'OS in modo piu` aggressivo.</para>
          </listitem>
        </varlistentry>
	</variablelist>
	</refsect1>

        <refsect1 id="man-performance">
          <title>Performance</title>

          <para>Le performance sono sempre state una delle principali
          priorita` durante lo sviluppo di Nmap. Una scansione
          default(<command moreinfo="none">nmap
          <replaceable>hostname</replaceable></command>) di un host in una
          rete locale richiede circa un quinto di secondo, poco piu` di un
          battito di ciglia. Tuttavia esso aumenta quando si sta effettuando
          una scansione di decine o centinaia di migliaia di host. Inoltre
          alcune opzioni di scan (come lo scan UDP e il version detection) o
          alcune configurazioni di firewall (in particolare quelle che
          limitano la frequenza delle risposte, conosciute come "response
          rating") tendono ad aumentare decisamente il tempo di scansione.
          Anche se Nmap usa tecniche di scansione in parallelo e molti altri
          algoritmi piu` avanzati per diminuire il tempo totale impiegato,
          l'utente ha comunque il controllo finale slle modalita` in cui Nmap
          viene eseguito. Un utente esperto usera` quindi comandi specifici
          per ottenere solo le informazioni di cui ha bisogno, restando pero`
          all'interno della finestra temporale minima.</para>

          <para>Alcune tecniche per migliorare i tempi di scansione sono
          l'omissione di test non rilevanti e l'aggiornamento all'ultima
          versione di Nmap (questo perche` spesso gli aggiornamenti includono
          miglioramenti delle performances). Anche ottimizzare i parametri di
          timing e` un'ottima strategia per ottenere sostanziali differenze;
          queste opzioni sono elencate di seguito.</para>



<para>Alcune opzioni accettano il parametro <literal moreinfo="none">time</literal>. Questo indica una quantita` di tempo in millisecondi (di default), ma e` possibile aggiungere 's', 'm' o 'h' per indicare secondi, minuti oppure ore. Ad esempio, per il parametro <option>--host-timeout</option> gli argomenti <literal moreinfo="none">900000</literal>, <literal moreinfo="none">900s</literal> e <literal moreinfo="none">15m</literal> hanno tutti lo stesso effetto.</para>
	  

          <variablelist>
            <varlistentry>
              <term><option>--min-hostgroup &lt;millisecondi&gt;</option>;
              <option>--max-hostgroup &lt;millisecondi&gt;</option> (Regola le
              dimensioni dei gruppi per la scansione in parallelo)</term>

              <listitem>
                <para>Nmap ha l'abilita` di effettuare port scan o version
                scan su piu` host in parallelo. Lo spazio degli indirizzi IP
                di destinazione viene diviso in gruppi e viene scansionato un
                gruppo per volta. In genere gruppi di dimensioni maggiori
                porta ad una migliore efficienza. Il lato negativo di tutto
                cio` e` i risultati non possono essere mostrati all'utente
                fino a quando l'intero gruppo non e` stato esplorato
                completamente. Quindi, se si lancia Nmap impostando la
                dimensione del gruppo a 50, l'utente non vedra` alcun
                risultato fino a quando i primi 50 host non sono stati
                completati (a meno che non selezioni la modalita`
                verbose).</para>

                <para>Di default, Nmap usa un compromesso per ovviare a questa
                difficolta`. Inizialmente utilizza una dimensione di cinque
                host in modo da mostrare i primi risultati velocemente,
                dopodiche` incrementa la dimensione fino ad un massimo di
                1024. Il numero esatto dipende dalle opzioni che vengono
                passate. Per ragioni di efficienza Nmap usa gruppi di
                dimensione maggiore per UDP o per scansioni di porte TCP di
                piccole dimensioni.</para>

                <para>nel caso in cui una dimensione massima del gruppo sia
                specificata con <option>--max_hostgroup</option>, Nmap non
                oltrepassera` mai questo limite. Specificando invece una
                dimensione minima con <option>--min_hostgroup</option>
                obblighera` Nmap a usare dimensioni almeno equivalenti. Nmap
                potrebbe tuttavia dover usare gruppi piu` piccoli di quelli
                indicati se non ci dovessero essere abbastanza host di
                destinazione rimanenti per un'interfaccia per raggiungere la
                minima quota specificata. Entrambe le opzioni possono essere
                impostate per mantenere la dimensione del gruppo all'interno
                di un certo limite, anche se questo succede raramente.</para>

                <para>L'utilizzo principale di queste opzioni e` quello di
                specificare una dimensione minima di una certa dimensione in
                modo da rendere piu` veloce la scansione globale. Una scelta
                piuttosto comune e` 256 per una scansione di una rete di
                classe C. Per una scansione con piu` porte, una dimensione di
                2048 o piu` puo` essere d'aiuto.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>--min_parallelism &lt;milliseconds&gt;</option>;
              <option>--max_parallelism &lt;milliseconds&gt;</option>
              (Modifica il probe in parallelo)</term>

              <listitem>
                <para>Queste opzioni controllano il numero totale di probe che
                puo` uscire dalla macchina sorgente per un host group. Esse
                sono usate per port scanning e host discovery. Di default,
                Nmap calcola un parallelismo ideale in continuo cambiamento a
                seconda delle performance della rete. Se c'e` un elevato
                numero di pacchetti che viene scartato, Nmap rallenta e lavora
                su un numero minore di probe in uscita. Il numero ideale di
                probe in uscita incrementa poi gradualmente fintantoche` la
                rete lo permette. Di default, il parallelismo puo` arrivare ad
                un minimo di 1 se la rete si dimostra essere poco affidabile;
                puo` invece aumentare a diverse centinaia per una rete in
                condizioni ottimali.</para>

                <para>L'uso piu` comune consiste nell'impostare
                <option>--min_parallelism</option> ad un valore maggiore di 1
                per accelerare le scansioni di reti o host che rispondono in
                maniera non adeguata. E` abbastanza rischioso giocare con
                quest'opzione, in quanto impostandola ad un valore troppo alto
                puo` influire negativamente sull'accuratenzza. Impostandola
                manualmente inoltre riduce l'abilita` di Nmap di controllare
                dinamicamente il parallelismo, basandosi sulle condizioni
                della rete. Un valore di 10 e` abbastanza ragionevole, anche
                se in genere le modifiche a questo parametro vengono usate
                come ultima risorsa.</para>

                <para>L'opzione <option>--max_parallelism</option> viene
                impostata a volte sul valore 1 per impedire a Nmap di inviare
                piu` di un probe alla volta verso un determinato host. Questo
                puo` essere d'aiuto quando usato insieme all'opzione
                <option>--scan_delay</option> (discussa in seguito), anche se
                quest'ultima in genere e` piu` che sufficiente da sola per lo
                scopo.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>--min_rtt_timeout &lt;milliseconds&gt;</option>,
              <option>--max_rtt_timeout &lt;milliseconds&gt;</option>,
              <option>--initial_rtt_timeout &lt;milliseconds&gt;</option>
              (Modifica i timeout dei probe)</term>

              <listitem>
                <para>Nmap mantiene un valore di timeout aggiornato per
                determinare quanto ci vorra` per un probe response prima di
                ritrasmettere il probe. Questo viene calcolato basandosi sui
                tempi di response degli ultimi probe inviati. Se la latenza
                della rete dovesse oscillare troppo questo timeout puo`
                crescere fino ad un valore di diversi secondi. Inoltre esso e`
                impostato inizialmente ad un valore abbastanza alto e potrebbe
                restare su quel valore per tutto il tempo in cui Nmap effettua
                la scansione su host che non rispondono.</para>

                <para>Le seguenti opzioni prendono come parametro un valore
                espresso in millisecondi. Specificando limiti di
                <option>--max_rtt_timeout</option> e di
                <option>--initial_rtt_timeout</option> inferiori ai valori di
                default e` possibile ridurre di molto i tempi di scansione.
                Questo e` vero in particolare per scansioni di tipo "pingless"
                (opzione <option>-P0</option>, ovvero senza effettuare un ping
                preliminare) e nei confronti di reti particolarmente protette.
                Tuttavia, e` bene non esagerare; infatti la scansione puo`
                addirittura richiedere piu` tempo del previsto nel caso in cui
                si specifichi un valore talmente basso da resettare il timeout
                dei probe (e forzarne un nuovo invio) mentre la risposta sta
                ancora arrivando.</para>

                <para>Se tutti gli host sono su una rete locale, 100
                millisecondi e` un valore ragionevolmente aggressivo per
                l'opzione <option>--max_rtt_timeout</option>. Se nella
                scansione e` coinvolto qualche routing, sarebbe meglio
                effettuare un ping preliminare dell'host (con l'utility ICMP
                ping o con un generatore di pacchetti come hping2 che puo`
                penetrare un firewall piu` facilmente), e osservare poi il
                valore massimo di andata/ritorno ("round trip") per un numero
                di pacchetti non inferiore a 10. E` quindi consigliato
                raddoppiare questo valore per l'opzione
                <option>--initial_rtt_timeout</option> e triplicarlo o
                quadruplicarlo per l'opzione
                <option>--max_rtt_timeout</option>. In genere si preferisce
                non impostare il maximum rtt al di sotto di 100 millisecondi,
                indipendentemente dai tempi di ping. E nemmeno al di sopra di
                1000 millisecondi.</para>

                <para>L'opzione <option>--min_rtt_timeout</option> e` usata
                molto raramente; essa puo` essere utile nel caso in cui una
                rete sia talmente poco affidabile che anche il default di Nmap
                e` troppo aggressivo. Poiche` Nmap riduce il timeout fino al
                valore minimo quando la rete sembra affidabile, questa
                esigenza di solito non e` necessaria e dovrebbe essere
                indicata come bug alla mailing list nmap-dev.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>--host_timeout &lt;milliseconds&gt;</option>
              (Abbandona in caso di host di destinazione troppo lenti nel
              rispondere)</term>

              <listitem>
                <para>Alcuni host a volte richiedono un tempo estremamente
                <emphasis>lungo</emphasis> per portare a termine una
                scansione. Questo puo` essere dovuto a hardware o software
                poco performante o inaffidabile o a firewall troppo
                restrittivi. La minoranza degli host sottoposti a scansione
                puo` richiedere la maggior parte del tempo di scansione. A
                volte e` preferibile risparmiare sul tempo ed evitare questi
                host fin dal principio. Questo comportamento viene forzato
                dall'opzione <option>--host_timeout</option> seguito dal
                numero di millisecondi dopo i quali non si vuole piu`
                aspettare. In genere si specifica un valore di 1800000 per
                avere la garanzia che Nmap non sprechi piu` di mezz'ora su un
                singolo host. Si noti che Nmap puo` nel frattempo effettuare
                la scansione su altri host durante quella mezz'ora, per cui
                non si tratta di tempo completamente sprecato. Un host che
                dovesse andare in timeout viene semplicemente saltato. Non
                vengono mostrati l'elenco delle porte, il detection del
                sistema operativo ne` risultati di version detection per
                quell'host.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>--scan_delay &lt;milliseconds&gt;</option>;
              <option>--max_scan_delay &lt;milliseconds&gt;</option> (Modifica
              il ritardo tra probe differenti)</term>

              <listitem>
                <para>Quest'opzione obbliga Nmap ad aspettare almeno il tempo
                indicato (in millisecondi) tra i probe inviati ad un
                determinato host. Questo risulta particolarmente utile nel
                caso di limitazioni sulla frequenza dell'invio ("rate
                limiting"). Tra gli altri, in particolare le macchine Solaris
                in genere rispondono a scansioni UDP con un solo messaggio
                ICMP al secondo. Qualsiasi altro probe inviato da Nmap durante
                questo intervallo di tempo sarebbe quindi sprecato. Un'opzione
                di <option>--scan_delay</option> di 1000 manterra` Nmap al di
                sotto di questa particolare frequenza di invio di probe. Nmap
                comunque cerchera` di capire eventuali limiti sulla frequenza
                e modifichera` i ritardi sui probe di conseguenza, tuttavia
                non e` cattiva abitudine specificarlo sulla linea di comando
                quando dovesse essere noto a priori il valore ottimale.</para>

                <para>Un'altro uso dell'opzione<option>--scan_delay</option>
                e` quello in cui si desidera evitare sistemi anti-intrusione
                (IDS/IPS, "intrusion-detection" e "intrusion-prevention
                system").</para>
              </listitem>
            </varlistentry>

<varlistentry>
        <term><option>--defeat-rst-ratelimit</option></term>
        <listitem>

<indexterm significance="normal"><primary>--defeat-rst-ratelimit</primary></indexterm>

<para>Molti host usano da tempo delle funzionalita` di "rate limiting" (limitazioni alla frequenza) per ridurre il numero di messaggi di errore ICMP che mandano (ad esempio gli errori su "port-unreachable", porta non raggiungibile). Alcuni sistemi hanno iniziato ad applicare le stesse tecniche all'invio di pacchetti RST (reset). Queste tecniche possono rallentare di molto Nmap poiche` esso continuera` a calibrare la gestione dei timing per gestire queste limitazioni di frequenza. Si puo` quindi indicare a Nmap di ignorare questi rate limits (per i port scan come il SYN scan, che <emphasis>non</emphasis> considerano le porte silenziose come <literal moreinfo="none">aperte</literal>) mediante l'opzione <option>--defeat-rst-ratelimit</option>.</para>

<para>L'uso di questa opzione puo` ridurre la precisione di uno scan, poiche` alcune porte potrebbero ritornare uno stato di non-risposta (Nmap non e` rimasto in attesa abbastanza a lungo a causa di meccanismi di rate-limiting dei pacchetti RST). Con una scansione di tipo SYN le porte "mute" (dalle quali non si e` ricevuto un RST) in questo caso vengono indicate con <literal moreinfo="none">filtered</literal> piuttosto che <literal moreinfo="none">chiuse</literal>. Quest'opzione e` utile solo quando si e` interessati alle porte aperte, e la distinzione tra porte <literal moreinfo="none">open</literal> e <literal moreinfo="none">closed</literal> non e` di alcun interesse rispetto al tempo che richiede.</para>
        </listitem>
      </varlistentry>

            <varlistentry>
              <term><option>-T
              &lt;Paranoid|Sneaky|Polite|Normal|Aggressive|Insane&gt;</option>
              (Imposta un template di temporizzazione)</term>

              <listitem>
                <para>Mentre le opzioni mostrate nella precedente sezione sono
                molto utili ed effettive nel caso in cui si voglia avere il
                controllo piu` preciso possibile sul comportamento di Nmap,
                alcuni potrebbero trovarle troppo complicate da usare.
                Inoltre, la scelta dei valori piu` appropriati puo` a volte
                richiedere piu` tempo della scansione che si sta cercando di
                ottimizzare. Nmap offre quindi un approccio piu` semplice
                mediante sei "timing templates", ovvero opzioni pre-impostate
                per regolare l'aggressivita` della scansione. Esse si
                specificano mediante l'opzione <option>-T</option> seguita dal
                numero del template corrispondente o dal suo nome. Essi sono:
                paranoico (0), furtivo (1), educato (2), normale (3),
                aggressivo (4) e folle (5). I primi due vengono usati per
                evitare i sopracitati sistemi anti-intrusione (IDS). La
                modalita` "gentile" rallenta la scansione in modo da usare
                meno banda e risorse sulla macchina bersaglio. La modalita`
                "normale" e` di default (e pertanto l'opzione
                <option>-T3</option> non modifica nulla). La modalita`
                "aggressiva" incrementa la velocita` assumendo che si e` su
                una rete veloce ed affidabile. Infine la modalita` "folle" da`
                per scontato che si e` su una rete estremamente veloce ed
                affidabile o che si vuole sacrificare l'accuratezza in nome
                della velocita`.</para>

                <para>Questi template consentono all'utente di specificare
                quanto aggressivi si desidera essere, lasciando al tempo
                stesso a Nmap il compito di scegliere i valori piu`
                appropriati. I template inoltre effettuano piccoli
                aggiustamenti sui timing per i quali non esistono opzioni che
                ne consentono il controllo. Ad esempio, l'opzione
                <option>-T4</option> impedisce al ritardo dinamico per una
                scansione di andare al di sotto della soglia dei 10
                millisecondi per le porte TCP, e l'opzione
                <option>-T5</option> limita questo valore a 5 millisecondi. I
                template possono essere usati insieme a controlli piu` precisi
                a patto che il template venga specificato per primo.
                Altrimenti i valori impostati dal template potrebbero
                sovrascrivere quelli specificati dall'utente. Si raccomanda di
                usare l'opzione <option>-T4</option> nel caso in cui si
                desideri effettuare scansioni di reti abbastanza recenti e
                affidabili; inoltre e` consigliabile mantenere quell'opzione
                (intesa come inserita all'inizio dei comandi) anche qualora si
                dovessero aggiungere controlli piu` precisi in modo da
                beneficiare da tutti i piccoli miglioramenti che dovessero
                intervenire.</para>

                <para>Se la propria connessione e` a banda larga o di tipo
                ethernet, si raccomanda di usare sempre l'opzione
                <option>-T4</option>. Alcuni prediligono anche l'opzione
                <option>-T5</option>, nonostante per i piu` sia troppo
                aggressiva. Altri a volte usano l'opzione <option>-T2</option>
                perche` credono che sia meno propensa a mandare in crash un
                host o perche` si considerano persone educate. Spesso essi non
                si rendono conto di quanto e` lenta l'opzione <option>-T
                Polite</option>; una scansione di questo tipo puo` impiegare
                anche dieci volte il tempo richiesto per una scansione di
                default. Crash di host e problemi di banda sono rari con le
                opzioni di timing di default (opzione <option>-T3</option>) e
                pertanto e` l'opzione consigliata a chi deve effettuare
                scansioni senza dare troppo nell'occhio. Omettere una
                scansione di tipo version detection e` molto piu` efficiente
                del giocare con i valori di timing per ridurre i problemi
                sopracitati.</para>

                <para>Mentre le opzioni <option>-T0</option> e
                <option>-T1</option> potrebbero essere utili per evitare gli
                allarmi di un IDS (sensore anti-intrusione), esse
                richiederanno un tempo estremamente lungo per portare a
                termine una scansione di migliaia di host o di porte. In una
                situazione di questo tipo si suggerisce di lavorare sui valori
                esatti di timing richiesti piuttosto che avvalersi delle
                opzioni preimpostate nelle opzioni <option>-T0</option> e
                <option>-T1</option>.</para>

                <para>Gli effetti principali dell'opzione <option>T0</option>
                sono quello di serializzare la scansione in modo da affrontare
                una sola porta alla volta, e al tempo stesso quello di
                attendere cinque minuti tra l'invio di un probe e il
                successivo. Le opzioni <option>T1</option> e
                <option>T2</option> sono simili ma attendono rispettivamente
                15 secondi e 0.4 secondi tra un probe e l'altro. L'opzione
                <option>T3</option> e` il comportamento di default di Nmap
                (che include il parallelismo). L'opzione <option>T4</option>
                ha lo stesso risultato dell'impostare
                <option>--max_rtt_timeout 1250 --initial_rtt_timeout
                500</option> e di impostare il ritardo massimo per una
                scansione TCP a 10 millisecondi. Infine l'opzione
                <option>T5</option> e` equivalente a <option>--max_rtt_timeout
                300 --min_rtt_timeout 50 --initial_rtt_timeout 250
                --host_timeout 900000</option> e ad impostare il massimo
                ritardo TCP (maximum delay) a 5 millisecondi.</para>
              </listitem>
            </varlistentry>
          </variablelist>
        </refsect1>

        <refsect1 id="man-bypass-firewalls-ids">
          <title>Bypassing e Spoofing di Firewall e Intrusion Detection System
          (Firewall/IDS Evasion and Spoofing)</title>

          <para>Tanti pionieri dell'epoca di Internet immaginarono una rete
          globale aperta con uno spazio di indirizzi IP universale, che
          potesse consentire connessioni virtuali tra qualsiasi coppia di
          nodi. Questo permette ad ogni host di diventare allo stesso tempo
          fruitore e fornitore di informazioni da e per l'altro. Chiunque
          poteva accedere dal lavoro a tutti i propri sistemi di casa,
          regolando il termostato o aprendo la porta per un visitatore che
          dovesse arrivare in anticipo. Questa visione di connettivita`
          universale e` stata soffocata da carenze nello spazio di
          indirizzamento e da preoccupazioni legate alla sicurezza. Nei primi
          anni novanta le compagnie iniziarono a sviluppare firewall con lo
          scopo di ridurre la connettivita`. Enormi reti vennero tagliate
          fuori dall'Internet non filtrato da application proxy, NAT (Network
          Address Translation) e packet filter (filtri di pacchetto). Il
          flusso incontrollato delle informazioni lascio` il posto a regole
          stringenti sui canali di comunicazione approvati e sul contenuto che
          puo` transitare su di essi.</para>

          <para>Ostruzioni di rete come i firewall possono rendere la stesura
          della topografia di una rete un lavoro fin troppo difficile. E non
          migliorera` mai, perche` limitare le differenze che permettono di
          distinguere tra un apparecchio e un altro e` spesso lo scopo
          primario nella loro costruzione. Nondimeno, Nmap offre molte
          caratteristiche che possono aiutare a capire tali reti complesse e a
          verificare che i filtri impostati stiano funzionando come previsto.
          Nmap include anche meccanismi per effettuare il bypassing di difese
          poco robuste o mal implementate. Uno dei migliori metodi per capire
          quant'e` sicura la propria rete e` proprio il cercare di forzarla.
          Mettetevi nei panni di un attaccante, e usate le tecniche spiegate
          in questa sezione contro le vostre reti. Lanciate una scansione "FTP
          bounce", un "Idle scan", un "fragmentation attack", o provate a
          entrare attraverso uno dei vostri proxy.</para>

          <para>In aggiunta alle restrizioni delle attivita` di rete, le
          aziende stanno sempre piu` tenendo sotto controllo il traffico con
          sistemi anti-intrusione (IDS). La maggior parte di questi IDS e`
          configurato per accorgersi di una scansione di Nmap di default,
          poiche` molto spesso l'attacco segue direttamente la scansione.
          Molti di questi strumenti inoltre si sono evoluti in sistemi di
          <emphasis>prevenzione</emphasis> delle intrusioni (IPS, "intrusion
          prevention systems") che bloccano attivamente tutto il traffico che
          potrebbe essere nocivo. Sfortunatamente per gli amministratori di
          rete e per i produttori di IDS, pero`, rilevare cattive intenzioni
          analizzando semplicemente i dati contenuti nei pacchetti e` un
          problema difficile. Un attaccante con una buona dose di pazienza,
          talento e l'aiuto di alcune opzioni di Nmap puo` generalmente
          scavalcare un IDS senza esser visto. Allo stesso tempo un
          amministratore ha a che fare con molti falsi positivi dovuti ad
          intenzioni legittime che vengono erroneamente bloccati o per i quali
          scattano allarmi.</para>

          <para>Ogni tanto qualcuno suggerisce che Nmap non dovrebbe fornire
          opzioni per bypassare regole di firewalling o per sgusciare oltre
          agli IDS. Essi asseriscono che queste caratteristiche sono usate
          piu` facilmente da attaccanti piuttosto che da amministratori
          attenti alle problematiche di sicurezza. Il problema con questo tipo
          di ragionamento e` che tali metodi verrebbero comunque usati da
          attaccanti che potrebbero semplicemente usare altri strumenti o
          modificare Nmap per fare cio` che desiderano. E intanto un
          amministratore si troverebbe a non aver strumenti per poter fare il
          proprio lavoro correttamente. Sviluppare solo server FTP moderni e
          con tutte le patch installate e` un approccio molto migliore al
          voler bloccare lo sviluppo e la distribuzione di strumenti che usano
          l'attacco "FTP bounce".</para>

          <para>Non esiste alcuna bacchetta magica (o opzione di Nmap) per
          riconoscere o bypassare un firewall o un sistema anti-intrusione. E`
          un'attivita` che richiede talento ed esperienza. Una guida completa
          esula dagli intenti di questa guida di riferimento, la quale elenca
          solo le opzioni rilevanti e descrive cio` che fanno.</para>

          <variablelist>
            <varlistentry>
              <term><option>-f</option> (frammenta i pacchetti);
              <option>--mtu</option> (usando l'unita` di trasmissione minima
              specificata - "MTU")</term>

              <listitem>
                <para>L'opzione <option>-f</option> obbliga la scansione
                (anche i "ping scan") a usare pacchetti IP frammentati. L'idea
                di base e` quella di frammentare l'header TCP su piu`
                pacchetti, in modo da rendere piu` difficile per un packet
                filter, per un IDS o per altri fastidiosi strumenti simili il
                compito di capire cosa sta succedendo. Si presti comunque la
                massima attenzione nell'uso di questa opzione! Alcuni
                programmi hanno difficolta` a gestire pacchetti di dimensione
                troppo piccola. Il vecchio tool "Sniffit" andava in
                segmentation fault non appena riceveva il primo frammento.
                Specificando questa opzione una volta Nmap dividera` i
                pacchetti in piccoli insiemi di al piu` 8 byte ciascuno,
                inserendoli dopo l'header IP. In questo modo un header TCP di
                20 byte verra` diviso in tre pacchetti: due con otto byte
                ciascuno e uno con i rimanenti quattro. E ovviamente ogni
                frammento avra` un header IP. Specificando di nuovo l'opzione
                <option>-f</option> si useranno insiemi di 16 byte (riducendo
                cosi` il numero di frammenti). In alternativa si puo` indicare
                lo spiazzamento ("offset") desiderato mediante l'opzione
                <option>--mtu</option>. Non si usi l'opzione
                <option>-f</option> se si e` usato <option>--mtu</option>. Lo
                spiazzamento dev'essere un multiplo di 8. Nonostante i
                pacchetti frammentati non supereranno i packet filter e i
                firewall che mantengono una coda di tutti i frammenti IP (come
                ad esempio le macchine GNU/Linux che hanno l'opzione
                CONFIG_IP_ALWAYS_DEFRAG impostata nel kernel), alcune reti
                tuttavia non possono permettersi il calo di performance
                causato da troppi frammenti e pertanto non avranno
                quell'opzione abilitata. Altri ancora non possono abilitare
                quell'opzione perche` i frammenti potrebbero prendere
                direzioni differenti una volta all'interno. Alcuni sistemi di
                origine dei dati deframmentano i pacchetti in uscita nel
                kernel. Linux con il modulo ip_conntrack ("connection tracking
                module") e` uno di questi. Si raccomanda di effettuare la
                scansione mentre un packet sniffer (come Ethereal) sta
                girando, in modo da avere la certezza che i pacchetti inviati
                vengono effettivamente frammentati. Se il proprio sistema
                operativo dovesse causare problemi in questo, si usi l'opzione
                <option>--send_eth</option> per bypassare il livello IP ed
                inviare direttamente frame Ethernet sul cavo.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>-D &lt;decoy1 [,decoy2][,ME],...&gt;</option>
              (Maschera una scansione utilizzando esche - "decoy scan")</term>

              <listitem>
                <para>Quest'opzione invoca una "decoy scan" (ovvero una
                scansione utilizzando esche) che agli occhi dell'host di
                destinazione apparira` come se provenisse dagli host
                specificati come decoy. In questo modo l'IDS della rete
                bersaglio mostrera` 5-10 port scan provenienti da indirizzi IP
                singoli, e non potra` capire quale IP e` veramente la sorgente
                dell'attacco e quale IP e` usato solo come mascheramento.
                Nonostante quest'opzione possa essere resa inutile mediante il
                tracciamento del percorso fatto dai router ("router path
                tracing"), tecniche di response-dropping e altri meccanismi
                attivi sono generalmente una tecnica effettiva per nascondere
                il proprio indirizzo IP.</para>

                <para>Separando gli host decoy con una virgola e` possibile
                usare il parametro <literal moreinfo="none">ME</literal> come
                uno dei decoy per rappresentare la posizione del proprio
                indirizzo IP. Se si pone il parametro <literal
                moreinfo="none">ME</literal> nella sesta posizione o ancora
                oltre, alcuni sensori di port scan (come l'eccellente
                "scanlogd" di Solar Designer) difficilmente mostreranno il
                vostro indirizzo IP. Se non si dovesse usare il parametro
                <literal moreinfo="none">ME</literal>, Nmap mettera` il vostro
                IP in una posizione a caso.</para>

                <para>Si noti che gli host che vengono usati come decoy
                dovrebbero essere attivi o si corre il rischio di creare un
                "SYN flood" verso il proprio obbiettivo. Inoltre diventerebbe
                molto facile capire quale host e` la causa della scansione, se
                solo uno e` attivo in una rete. E` consigliabile usare
                indirizzi IP al posto di nomi, per evitare che la rete dei
                decoy individui i propri tentativi di risoluzione dei nomi nei
                log dei propri DNS.</para>

                <para>I decoy vengono usati sia nel "ping scan" iniziale
                (indipendentemente dal fatto che si usi ICMP, SYN, ACK,
                eccetera) sia durante la fase di port scanning effettiva.
                Infine i decoys vengono usati durante la "Operating System
                Detection" remota, specificabile con l'opzione
                <option>-O</option>). L'utilizzo dei decoy non e` valido con
                scansioni di tipo "version detection" o scansioni di tipo TCP
                connect().</para>

                <para>Inutile ricordare che l'uso di troppi decoy puo`
                rallentare la propria rete e potenzialmente renderla meno
                accurata. Inoltre, alcuni ISP ("Internet Service Providers")
                potrebbero filtrare i pacchetti "spoofed" (falsificati), anche
                se molti non operano alcun tipo di azione su questi
                ultimi.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>-S &lt;IP_Address&gt;</option> (falsifica
              l'indirizzo sorgente - "spoof source address")</term>

              <listitem>
                <para>In talune circostanze Nmap potrebbe non essere in grado
                di determinare il proprio indirizzo sorgente (in questi casi
                Nmap avvertira` della problematica). Se cosi` fosse si puo`
                usare l'opzione <option>-S</option> seguita dall'indirizzo IP
                dell'interfaccia che si vuole usare per inviare
                pacchetti.</para>

                <para>Un altro possibile uso di quest'opzione potrebbe essere
                per falsificare ("spoof") la scansione per far credere al
                bersaglio che <emphasis>qualcun altro</emphasis> li sta
                prendendo di mira e sta effettuando una scansione su di loro.
                Si immagini solo cosa potrebbe succedere se un'azienda si
                accorgesse di essere preda di port scan da parte dei propri
                concorrenti! L'opzione <option>-e</option> e` in genere
                richiesta per questo particolare utilizzo, e si consiglia
                anche di usare <option>-P0</option>.</para>
              </listitem>
            </varlistentry>

            <varlistentry>
              <term><option>-e &lt;interface&gt;</option> (Usa l'interfaccia
              di rete specificata - "use specified interface")</term>

              <listitem>
                <para>Indica a Nmap che interfaccia di rete usare per inviare
                e ricevere pacchetti. Nmap dovrebbe essere in grado di capire
                autonomamente quale usare, ma nel caso non sia possibile vi
                avvertira`.</para>
              </listitem>
            </varlistentry>








<varlistentry>
        <term>
          <option>--source-port &lt;portnumber&gt;;</option>
          <option>-g &lt;portnumber&gt;</option> (Effettua uno spoof del numero di porta di origine)
        </term>
        <listitem>

<indexterm significance="normal"><primary>--source-port</primary></indexterm>
<indexterm significance="normal"><primary>--g</primary></indexterm>
<para>Un errore di configurazione sorprendente comune e` quello di fidarsi del traffico di rete basandosi solo sulla porta di origine. E` facile capire come puo` succedere: un amministratore configura un firewall nuovo fiammante per poi ritrovarsi sommerso dalle lamentele degli utenti ingrati le cui applicazioni hanno smesso di funzionare. Ad esempio le query DNS possono non funzionare piu` perche` le risposte (sotto forma di pacchetti UDP) provenienti da server esterni non possono piu` entrare nella rete. Anche l'ftp e` un esempio piuttosto comune: nei trasferimenti di dati attivi (opposti a quelli di tipo "passive ftp") il server remoto cerca di stabilire una connessione diretta con il client per trasferire i file richiesti.</para> 

<para>Esistono soluzioni sicure a questi problemi, spesso nella forma di proxy a livello di applicazione o moduli del firewall che fanno parsing del protocollo. Sfortunatamente ci sono anche soluzioni facili ma insicure. Ad esempio, notando che le risposte alle query DNS arrivano dalla porta 53 e i transfer ftp "active" provengono dalla porta 20, tanti amministratori cadono nella trappola di lasciar passare il traffico proveniente da queste porte. Essi assumono spesso che nessun attaccante potrebbe accorgersi di questi buchi di sicurezza e appprofittarne. In altri casi un amministratore puo` considerare questa soluzione una misura temporanea fino a quando non implementera` una soluzione migliore e piu` sicura. E poi si dimentica di farlo.</para>

<para>Gli amministratori di rete con troppe cose da fare non sono gli unici a cadere in questa trappola. Molti prodotti sono venduti con queste regole insicure; anche Microsoft e` colpevole. I filtri IPSec parte di Windows 2000 e Windows XP contengono una regola
implicita che permette il passaggio di tutto il traffico proveniente dalla porta 88 (Kerberos). Un altro caso ben conosciuto e` quello di Zone Alarm Personal Firewall (fino alla versione 2.1.25: esso permetteva l'ingresso nel sistema a qualsiasi pacchetto UDP che avesse come porta di origine la 53 (DNS) o 67 (DHCP).</para>

<para>Nmap offre le opzioni (equivalenti) <option>-g</option> e <option>--source-port</option> per sfruttare queste debolezze. Basta fornire un numero di porta e Nmap mandera` pacchetti da questa porta quando possibile. Tuttavia Nmap deve usare numeri di porta diversi per alcuni test di OS detection perche` essi funzionino a dovere, e le richieste DNS ignorano l'opzione <option>--source-port</option> poiche` Nmap si appoggia alle librerie di sistema per gestirle. La maggior parte delle scansioni TCP, incluse le scansioni SYN e UDP, supportano quest'opzione.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--data-length &lt;number&gt;</option> (Aggiunta di dati random ai pacchetti inviati)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--data-length</primary></indexterm>
	<para>In genere Nmap invia pacchetti nella dimensione piu` piccola possibile, contenenti soltanto l'header (intestazione). Quindi i pacchetti TCP sono in genere di 40 bytes e le richieste ICMP echo di 28 bytes. Quest'opzione indica a Nmap di aggiungere un certo numero di bytes casuali a quasi tutti i pacchetti che invia. I pacchetti di OS detection tuttavia non vengono modificati, perche` la precisione in essi richiede una certa consistenza nell'invio dei probe; in ogni modo quasi tutte le opzioni di ping e portscan supportano questa modalita`. Essa rallenta leggermente le performance ma puo` risultare in una scansione piu` accurata.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--ttl &lt;value&gt;</option> (Imposta il campo IP time-to-live)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--ttl</primary></indexterm>
	  <para>Imposta il campo time-to-live (tempo di vita del pacchetto IPv4) al valore richiesto.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--randomize-hosts</option> (Rimescola l'ordine degli host bersaglio)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--randomize-hosts</primary></indexterm>
	  <para>Quest'opzione indica a Nmap di rimescolare l'ordine di scansione di ogni gruppo di host (fino a 8096) prima di iniziare la scansione. Questo puo` nascondere le scansioni a vari sistemi di network monitoring, specialmente quando e` affiancato a opzioni di rallentamento ("slow timing"). Se si desidera un random su gruppi di dimensione maggiore, e` necessario incrementare la direttiva PING_GROUP_SZ in <filename moreinfo="none">nmap.h</filename> e ricompilare l'applicativo. Una soluzione alternativa potrebbe essere quella di generare una lista degli IP sui quali effettuare lo scan mediante un list scan (opzione <option>-sL -n -On <replaceable>filename</replaceable></option>), randomizzarla con uno script Perl e passare la lista a Nmap con l'opzione <option>-iL</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--spoof-mac &lt;mac address, prefix, or vendor
          name&gt;</option> (Effettua uno spoof dell'indirizzo hardware (MAC))
        </term>
        <listitem>

        <indexterm significance="normal"><primary>--spoof-mac</primary></indexterm>
	  <para>Richiede a Nmap di usare l'indirizzo hardware (mac) per tutti i frame ethernet raw che invia. Quest'opzione implica <option>--send-eth</option> per garantire che Nmap invii di fatto pacchetti a livello ethernet. Il MAC puo` essere specificato in vari formati: nel caso in cui sia la stringa <quote>0</quote>, Nmap sceglie un MAC completamente random per la sessione. Se la stringa e` un numero pari di simboli esadecimali (con le coppie separate eventualmente dal simbolo di due punti), Nmap usera` questo come MAC. Se dovessero essere specificate meno di 12 cifre decimali, Nmap riempira` il resto dei 6 bytes con valori casuali. Se l'argomento non e` uno zero (0) o una stringa esadecimale, Nmap cerchera` nel file <filename moreinfo="none">nmap-mac-prefixes</filename> per cercare il nome di un produttore contenente la stringa indicata (senza distinguere tra maiuscole e minuscole). Se trova una corrispondenza, Nmap usera` la parte OUI del produttore (il prefisso di 3 bytes) e riempira` i restanti 6 bytes in maniera casuale. 
	  Esempi validi dell'uso di <option>--spoof-mac</option> sono <literal moreinfo="none">Apple</literal>, <literal moreinfo="none">0</literal>, <literal moreinfo="none">01:02:03:04:05:06</literal>, <literal moreinfo="none">deadbeefcafe</literal>, <literal moreinfo="none">0020F2</literal>, e <literal moreinfo="none">Cisco</literal>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--badsum</option> (Invia pacchetti con checksum TCP/UDP non valido)
        </term>
        <listitem>

        <indexterm significance="normal"><primary>--badsum</primary></indexterm>
	<para>Richiede a Nmap di usare un checksum TCP o UDP non valido per i pacchetti inviati alla macchina di destinazione. Poiche` teoricamente tutti gli stack IP degli host finiranno per ignorare questi pacchetti, qualunque risposta ricevuta dovra` per forza provenire da un firewall o da un Intrusion Detection System (IDS) che non si preoccupa di verificare il checksum. Per maggiori informazioni su questa tecnica, si consulti 
   <ulink url="http://nmap.org/p60-12.txt"/></para>
        </listitem>
      </varlistentry>
          </variablelist>
        </refsect1>

        <refsect1 id="man-output">
            <title>Output</title>

            <para>Qualunque tool di sicurezza 蠵tile quanto l'output che esso
            stesso genera. Test e algoritmi complessi son di scarsa importanza
            se non son presentati in modo comprensibile e ben organizzato.
            Dato il grande numero di modi in cui Nmap viene usato dagli utenti
            e da altro software, nessun formato potrebbe soddisfare tutti. Per
            questo motivi Nmap offre molti formati, inclusa la modalita`
            interattiva per la lettura diretta degli utenti, sia XML per
            rendere l'output facilmente interpretabile dal software.</para>

            <para>Inoltre per offrire differenti formati di output, Nmap
            fornisce opzioni per il controllo della verbosita` dell'output
            come anche dei messaggi di debugging. I tipi di output possono
            essere mandati allo standard output o a files, ai quali Nmap puo
            accodare o sovrascrivere contenuto. I files di output possono
            anche essere usati per ripristinare scansioni precedentemente
            annullate.</para>

            <para>Nmap rende l'output disponibile in cinque formati
            differenti. Il formato predefinito 蠣hiamato <literal
            moreinfo="none">interactive output</literal>, ed 蠭andato in
            standard output (stdout). C'蠡nche un <literal
            moreinfo="none">normal output</literal>, che 蠳imile all' <literal
            moreinfo="none">interactive</literal> ad eccezione per il fatto
            che mostra meno informazioni di runtime e warnings dal momento che
            si suppone che dovra` essere analizzato dopo il completamento
            della scansione, piuttosto che interattivamente.</para>

            <para>L' output XML 蠵no dei piu` importanti tipi di output, dal
            momento che puo` essere convertito in HTML, interpretato con
            facilita` dai programmi come per esempio le interfacce grafiche di
            Nmap, o importata in databases.</para>

            <para>I rimanenti due tipi di output sono il semplice <literal
            moreinfo="none">grepable output</literal> che include la maggior
            parte delle informazioni su un obiettivo in una linea singola, e
            il <literal moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> per
            utenti che si considerano |&lt;-r4d.</para>

            <para>Mentre l'output interattivo 蠱uello predefinito e non ha
            associate opzioni da linea di comando, gli altri quattro formati
            usano la stessa sintassi. Prendono un argomento , che 蠩l nome del
            file nel quale i risultati dovranno essere scritti. Possono essere
            specificati formati multipli, ma ogni formato puo solo essere
            specificato una volta. Per esempio si potrebbe voler salvare il
            normal output per le proprie revisioni e nel mentre salvare in XML
            per l'analisi programmatica. Cio` si potrebbe realizzare con le
            opzioni:<option> -oX myscan.xml -oN myscan.nmap</option>. Mentre
            questo capitolo usa per brevita` dei nomi semplici come <literal
            moreinfo="none">myscan.xml</literal> , son generalmente
            consigliati nomi piu` descrittivi. I nomi scelti sono un problema
            di preferenza personale, anche se io ne uso di lunghi che
            incorporano la data della scansione e un paio di parole che
            descrivano la scansione., messe in una directory chiamata come
            l'azienda che sto scansionando.</para>

            <para>Mentre queste opzioni salvano i risultati su files, Nmap
            stampa ancora l'output interattivo in standard output come sempre.
            Per esempio, il comando <command moreinfo="none">nmap -oX
            myscan.xml target</command> stampa XML dentro <filename
            moreinfo="none">myscan.xml</filename> e scrive in standard output
            gli stessi risualtati interattivi che avrebbe stampato se
            <option>-oX</option> non fosse stata specificata. Si puo cambiare
            questo comportamento passando un carattere trattino come argomento
            di un tipo di formato. Questo fa si che Nmap disattivi l'output
            interattivo, e stampi il risultato nel formato che si 蠳pecificato
            nello stream dello standard otput. Cosi` il comando <command
            moreinfo="none">nmap -oX - target</command> mandera` in stdout
            soltanto l'output XML. Possono ancora comparire degli avvisi di
            errore grave sullo stream di standard error stderr.</para>

            <para>A differenza di alcuni argomenti di Nmap, lo spazio tra il
            file di log e l'opzione di log (ad esempio <option>-oX</option>) e
            il nome del file o il trattino, 蠯bbligatorio. Se si omettono le
            opzioni e si danno argomenti come <option>-oG-</option> o
            <option>-oXscan.xml</option>, una feature di retrocompatibilita`
            causera` la creazione di file di output in <emphasis>normal
            format</emphasis> chiamati<filename moreinfo="none"> G-</filename>
            e <filename moreinfo="none">Xscan.xml</filename>
            rispettivamente.</para>

            <para>Nmap offre inoltre l'opzione di controllo sullla verbosita`
            e la possibilita` di accodare ai files invece di sovrascriverli.
            Tutte queste opzioni sono descritte di seguito.</para>

            <variablelist>
              <title>I Formati di Output di Nmap</title>

              <varlistentry>
                <term><option>-oN &lt;filespec&gt;</option> (Normal
                output)</term>

                <listitem>
                  <para>Richiede che il t <literal moreinfo="none">normal
                  output</literal> venga rediretto al dato file. Come detto
                  sopra, questo 蠬eggermente diverso da <literal
                  moreinfo="none">interactive output</literal>.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>-oX &lt;filespec&gt;</option> (XML
                output)</term>

                <listitem>
                  <para>Richiede che l'output XML sia rediretto al dato
                  file.Nmap contiene un document type definition (DTD) che
                  permette agli interpreti XML di validare l'output di Nmap.
                  Sebbene inteso come prioritariamente per l'uso
                  programmatico, puo essere d'aiuto anche agli utenti. Il DTD
                  definisce gli elementi convenzionali del formato, e spesso
                  enumera gli attributi e i valori che possono
                  assumere.</para>

                  <para>XML offre un formato stabile e facilmente interpretato
                  dal software. Gli interpreti XML liberi (free) sono
                  disponibili per la maggior parte dei linguaggi di
                  programmazione, compresi C/C++, Perl, Python, e Java. C'e
                  anche chi ha scritto dei bindings per gran parte di questi
                  linguaggi per trattare in maniera specifica l'output e
                  l'esecuzione di Nmap. Ne sono esempio: <ulink
                  url="http://sourceforge.net/projects/nmap-scanner/">Nmap::Scanner</ulink>
                  e <ulink
                  url="http://www.nmapparser.com">Nmap::Parser</ulink> nel
                  Perl CPAN. In quasi tutti i casi il modo preferito per
                  interpretare i risultati di Nmap 蠳tato XML.</para>

                  <para>L'output XML fa riferimento ad uno stylesheet XSL che
                  puo essere usato per formattare il risultato in HTML. La
                  maniera piu` facile di usarlo 蠳emplicemente aprire il file
                  XML in un web browser come Firefox o IE. Di norma questa
                  procedura dovrebbe funzionare solo sulla macchina su cui si
                  esegue Nmap (o una configurata in maniera simile) perche` il
                  percorso a nmap.xsl 蠱uello hardcoded in Nmap. Si veda
                  l'opzione <option>--stylesheet</option> per creare un file
                  XML portabile che renderizza come HTML in ogni macchina
                  connessa al web.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>-oS &lt;filespec&gt;</option> (ScRipT KIdd|3
                oUTpuT)</term>

                <listitem>
                  <para>Lo script kiddie output 蠣ome l' interactive output, ad
                  eccezione del post-processing che meglio adatta l'output al
                  'l33t HaXXorZ che prima guardavano dall'alto in basso Nmap
                  per la sua troppo corretta ortografia e per l'uso proprio
                  delle maiuscole.Per le persone poco inclini all'humor, si
                  noti che questa opzione prende in giro gli script kiddies
                  che prima mi criticavano perche` "li aiutassi".</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>-oG &lt;filespec&gt;</option> (Grepable
                output)</term>

                <listitem>
                  <para>Questo formato di output 蠤escritto per ultimo perche`
                  il suo uso 蠯rmai da considerarsi in disuso. L'outpt XML 蠤i
                  gran lung apiu` potente, e pressoche` ugualmente utile per
                  gli utenti esperti. XML 蠵no standard per le dozzine di
                  eccellenti parsers che sono disponibili, mentre il grepable
                  output 蠵n mio semplice hack. XML 蠥stensibile al supporto di
                  nuove features di Nmap man mano che queste vengono
                  rilasciate, mentre spesso ometto queste nuove features per
                  il formato grepable per mancanza di spazio dove
                  aggiungerle.</para>

                  <para>Ad ogni modo, il grepable output 蠡ncora discretamente
                  usato. E' un formato semplice che lista ogni host su una
                  riga e puo` essere facilmente cercato e interpretato dai
                  tool standard di UNIX, come grep, awk, cut, sed, diff e
                  Perl. Anche io lo uso per test semplici da riga di comando.
                  Trovare tutti gli host che hanno la porta di ssh aperta o
                  che montano Solaris, 蠱uestione di un semplice grep per
                  identificare gli host e un pipe verso awk o cut per
                  visualizzare i campi desiderati.</para>

                  <para>Il grepable output contiene commenti (le righe che
                  iniziano con il cancelletto (#)) e righe target. Una riga
                  target include una combinazione di 6 campi etichettati,
                  saeparati da tabulazioni e terminati da un duepunti. I campi
                  sono <literal moreinfo="none">Host</literal>, <literal
                  moreinfo="none">Ports</literal>, <literal
                  moreinfo="none">Protocols</literal>, <literal
                  moreinfo="none">Ignored State</literal>, <literal
                  moreinfo="none">OS</literal>, <literal moreinfo="none">Seq
                  Index</literal>, <literal moreinfo="none">IPID</literal>, e
                  <literal moreinfo="none">Status</literal>.</para>

                  <para>I piu` importanti tra questi campi sono generalmente
                  il campo <literal moreinfo="none">Ports</literal>, che da
                  dettagli su ogni porta interessante,. E' una lista di porte
                  separate da una virgola. Ogni porta rappresenta una porta
                  interessante e prende la forma di sette sottocampi separati
                  da uno slash (/). Questi sottocampi sono: <literal
                  moreinfo="none">Port number</literal>, <literal
                  moreinfo="none">State</literal>, <literal
                  moreinfo="none">Protocol</literal>, <literal
                  moreinfo="none">Owner</literal>, <literal
                  moreinfo="none">Service</literal>, <literal
                  moreinfo="none">SunRPC info</literal>, and <literal
                  moreinfo="none">Version info</literal>.</para>

                  <para>Come in XML output, questa pagina di manuale non
                  permette di documentare l'intero formato. E' disponibile una
                  descrizione piu` dettagliata del formato grepable
                  output.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>-oA &lt;basename&gt;</option> (Output in tutti i
                formati)</term>

                <listitem>
                  <para>Secondo convenienza, si potrebbe specificare
                  <option>-oA <replaceable>basename</replaceable></option> per
                  salvare i risultati dello scan in normal, XML, e grepable
                  formats in una sola volta. Questi vengono salvati nei files
                  <replaceable>basename</replaceable>.nmap,
                  <replaceable>basename</replaceable>.xml, e
                  <replaceable>basename</replaceable>.gnmap, rispettivamente.
                  Come la maggior parte dei programmi, si puo mettere un
                  prefisso ai nomi dei files, come ad esempio un percorso a
                  directory, come <filename
                  moreinfo="none">~/nmaplogs/foocorp/</filename> su UNIX o
                  <filename moreinfo="none">c:\hacking\sco</filename> su
                  Windows.</para>
                </listitem>
              </varlistentry>
            </variablelist>

            <variablelist>
              <title>Verbosita` e livello di debugging</title>

              <varlistentry>
                <term><option>-v</option> (Aumenta il livello di
                verbosity)</term>

                <listitem>
                  <para>Aumenta il livello di verbosita`, facendo in modo che
                  Nmap stampi piu` informazioni riguardo allo scan in
                  esecuzione. Le porte aperte sono mostrate man mano che Nmap
                  le trova e il tempo rimanente stimato vengono mostrati se
                  Nmap ritiene che lo scan possa durare piu` di qualche
                  minuto. Si puo mettere l'opzione due volte per aumentare
                  ulteriormente il livello di verbosita`. Triplicare l'opzione
                  non ha effetti.</para>

                  <para>La maggior parte dei cambiamenti riguarda
                  l'interactive output, e alcune cose anche il normal e script
                  kiddie output. Gli altri tipi di output sono fatti per
                  essere processati dalle macchine, quindi Nmap puo dare un
                  grosso livello di dettaglio di default, senza il problema di
                  poter affaticare un utente umano. In ogni casoci sono delle
                  leggere differenza negli altri modi dove la dimensione
                  dell'output puo essere sostanzialmente ridotta omettendo
                  alcuni dettagli. Per esempio solo in modalita` verbosa viene
                  stampatauna linea di commento nel grepable output che
                  fornisce una lista di tutte le porte scansionate, questo
                  perche` potrebbe essere abbastanza lunga</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>-d [level]</option> (Aumenta o setta il livello
                di debugging)</term>

                <listitem>
                  <para>Quando anche il verbose mode non fornisce dati a
                  sufficienza, 蠤isponibile la modalita` debugging, che
                  sommergera` l'utente di informazioni in quantita` molto
                  maggiore! Come succede per l'opzione verbosita`
                  (<option>-v</option>), il debugging 蠡ttivato da una opzione
                  di riga di comando (<option>-d</option>) e il livello di
                  debug puo essere aumentato ripetendo l'opzione diverse
                  volte. In alternativa si puo settare il debug level dando
                  come argomento di <option>-d</option> un numero. Ad esempio,
                  <option>-d9</option> setta il livello a nove. Questo e` il
                  livello piu` alto e produrra` migliaia di linee a meno che
                  non si stia facendo uno scan molto semplice con pochi target
                  e poche porte.</para>

                  <para>L'output di debugging è utile quando si sospetta un
                  bug in Nmap, oppure se si rimane confusi su cosa stia
                  facendo Nmap e perche`. Siccome questa feature 蠳tata pensata
                  principalmente per gli sviluppatori, le linee di debug non
                  sono granche` autoesplicative. Si potrebbe incontrare
                  qualcosa tipo: <computeroutput moreinfo="none">Timeout vals:
                  srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==&gt; srtt:
                  14987 rttvar: 14987 to: 100000</computeroutput>. Se non si
                  capisce una linea, quello che si puo fare 躠ignorarla,
                  guardarla nel codice sorgente, o richiedere aiuto alla lista
                  di sviluppo (nmap-dev). Alcune linee si spiegano bene da
                  se`, ma i messaggi divengono sempre piu` oscuri man mano che
                  il livello di debugging sale.</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>--packet_trace</option> (Traccia i pacchetti e i
                dati mandati e ricevuti)</term>

                <listitem>
                  <para>Fa in modo che Nmap stampi un riassunto di ogni
                  pacchetto mandato o ricevuto. Questo si usa spesso per il
                  debugging, ma 蠡nche un modo valido per gli utenti novizi per
                  capire esattamente cosa stia facendo Nmap dietro le quinte.
                  Per evitare che stampi migliaia di linee, si dovrebbe
                  specificare una lista limitata di porte da controllare, come
                  <option>-p20-30</option>. Se importa soltanto vedere come
                  stia procedendo il version detection si puo usare
                  <option>--version_trace</option> .</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term><option>--iflist</option> (Lista interfacce e
                instradamenti)</term>

                <listitem>
                  <para>Stampa la lista delle interfacce e degli instradamenti
                  di sistema rilevati da Nmap. Questo 蠵tile per risolvere i
                  problemi di routing e cattive caratterizzazioni delle
                  interfacce (ad esempio quando Nmap scambia una connessione
                  PPP per Ethernet).</para>
                </listitem>
              </varlistentry>

<varlistentry>
        <term>
          <option>--log-errors</option> (Effettua il log degli errori e degli avvertimenti ("warnings") nel file di output)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--log-errors</primary></indexterm>
	  <para>Gli avvertimenti ("warnings") e gli errori mostrati da Nmap in genere vanno allo standard output (schermo) nella modalita` interattiva, lasciando cosi` "puliti" i file di output normali. Tuttavia nel caso in cui si voglia vedere questi messaggi nel normale file di output specificato e` necessario specificare quest'opzione. Essa e` utile quando non si ha la possibilita` di guardare l'output interattivo e quando si sta cercando di effettuare il debug di un problema; i messaggi appariranno comunque sullo schermo come se si fosse in modalita` interattiva. Quest'opzione non funzionera` per la maggior parte degli errori dovuti all'uso di opzioni in maniera errata sulla linea di comando, poiche` probabilmente Nmap non avra` ancora inizializzato i file nei quali dovra` andare a scrivere. Inoltre alcuni errori e warning di Nmap usano un sistema di notifica che non supporta ancora quest'opzione. Un'alternativa all'uso di <option>--log-errors</option> e` quella di ridirigere l'output interattivo (e lo standard error) in un file. Nonostante quest'approccio sia facile in ambiente Unix, puo` risultare difficile in Windows.</para>
        </listitem>
      </varlistentry>
	      
	</variablelist>


<variablelist><title>Altre opzioni di output</title>

      <varlistentry>
        <term>
          <option>--append-output</option> (Accoda anziche` sovrascrivere i file di output)
        </term>
        <listitem>
           <indexterm significance="normal"><primary>--append-output</primary></indexterm>
	   <para>Quando si specifica un nome di file mediante un parametro di output come <option>-oX</option> o <option>-oN</option>, questo file viene sovrascritto di default. Se si preferisce mantenere il contenuto del file e aggiungerci i nuovi risultati, si deve usare l'opzione <option>--append-output</option>. Tutti i file di output specificati in quell'istanza di Nmap verranno usati in APPEND mode anziche` essere sovrascritti. Quest'opzione non e` di grande aiuto (e non funziona molto bene) nel caso di output in formato XML (<option>-oX</option>), poiche` il parsing del file risultante non sara` corretto fino a quando non si controllera` il file manualmente.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--resume &lt;filename&gt;</option> (Riprendi una scansione interrotta)
        </term>
        <listitem>

          <indexterm significance="normal"><primary>--resume</primary></indexterm>
	  <para>Alcune esecuzioni di Nmap possono richiedere molto tempo - dell'ordine di giorni. Tali scansioni non arrivano sempre alla fine; alcune restrizioni possono impedire a Nmap di funzionare durante le ore del giorno, la rete puo` diventare irraggiungibile, la macchina sulla quale Nmap sta girando puo` subire un riavvio pianificato o improvviso, o Nmap stesso puo` andare in crash. L'amministratore che sta usando Nmap puo` interromperlo per qualsiasi ragione, premento <keycap moreinfo="none">ctrl-C</keycap>. Ricominciare l'intera scansione dall'inizio puo` diventare fastidioso. Fortunatamente se sono rimasti i log in formato "normal" (<option>-oN</option>) o "grepable" (<option>-oG</option>), l'utente puo` richiedere a Nmap di ricominciare la scansione dall'host sul quale stava lavorando quando l'esecuzione e` stata interrotta. Semplicemente basta specificare l'opzione <option>--resume</option> e passargli il file di output in formato normal/grepable come argomento. Non e` permesso nessun altro argomento, poiche` Nmap fara` il parsing del file di output per usare le stesse opzioni specificate in precedenza. E` quindi sufficiente invocare Nmap come <command moreinfo="none">nmap --resume <replaceable>logfilename</replaceable></command>. Nmap aggiungera` i nuovi risultati ai files specificiati nell'esecuzione precedente. La ripresa di un'esecuzione
	  non supporta il formato di output XML poiche` sarebbe troppo difficile combinare le due esecuzioni in un unico file XML valido.
	  </para>
	  
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--stylesheet &lt;path or URL&gt;</option> (Imposta il foglio di stile XSL per trasformare l'output XML)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--stylesheet</primary></indexterm>
	  <para>Nmap viene fornito con un foglio di stile XSL chiamato <filename moreinfo="none">nmap.xsl</filename> per vedere o tradurre l'output XML in HTML. L'output XML include una direttiva <literal moreinfo="none">xml-stylesheet</literal> che punta al file <filename moreinfo="none">nmap.xml</filename> dove e` stato installato Nmap la prima volta (o nella directory corrente nel caso di Windows). Basta semplicemente caricare l'output XML in un browser recente e dovrebbe automaticamente prelevare <filename moreinfo="none">nmap.xsl</filename> dal filesystem e usarlo per effettuare il rendering dei risultati. Se si volesse usare 
	  un foglio di stile diverso, va specificato mediantel'opzione <option>--stylesheet</option>. Il file va indicato con il PATH completo o l'URL. Un esempio di invocazione di Nmap con quest'opzione e` <option>--stylesheet http://www.insecure.org/nmap/data/nmap.xsl</option>. Questo indica al browser di caricare l'ultima versione del foglio di stile da Insecure.org. L'opzione <option>--webxml</option> fa la stessa cosa ma richiede meno digitazioni e meno cose da ricordare. 
	  Caricando l'XSL da Insecure.org rende piu` semplice visualizzare i risultati su una macchina che non ha Nmap (e quindi il file <filename moreinfo="none">nmap.xsl</filename> installato). Quindi l'URL e` spesso una scelta migliore, ma di default viene usato il file dal filesystem locale per ragioni di privacy.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--webxml</option> (Carica il foglio di stile da Insecure.org)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--webxml</primary></indexterm>
          <para>Quest'opzione e` semplicemente una comodita` per l'opzione
          <option>--stylesheet http://www.insecure.org/nmap/data/nmap.xsl</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
	  <option>--no_stylesheet</option> (Non specificare la dichiarazione del foglio di stile XSL dal file XML)
        </term>
        <listitem>
          <indexterm significance="normal"><primary>--no_stylesheet</primary></indexterm>
	  <para>Quest'opzione va specificata quando non si vuole che Nmap associ un qualsiasi foglio di stile XSL con il proprio output XML. La direttiva 
              <literal moreinfo="none">xml-stylesheet</literal>  viene omessa.</para>
        </listitem>
      </varlistentry>



    </variablelist>



	
	</refsect1>

            <refsect1 id="man-misc-options">
              <title>Opzioni Miscellanee</title>

              <para>Questa sezione descrive alcune opzioni importanti e altre
              meno importanti che non hanno trovato posto in altre
              sezioni.</para>

              <variablelist>
                <varlistentry>
                  <term><option>-6</option> (Abilita scanning IPv6)</term>

                  <listitem>
                    <para>Fin dal 2002, Nmap offre supporto IPv6 per le sue
                    funzioni piu` comuni. In particolare le funzioni ping
                    scanning (soltanto TCP), connect() scanning, e rivelazione
                    di versione, supportano tutte IPv6. La sintassi dei
                    comandi e` la stessa di sempre, ad eccezione dell'aggiunta
                    dell' opzione <option>-6</option>. Ovviamente si dovra`
                    utilizzare la sintassi IPv6 se si vuole specificare un
                    indirizzo anziche` un hostname. Un indirizzo sara`
                    qualcosa del tipo 3ffe:7501:4819:2000:210:f3ff:fe03:14d0,
                    ne consegue che e` raccomandato l' uso degli hostname. l'
                    output ha il solito aspetto, l' unica differenza e` l'
                    indirizzo IPv6 sulla linea delle "interesting
                    ports".</para>

                    <para>Anche se IPv6 non ha esattamente preso il
                    sopravvento sul mondo, trova un uso piu` significativo in
                    alcuni Paesi (tipicamente Asiatici) e supporto nella
                    maggior parte dei moderni sistemi operativi. Per usare
                    Nmap in IPv6, sia l'obiettivo che la sorgente dello scan
                    devono essere configurate per IPv6. Se il proprio l'ISP
                    (come la maggior parte di questi) non alloca indirizzi
                    IPv6, c'e` una vasta disponibilita` di tunnel broker
                    gratuiti e funzionano bene con Nmap. Uno dei migliori e`
                    fornito da BT Exact. Ne ho anche usato uno fornito da
                    Hurricane Electric. Un altro approccio comune sono i
                    tunnel 6to4.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>-A</option> (Opzioni di scan
                  aggressive)</term>

                  <listitem>
                    <para>Questa opzione abilita opzioni addizionali avanzate
                    e aggressive. Non ho deciso ancora esattamente che opzioni
                    debba racchiudere. Al momento questa opzione attiva la Os
                    Detection ( <option>-O</option>) e la version scanning (
                    <option>-sV</option>). Ulteriori caratteristiche verranno
                    aggiunte in futuro. Il punto e` attivare un completo set
                    di opzioni di scan senza che ci sia il bisogno di
                    ricordarsi una lunga serie di flags. Questa opzione attiva
                    solo delle modalita` di funzionamento, ma non le opzioni
                    di timing (come <option>-T4</option>), ne` di verbosity (
                    <option>-v</option>) che potresti comunque volere.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>--datadir &lt;nomedirectory&gt;
                  </option>(Specifica una locazione personalizzata per i data
                  files di Nmap)</term>

                  <listitem>
                    <para>Nmap ottiene alcuni dati speciali in runtime dai
                    files chiamati <filename
                    moreinfo="none">nmap-service-probes</filename>, <filename
                    moreinfo="none">nmap-services</filename>, <filename
                    moreinfo="none">nmap-protocols</filename>, <filename
                    moreinfo="none">nmap-rpc</filename>, <filename
                    moreinfo="none">nmap-mac-prefixes</filename>, and
                    <filename moreinfo="none">
                    nmap-os-fingerprints</filename>. Nmap dapprima cerca
                    questi files nella directory specificata con l'opzione
                    <option>--datadir</option> (qualora specificata).
                    Qualunque file non trovato in questa locazione, verra`
                    cercato nella directory specificata nella variabile
                    d'ambiente NMAPDIR. Segue poi ~/.nmap per le vere e
                    proprie UIDs (valido solo per i sistemi POSIX) o la
                    locazione corrente dell'eseguibile (solo per Win32), e
                    infine le locazioni precompilate come
                    /usr/local/share/nmap o /usr/share/nmap. Come ultima
                    risorsa, Nmap controllera` nella directory
                    corrente.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>--send_eth </option>(Trasmissione su trame
                  ethernet (raw ethernet))</term>

                  <listitem>
                    <para>Chiede a Nmap di mandare pacchetti al livello
                    ethernet (data link) piuttosto che al livello piu` alto IP
                    (network). Di default Nmap sceglie quello che generalmente
                    migliore per la piattaforma in cui sta venendo eseguito. I
                    raw sockets (livello IP) sono generalmente i piu`
                    efficienti per le macchine UNIX, mentre invece son
                    richieste trame ethernet per funzionare con Windows dal
                    momento che Microsoft ha disabilitato il supporto per i
                    raw socket. Nmap usa invece continua a usare i pacchetti
                    raw sulle UNIX non ostante si specifichi questa opzione
                    quando non c'e` alternativa (ad esempio se si ha una
                    connessione non ethernet)</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>--send_ip</option> (Trasmissione su raw socket
                  a livello IP)</term>

                  <listitem>
                    <para>Chiede a Nmap di mandare pacchetti via raw socket
                    IP, piuttosto che mandare trame al livello inferiore,
                    ethernet. E' l'opzione complementare di
                    <option>--send-eth</option>discussa
                    precedentemente.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>--privileged</option> (Assumi che l'utente
                  abbia tutti i privilegi)</term>

                  <listitem>
                    <para>Dice semplicemente a Nmap di assumere che l'utente
                    abbia privilegi sufficienti per effettuare trasmissioni
                    sui raw socket, fare packet sniffing, e operazioni simili
                    che di norma hanno bisogno dei privilegi di root sui
                    sistemi UNIX. Di default Nmap termina l'esecuzione se si
                    tentano di usare certe operazioni e geteuid() non e` zero.
                    <option>--privileged</option> e` utile con delle
                    funzionalita` del kernel Linux e di altri sistemi
                    operativi che possono essere configurati per permettere ad
                    utenti non privilegiati di fare degli scan con i raw
                    socket. Bisogna assicurarsi di posizionare questa opzione
                    prima di qualunque flag che invochi
                    funzionalit࠰rivilegiate (SYN scan, OS detection, etc.). La
                    variabile d'ambiente NMAP_PRIVILEGED puo` comunque essere
                    settata e rappresenta un' equivalente alternativa
                    all'opzione <option>--privileged</option>.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>--interactive </option>(Avvia in modalita
                  interattiva)</term>

                  <listitem>
                    <para>Avvia Nmap in modalita` interattiva, la quale offre
                    un prompt interattivo di Nmap che permette di lanciare
                    facilmente scan multipli (sia sincroni che in background).
                    Questo e` utile per chi effettua scan da sistemi
                    multi-utente, che spesso vogliono testare la loro
                    sicurezza senza permettere agli altri utenti di sistema di
                    sapere quali sistemi stanno controllando. Una volta
                    avviato con l'opzione <option>--interactive</option>, si
                    prema <keycap moreinfo="none">h</keycap>per visualizzare
                    l'aiuto. Questa opzione e` usata di rado perche`, di
                    norma, si ha piu` familiarita` con i comandi da shell che
                    sono tra l'altro anche piu` completi di funzionalita`.
                    Questa modalita` include l'operatore punto esclamativo(!)
                    per eseguire comandi della shell, una delle ragioni per
                    non installare Nmap con setuid root.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>-V</option>; <option>--version</option>
                  (Stampa il numero di versione)</term>

                  <listitem>
                    <para>Stampa a video il numero di versione di Nmap ed
                    esce.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><option>-h</option>; <option>--help</option> (Stampa
                  un aiuto sintetico ed esce)</term>

                  <listitem>
                    <para>Stampa a video una breve schermata di aiuto con le
                    opzioni piu` comuni. Eseguire Nmap senza argomenti fa la
                    stessa cosa.</para>
                  </listitem>
                </varlistentry>
              </variablelist>
            </refsect1>




<refsect1 id="man-runtime-interaction">
    <title>Interazione in runtime</title>
 
    <indexterm significance="normal"><primary>interazione in runtime (a tempo di esecuzione)</primary></indexterm>
    <para>Durante l'esecuzione di Nmap qualsiasi tasto venga premuto viene registrato. Questo permette di interagire con il programma senza doverlo interrompere e farlo ripartire. Alcuni tasti particolari possono cambiare opzioni, mentre altri stampano un messaggio di stato sulla scansione in corso. La convenzione e` che <emphasis>lettere minuscole aumentano</emphasis> la quantita` di messaggi stampati, mentre <emphasis> lettere maiuscole </emphasis> diminuiscono questi messaggi. E` inoltre possibile premdere <emphasis>?</emphasis> per avere un aiuto. </para>
    <variablelist>
      <varlistentry>
        <term>
          <option>v</option> / <option>V</option>
        </term>
        <listitem>
	  <para>Aumenta / diminuisce la quantita` di informazioni</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>d</option> / <option>D</option>
        </term>
        <listitem>
	  <para>Aumenta / diminuisce il livello di debug</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>p</option> / <option>P</option>
        </term>
        <listitem>
	  <para>Attiva / disattiva il tracing dei pacchetti</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>?</option>
        </term>
        <listitem>
          <para>Print a runtime interaction help screen</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          Qualsiasi altro tasto
        </term>
        <listitem>
	  <para>Stampa un messaggio di stato come il seguente:</para>
          <para>Stats: 0:00:08 elapsed; 111 hosts completed (5 up),
          5 undergoing Service Scan</para>
          <para>Service scan Timing: About 28.00% done; ETC: 16:18
          (0:00:15 remaining)</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>



            <refsect1 id="man-examples">
              <title>Esempi</title>

              <para>Ecco alcuni esempi di uso di Nmap, dal piu` semplice e
              routinario al piu` complesso ed esoterico. Saranno usati alcuni
              indirizzi IP e hostname reali per rendere le cose piu` concrete.
              Si dovranno solo sostituire nei posti giusti gli indirizzi e
              hostname della <emphasis>tua rete</emphasis>. Non ostante io sia
              convinto che il port scanning delle reti altrui non debba essere
              illegale, alcuni amministratori di rete potrebbero non
              apprezzare uno scanning non richiesto sulle loro reti e
              potrebbero lamentarsi. Ottenere prima un permesso e` l'approccio
              migliore.</para>

              <para>Per motivi di test, e` concesso il permesso di effettuare
              uno scan verso <literal
              moreinfo="none">scanme.nmap.org</literal>. Questo permesso
              include esclusivamente lo scan attraverso Nmap e non il test di
              exploits o attacchi denial of service. Per preservare al banda,
              non attivate piu` di una dozzina di scan verso questo host al
              giorno. Qualora si abusasse di questo servizio, questo verra`
              disattivato e Nmap riportera` il seguente errore:
              <computeroutput moreinfo="none">Failed to resolve given
              hostname/IP: scanme.nmap.org</computeroutput>. Questi permessi
              si applichino agli host <literal
              moreinfo="none">scanme2.nmap.org</literal>, <literal
              moreinfo="none">scanme3.nmap.org</literal>, e cosi` via, finche`
              ne esisteranno.</para>

              <para>
                <userinput moreinfo="none">nmap -v scanme.nmap.org</userinput>
              </para>

              <para>Questa opzione esegue uno scan su tutte le porte TCP
              riservate sulla macchina <literal
              moreinfo="none">scanme.nmap.org</literal>. L'opzione
              <option>-v</option> attiva la modalita` "verbose" (visualizza
              informazioni piu` dettagliate sulle operazioni in corso).</para>

              <para>
                <userinput moreinfo="none">nmap -sS -O
                scanme.nmap.org/24</userinput>
              </para>

              <para>Lancia un SYN scan invisibile verso ciascuna macchina che
              risulta accesa tra le 255 nell'intera "classe C" in cui risiede
              Scanme. Inoltre tenta di derminare il sistema operativo
              installato su ogni host trovato. Questo richiede i privilegi di
              root a causa della funzione di SYN scan e OS detection.</para>

              <para>
                <userinput moreinfo="none">nmap -sV -p 22,53,110,143,4564
                198.116.0-255.1-127</userinput>
              </para>

              <para>Lancia una enumerazione di hosts e uno scan TCP alla prima
              meta` di ognuna delle 255 sottoreti di 8 bit all'interno dello
              spazio di indirizzamento della classe B 198.116. Questa
              operazione controlla se tali sistemi stanno eseguendo i servizi
              sshd, DNS, pop3d, imapd, o sulla porta 4564. Qualora qualche
              porta di queste venga trovata aperta, verra` utilizzato il
              "version detection" per determinare quale applicazione stia
              effettivamente ascoltando su quella porta.</para>

              <para>
                <userinput moreinfo="none">nmap -v -iR 100000 -P0 -p
                80</userinput>
              </para>

              <para>Chiede a Nmap di scegliere 100.000 hosts casuali ed
              effettuare su questi uno scan per ricercare dei web servers
              (porta 80). L'enumerazione degli host e` disabilitata con
              l'opzione <option>-P0</option> dal momento che verificare se un
              host e` attivo e` uno spreco quando si sta analizzando soltanto
              una porta per ogni hosts.</para>

              <para>
                <userinput moreinfo="none">nmap -P0 -p80 -oX
                logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap
                216.163.128.20/20</userinput>
              </para>

              <para>Questo scansiona 4096 indirizzi IP in cerca di webservers
              (ma senza effettuare ping) e salva l'output sia in formato XML
              che in formato "greppabile".</para>

            </refsect1>

            <refsect1 id="man-bugs">
              <title>Bugs</title>

              <para>Al pari del suo autore, Nmap non e` perfetto. Ma puoi
              fare qualcosa per aiutare a renderlo migliore mandando delle
              segnalazioni di bug o addirittura scrivendo delle patch. Se Nmap
              non si dovesse comportare come ti aspetteresti, prova prima
              l'ultima versione disponibile. Se il problema persiste effetua
              qualche ricerca per determinare se il problema e` stato gia`
              scoperto e segnalato. Prova a cercare so Google riguardo al
              messaggio di errore o sfogliare l'archivio Nmap-dev. Leggi
              inoltre tutta questa pagina di manuale. Se nulla di questo
              riguarda il tuo caso, manda una segnalazione di bug a
              <email>nmap-dev@insecure.org</email>. Accertati di includere
              ogni cosa che sei riuscito a sapere sul problema, la versione di
              Nmap che stai usando e su quale sistema operativo la stai
              usando. Segnalazioni di problemi ed eventuali domande sull'uso
              di Nmap inviate a nmap-dev@insecure.org hanno piu` probabilita
              di avere risposta di quelle inviate a Fyodor
              direttamente.</para>

              <para>Le patch che risolvono i bugs sono molto meglio di una
              segnalazione. Le istruzioni di base per creare delle patch a
              partire dai propri files sono disponibili sul sito. Le patch
              potranno essere inviate a nmap-dev (raccomandato) oppure
              direttamente a Fyodor.</para>
            </refsect1>

            <refsect1 id="man-author">
              <title>Autore</title>

              <para>Fyodor <email>fyodor@insecure.org</email>( <ulink
              url="http://www.insecure.org" />)</para>

              <title>Traduzione</title>

              <para>Parte 1/2 e revisione: Lorenzo G.
              <email>lorenzo.grespan@gmail.com</email></para>

              <para>Parte 2/2: Simone Scarduzio
              <email>scarduzio@gmail.com</email></para>

              <para>Centinaia di persone hanno dato validi contributi a Nmap
              nel corso degli anni. Questi sono elencati dettagliatamente nel
              file di CHANGELOG che e` distribuito assieme a nmap ed e` anche
              disponibile dal sito.</para>
            </refsect1>

            <refsect1 id="man-legal">
              <title>Legal Notices</title>

              <refsect2>
                <title>Copyright and Licensing</title>

                <para>Nmap Security Scanner e` (C) 1996-2005 Insecure.Com LLC.
                Nmap e` inoltre un marchio registrato di Insecure.Com LLC.
                Questo programma e` free softwaree, e` liberamente
                redistribuibile e/o modificabile in accordo con i termini
                della GNU General Public License come pubblicata dalla Free
                Software Foundation; Versione 2. Questo garantisce il diritto
                utilizzazare, modificare, e redistribuire questo software
                entro certe condizioni. Se si desidera incorporare la
                tecnologia Nmap in software proprietari, potremmo essere
                disponibili a vendere licenze alternative (contattare
                <email>sales@insecure.com</email>). Molti produttori di
                security scanner usano gia` le tecnologie Nmap come per
                esempio la "host discovery", "port scanning", "OS detection",
                e "service/version detection".</para>

                <para>Si noti che la licenza GPL implica importanti vincoli
                sui "progetti derivati", sebbene essa non fornisca una precisa
                definizione di questi. Allo scopo di evitare malintesi,
                consideriamo una aplicazione "progetto derivato" inteso ai
                fini di questa licenza se presenta almeno una di queste
                caratteristiche:</para>

                <itemizedlist>
                  <listitem>
                    <para>Integra codice sorgente di Nmap</para>
                  </listitem>

                  <listitem>
                    <para>Legge o include data files protetti da copyright di
                    Nmap, quali<filename moreinfo="none">
                    nmap-os-fingerprints</filename> o <filename
                    moreinfo="none"> nmap-service-probes</filename>.</para>
                  </listitem>

                  <listitem>
                    <para>Esegue Nmap e ne utilizza i risultati (al contrario
                    dell'uso tipico attraverso shell o esecuzione da menu
                    delle applicazioni che mostra semplicemente l'output
                    diretto di Nmap, e quindi non si considerano "progetti
                    derivati").</para>
                  </listitem>

                  <listitem>
                    <para>Integra/include/aggrega Nmap in un eseguibile di
                    installazione proprietario, come ad esempio quelli
                    prodotti da InstallShield.</para>
                  </listitem>

                  <listitem>
                    <para>E' collegato a una libreria o esegue un programma
                    che presenta una delle caratteristiche sopracitate.</para>
                  </listitem>
                </itemizedlist>

                <para>Il termine "Nmap" dovrebbe essere inteso come inclusivo
                di ogni porzione o progetto derivato di Nmap. Questa lista non
                e` esclusiva, ma e` concepita per chiarificare la nostra
                interpretazione di "progetto derivato" con alcuni esempi
                comuni. Queste restrizioni si applicano unicamente qualora si
                redistribuisse Nmap. Per esempio nulla impedisce di scrivere e
                rivendere un front-end proprietario a Nmap. E' sufficiente che
                venga distribuito da solo, e si indichi agli utenti di
                scaricare Nmap.</para>

                <para>Non consideriamo queste restrizioni come additive alla
                GPL, ma delle semplici chiarificazioni riguardo al modo in cui
                interpretiamo il concetto di "progetto derivato" come va ad
                applicarsi al nostro prodotto Nmap, licenziato sotto GPL. E'
                qualcosa di simile cio` che Linus Torvalds ha detto di
                intendere i "progetti derivati" a proposito dei moduli del
                kernel Linux. La nostra interpretazione si riferisce solo a
                Nmap - non ci pronunciamo per nessun altro prodotto
                GPL.</para>

                <para>Se avete domande a proposito delle limitazioni imposte
                dalla licenza GPL riguardo all'uso di Nmap in progetti non
                -GPL, saremo felici di aiutarvi. Come detto pocanzi, offriamo
                anche licenze alternative per l'integrazione di Nmap in
                applicazioni o dispisitivi proprietari. Questi contratti sono
                stati venduti a molti rivenditori di software e generalmente
                includono una licenza di durata illimitata, supporto tecnico
                prioritario e aggiornamenti, come anche l'aiuto con la
                contribuzione allo sviluppo della tecnologia Nmap. Per
                ulteriori informazioni manda una email a
                <email>sales@insecure.com</email>.</para>

                <para>Come eccezione ai termini della GPL, Insecure.Com LLC
                garantisce il permesso di collegare il codice di questo
                programma con qualunque versione della libreria OpenSSL che e`
                distribuita sotto licenza identica a quella che si trova nel
                file Copying.OpenSSL file, e inoltre di redistribuire
                combinazioni collegate che includono entrambi. Persiste
                l'obbligo di aderenza alla GPL in tutte le sue voci per tutto
                il codice usato non appartenente a OpenSSL. Se si modifica
                questo file, si puo estendere questa eccezione, ma non si e`
                obbligati a farlo.</para>

                <para>Se si riceve questo file con accordo di licenza scritto,
                o un contratto che afferma termini diversi da quelli appena
                descritti, allora tale accordo di licenza ha la precedenza su
                questi appunti.</para>
              </refsect2>

              <refsect2>
                <title>Disponibilita` del codice sorgente e contribuzioni
                della comunita`</title>

                <para>Il codice sorgente di questo software viene fornito
                perche` crediamo che gli utenti abbiano il diritto di sapere
                esattamente cosa questo programma potra` fare prima di
                eseguirlo. Questo permette inoltre di scoprire falle di
                sicurezza (non ne e` mai stata trovata nessuna fino ad
                oggi).</para>

                <para>Il codice sorgente permette anche di rendere Nmap
                portabile a nuove architetture, correggere i bugs e aggiungere
                nuove funzioni. Si e` molto incoraggiati a mandare le proprie
                modifiche a <email>fyodor@insecure.org</email> per possibili
                inclusioni nella distribuzione principale. Mandando le
                modifiche a Fyodor o altri della mailing list di Insecure.Org,
                si assume che si sta offrendo a Fyodor e Insecure.Com LLC il
                diritto illimitato, non-esclusivo di riutilizzo, modifica e
                ri-licenziamento del codice. Nmap sara` sempre disponibile
                sotto Open Source, questo e` di vitale importanza perche`
                l'impossibilita` di ri-licenziare il codice ha causato
                problemi devastanti per altri progetti Open Source (come KDE o
                NASM). Occasionalmente noi rilicenziamo il codice per terze
                parti come detto sopra. Se si vuole specificare una condizione
                di licenza speciale delle proprie contribuzioni, e`
                sufficiente dirlo nel momento dell'invio.</para>
              </refsect2>

              <refsect2>
                <title>Nessuna Garanzia</title>

                <para>Questo programma e` distribuito nella speranza che possa
                essere utile, ma SENZA NESSUNA GARANZIA; senza garanzia di
                RIVENDIBILITA' ne` di APPLICABILITA' PER SCOPI PARTICOLARI.
                Fare riferimento alla GNU General Publig License per ulteriori
                dettagli, al sito oppure nel file COPYING incluso nel
                pacchetto Nmap.</para>

                <para>Si noti anche che Nmap e` stato occasionalmente noto per
                far andare in crash applicazioni scritte male, gli stack
                TCP/IP, ma anche sistemi operativi. Anche se si tratta di una
                evenienza estremamente rara, e` importante da tenere a mente.
                Nmap non dovrebbe mai essere lanciato contro sistemi "mission
                critical" a meno che non si sia preparati ad affrontare un
                downtime.Confermiamo che Nmap puo far andare in crash alcuni
                sistemi e reti, e disconosciamo ogni responsabilita` di danni
                o problemi che Nmap possa causare.</para>
              </refsect2>

              <refsect2>
                <title>Uso Inappropriato</title>

                <para>Dato il possibile rischio di crash e che ad alcuni black
                hats piace usare Nmap come ricognizione prima di attaccare un
                sistema, ci sono amministratori a cui non fa piacere che si
                eseguano scan sul proprio sistema, e potrebbero lamentarsi. E'
                quindi consigliabile richiedere un permesso prima di fare
                anche un leggero scan di una rete.</para>

                <para>Nmap non dovrebbe mai essere installato con privilegi
                speciali (ad esempio suid root) per ragioni di
                sicurezza.</para>
              </refsect2>

              <refsect2>
                <title>Software di terze parti</title>

                <para>Questo prodotto include software sviluppato da <ulink
                url="http://www.apache.org">Apache Software
                Foundation</ulink>. Una versione modificata di <ulink
                url="http://www.tcpdump.org">Libpcap portable packet capture
                library</ulink> e` distribuita assieme a Nmap. La versione per
                Windows di Nmap utilizza invece un derivato di libcap, <ulink
                url="http://www.winpcap.org">WinPcap library</ulink>. Il
                supporto per le Regular espressions e` garantito dalla
                libreria <ulink url="http://www.pcre.org">PCRE
                library</ulink>, che e` open source, scritta da Philip Hazel.
                Alcune funzioni di raw networking usano la <ulink
                url="http://libdnet.sourceforge.net"> Libdnet</ulink> library,
                che e` stata scritta da Dug Song. Con Nmap e` distribuita una
                versione modificata. Nmap puo opzionalmente collegarsi con l'
                <ulink url="http://www.openssl.org">OpenSSL cryptography
                toolkit </ulink> per supportare il riconoscimento della
                versione di SSL. Tutto il software di terze parti descritto in
                questo paragrafo e` liberamente redistribuibile sotto licenza
                stile BSD.</para>
              </refsect2>

              <refsect2 id="us-export">
                <title>Classificazione in base alle regole di controllo di
                esportazione USA</title>

                <para>Regole di controllo di esportazione USA: Insecure.Com
                LLC sostiene che Nmap ricada sotto il codice di
                classificazione di controllo delle esportazioni (ECCN) numero
                5D992. Questa categoria e` chiamata <quote>Information
                Security software not controlled by 5D002</quote> ( Software
                di sicurezza dell'informazione non controllato da 5D002). La
                sola restrizione di questa classificazione e` la AT (anti
                terrorismo), che si applica alla massima parte dei beni e
                vieta l'esportazione a una manciata di nazioni diffidate come
                Iran e Korea del Nord. Nmap quindi non richiede licenze
                speciali, permessi o altre autorizzazioni governative.</para>
              </refsect2>
            </refsect1>
  </refentry>
</article>




