summaryrefslogtreecommitdiffstats
path: root/docs/man-xlate/nmap-man-it.xml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/man-xlate/nmap-man-it.xml4858
1 files changed, 4858 insertions, 0 deletions
diff --git a/docs/man-xlate/nmap-man-it.xml b/docs/man-xlate/nmap-man-it.xml
new file mode 100644
index 0000000..894203e
--- /dev/null
+++ b/docs/man-xlate/nmap-man-it.xml
@@ -0,0 +1,4858 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<article id="man" lang="it">
+ <artheader>
+ <title>Guida di riferimento di Nmap (pagina del manuale)</title>
+ </artheader>
+
+ <refentry id="man-nmap1">
+ <refmeta>
+ <refentrytitle>nmap</refentrytitle>
+
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="source">Nmap</refmiscinfo>
+ <refmiscinfo class="manual">Guida di riferimento di Nmap</refmiscinfo>
+ </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>Obiettivo</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id="man-description">
+ <title>Descrizione</title>
+ <web>
+ <note><para>
+ Questo documento descrive la versione di Nmap 6.47. L'ultima
+ documentazione è disponibile in inglese all'indirizzo
+ <ulink url="https://nmap.org/book/man.html" />.</para></note>
+ </web>
+
+ <para>Nmap (<quote>Network Mapper</quote>) è uno strumento open-source
+ per la network exploration e l'auditing. È stato progettato per
+ scansionare rapidamente reti di grandi dimensioni, ma è indicato anche
+ per l'utilizzo verso singoli host. Nmap usa pacchetti IP "raw" (grezzi,
+ non formattati) in varie modalità 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) è 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 attività
+ 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 è un elenco di obiettivi scansionati, con
+ informazioni supplementari per ognuno a seconda delle opzioni usate. Tra
+ queste informazioni è 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 può 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 è sulla macchina obiettivo 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 è 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 può determinare
+ quale dei due stati descrive una porta. La tabella delle porte può
+ anche includere dettagli quali le versioni dei software disponibili se
+ è stata usata l'opzione appropriata. Quando viene richiesta una
+ scansione IP (<option>-sO</option>), Nmap fornisce informazioni sui
+ protocolli IP supportati anziché sulle porte in ascolto.</para>
+
+ <para>In aggiunta alla tabella delle porte notevoli, Nmap può fornire
+ ulteriori informazioni sugli obiettivi 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 è mostrata su <xref
+ linkend="man-ex-repscan" />. Le uniche opzioni usate di Nmap in questo
+ esempio sono <option>-A</option>, per abilitare la rilevazione del
+ sistema operativo e della versione, lo script scanning e il traceroute,
+ <option>-T4</option> per un'esecuzione più rapida e infine l'host
+ obiettivo.</para>
+
+ <example id="man-ex-repscan">
+ <title>Una scansione di esempio</title>
+
+ <screen>
+# nmap -A -T4 scanme.nmap.org
+
+Nmap scan report for scanme.nmap.org (74.207.244.221)
+Host is up (0.029s latency).
+rDNS record for 74.207.244.221: li86-221.members.linode.com
+Not shown: 995 closed ports
+PORT STATE SERVICE VERSION
+22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
+| ssh-hostkey: 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)
+|_2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)
+80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
+|_http-title: Go ahead and ScanMe!
+646/tcp filtered ldp
+1720/tcp filtered H.323/Q.931
+9929/tcp open nping-echo Nping echo
+Device type: general purpose
+Running: Linux 2.6.X
+OS CPE: cpe:/o:linux:linux_kernel:2.6.39
+OS details: Linux 2.6.39
+Network Distance: 11 hops
+Service Info: OS: Linux; CPE: cpe:/o:linux:kernel
+
+TRACEROUTE (using port 53/tcp)
+HOP RTT ADDRESS
+[Cut first 10 hops for brevity]
+11 17.65 ms li86-221.members.linode.com (74.207.244.221)
+
+Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds
+</screen>
+ </example>
+
+ <para>L'ultima versione di Nmap si può ottenere dal sito <ulink
+ url="https://nmap.org" />. L'ultima versione di questa pagina del manuale
+ è disponibile al sito <ulink url="https://nmap.org/book/man.html" />. È
+ anche inclusa come capitolo di <quote>Nmap Network Scanning: The Official
+ Nmap Project Guide to Network Discovery and Security Scanning</quote>
+ (<ulink url="https://nmap.org/book/" />).</para>
+ </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
+ è sempre disponibile sul sito <ulink
+ url="https://svn.nmap.org/nmap/docs/nmap.usage.txt" />. È utile per
+ ricordarsi le opzioni più 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">Nmap 6.47SVN ( https://nmap.org )
+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.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
+ -sn: Ping Scan - disable port scan
+ -Pn: Treat all hosts as online -- skip host discovery
+ -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
+ -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
+ -PO[protocol list]: IP Protocol Ping
+ -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
+ --dns-servers &lt;serv1[,serv2],...&gt;: Specify custom DNS servers
+ --system-dns: Use OS's DNS resolver
+ --traceroute: Trace hop path to each host
+SCAN TECHNIQUES:
+ -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
+ -sU: UDP Scan
+ -sN/sF/sX: TCP Null, FIN, and Xmas scans
+ --scanflags &lt;flags&gt;: Customize TCP scan flags
+ -sI &lt;zombie host[:probeport]&gt;: Idle scan
+ -sY/sZ: SCTP INIT/COOKIE-ECHO scans
+ -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,S:9
+ --exclude-ports &lt;port ranges&gt;: Exclude the specified ports from scanning
+ -F: Fast mode - Scan fewer ports than the default scan
+ -r: Scan ports sequentially - don't randomize
+ --top-ports &lt;number&gt;: Scan &lt;number&gt; most common ports
+ --port-ratio &lt;ratio&gt;: Scan ports more common than &lt;ratio&gt;
+SERVICE/VERSION DETECTION:
+ -sV: Probe open ports to determine service/version info
+ --version-intensity &lt;level&gt;: Set from 0 (light) to 9 (try all probes)
+ --version-light: Limit to most likely probes (intensity 2)
+ --version-all: Try every single probe (intensity 9)
+ --version-trace: Show detailed version scan activity (for debugging)
+SCRIPT SCAN:
+ -sC: equivalent to --script=default
+ --script=&lt;Lua scripts&gt;: &lt;Lua scripts&gt; is a comma separated list of
+ directories, script-files or script-categories
+ --script-args=&lt;n1=v1,[n2=v2,...]&gt;: provide arguments to scripts
+ --script-args-file=filename: provide NSE script args in a file
+ --script-trace: Show all data sent and received
+ --script-updatedb: Update the script database.
+ --script-help=&lt;Lua scripts&gt;: Show help about scripts.
+ &lt;Lua scripts&gt; is a comma-separated list of script-files or
+ script-categories.
+OS DETECTION:
+ -O: Enable OS detection
+ --osscan-limit: Limit OS detection to promising targets
+ --osscan-guess: Guess OS more aggressively
+TIMING AND PERFORMANCE:
+ Options which take &lt;time&gt; are in seconds, or append 'ms' (milliseconds),
+ 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
+ -T&lt;0-5&gt;: Set timing template (higher is faster)
+ --min-hostgroup/max-hostgroup &lt;size&gt;: Parallel host scan group sizes
+ --min-parallelism/max-parallelism &lt;numprobes&gt;: Probe parallelization
+ --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout &lt;time&gt;: Specifies
+ probe round trip time.
+ --max-retries &lt;tries&gt;: Caps number of port scan probe retransmissions.
+ --host-timeout &lt;time&gt;: Give up on target after this long
+ --scan-delay/--max-scan-delay &lt;time&gt;: Adjust delay between probes
+ --min-rate &lt;number&gt;: Send packets no slower than &lt;number&gt; per second
+ --max-rate &lt;number&gt;: Send packets no faster than &lt;number&gt; per second
+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
+ --proxies &lt;url1,[url2],...&gt;: Relay connections through HTTP/SOCKS4 proxies
+ --data &lt;hex string&gt;: Append a custom payload to sent packets
+ --data-string &lt;string&gt;: Append a custom ASCII string to sent packets
+ --data-length &lt;num&gt;: Append random data to sent packets
+ --ip-options &lt;options&gt;: Send packets with specified ip options
+ --ttl &lt;val&gt;: Set IP time-to-live field
+ --spoof-mac &lt;mac address/prefix/vendor name&gt;: Spoof your MAC address
+ --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
+OUTPUT:
+ -oN/-oX/-oS/-oG &lt;file&gt;: Output scan 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 -vv or more for greater effect)
+ -d: Increase debugging level (use -dd or more for greater effect)
+ --reason: Display the reason a port is in a particular state
+ --open: Only show open (or possibly open) ports
+ --packet-trace: Show all packets sent and received
+ --iflist: Print host interfaces and routes (for debugging)
+ --log-errors: Log errors/warnings to the normal-format output file
+ --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
+ --webxml: Reference stylesheet from Nmap.Org for more portable XML
+ --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
+MISC:
+ -6: Enable IPv6 scanning
+ -A: Enable OS detection, version detection, script scanning, and traceroute
+ --datadir &lt;dirname&gt;: Specify custom Nmap data file location
+ --send-eth/--send-ip: Send using raw ethernet frames or IP packets
+ --privileged: Assume that the user is fully privileged
+ --unprivileged: Assume the user lacks raw socket privileges
+ -V: Print version number
+ -h: Print this help summary page.
+EXAMPLES:
+ nmap -v -A scanme.nmap.org
+ nmap -v -sn 192.168.0.0/16 10.0.0.0/8
+ nmap -v -iR 10000 -Pn -p 80
+SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
+</literallayout>
+ </para>
+ </refsect1>
+
+ <refsect1 id="man-target-specification">
+ <title>Target Specification (Specifica degli obiettivi)</title>
+
+ <para>Ogni cosa sulla linea di comando di Nmap che non è un'opzione (o
+ un argomento di un'opzione) è considerato come una specifica di un host
+ obiettivo. Il caso più semplice consiste nello specificare
+ semplicemente un indirizzo IP o un nome di host per la scansione.</para>
+
+ <para>A volte può 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 eseguirà la scansione su ogni indirizzo IP per
+ il quale i primi <replaceable>numero di bit</replaceable> sono identici a
+ quelli specificati nell'IP o nel nome di host fornito. Ad esempio,
+ 192.168.10.0/24 eseguirà 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 più piccolo valore
+ permesso è /1, che effettua la scansione su metà Internet. Il valore
+ maggiore è 32, che effettua la scansione solo sull'host o sull'IP
+ specificato poiché tutti i bit di indirizzo sono fissati.</para>
+
+ <para>La notazione CIDR è 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 perché sono usati generalmente
+ come indirizzi di broadcast. Nmap supporta questa funzione attraverso
+ l'indirizzamento per intervalli di ottetti. Anziché specificare un
+ normale indirizzo IP è possibile specificare una lista di valori o
+ intervalli di valori separati da virgola per ogni ottetto. Ad esempio,
+ 192.168.0-255.1-254 salterà tutti gli indirizzi nell'intervallo che
+ termina per .0 o .255, mentre 192.168.3-5,7.1 eseguirà la scansione dei
+ quattro indirizzi 192.168.3.1, 192.168.4.1, 192.168.5.1 e 192.168.7.1.
+ Entrambi i valori limite possono essere omessi; i valori di default sono
+ 0 a sinistra e 255 a destra. Usare - da solo equivale a 0-255, ma ricorda
+ di usare 0- nel primo ottetto così da non fare sembrare l'obiettivo
+ un'opzione sulla riga di comando. Gli intervalli non devono
+ necessariamente essere limitati agli ottetti finali: una specifica come
+ 0-255.0-255.13.37 effettuerà una scansione su tutta Internet per ogni
+ indirizzo IP che termina per 13.37. Questa tipologia di campionamento può
+ 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 ancora supportati per IPv6.</para>
+
+ <para>Gli indirizzi IPv6 con un non-global scope hanno bisogno di un ID
+ di zona come suffisso. Sui sistemi Unix, questo è rappresentato dal
+ simbolo percentuale (%) seguito dal nome di un'interfaccia; un indirizzo
+ completo potrebbe essere fe80::a8bb:ccff:fedd:eeff%eth0. Su Windows, si
+ usa l'identificativo numerico dell'interfaccia al posto del suo nome:
+ fe80::a8bb:ccff:fedd:eeff%1. Puoi vedere la lista degli identificativi
+ numerici con il comando <command
+ moreinfo="none">netsh.exe interface ipv6 show interface</command>.</para>
+
+ <para>Nmap accetta più indirizzi di obiettivi 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.-</command> fa esattamente ciò che ci si aspetta.</para>
+
+ <para>Così come gli obiettivi sono generalmente indicati sulla linea di
+ comando, anche le seguenti opzioni sono disponibili per la selezione
+ degli obiettivi:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-iL &lt;inputfilename&gt;</option> (Input from
+ list)</term>
+
+ <listitem>
+ <para>Legge gli obiettivi da
+ <replaceable>inputfilename</replaceable>. Inserire una grossa
+ lista di host è spesso scomodo sulla linea di comando, anche se
+ spesso è una necessità 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. È sufficiente generare la lista di host da
+ controllare e passarla a Nmap come argomento dell'opzione
+ <option>-iL</option>. Ogni elemento può 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 più spazi,
+ indentazioni (tabulazioni) o caratteri di a-capo. Si può usare un
+ trattino (<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>
+
+ <para>L'<replaceable>inputfilename</replaceable> può contenere
+ commenti. Ogni commento inizia con # e finisce con un carattere di
+ a-capo.</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 gli obiettivi in
+ maniera casuale. L'argomento <replaceable>num hosts</replaceable>
+ indica a Nmap quanti indirizzi IP generare. Gli indirizzi privati,
+ multicast o i pool di indirizzi non allocati vengono
+ automaticamente saltati. Si può 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 può 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&gt;[,&lt;host2&gt;[,...]]</option>
+ (Exclude hosts/networks)</term>
+
+ <listitem>
+ <para>Questa opzione specifica un elenco, separato da virgola, di
+ obiettivi da escludere dalla scansione anche se sono parte
+ dell'intervallo di rete specificato. La lista va specificata nella
+ notazione usuale di Nmap, ovvero può includere nomi di host,
+ blocchi di indirizzi specificati mediante notazione CIDR,
+ intervalli di ottetti, etc. Questo può 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 altri.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--excludefile &lt;exclude_file&gt;</option> (Exclude
+ list from file)</term>
+
+ <listitem>
+ <para>Questa opzione offre le stesse funzionalità
+ dell'opzione<option>--exclude</option>, con la differenza che gli
+ obiettivi da escludere dalla scansione sono elencate in un
+ <replaceable>exclude_file</replaceable> (separate da spazi
+ bianchi, a-capo o tabulazioni) anziché sulla linea di
+ comando.</para>
+
+ <para>L'<replaceable>exclude_file</replaceable> può contenere
+ commenti. Ogni commento inizia con # e finisce con un carattere di
+ a-capo.</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 è 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 è lento e generalmente
+ non necessario. Ovviamente ciò che rende un host interessante dipende
+ in larga misura dalle motivazioni della scansione. Gli amministratori di
+ rete possono essere interessati solo a host sui quali è in esecuzione
+ uno specifico servizio, mentre chi fa auditing di sicurezza è più
+ interessato a ogni singola periferica dotata di un indirizzo IP. Un
+ sistemista può accontentarsi di semplici ping ICMP per trovare gli host
+ sulla propria rete, ma un penetration tester esterno può dover usare un
+ insieme di molti differenti probing (tentativi di scansione) per cercare
+ di evitare le restrizioni imposte da un firewall.</para>
+
+ <para>Poiché le necessità di host discovering sono così diverse, Nmap
+ offre una notevole varietà di opzioni per la customizzazione delle
+ tecniche usate. Il semplice host discovery è spesso chiamato <quote>ping
+ scan</quote>, anche se va molto oltre il semplice pacchetto ICMP di tipo
+ "echo request" associato al famoso strumento di <application
+ moreinfo="none">ping</application>. Un utente può evitare il passaggio
+ per l'utility <quote>ping</quote> usando una List Scan (scansione di tipo
+ lista: <option>-sL</option>) o disabilitando il ping
+ (<option>-Pn</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 è quello di sollecitare una risposta
+ che dimostri l'esistenza di un host o di un dispositivo di rete con
+ quell'indirizzo IP. In molte reti solo una piccola percentuale di
+ indirizzi IP è attiva in ogni momento, specialmente negli spazi di
+ indirizzamento privati previsti dall'RFC 1918 come ad esempio 10.0.0.0/8.
+ Una rete di questo tipo ha 16 milioni di possibili IP, anche se è di
+ uso comune in aziende con meno di un migliaio di macchine. L'host
+ discovery può 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 ad ogni macchina obiettivo un pacchetto ICMP di tipo
+ "echo request", un pacchetto TCP SYN alla porta 443, un
+ pacchetto TCP ACK alla porta 80 e un pacchetto ICMP di tipo
+ "timestamp request" (per IPv6, il pacchetto ICMP di tipo
+ "timestamp request" viene escluso dato che non fa
+ parte del ICMPv6). Questa default è l'equivalente delle opzioni -PE
+ -PS443 -PA80 -PP. Eccezioni a questo comportamento sono le scansioni
+ ARP (per IPv4) e Neighbor Discovery (per IPv6) che sono usate per tutti
+ gli obiettivi in una rete ethernet locale. Se Nmap viene lanciato da un
+ utente non privilegiato all'interno di un ambiente UNIX, i probe di
+ default saranno pacchetti SYN alle porte 80 e 443 inviati mediante la
+ chiamata di sistema <function moreinfo="none">connect</function>. Questo
+ tipo di host discovery è 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 più avanzato.</para>
+
+ <para>L'opzione <option>-P*</option> (che permette di scegliere il tipo
+ di ping) può essere combinata. Si possono inoltre aumentare le
+ probabilità 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/Neighbor Discovery (<option>-PR</option>) viene effettuata di
+ default all'interno di una rete locale, anche se vengono specificate
+ altre opzioni <option>-P*</option>, poiché è quasi sempre più veloce e
+ più 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>-sn</option> per sapere come effettuare
+ <emphasis>solo</emphasis> host discovery; si usi <option>-Pn</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 è una forma banale di host discovery che
+ semplicemente elenca ogni host delle reti specificate, senza
+ inviare alcun pacchetto agli host obiettivo. Di default Nmap
+ effettua una risoluzione inversa mediante DNS sugli host per
+ ottenerne il nome completo. Spesso è sorprendente vedere quante
+ informazioni utili possono fornire dei semplici hostname. Ad
+ esempio, <literal moreinfo="none">fw.chi</literal> è il nome del
+ firewall di un'azienda di Chicago. Nmap mostra anche il numero
+ totale di indirizzi IP alla fine della scansione. La lista scan è
+ 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>Poiché l'idea è quella di stampare semplicemente una lista
+ di obiettivi, le opzioni per funzionalità di livello più 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 possibilità di utilizzare
+ funzionalità di alto livello, si legga la sezione sull'opzione
+ <option>-Pn (No ping)</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sn</option> (No port scan)</term>
+
+ <listitem>
+ <para>Questa opzione indica a Nmap di non effettuare un port scan
+ dopo un host discovery e di mostrare gli host che hanno risposto.
+ Quest'opzione è spesso conosciuta come <quote>ping scan</quote>, ma
+ si può anche richiedere il traceroute ed eseguire script host NSE.
+ Quest'azione è un gradino più invadente della List Scan, e spesso
+ può essere usata per lo stesso scopo. Essa permette una
+ mappatura di una rete obiettivo senza attrarre molta attenzione.
+ Sapere quanti host sono attivi è più utile ad un attaccante
+ rispetto ad una semplice List Scan di ogni indirizzo IP e nome di
+ host.</para>
+
+ <para>Gli amministratori di sistema trovano spesso questa
+ opzione utile allo stesso modo. Può essere usata facilmente per
+ enumerare le macchine disponibili in una rete o tenere sotto
+ osservazione la disponibilità di un singolo server. Questo
+ approccio viene anche chiamato <quote>ping sweep</quote>, ed è più
+ affidabile di un ping all'indirizzo broadcast poiché molti host non
+ rispondono alle richieste di questa categoria.</para>
+
+ <para>L'opzione <option>-sn</option> invia di default un pacchetto
+ ICMP di tipo "echo request", un pacchetto TCP SYN alla
+ porta 443, un pacchetto TCP ACK alla porta 80 e un pacchetto ICMP
+ di tipo "timestamp request". Quando viene eseguita da
+ un utente non privilegiato, viene inviati solo i pacchetti SYN
+ (usando la chiamata <function moreinfo="none">connect</function> )
+ alle porte 80 e 443 dell'obiettivo. Quando invece un utente
+ privilegiato prova ad effettuare una scansione all'interno di una
+ rete locale, vengono usate richieste ARP a meno che non venga
+ specificata l'opzione <option>--send-ip</option>. L'opzione
+ <option>-sn</option> può essere usata in combinazione con qualsiasi
+ tipo di discovery probe (ovvero la famiglia di opzioni
+ <option>-P*</option>, tranne <option>-Pn</option>) per avere una
+ migliore flessibilità. Se viene usato uno qualsiasi di questi probe
+ con opzioni sul numero di porta, allora i probe di default vengono
+ annullati. Si raccomanda di usare queste tecniche avanzate 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>
+
+ <para>Nelle versioni precedenti di Nmap, l'opzione
+ <option>-sn</option> era chiamata <option>-sP</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-Pn</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 più 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 sugli host che sono stati trovati attivi.
+ Disabilitare l'host discovery attraverso l'opzione
+ <option>-Pn</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. A differenza della List Scan
+ (nel quale l'host discovery viene saltato) anziché interrompersi e
+ mostrare la lista di destinazioni, Nmap continua ad eseguire le
+ funzioni richieste come se ogni IP di destinazione fosse attivo.
+ Per evitare <emphasis>sia</emphasis> un ping scan
+ <emphasis>che</emphasis> un port scan, ma permettere l'esecuzione
+ degli script NSE, utilizzare le due opzioni -Pn -sn insieme.</para>
+
+ <para>Per le macchine in una rete ethernet locale, la scansione ARP
+ verrà ancora eseguita (a meno che siano specificate le opzioni
+ <option>--disable-arp-ping</option> e <option>--send-ip</option>)
+ in quanto Nmap necessita degli indirizzi fisici (MAC addresses) per
+ ulteriori scansioni degli hosts. Nelle versioni precedenti di Nmap,
+ <option>-Pn</option> era chiamata <option>-P0</option> e
+ <option>-PN</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-PS &lt;port list&gt;</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 è la 80
+ (configurabile durante la compilazione cambiando il parametro di
+ define DEFAULT_TCP_PROBE_PORT nel file <filename
+ moreinfo="none">nmap.h</filename>), ma si possono specificare altre
+ porte come parametro. La sintassi è la stessa dell'opzione
+ <option>-p</option> tranne che gli indicatori del tipo di porta
+ <option>T:</option> non sono permessi. Da notare che non ci devono
+ essere spazi tra <option>-PS</option> e il numero di porta, ad
+ esempio <option>-PS22</option>. Nel caso di più porte specificate,
+ separate da virgola (ad esempio
+ <option>-PS22-25,80,113,1050,35000</option>), si tenterà 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
+ effettuerà 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 interromperà la connessione
+ inviando un pacchetto RST al posto di mandare l'usuale pacchetto
+ ACK che completerebbe l'handshake e stabilirebbe una connessione
+ completa. Il pacchetto RST viene mandato dal kernel della macchina
+ che sta eseguendo Nmap, non da Nmap stesso.</para>
+
+ <para>A Nmap non interessa se la porta è aperta o chiusa. In ogni
+ caso l'RST o il SYN/ACK ricevuti indicano che l'host è
+ disponibile e risponde alle connessioni.</para>
+
+ <para>Nelle macchine UNIX solo l'utente privilegiato <literal
+ moreinfo="none">root</literal> generalmente è abilitato all'invio
+ e alla ricezione di pacchetti TCP "raw" (non
+ formattati, grezzi). Per quanto riguarda gli utenti non
+ privilegiati si deve ricorrere alla chiamata di sistema
+ <function moreinfo="none">connect</function>, 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 <function moreinfo="none">connect</function>
+ restituisce rapidamente un messaggio di successo o 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 è marcato
+ come down o non disponibile.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-PA &lt;portlist&gt;</option> (TCP ACK Ping)</term>
+
+ <listitem>
+ <para>Il ping TCP ACK è molto simile al ping SYN appena discusso.
+ La differenza, come si può facilmente indovinare, consiste nel
+ fatto che viene sollevato il flag TCP ACK al posto del SYN. Un
+ tale pacchetto ACK finge di confermare dei dati inviati in una
+ connessione TCP già stabilita, anche se tale connessione non
+ esiste. In questo modo un host remoto risponderà sempre con un
+ pacchetto RST, svelando così 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 può ricevere in
+ input un elenco di porte di destinazione nello stesso formato. Se
+ un utente non privilegiato tenta quest'approccio si usa la
+ scorciatoia della <function moreinfo="none">connect</function>
+ spiegata in precedenza. Questa scorciatoia non è ottimale perché in
+ ogni caso la <function moreinfo="none">connect</function> invia un
+ pacchetto SYN e non un ACK.</para>
+
+ <para>La ragione per offrire entrambi i tipi di probe (SYN e ACK)
+ è quella di massimizzare le possibilità 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" (per "non-stateful" si
+ intende in questo caso la capacità di un firewall di tenere
+ traccia delle connessioni che lo attraversano, NdT) utilizza poche
+ risorse sul firewall/router ed è largamente supportato da filtri
+ software e hardware. Il firewall di 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 questi casi un probe ACK passerebbe
+ 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 è diventata
+ sempre più comune nel corso degli anni. Il sistema
+ Netfilter/iptables la supporta mediante l'opzione
+ <option>--state</option>, la quale marca pacchetti a seconda dello
+ stato della connessione. Un probe SYN funzionerà più facilmente
+ verso un tale sistema, poiché pacchetti ACK non attesi sono
+ generalmente riconosciuti come non validi e lasciati cadere. Una
+ soluzione a questa situazione poco piacevole è quella
+ di inviare entrambe le tipologie di probe specificando le opzioni
+ <option>-PS</option> e <option>-PA</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-PU &lt;portlist&gt;</option> (UDP Ping)</term>
+
+ <listitem>
+ <para>Un'altra opzione di host discovery è il ping UDP, la quale
+ manda un pacchetto UDP alle porte indicate. Per molte porte, il
+ pacchetto sarà vuoto, anche se utilizzare un payload specifico del
+ protocollo aumentale probabilità di risposta. Vedi la sezione
+ <quote>UDP payloads: <option>nmap-payloads</option></quote>
+ (<ulink url="https://nmap.org/book/nmap-payloads.html" />) per una
+ descrizione del database dei payloads. Il contenuto del pacchetto
+ può essere gestito con le opzioni <option>--data</option>,
+ <option>--data-string</option> e
+ <option>--data-length</option>.</para>
+ <para>
+ L'elenco di porte va specificato nello stesso formato già
+ discusso in precedenza nelle opzioni <option>-PS</option> e
+ <option>-PA</option>. Se non si specifica alcuna porta viene usata
+ la 40125 di default. Questo valore può 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 perché inviare dati ad una porta
+ già aperta è 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
+ tipo "port unreachable" (porta irraggiungibile).
+ Questo indica a Nmap che l'host è 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 perché il probe di default è la porta
+ 40125, la quale si usa molto raramente. Pochi servizi, tra i quali
+ <quote>chargen</quote>, rispondono a un pacchetto UDP vuoto,
+ rivelando così a Nmap la disponibilità della macchina in
+ questione.</para>
+
+ <para>Il vantaggio primario di questo tipo di scansione è 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 probe UDP
+ provocavano messaggi di "Port unreachable" rivelando
+ così l'esistenza del device.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-PY &lt;port list&gt;</option> (SCTP INIT Ping)</term>
+
+ <listitem>
+ <para>Questa opzione invia un pacchetto SCTP contenente un INIT
+ chunk minimale. La porta di destinazione di default è la 80
+ (configurabile durante la compilazione cambiando il valore di
+ DEFAULT_SCTP_PROBE_PORT_SPEC nel file
+ <filename moreinfo="none">nmap.h</filename>). Altre porte possono
+ essere specificate come parametro. La sintassi è la stessa
+ dell'opzione <option>-p</option> tranne che gli indicatori del tipo
+ di porta <option>S:</option> non sono permessi. Da notare che non
+ ci devono essere spazi tra <option>-PY</option> e il numero di
+ porta, ad esempio <option>-PY22</option>. Nel caso di più porte
+ specificate, separate da virgola (ad esempio
+ <option>-PY22,80,179,5060</option>), si tenterà un probe verso ogni
+ porta in parallelo.</para>
+
+ <para>L'INIT chunk suggerisce al sistema remoto che stai tentando
+ di stabilire un'associazione. Normalmente la porta di destinazione
+ dovrebbe essere chiusa e un ABORT chunk verrà inviato come
+ risposta. Se la porta invece dovesse essere aperta, l'obiettivo
+ passerà al secondo step della connessione SCTP a quattro vie
+ (four-way-handshake) rispondendo con un INIT-ACK chunk. Se la
+ macchina che sta eseguendo Nmap ha la funzione di SCTP stack,
+ abbatte l'associazione nascente rispondendo con un ABORT chunk
+ invece che inviare un COOKIE-ECHO chunk, che sarebbe lo step
+ successivo nel processo di associazione. Il pacchetto ABORT viene
+ mandato dal kernel della macchina che sta eseguendo Nmap in
+ risposta ad un INIT-ACK inaspettato, non da Nmap stesso.</para>
+
+ <para>Ad Nmap non interessa se la porta di destinazione risulta
+ aperta o chiusa. Entrambi i pacchetti discussi in precedenza
+ (ABORT e INIT-ACK) ricevuti in risposta, indicano ad Nmap che
+ l'host è disponibile e risponde alle connessioni.</para>
+
+ <para>Sulle macchine Unix, solo l'utente privilegiato
+ <literal moreinfo="none">root</literal> generalmente è abilitato ad
+ inviare e ricevere pacchetti SCTP "raw" (non
+ formattati, grezzi). Usare SCTP INIT Pings (<option>-PY</option>)
+ non è attualmente possibile per gli utenti non privilegiati.</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, UDP e
+ SCTP discussi in precedenza, Nmap può 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 anziché rispondere come richiesto
+ dall'<ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC
+ 1122</ulink>. Per questa ragione le scansioni basate solo su ICMP
+ sono raramente abbastanza affidabili nei riguardi di destinazioni
+ 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" è la richiesta standard del ping
+ ICMP, Nmap non si ferma qui. Gli standard ICMP (<ulink
+ url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC 792</ulink> e
+ <ulink url="http://www.rfc-editor.org/rfc/rfc950.txt">RFC
+ 950</ulink>) specificano 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. Dato che lo scopo dichiarato di questo
+ tipo di richieste è quello di avere informazioni quali la maschera
+ di rete e l'ora corrente, essi possono facilmente essere usati per
+ l'host discovery. Un sistema che risponde è funzionante e
+ disponibile. Nmap non implementa allo stato attuale pacchetti di
+ "information request", poiché 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 è 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>-PO &lt;protocol list&gt;</option> (IP Protocol
+ Ping)</term>
+
+ <listitem>
+ <para>Una delle nuove opzioni di host discovery è la IP Protocol
+ Ping, la quale invia pacchetti IP con lo specifico numero di
+ protocollo impostato nel loro IP header. La lista dei protocolli ha
+ lo stesso formato della lista delle porte vista in precedenza
+ nelle opzioni di host discovery TCP, UDP e SCTP. Se nessun
+ protocollo viene specificato, di default vengono inviati pacchetti
+ IP multipli per ICMP (protocollo 1), IGMP (protocollo 2) e IP-in-IP
+ (protocollo 4). I protocolli di default possono essere configurati
+ in fase di compilazione cambiando il valore di
+ DEFAULT_PROTO_PROBE_PORT_SPEC nel file
+ <filename moreinfo="none">nmap.h</filename>. Si tenga presente che
+ per i protocolli ICMP, IGMP, TCP (protocollo 6), UDP (protocollo
+ 17) e SCTP (protocollo 132), i pacchetti vengono inviati con i loro
+ opportuni headers mentre gli altri protocolli vengono inviati senza
+ nessun dato aggiuntivo oltre all'IP header (a meno che non siano
+ specificate le opzioni <option>--data</option>,
+ <option>--data-string</option> o
+ <option>--data-length</option>).</para>
+
+ <para>Questo metodo di host discovery cerca sia risposte
+ utilizzando lo stesso protocollo di un probe, che messaggi
+ "unreachable" utilizzando il protocollo ICMP, che significa che il
+ protocollo non è supportato dall'host di destinazione. Entrambe le
+ risposte indicano che l'obiettivo è attivo.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-PR</option> (ARP Ping)</term>
+
+ <listitem>
+ <para>Una delle situazioni più comuni di utilizzo di Nmap è 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'RFC 1918, la maggior parte degli
+ indirizzi IP è inutilizzato. Quando Nmap prova ad inviare
+ pacchetti IP raw come le "echo request" ICMP, il sistema operativo
+ deve determinare l'indirizzo hardware (ARP) corrispondente
+ all'indirizzo IP di destinazione, in modo da poter indirizzare
+ correttamente il frame ethernet. Questo è 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
+ IP perché a questo punto sa già che l'host è raggiungibile.
+ Questo rende l'ARP scan molto veloce e molto più affidabile delle
+ normali scansioni basate su IP. Infatti questo è 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>-PE</option> o
+ <option>-PS</option>), Nmap usa comunque ARP per ogni target che
+ è sulla stessa LAN. Se non si vuole assolutamente un ARP scan,
+ specificare l'opzione <option>--disable-arp-ping</option>.</para>
+
+ <para>Per IPv6 (opzione <option>-6</option>), <option>-PR</option>
+ utilizza ICMPv6 Neighbor Discovery al posto di ARP. Neighbor
+ Discovery, definito nell'RFC 4861, può essere visto come
+ l'equivalente per IPv6 di ARP.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--disable-arp-ping</option> (No ARP or ND Ping)</term>
+
+ <listitem>
+ <para>Nmap normalmente esegue un ARP o IPv6 Neighbor Discovery (ND)
+ discovery degli host locali connessi ad una rete ethernet, anche se
+ altre opzioni di host discovery, come <option>-Pn</option> o
+ <option>-PE</option>, vengono utilizzate. Per disabilitare questo
+ comportamento implicito, utilizzare l'opzione
+ <option>--disable-arp-ping</option>.</para>
+
+ <para>Il comportamento di default è solitamente più veloce, ma
+ quest'opzione è utile nelle reti che utilizzano un proxy ARP, nelle
+ quali un router risponde in modo speculare a tutte le richieste
+ ARP, facendo sembrare attivi tutti gli obiettivi di un ARP
+ scan.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+
+ <term><option>--traceroute</option> (Trace path to host)</term>
+
+ <listitem>
+ <para>I traceroutes vengono eseguiti in fase di post-scan
+ utilizzando informazioni provenienti dai risultati della scansione
+ per determinare la porta e il protocollo che più probabilmente
+ raggiungono l'obiettivo. Opera con tutte le tipologie di scansione
+ tranne le connect scans (<option>-sT</option>) e le idle scans
+ (<option>-sI</option>). Tutti i tracciamenti utilizzano il modello
+ di timing dinamico ("dynamic timing model") di Nmap e vengono
+ eseguiti in parallelo.</para>
+
+ <para>Traceroute lavora inviando pacchetti con un basso TTL
+ (time-to-live) in attesa di ricevere un messaggio ICMP "Time
+ Exceeded" dagli intermediari (hops) posti tra la macchina che
+ esegue la scansione e l'host obiettivo. Le implementazioni standard
+ di traceroute iniziano con un TTL settato a 1 e aumentano il TTL
+ finché l'host di destinazione non viene raggiunto. I traceroute di
+ Nmap iniziano con un alto TTL e lo diminuiscono fino ad arrivare a
+ zero. Lavorare a ritroso consente ad Nmap di utilizzare
+ intelligenti algoritmi di caching per velocizzare il tracciamento
+ su più host. In media Nmap invia 5-10 pacchetti in meno per host,
+ in base alle condizioni della rete. Se una singola subnet viene
+ scansionate (ad esempio 192.168.0.0/24) Nmap potrebbe dover inviare
+ solo due pacchetti per la maggior parte degli host.</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 sugli indirizzi IP
+ rilevati. Poiché il DNS è spesso lento anche con il risolutore
+ parallelo integrato di Nmap, questa opzione rende l'intero processo
+ di scansione più 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 sugli indirizzi IP
+ rilevati. Generalmente la risoluzione inversa viene effettuata 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 è in esecuzione Nmap. Molte richieste (spesso
+ nell'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 <function
+ moreinfo="none">getnameinfo</function>). Questa operazione è più
+ lenta 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 è il caso). Il resolver di sistema è
+ sempre usato per le scansioni su IPv6.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--dns-servers &lt;server1&gt;[,&lt;server2&gt;][,...]];
+ </option> (Servers to use for reverse DNS queries)</term>
+ <listitem>
+ <para>Di default Nmap cercherà di determinare i server DNS da usare
+ per le reverse query usando il file resolv.conf (UNIX) o il
+ Registro (Win32) sulla macchina su cui viene eseguito. In
+ alternativa si può usare quest'opzione per indicare server
+ alternativi. Tuttavia quest'opzione viene ignorata nel caso si
+ specifichi l'opzione <option>--system-dns</option> o se si sta
+ eseguendo una scansione IPv6. L'uso di più server DNS è spesso più
+ veloce specialmente se si specificano server DNS autoritari per lo
+ spazio IP di destinazione. Quest'opzione inoltre attrae meno
+ l'attenzione, dato che le tue richieste possono essere rimbalzate
+ praticamente da ogni server DNS su Internet.</para>
+ <para>Quest'opzione torna utile anche quando si eseguono scansioni
+ di reti private. Alle volte solo alcuni name server forniscono le
+ correte informazioni di reverse e non sempre potresti sapere dove
+ questi si trovano. Puoi scansionare la rete sulla porta 53 (magari
+ con una version detection), quindi provare delle List Scan
+ (<option>-sL</option>) di Nmap specificando ogni volta un name
+ server diverso con l'opzione <option>--dns-servers</option>
+ finché non si trova quello desiderato.</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
+ funzionalità, iniziò come un efficiente port scanner e tale resta la sua
+ funzione di base. Il semplice comando <command moreinfo="none">nmap
+ <replaceable>target</replaceable></command> effettua una scansione di
+ 1.000 porte TCP sull'host <replaceable>target</replaceable>. Mentre molti
+ port scanner considerano tutte le porte chiuse o aperte, Nmap è molto più
+ 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), <literal
+ moreinfo="none">closed|filtered</literal> (chiusa|filtrata).</para>
+
+ <para>Questi stati non sono proprietà intrinseche delle porte stesse,
+ ma descrivono come Nmap le vede. Ad esempio, uno scan Nmap proveniente
+ dalla stessa rete nella quale risiede l'obiettivo può mostrare la
+ porta 135/tcp come aperta, mentre una scansione nello stesso momento con
+ gli stessi parametri ma proveniente da Internet può 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 (aperta)</term>
+ <listitem>
+ <para>Un'applicazione accetta attivamente su questa porta
+ connessioni TCP, datagrammi UDP o associazioni SCTP. La ricerca di
+ questo tipo di porte è spesso l'obiettivo primario del port
+ scanning. Chi si dedica alla sicurezza sa che ogni porta aperta è
+ una strada verso un attacco. Gli attaccanti e i tester di sicurezza
+ (penetration testers, conosciuti anche come "pen-testers", NdT)
+ hanno come obiettivo 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 tutta una serie di scansioni non indirizzate
+ unicamente alla sicurezza, perché mostrano che servizi sono
+ disponibili in una rete.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>closed (chiusa)</term>
+ <listitem>
+ <para>Una porta chiusa è accessibile (riceve e risponde ai
+ pacchetti di probe di Nmap) ma non vi è alcuna applicazione in
+ ascolto su di essa. Esse possono rendersi utili nel mostrare che
+ un host è attivo su un indirizzo IP (durante l'host discovery o
+ il ping scanning) o in quanto parte integrante dell'Operating
+ System discovery. Poiché una porta chiusa è raggiungibile, può
+ essere interessante effettuare una scansione più tardi nel caso
+ alcune vengano aperte. Chi amministra una macchina o una rete può
+ voler bloccare tali porte con un firewall ed in questo caso esse
+ apparirebbero come filtrate, come mostrato in seguito.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>filtered (filtrata)</term>
+ <listitem>
+ <para>In questo caso Nmap non può determinare con esattezza se la
+ porta sia aperta o meno, perché un filtro di pacchetti impedisce
+ ai probe di raggiungere la porta. Questo filtro può 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 più
+ 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 velocità della
+ scansione.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>unfiltered (non filtrata)</term>
+ <listitem>
+ <para>Lo stato "unfiltered" indica che una porta è accessibile,
+ ma che Nmap non è 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 (aperta|filtrata)</term>
+ <listitem>
+ <para>Nmap posiziona le porte in questo stato quando non è 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 può
+ 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 UDP, IP, FIN, NULL e Xmas.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>closed|filtered (chiusa|filtrata)</term>
+ <listitem>
+ <para>Questo stato è usato quando Nmap non è in grado di
+ determinare se una porta sia chiusa o filtrata. Viene usato solo
+ per l'IP ID 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 può
+ arrovellarsi per ore cercando di usare i pochi strumenti che ha
+ (martello, nastro isolante, pinza, ecc.) per ciò che deve fare. Una
+ volta che si è arreso dopo l'ennesimo fallimento e si è deciso a
+ portare il proprio macinino 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 è molto simile. Chi è 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. Poiché Nmap è free (in lingua inglese
+ significa sia "libero" che "gratuito", e per questo è lasciato
+ inalterato, NdT) l'unico limite alla capacità di fare port scanning è
+ solo la conoscenza. Questo lo rende sicuramente più accessibile del
+ mondo delle automobili, dov'è richiesta non solo una notevole abilità
+ per sapere che serve uno specifico strumento, ma è anche necessario
+ andarselo a comprare.</para>
+
+ <para>La maggior parte delle scansioni è disponibile solo per gli
+ utenti privilegiati. Questo è dovuto al fatto che esse inviano e
+ ricevono pacchetti "raw" (non formattati o "grezzi", ovvero semplici
+ stringhe di bit), i quali richiedono l'accesso come root su sistemi UNIX.
+ L'uso di un account di amministrazione su Windows è raccomandato,
+ nonostante Nmap a volte funzioni anche per gli utenti non privilegiati
+ quando WinPcap è già stato caricato nel sistema operativo. Nel 1997,
+ quando Nmap venne rilasciato, la necessità di avere privilegi di root
+ era una seria limitazione perché molti utenti avevano solo accesso ad
+ account su macchine che davano semplici shell condivise. Ora il
+ mondo è cambiato: i computer sono più economici, molta più 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. Una versione di Nmap per Windows è ora disponibile, così da
+ poterlo eseguire su ancora più desktop. Per tutte queste ragioni gli
+ utenti hanno sempre meno necessità di usare Nmap da account limitati, il
+ che non fa che migliorare la situazione, in quanto le opzioni
+ privilegiate fanno di Nmap uno strumento molto più potente e
+ flessibile.</para>
+
+ <para>Nonostante Nmap faccia del proprio meglio per produrre risultati
+ accurati, si tenga presente 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 e
+ restituire risposte mirate proprio a confondere e sviare Nmap. Sono molto
+ più 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 può usare solo un metodo per volta, a parte
+ l'UDP scan (<option>-sU</option>) e gli SCTP scan (<option>-sY</option>,
+ <option>-sZ</option>) che possono essere combinati 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> è un carattere significativo del nome della
+ scansione, in genere il primo. L'unica eccezione a questa regola
+ generale è il cosiddetto FTP bounce scan che viene tuttavia
+ sconsigliato (opzione <option>-b</option>). Di default Nmap effettua un
+ SYN scan, oppure un connect scan se l'utente non ha privilegi sufficienti
+ per mandare pacchetti raw (che richiedono l'accesso come root su UNIX).
+ Di tutte le scansioni elencate di seguito, gli utenti non privilegiati
+ possono solo effettuare scansioni <function
+ moreinfo="none">connect</function> ed FTP bounce.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-sS</option> (TCP SYN scan)</term>
+
+ <listitem>
+ <para>Il SYN scan è l'opzione di default ed è la più usata per
+ buone ragioni. Può essere effettuato velocemente: effettua la
+ scansione su migliaia di porte al secondo su una rete veloce non
+ limitata da firewall restrittivi. Il SYN scan è relativamente
+ nascosto e poco invasivo, poiché non completa mai le connessioni
+ TCP. Funziona inoltre con ogni stack TCP compatibile e non
+ dipende dalle 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>, <literal
+ moreinfo="none">closed</literal> e <literal
+ moreinfo="none">filtered</literal>.</para>
+
+ <para>Questa tecnica è spesso indicata come "scanning
+ semi-aperto" (tradotto letteralmente per esigenze di comprensione,
+ da "half-open scanning", NdT), perché 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 è in ascolto
+ (aperta), mentre un RST (reset) indica che la porta non è 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). La porta viene considerata aperta anche nel caso in cui un
+ pacchetto SYN (senza il flag ACK) viene ricevuto in risposta.
+ Questo in base ad una feature TCP estremamente rara conosciuta come
+ "apertura simultanea" ("simultaneous open") o connessione "split
+ handshake" (vedere <ulink
+ url="https://nmap.org/misc/split-handshake.pdf" />).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sT</option> (TCP connect scan)</term>
+
+ <listitem>
+ <para>La scansione di tipo TCP connect è la scansione TCP di
+ default dove la scansione SYN non è un'opzione viabile. Questo è
+ il caso in cui un utente non ha privilegi sull'invio di pacchetti
+ "raw". Anziché 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 chiamata di sistema <literal moreinfo="none">connect</literal>.
+ Questa è 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 è parte
+ dell'interfaccia di programmazione conosciuta come Berkeley Sockets
+ API. Anziché leggere le risposte ai pacchetti "raw" inviati
+ direttamente sul cavo, Nmap usa questa API per ottenere
+ informazioni sullo stato di ogni tentativo di connessione.</para>
+
+ <para>Quand'è possibile, il SYN scan è generalmente una scelta
+ migliore. Nmap ha meno controllo sulla syscall <literal
+ moreinfo="none">connect</literal> rispetto ai pacchetti "raw",
+ rendendolo quindi meno efficiente. La syscall completa le
+ connessioni alle porte aperte specificate anziché limitarsi al
+ reset dovuto alla scansione semi-aperta del SYN scan. Non solo
+ questo approccio richiede più tempo e numero maggiore di pacchetti
+ per ottenere le stesse informazioni, ma le macchine obiettivo sono
+ più propense a tenere traccia (log) della connessione. Inoltre un
+ IDS ("Intrusion Detection System", sistema di controllo delle
+ intrusioni) decente se ne accorgerà. 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
+ alle 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 saprà infine che è vittima di un connect scan.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sU</option> (UDP scans)</term>
+
+ <listitem>
+ <para>Così come i servizi più comuni su Internet girano attraverso
+ il protocollo TCP, anche 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 più comuni. Poiché lo scan su UDP
+ è generalmente più lento e più difficoltoso di quello su TCP,
+ alcuni esaminatori di sicurezza ("security auditors") ignorano
+ questo tipo di porte. Ciò è un errore, poiché i servizi UDP
+ vulnerabili sono abbastanza comuni e un attaccante sicuramente non
+ ignorerà completamente questo protocollo. Fortunatamente Nmap
+ può aiutare ad enumerare le porte UDP.</para>
+
+ <para>Lo scan UDP si attiva con l'opzione <option>-sU</option>.
+ Può 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 ad ogni porta di
+ destinazione. Per alcune porte comuni, come la 53 e la 161, un
+ carico dati viene aggiunto per aumentare le probabilità di
+ risposta, ma per la maggior parte delle porte il pacchetto viene
+ inviato vuoto, a meno che non vengano specificate le opzioni
+ <option>--data</option>, <option>--data-string</option> o
+ <option>--data-length</option>. Se viene restituito un errore ICMP
+ "port unreachable" (tipo 3, codice 3) significa che la porta è
+ <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 risponderà con un pacchetto UDP, dimostrando quindi
+ che lo stato della porta è <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 può essere aperta o che probabilmente un
+ filtro di pacchetti sta bloccando la comunicazione. Un version
+ detection (<option>-sV</option>) può essere usato per aiutare a
+ differenziare le porte veramente aperte da quelle che sono
+ filtrate.</para>
+
+ <para>La sfida maggiore con l'UDP scan è la velocità. 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 siano andati perduti. Le porte chiuse
+ sono spesso un problema ancora maggiore: esse generalmente
+ rimandano un pacchetto ICMP "port unreachable error", ma a
+ differenza dei pacchetti RST rimandati dalle porte chiuse TCP come
+ risposta 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 ignorerà 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 più di 18 ore. Suggerimenti
+ per rendere più veloce gli scan UDP sono quelli di effettuare
+ scansioni su più host in parallelo, fare uno scan veloce
+ preliminare sulle porte più usate, effettuare la scansione
+ dall'interno del firewall ed infine usare l'opzione
+ <option>--host-timeout</option> per evitare host troppo lenti nel
+ rispondere.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sY</option> (SCTP INIT scan)</term>
+
+ <listitem>
+ <para><ulink
+ url="http://www.rfc-editor.org/rfc/rfc4960.txt">SCTP</ulink> è
+ un'alternativa relativamente nuova rispetto ai protocolli TCP ed
+ UDP, il quale combina molte delle caratteristiche di entrambi
+ aggiungendo nuove funzionalità come il multi-homing e il
+ multi-streaming. Principalmente Viene utilizzato per i servizi
+ collegati ai protocolli SS7/SIGTRAN, ma potenzialmente può essere
+ utilizzato per altre applicazioni. Lo scan SCTP INIT scan è
+ l'equivalente del TCP SYN scan: viene eseguito velocemente e
+ scansiona migliaia di porte al secondo su una rete veloce non
+ limitata da firewall restrittivi. Come il SYN scan, l'INIT scan è
+ relativamente nascosto e poco invasivo, dato che non completa mai
+ le connessioni SCTP. Consente inoltre una chiara ed affidabile
+ differenziazione tra gli stati della porta <literal
+ moreinfo="none">open</literal> (aperta),
+ <literal moreinfo="none">closed</literal> (chiusa) e <literal
+ moreinfo="none">filtered</literal> (filtrata).</para>
+
+ <para>Questa tecnica è conosciuta come "half-open" (semi-aperta),
+ in quanto non si completata l'associazione SCTP. Viene inviato un
+ INIT chunk, esattamente come se si volesse iniziare una reale
+ associazione. Se si riceve un INIT-ACK chunk in risposta, significa
+ che la porta è in ascolto (aperta), mentre se si riceve un ABORT
+ chunk significa che la porta non è in ascolto (chiusa). Se non si
+ riceve nessuna risposta dopo alcune ritrasmissioni, la porta viene
+ marcata come filtered. La porta viene anche considerata filtrata se
+ viene ricevuto un messaggio ICMP "unreachable error" (tipo 3,
+ codice 1, 2, 3, 9, 10 o 13).</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 vulnerabilità
+ 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] è CHIUSO ... un
+ segmento in arrivo che non contiene un RST causerà l'invio di un
+ RST in risposta</quote>. La pagina successiva discute di
+ pacchetti inviati a porte aperte senza i bit SYN, RST o ACK
+ impostati, indicando che: <quote>questa situazione è 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 SYN, RST o ACK causerà
+ un RST di ritorno se la porta è chiusa e nessuna risposta se la
+ porta è aperta. Finché nessuno di questi tre bit è incluso,
+ qualunque combinazione degli altri tre bit (FIN, PSH, e URG) va
+ bene. Nmap sfrutta tutto ciò tramite 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 è 0).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FIN scan (<option>-sF</option>)</term>
+
+ <listitem>
+ <para>Setta solo il bit FIN.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Xmas scan (<option>-sX</option>)</term>
+
+ <listitem>
+ <para>Setta i bit 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 è considerata <literal
+ moreinfo="none">closed</literal>, mentre l'assenza
+ di risposta indica che la porta è <literal
+ moreinfo="none">open|filtered</literal>. La porta è marcata come
+ <literal moreinfo="none">filtered</literal> 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 è che
+ possono penetrare in certi non-stateful firewall e packet
+ filtering router. Un altro vantaggio è che questi tipi di
+ scansione sono un po più invisibili anche dei SYN scan. In ogni
+ caso non è corretto fare cieco affidamento su questo, gran parte
+ dei moderni prodotti IDS possono essere configurati in modo da
+ rilevarli. Il grande svantaggio è 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 <literal moreinfo="none">closed</literal>. I
+ più 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 è che non riescono a distinguere tra le
+ porte <literal moreinfo="none">open</literal> e quelle <literal
+ moreinfo="none">filtered</literal>, dando come risposta <literal
+ moreinfo="none">open|filtered</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sA</option> (TCP ACK scan)</term>
+
+ <listitem>
+ <para>Questo scan è diverso dagli altri discussi finora dal momento
+ che non serve per determinare se le porte sono <literal
+ moreinfo="none">open</literal> (o <literal
+ moreinfo="none">open|filtered</literal>). Viene 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 il flag ACK
+ abilitato (a meno che non si usi <option>--scanflags</option>).
+ Mentre si scansionano sistemi non filtrati, sia le porte <literal
+ moreinfo="none">open</literal> che le porte <literal
+ moreinfo="none">closed</literal> manderanno pacchetti RST. Nmap poi
+ le cataloga come <literal moreinfo="none">unfiltered</literal>, nel
+ senso che è possibile raggiungerle con un pacchetto ACK, ma che
+ siano aperte o chiuse non è determinabile. Le porte che non
+ rispondono, o mandano certi errori ICMP (tipo 3, codice 1, 2, 3, 9,
+ 10 o 13), sono etichettate come <literal
+ moreinfo="none">filtered</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sW</option> (TCP Window scan)</term>
+
+ <listitem>
+ <para>Il window scan è 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 <literal
+ moreinfo="none">unfiltered</literal> quando restituisce un RST. Lo
+ fa esaminando il campo TCP Window del 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 è zero. Quindi, invece di catalogare
+ sempre le porte come <literal moreinfo="none">unfiltered</literal>
+ quando si riceve un RST di ritorno, il Window scan lista le porte
+ come <literal moreinfo="none">open</literal> o <literal
+ moreinfo="none">closed</literal> a seconda che il valore in quel
+ RST (reset) sia, rispettivamente, positivo o pari a zero.</para>
+
+ <para>Questo scan fa affidamento a un dettaglio implementativo di
+ una minoranza di sistemi presenti in Internet, quindi ciò
+ non è sempre affidabile. Nei sistemi in cui questo dettaglio
+ implementativo non sussiste, di norma lo scan segnalerà tutte le
+ porte <literal moreinfo="none">closed</literal>. Ovviamente sarà
+ possibile che la macchina non abbia realmente nessuna porta aperta.
+ Se la maggior parte delle porte è <literal
+ moreinfo="none">closed</literal>, ma alcune porte comuni (come la
+ 22, la 25 o la 53) appaiono <literal
+ moreinfo="none">filtered</literal>, il sistema è quasi sicuramente
+ suscettibile a questo tipo di scan. Occasionalmente, alcuni altri
+ sistemi presenteranno un comportamento esattamente opposto. Se lo
+ scan riporta 1.000 porte aperte e 3 chiuse o filtrate, allora
+ quelle 3 saranno con ogni probabilità proprio quelle aperte.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sM</option> (TCP Maimon scan)</term>
+
+ <listitem>
+ <para>Il Maimon scan è stato nominato così 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 <ulink
+ url="http://www.rfc-editor.org/rfc/rfc793.txt">RFC 793</ulink>
+ (TCP), un pacchetto RST dovrebbe essere generato in risposta a tale
+ stimolo. Ad ogni modo, Uriel notò 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 utilizzatori molto avanzati di Nmap hanno necessità di
+ non limitarsi semplicemente ad utilizzare le scansioni tipiche
+ offerte. L'opzione <option>--scanflags</option> consente di
+ designare una scansione personalizzata specificando
+ arbitrariamente i flag TCP necessari. Liberate la vostra
+ inventiva, ed evitate così 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 flag TCP, come ad
+ esempio 9 (PSH e FIN) anche se l'utilizzo di nomi simbolici risulta
+ comunque più semplice. Basta mettere creare una qualsiasi
+ 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 molto utile al fine della scansione. L'ordine con cui
+ vengono specificati non è rilevante.</para>
+
+ <para>Oltre allo specificare i flag desiderati, è possibile
+ indicare un 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 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 comporterà nello
+ stesso modo che per la scansione normale, tranne che per il fatto
+ di interpretare i flag TCP che sono stati specificati. Se non viene
+ indicato un diverso tipo di scansione, viene automaticamente
+ utilizzata la SYN scan.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sZ (SCTP COOKIE ECHO scan)</option></term>
+
+ <listitem>
+ <para>L'SCTP COOKIE ECHO è più avanzato rispetto all'SCTP scan.
+ Sfrutta il fatto che le implementazioni SCTP dovrebbero lasciar
+ cadere (drop) in modo trasparente i pacchetti che contengono dei
+ COOKIE ECHO chunk sulle porte aperte ed inviare un ABORT se la
+ porta è chiusa. Il vantaggio di questo tipo di scansione sta nel
+ fatto che è meno rilevabile rispetto all'INIT scan. Inoltre, ci
+ possono essere firewall che utilizzano regole non-stateful che
+ bloccano gli INIT chunk, ma non i COOKIE ECHO chunk. Non illudersi
+ però che quest'opzione renda un port scan invisibile; un buon IDS
+ riesce ad individuare anche le scansioni SCTP COOKIE ECHO. Lo
+ svantaggio è che le scansioni SCTP COOKIE ECHO non differenziano le
+ porte tra <literal moreinfo="none">open</literal> e <literal
+ moreinfo="none">filtered</literal> lasciando come stato <literal
+ moreinfo="none">open|filtered</literal> in entrambi i casi.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-sI &lt;zombie host&gt;[:&lt;probeport&gt;]</option>
+ (idle scan)</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 predicibilità dell'ID
+ relativo alla sequenza di frammentazione generato dallo
+ <replaceable>zombie host</replaceable> per ottenere informazioni
+ sulle porte aperte dell'obiettivo. I sistemi IDS interpreteranno la
+ scansione come se provenisse dalla macchina zombie specificata (che
+ deve essere attiva e rispondere a certi criteri). Tutti i dettagli
+ su questa affascinante tecnica di scansione si trovano al seguente
+ link <quote> <ulink url="https://nmap.org/book/idlescan.html">TCP
+ Idle Scan (-sI)</ulink></quote>.</para>
+
+ <para>Oltre che essere straordinariamente 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 così possibile effettuare
+ scansioni utilizzando diversi zombie che si ritiene possano
+ attraversare router o sistemi con packet filter.</para>
+
+ <para>È 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'IP ID. Diversamente Nmap utilizzerà
+ 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>L'IP protocol scan permette di determinare che protocolli IP
+ (TCP, ICMP, IGMP, ecc.) sono supportati dalle macchine obiettivo.
+ Non è 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, riporta i risultati nel
+ normale formato della tabella delle porte ed utilizza lo stesso
+ engine sottostante al port scanning reale. Per questo motivo è
+ profondamente analogo ad un port scan e viene trattato in questa
+ sezione.</para>
+
+ <para>Oltre che essere intrinsecamente utile, il protocol scan
+ dimostra la potenza del software open-source. Per quanto l'idea
+ fondamentale è abbastanza semplice, non immaginavo di aggiungerla
+ fino a quando non avessi ricevuto richieste per questa
+ funzionalità. Nell'estate del 2000, Gerhard Rieger concepì l'idea
+ e scrisse un'eccellente patch che la implementasse, spedendola poi
+ alla mailing list <emphasis>nmap-hackers</emphasis>. 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>Il protocol scan funziona in modo simile all'UDP scan solo
+ che invece di agire sul campo "port number" del pacchetto UDP,
+ invia degli header di pacchetto IP e agisce sul campo di 8 bit
+ relativo al protocollo. Questi headers sono tipicamente vuoti, non
+ contengo dati e nemmeno l'header proprietario del protocollo
+ dichiarato, ad eccezione di TCP, UDP, ICMP, SCTP e IGMP. Un header
+ valido per queste eccezioni viene incluso perché, diversamente,
+ alcuni sistemi non li invierebbero e perché Nmap è già provvisto di
+ funzioni per crearli. Invece che cercare un messaggio ICMP "port
+ unreachable", il protocol scan è alla ricerca di un messaggio
+ ICMP "<emphasis>protocol</emphasis> unreachable". Se Nmap riceve
+ una qualunque risposta di qualunque protocollo dall'host
+ scansionato, Nmap indica tale protocollo come <literal
+ moreinfo="none">open</literal>. Un errore ICMP "protocol
+ unreachable" (tipo 3, codice 2) fa sì che il protocollo sia
+ indicato come <literal moreinfo="none">closed</literal>. Altri
+ errori ICMP "unreachable" (tipo 3, codice 1, 3, 9, 10 o 13) fanno
+ classificare il protocollo come <literal
+ moreinfo="none">filtered</literal> (denotando, contestualmente,
+ che il protocollo ICMP è <literal
+ moreinfo="none">open</literal>). Se non viene ricevuta alcuna
+ risposta, il protocollo è 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>) è
+ il supporto per le cosiddette "proxy FTP connections". Questa
+ permette all'utente di connettersi ad un server FTP e richiedere
+ che il file sia inviato ad un server FTP differente. Tale
+ caratteristica si presta per varie tipologie di abuso, cosicché
+ molti server hanno smesso di supportarla. Uno degli abusi
+ nell'utilizzo di questa peculiarità è la possibilità di 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 permetterà di dedurre se la porta è aperta o meno. Questo è
+ un ottimo modo per aggirare i firewall in quanto i server FTP
+ aziendali sono spesso posizionati nella rete così da poter accedere
+ a più host interni di quanto sia possibile fare da Internet. Nmap
+ supporta l'FTP bounce scan attraverso l'opzione
+ <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> è l'hostname o l'indirizzo
+ IP di un server FTP vulnerabile a questo attacco. Come in una URL
+ normale, è possibile omettere
+ <replaceable>username</replaceable>:<replaceable>password</replaceable>,
+ ed in tal caso verranno utilizzate credenziali 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 altresì omessi, in tal
+ caso verrò utilizzata la porta FTP di default (21) per la
+ connessione al <replaceable>server</replaceable>.</para>
+
+ <para>Questa vulnerabilità è stata diffusa nel 1997 quando Nmap è
+ stato rilasciato, ma è stata risolta su gran parte dei sistemi.
+ Esistono alcuni server ancora vulnerabili, ed ha senso provare ad
+ utilizzarla quando ogni altra cosa fallisce. Se l'obiettivo è
+ oltrepassare un firewall, è 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 lo script NSE <literal
+ moreinfo="none">ftp-bounce</literal>. Nmap sarà in grado di
+ evidenziare se un host è vulnerabile o meno a questa tecnica. Se si
+ sta cercando semplicemente di nascondere le proprie tracce, non vi
+ è 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 per trovare
+ server FTP vulnerabili è 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
+ possibilità di specificare quali porte devono essere scansionate e se
+ l'ordine delle porte deve essere casuale oppure sequenziale. Di default
+ Nmap effettua la scansione delle 1.000 porte più comuni per ogni
+ protocollo.</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. È
+ possibile indicare i singoli numeri delle porte, così come gli
+ intervalli, separati da un trattino (ad esempio 1-1023). Il primo
+ e/o l'ultimo valore di un intervallo possono essere omessi, facendo
+ sì che Nmap utilizzi rispettivamente 1 e 65535 come limiti. È
+ quindi possibile utilizzare l'opzione <option>-p-</option> per
+ effettuare la scansione delle porte da 1 a 65535. È 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 del
+ protocollo che si desidera scansionare (0-255).</para>
+
+ <para>Quando si effettua una scansione combinata di protocolli (ad
+ esempio TCP e UDP), è possibile specificare un protocollo
+ particolare anteponendo al numero di porta <literal
+ moreinfo="none">T:</literal> per TCP, <literal
+ moreinfo="none">U:</literal> per UDP, <literal
+ moreinfo="none">S:</literal> per SCTP o <literal
+ moreinfo="none">P:</literal> per IP Protocol. 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
+ UDP delle porte 53, 111 e 137, lo stesso per le porte TCP. Si noti
+ che per effettuare una scansione su entrambi i protocolli UDP e
+ TCP, è 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>
+
+ <para>Le porte possono anche essere indicate tramite il loro nome,
+ così come sono indicate nell'<filename
+ moreinfo="none">nmap-services</filename>. Si possono anche
+ utilizzare i caratteri speciali * e ? con i nomi. Ad esempio, per
+ scansionare l'FTP e tutte le porte il cui nome inizia con "http",
+ si può usare <option>-p ftp,http*</option>. Si raccomanda di
+ prestare attenzione alla "shell expansions" e di racchiudere tra
+ apici (quote) l'argomento di <option>-p</option> se non si è
+ sicuri.</para>
+
+ <para>I range di porte possono essere racchiusi da parentesi quadre
+ per indicare le porte all'interno di quel range che appare in
+ <filename moreinfo="none">nmap-services</filename>. Ad esempio, ciò
+ che segue eseguirà la scansione di tutte le porte in <filename
+ moreinfo="none">nmap-services</filename> uguali o minori di 1024:
+ <option>-p [-1024]</option>. Si raccomanda di prestare attenzione
+ alla "shell expansions" e di racchiudere tra apici (quote)
+ l'argomento di <option>-p</option> se non si è sicuri.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--exclude-ports &lt;port ranges&gt;</option>
+ (Exclude the specified ports from scanning)</term>
+
+ <listitem>
+ <para>Quest'opzione specifica quali porte Nmap deve escludere dalla
+ scansione. I <replaceable>port ranges</replaceable> devono essere
+ specificati in modo simile a <option>-p</option>. Per le scansioni
+ IP protocol (<option>-sO</option>), questa opzione specifica il
+ numero di protocolli che si vuole escludere (0–255).</para>
+
+ <para>Quando si richiede di escludere le porte, queste vengono
+ escluse da tutti i tipi di scansione. Ciò include anche la fase di
+ discovery.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option> (Fast (limited port) scan)</term>
+
+ <listitem>
+ <para>Indica che si intende effettuare la scansione di un minor
+ numero di porte rispetto al default. Normalmente Nmap scansione le
+ 1.000 porte più comuni per ogni protocollo scansionato. Con
+ l'opzione <option>-F</option> il numero si riduce a 100.</para>
+
+ <para>Nmap ha bisogno del file <filename
+ moreinfo="none">nmap-services</filename> che contiene le
+ informazioni di frequenza, in modo da sapere quali sono le porte
+ più comuni (vedi <quote><ulink
+ url="https://nmap.org/book/nmap-services.html">Well Known Port List:
+ <option>nmap-services</option></ulink></quote> per maggiori
+ informazioni sulle "port frequencies"). Se la "port frequency
+ information" non è disponibile, forse perché si sta utilizzando un
+ file <filename moreinfo="none">nmap-services</filename>
+ personalizzato, Nmap scansiona tutte le porte nominate più le porte
+ nell'intervallo 1-1024. In questo caso, l'opzione
+ <option>-F</option> indica di scansionare solo le porte che sono
+ presenti nel file <filename
+ moreinfo="none">nmap-services</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option> (Don't randomize ports)</term>
+
+ <listitem>
+ <para>Di default, Nmap effettua la scansione delle porte in ordine
+ casuale (tranne che per alcune porte comuni che vengono controllate
+ per prime per motivi di efficienza). La scansione delle porte in
+ ordine casuale è tipicamente un vantaggio, ma è possibile
+ utilizzare l'opzione <option>-r</option> così da effettuare i
+ controlli in ordine sequenziale crescente.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--port-ratio &lt;ratio&gt;&lt;decimal number between 0
+ and 1&gt;</option>
+ </term>
+
+ <listitem>
+ <para>Scansiona tutte le porte presenti nel file <filename
+ moreinfo="none">nmap-services</filename> con un rapporto maggiore
+ di quello indicato. <replaceable>ratio</replaceable> deve essere
+ compreso tra 0.0 e 1.1.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--top-ports &lt;n&gt;</option>
+ </term>
+
+ <listitem>
+ <para>Scansiona le <replaceable>n</replaceable> porte presenti nel
+ file <filename moreinfo="none">nmap-services</filename> con il
+ maggior rapporto, dopo aver escluso tutte le porte indicate in
+ <option>--exclude-ports</option>. <replaceable>n</replaceable> deve
+ essere maggiore o uguale a 1.
+ </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
+ è possibile scoprire che le porte 25/tcp, 80/tcp e 53/udp sono aperte.
+ Utilizzando il suo database di circa 2.200 servizi noti, contenuto nel
+ file <filename moreinfo="none">nmap-services</filename>, Nmap
+ probabilmente sarà in grado di indicare che ti tratta rispettivamente
+ di un mail server (SMTP), di un web server (HTTP) e di un name server
+ (DNS). Tale riconoscimento è solitamente accurato - la maggior parte dei
+ demoni in ascolto sulla porta 25 sono, in effetti, mail server. Non è
+ comunque opportuno fidarsi ciecamente di tali indicazioni! È 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 DNS, queste
+ informazioni non sono esaustive. Quando si eseguono dei "vulnerability
+ assessments" (o anche semplicemente un inventario della rete) della
+ vostra società o di clienti, è interessante sapere esattamente di che
+ mail e DNS server si tratta e quale versione è in uso. Conoscere
+ accuratamente la versione del software è di fondamentale importanza per
+ determinare a quali exploits è vulnerabile il server. Version detection
+ è di grande aiuto 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 istruzioni per
+ interrogare i vari servizi e per interpretarne le risposte. Nmap cerca
+ quindi di determinare di che servizio si tratta (ad esempio FTP, SSH,
+ Telnet, HTTP), il nome dell'applicazione (ad esempio ISC BIND, Apache
+ httpd, Solaris telnetd), la versione, l'hostname, il tipo di device (ad
+ esempio stampante, router), la famiglia del sistema operativo (ad esempio
+ Windows, Linux). Quando possibile Nmap restituisce anche la
+ rappresentazione CPE ("Common Platform Enumeration") di questa
+ informazione. Alle volte sono disponibili altri dettagli come l'apertura
+ di un X server alle connessioni, la versione del protocollo SSH o
+ l'utenza utilizzata da KaZaA. Ovviamente la maggior parte dei servizi
+ non rilasciano tutte queste informazioni. Se Nmap viene compilato con il
+ supporto per OpenSSL, sarà in grado di connettersi ai server SSL per
+ dedurre quale tipo di servizio viene offerto dietro al suo "encryption
+ layer". Alcune delle porte UDP vengono indicate come <literal
+ moreinfo="none">open|filtered</literal> se un UDP port scan non è in
+ grado di determinare con precisione se la porta è open o filtered. Il
+ version detection cercherà di ottenere una risposta da queste porte
+ (esattamente come per le porte aperte), e modificherà lo stato in
+ <literal moreinfo="none">open</literal> se ci riuscirà. Le porte TCP
+ <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. Il version detection
+ viene descritto nel dettaglio in <ulink
+ url="https://nmap.org/book/vscan.html">Chapter 7, Service and Application
+ Version Detection</ulink>.</para>
+
+ <para>Quando i servizi RPC vengono identificati, Nmap è in grado di
+ raffinare quanto rilevato così da riconoscere versione e nome del
+ servizio RPC. Inonda tutta le porte TCP/UDP rilevate come RPC con dei
+ comandi NULL del programma SunRPC con lo scopo di determinare se sono
+ effettivamente porte RPC e, nel caso, il programma e la versione che sono
+ in esecuzione. Quindi si possono effettivamente ottenere le stesse
+ informazioni del comando <command moreinfo="none">rpcinfo -p</command>
+ anche se il portmapper dell'obiettivo e dietro un firewall (o protetto da
+ TCP wrappers). I decoy attualmente non funzionano con l'RPC scan.</para>
+
+ <para>Quando Nmap riceve delle risposte da un servizio ma non è in
+ grado di trovarne un'interpretazione 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. È importante perdere qualche minuto per
+ effettuare l'invio di questi dati quando possibile perché così facendo
+ chiunque in futuro potrà beneficiare dei dati raccolti e riconoscere
+ anche questo servizio. Grazie a questo sistema Nmap è in grado di
+ identificare circa 6.500 differenti varianti per più di 650 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, è possibile utilizzare l'opzione
+ <option>-A</option> che attiva il version detection, tra le altre
+ cose.</para>
+
+ <para><option>-sR</option> è un alias <option>-sV</option>. Fino a
+ Marzo 2011 era usata per attivare l'RPC separatamente dal version
+ detection, ma ora queste opzioni sono sempre combinate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--allports</option> (Don't exclude any ports from
+ version detection)</term>
+
+ <listitem>
+ <para>Normalmente, il version detection di Nmap non invia pacchetti
+ alla porta TCP 9100 poiché 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 di sessioni SSL e
+ via discorrendo. È 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>, così 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>
+ (Set version scan intensity)</term>
+
+ <listitem>
+ <para>Quando si effettua un version scan (<option>-sV</option>),
+ Nmap invia una serie di probe, ognuno dei quali ha assegnato un
+ valore compreso tra 1 e 9. I pacchetti con valore più basso sono in
+ grado di riconoscere i servizi comunemente diffusi, mentre quelli
+ con valori più alti sono raramente necessari. Il livello di
+ accuratezza specifica quali probe devono essere impiegati; più alto
+ è il livello, più è probabile che il servizio venga correttamente
+ identificato. D'altro canto, più una scansione è accurata e più
+ tempo sarà necessario. I valori devono essere compresi tra 0 e 9;
+ il valore di default è 7. Quando viene assegnato direttamente un
+ probe 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; così come in caso di porta 443
+ vengano invece utilizzati quelli per l'SSL e così via.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--version-light</option> (Enable light mode)</term>
+
+ <listitem>
+ <para>Questa opzione è un alias di
+ <option>--version-intensity 2</option>. Questa modalità rende il
+ version scanning drasticamente più veloce, riducendone però la
+ capacità di identificare accuratamente i servizi.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--version-all</option> (Try every single probe)</term>
+
+ <listitem>
+ <para>Questa opzione è equivalente a
+ <option>--version-intensity 9</option>, assicurando che ogni
+ singolo probe venga utilizzato su ogni singola porta.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--version-trace</option> (Trace version scan
+ activity)</term>
+
+ <listitem>
+ <para>Indica a Nmap di visualizzare informazioni di debug estese
+ relative all'attività del version scanning. È un subset di
+ quanto si ottiene con l'opzione
+ <option>--packet-trace</option>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-os-detection">
+ <title>OS Detection</title>
+
+ <para>Una delle più famose caratteristiche di Nmap è la possibilità
+ di identificare da remoto 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 "IP ID Sampling" ed il controllo del
+ window size iniziale, Nmap compara i risultati con il suo database
+ (<filename moreinfo="none">nmap-os-db</filename>) contenente più di
+ 2.600 fingerprint conosciuti e ne visualizza i dettagli se ne trova
+ riscontro. Ogni fingerprint comprende una descrizione del sistema
+ operativo ed una classificazione che indica 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). Molti fingerprint hanno anche la rappresentazione CPE
+ (Common Platform Enumeration), come ad esempio <literal
+ moreinfo="none">cpe:/o:linux:linux_kernel:2.6</literal>.</para>
+
+ <para>Se Nmap non è in grado di indovinare il sistema operativo di una
+ macchina e le condizioni sono propizie (ad esempio una porta trovata
+ aperta ed una trovata chiusa), Nmap fornirà una URL che potrà essere
+ utilizzata per inviare il fingerprint (nel solo caso che si conosca con
+ certezza il sistema operativo dell'host in questione). Inviando questi
+ fingerprint è possibile contribuire ad ampliare la gamma di sistemi
+ operativi conosciuti da Nmap, così da renderlo più accurato per
+ tutti.</para>
+
+ <para>L'OS detection abilita diversi altri test che utilizzano le
+ informazioni che sono state ottenute durante questo processo. Un di
+ questi è il "TCP Sequence Predictability Classification". Questo test
+ misura approssimativamente quanto è difficile stabilire una "forged
+ TCP connection" verso l'host remoto. È utile per sfruttare exploit basati
+ sul controllo del source-IP (rlogin, filtri firewall, ecc.) o per
+ nascondere la sorgente di un attacco. Questo tipo di spoofing viene
+ raramente eseguito, ma molte macchine sono ancora vulnerabili ad esso. Il
+ valore che indica la difficoltà è basato su campionamenti statistici e
+ può variare. Generalmente è preferibile utilizzare la classificazione
+ verbale, come <quote>worthy challenge</quote> o <quote>trivial
+ joke</quote>, che viene riportata solo nel normale output in modalità
+ "verbose" (<option>-v</option>). Quando questa modalità è abilitata
+ insieme all'opzione <option>-O</option>, viene anche riportata la
+ sequenza di generazione dell'IP ID. La maggior parte delle macchine è
+ nella classe <quote>incremental</quote>, il che significa che
+ incrementano il campo ID dell'header IP per ogni pacchetto inviato. Ciò
+ le rende vulnerabili a diversi attacchi avanzati di spoofing ed
+ "information gathering".</para>
+
+ <para>Altre informazioni extra abilitate dall'OS detection riguardano
+ il tempo di attività (uptime) dell'obiettivo. Sfruttando l'opzione TCP
+ timestamp (<ulink url="http://www.rfc-editor.org/rfc/rfc1323.txt">RFC
+ 1323</ulink>) cerca di indovinare quando una macchina ha effettuato
+ l'ultimo reboot. Quest'informazione può non essere affidabile, in quanto
+ il contatore del timestamp potrebbe non venire inizializzato a zero+
+ oppure andare in overflow ed essere troncato, quindi è riportato solo
+ nella modalità "verbose".</para>
+
+
+ <para>L'OS detection viene trattato nel dettaglio in <ulink
+ url="https://nmap.org/book/osdetect.html">Chapter 8, Remote OS
+ Detection</ulink>.</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, è possibile utilizzare l'opzione <option>-A</option>
+ per attivare sia l'OS detection, tra le altre cose.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--osscan-limit</option> (Limit OS detection to
+ promising targets)</term>
+
+ <listitem>
+ <para>L'OS detection è molto più efficace se vengono rilevate
+ almeno una porta TCP aperta ed una chiusa. Utilizzando questa
+ opzione Nmap non cercherà di effettuare l'OS detection sugli host
+ che non rispondo a questo criterio. È così possibile un
+ sensibile risparmio di tempo, specialmente se si utilizza anche
+ l'opzione <option>-Pn</option> su molti host. È importante
+ unicamente quando l'OS detection è richiesto attraverso 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 è in grado di rilevare una corrispondenza
+ esatta dell'OS, propone come possibilità gli OS più vicini alla
+ rilevazione. La corrispondenza però deve essere molto simile
+ perché Nmap lo faccia di default. Entrambe queste opzioni
+ (equivalenti) fanno si che Nmap proceda con il riconoscimento
+ dell'OS in modo più aggressivo. Nmap farà comunque presente quando
+ corrispondenze non perfette vengono mostrate e per ognuna ne
+ indicherà il livello di approssimazione (in percentuale).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--max-os-tries</option>(Set the maximum number of OS
+ detection tries against a target)</term>
+
+ <listitem>
+ <para>Quando Nmap esegue un OS detection su di un obiettivo e non
+ riesce a trovare una corrispondenza perfetta, solitamente ripete il
+ tentativo. Di default, Nmap prova cinque volte, se le condizioni
+ sono favorevoli per l'invio del fingerprint, e due volte se invece
+ non lo sono. Specificando un valore più piccolo (ad esempio 1)
+ nell'opzione <option>--max-os-tries</option>, si aumentano le
+ performance di Nmap a discapito di una potenziale identificazione
+ del sistema operativo. Per contro, un valore più alto permette più
+ tentativi, se le condizioni sono favorevoli. Questo raramente
+ avviene, se non per creare migliori fingerprint da integrare nel
+ database di Nmap.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-nmap-scripting-engine">
+ <title>Nmap Scripting Engine (NSE)</title>
+
+ <para>L'Nmap Scripting Engine (NSE) è una delle feature più potenti e
+ flessibili di Nmap. Permette agli utenti di scrivere (e condividere)
+ semplici script (utilizzando il <ulink
+ url="http://lua.org/">linguaggio di programmazione Lua</ulink>) per
+ automatizzare un gran varietà di networking task. Questi script
+ vengono eseguito in parallelo con la velocità e l'efficienza che ci si
+ aspetta da Nmap. Gli utenti possono fare affidamento sui crescenti e
+ diversi set di script distribuiti da Nmap, oppure scriverli loro stessi
+ in base alle proprie necessità.</para>
+
+ <para>I task che abbiamo preso in considerazione quando abbiamo creato il
+ sistema includono il network discovery, version detection più
+ sofisticate, il vulnerability detection. NSE può anche essere usato
+ per la vulnerability exploitation.</para>
+
+ <para>Per riflettere i differenti usi e semplificare la scelta di
+ quale utilizzare, ogni script contiene un campo associato con una o
+ più categorie. Attualmente le categorie definite sono
+ <literal moreinfo="none">auth</literal>, <literal
+ moreinfo="none">broadcast</literal>,
+ <literal moreinfo="none">default</literal>, <literal
+ moreinfo="none">discovery</literal>,
+ <literal moreinfo="none">dos</literal>, <literal
+ moreinfo="none">exploit</literal>,
+ <literal moreinfo="none">external</literal>, <literal
+ moreinfo="none">fuzzer</literal>,
+ <literal moreinfo="none">intrusive</literal>, <literal
+ moreinfo="none">malware</literal>,
+ <literal moreinfo="none">safe</literal>, <literal
+ moreinfo="none">version</literal> e
+ <literal moreinfo="none">vuln</literal>. Queste sono tutte descritte
+ nella sezione <quote><ulink
+ url="https://nmap.org/book/nse-usage.html#nse-categories">Script
+ Categories</ulink></quote>.</para>
+
+ <para>Gli script non vengono eseguiti in una sandbox e quindi
+ possono, accidentalmente o maliziosamente, danneggiare il sistema su
+ cui vengono eseguiti o invadere la propria privacy. Non eseguire mai
+ script di terze parti se non si ha la fiducia degli autori o non si
+ ha preventivamente controllato personalmente gli script.</para>
+
+ <para>L'Nmap Scripting Engine è descritto nel dettaglio in <ulink
+ url="https://nmap.org/book/nse.html">Chapter 9, Nmap Scripting
+ Engine</ulink> e viene controllato dalle seguenti opzioni:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-sC</option></term>
+
+ <listitem>
+ <para>Esegue uno script scan utilizzando il set di script di
+ default. È l'equivalente di <option>--script=default</option>.
+ Alcuni degli script in questa categoria vengono considerati
+ intrusivi e potrebbero non essere eseguiti su di un obiettivo
+ di rete senza permessi.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script
+ &lt;filename&gt;|&lt;category&gt;|&lt;directory&gt;|&lt;expression&gt;[,...]</option>
+ </term>
+
+ <listitem>
+ <para>Esegue uno script scan utilizzando una lista, separata da
+ virgole, di file, categorie di script e directory. Ogni
+ elemento nella lista può anche essere un'espressione booleana
+ che descrive un più complesso set di script. Gli elementi
+ vengono interpretati prima come un'espressione, poi come una
+ categoria e infine come il nome di file o di una
+ directory.</para>
+
+ <para>Sono presenti due feature speciali dedicate agli utenti
+ esperti. La prima consiste nell'aggiungere come prefisso al nome
+ degli script e alle espressioni il carattere <literal
+ moreinfo="none">+</literal> per forzarne l'esecuzione anche quando
+ non verrebbe fatta (ad esempio quando il relativo servizio non è
+ stato trovato sulla porta dell'host). L'altra feature è l'argomento
+ <option>all</option> che può essere utilizzato per specificare
+ tutti gli script nel database di Nmap. Usare con cautela questa
+ funzionalità dato che NSE contiene script pericolosi come exploit,
+ "brute force authentication crackers" e attacchi "denial of
+ service".</para>
+
+ <para>I percorsi dei file e delle directory possono essere sia
+ relativi che assoluti. I percorsi assoluti sono diretti, mentre
+ quelli relativi vengono ricercati nelle cartelle <literal
+ moreinfo="none">scripts</literal> presenti in ogni seguente
+ locazione:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>--datadir</option></term>
+ </varlistentry>
+ <varlistentry>
+ <term><option>$NMAPDIR</option></term>
+ </varlistentry>
+ <varlistentry>
+ <term><filename moreinfo="none">~/.nmap</filename> (non
+ usato in Windows)</term>
+ </varlistentry>
+ <varlistentry>
+ <term><filename
+ moreinfo="none">&lt;HOME&gt;\AppData\Roaming\nmap</filename>
+ (usato solo in Windows)</term>
+ </varlistentry>
+ <varlistentry>
+ <term>la directory contenente l'eseguibile di Nmap</term>
+ </varlistentry>
+ <varlistentry>
+ <term>la directory contenente l'eseguibile di Nmap,
+ seguita da <filename
+ moreinfo="none">../share/nmap</filename></term>
+ </varlistentry>
+ <varlistentry>
+ <term><option>NMAPDATADIR</option></term>
+ </varlistentry>
+ <varlistentry>
+ <term>La directory corrente</term>
+ </varlistentry>
+ </variablelist>
+
+ <para> Quando viene specificata una directory, Nmap carica ogni
+ file in quella directory che ha come estensione <literal
+ moreinfo="none">.nse</literal>. Tutti gli altri file verranno
+ ignorati e la directory non verrà scansionata in modo
+ ricorsivo. Quando viene specificato un file, bisogna omettere
+ l'estensione <literal moreinfo="none">.nse</literal>, verrà
+ aggiunta automaticamente se necessario.</para>
+
+ <para>Gli script Nmap sono archiviati di default in una
+ subdirectory <literal moreinfo="none">scripts</literal> della
+ directory principale di Nmap (vedi <ulink
+ url="https://nmap.org/book/data-files.html">Chapter 14,
+ Understanding and Customizing Nmap Data Files</ulink>). Per
+ migliorare l'efficienza, gli script vengono indicizzati nel
+ database <filename
+ moreinfo="none">scripts/script.db</filename>, che elenca le
+ categorie cui ogni script appartiene.</para>
+
+ <para>Quando si usa il nome dagli script come riferimento dal
+ file <filename moreinfo="none">script.db</filename>, si può
+ utilizzare come nella shell il carattere speciale
+ <quote>*</quote>.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command moreinfo="none">nmap --script
+ "http-*"</command> </term>
+
+ <listitem>
+ <para>Carica tutti gli script il cui nome inizia con
+ <literal moreinfo="none">http-</literal>, come <literal
+ moreinfo="none">http-auth</literal> e <literal
+ moreinfo="none">http-open-proxy</literal>. L'argomento di
+ <option>--script</option> è stato messo tra apici per
+ proteggere il carattere speciale dall'interpretazione della
+ shell.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Selezioni più complesse di script possono essere eseguite
+ utilizzando gli operatori <literal
+ moreinfo="none">and</literal>, <literal
+ moreinfo="none">or</literal> e <literal
+ moreinfo="none">not</literal> costruendo così espressioni booleane.
+ Gli operatori hanno la stessa precedenza che hanno in Lua: <literal
+ moreinfo="none">not</literal> è il più alto, seguito dal <literal
+ moreinfo="none">and</literal> e quindi <literal
+ moreinfo="none">or</literal>. Si può modificare la precedenza
+ utilizzando le parentesi. Dato che le espressioni contengono
+ caratteri di spazio, è necessario racchiuderle tra apici
+ (quote).</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command moreinfo="none">nmap --script
+ "not intrusive"</command></term>
+
+ <listitem>
+ <para>Carica tutti gli script tranne quelli nella
+ categoria <literal
+ moreinfo="none">intrusive</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command moreinfo="none">nmap --script "default or
+ safe"</command></term>
+
+ <listitem>
+ <para>Questa funzionalità è l'equivalente di <command
+ moreinfo="none">--script "default,safe"</command>.
+ Carica tutti gli script che sono nelle categorie
+ <literal moreinfo="none">default</literal>, <literal
+ moreinfo="none">safe</literal> o in entrambe.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command moreinfo="none">nmap --script "default and
+ safe"</command></term>
+
+ <listitem>
+ <para>Carica gli script che sono in
+ <emphasis>entrambe</emphasis> le categorie <literal
+ moreinfo="none">default</literal> e <literal
+ moreinfo="none">safe</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command moreinfo="none">nmap --script "(default or
+ safe or intrusive) and not http-*"</command></term>
+
+ <listitem>
+ <para>Carica gli script che sono nelle categorie
+ <literal moreinfo="none">default</literal>, <literal
+ moreinfo="none">safe</literal> o <literal
+ moreinfo="none">intrusive</literal> tranne quelli il
+ cui nome inizia con <literal
+ moreinfo="">http-</literal>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-args
+ &lt;n1&gt;=&lt;v1&gt;,&lt;n2&gt;={&lt;n3&gt;=&lt;v3&gt;},&lt;n4&gt;={&lt;v4&gt;,&lt;v5&gt;}</option></term>
+
+ <listitem>
+ <para>Permette di fornire argomenti agli script NSE. Gli
+ argomenti sono una lista, separati da virgola, di coppie
+ <literal moreinfo="none">name=value</literal>. I nomi e i
+ valori possono essere stringhe senza spazi o i caratteri "{",
+ "}", "=" e ",". Per includere uno di questi caratteri in una
+ stringa, si deve racchiudere la stringa tra apici singoli o
+ doppi. Il carattere "\" (backslash) in una stringa tra apici,
+ annulla la funzionalità dell'apice. Il backslash viene
+ interpretato in questo modo solo in questo caso particolare,
+ negli altri casi viene considerato "letteralmente". I valori
+ possono anche essere elenchi racchiusi tra parentesi graffe
+ ("{}"), così come in Lua. Un elenco può contenere valori, nella
+ forma di semplici stringhe, oppure altre coppie di nomi-valori;
+ sono consentiti anche gli elenchi annidati. Alcuni script
+ definiscono i loro argomenti con il nome dello script, ad
+ esempio <literal
+ moreinfo="none">xmpp-info.server_name</literal>. Si può
+ utilizzare questa identificazione per agire solo sullo script
+ specificato, oppure utilizzare la versione non identificativa
+ (<literal moreinfo="none">server_name</literal> in questo caso)
+ per agire su tutti gli script che utilizzano questo argomento.
+ Uno script controllerà prima gli argomenti a lui identificati
+ (il nome degli argomenti è specificato nella documentazione
+ dello script) prima di accettare un argomento non qualificato.
+ Un esempio complesso è <option>--script-args
+ 'user=foo,pass=",{}=bar",whois={whodb=nofollow+ripe},xmpp-info.server_name=localhost'</option>.
+ L'NSE Documentation Portal all'indirizzo <ulink
+ url="https://nmap.org/nsedoc/" /> elenca gli argomenti che ogni
+ script accetta.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-args-file &lt;filename&gt;</option></term>
+
+ <listitem>
+ <para>Permette di passare gli argomenti agli script NSE tramite
+ un file. Ogni argomento sulla riga di comando sostituisce
+ quelli nel file. Il percorso del file può essere assoluto o
+ relativo e, in quest'ultimo caso, farà riferimento al solito
+ percorso di ricerca di Nmap (NMAPDIR, ecc.). Gli argomenti
+ possono essere separati da virgola o da un carattere di a-capo,
+ ma devono seguire le stesse regole di
+ <option>--script-args</option>, senza però particolari apici
+ dato che non vengono elaborati dalla shell.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-help
+ &lt;filename&gt;|&lt;category&gt;|&lt;directory&gt;|&lt;expression&gt;|all[,...]</option></term>
+
+ <listitem>
+ <para>Mostra l'help degli scripts. Per ogni script specificato,
+ Nmap restituisce il nome, le categorie cui appartiene e la sua
+ descrizione. La sintassi è la stessa dell'opzione
+ <option>--script</option>; quindi per esempio se si volesse
+ l'help dello script <literal
+ moreinfo="none">ftp-anon</literal>, si dovrà eseguire il
+ comando <command moreinfo="none">nmap --script-help
+ ftp-anon</command>. Oltre all'help per gli script individuali,
+ si potrà anche ottenere l'anteprima di cosa lo script
+ eseguirà secondo una specifica, ad esempio <command
+ moreinfo="none">nmap --script-help default</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-trace</option></term>
+
+ <listitem>
+ <para>Quest'opzione è come l'opzione
+ <option>--packet-trace</option>, solo un livello ISO più in
+ alto. Se viene specificata quest'opzione, tutte le
+ comunicazioni in entrata ed in uscita eseguite da uno script
+ vengono mostrate. Queste informazioni includono il protocollo
+ di comunicazione, la sorgente, l'obiettivo e i dati trasmessi.
+ Se più del 5% di tutti i dati trasmessi non sono stampabili a
+ video, allora l'output sarà in esadecimale. Indicando l'opzione
+ <option>--packet-trace</option> anche lo script tracing verrà
+ abilitato.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--script-updatedb</option></term>
+
+ <listitem>
+ <para>Quest'opzione aggiorna il database degli script che si
+ trova nel file <filename
+ moreinfo="none">scripts/script.db</filename>, il quale viene
+ utilizzato da Nmap per determinare gli script e le categorie di
+ default. È necessario aggiornare il database solo se vengono
+ aggiunti o rimossi script NSE dalla directory di default o se
+ sono state cambiate le categorie di qualche script.
+ Quest'opzione viene generalmente utilizzata da sola: <command
+ moreinfo="none">nmap --script-updatedb</command>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-performance">
+ <title>Timing and Performance</title>
+
+ <para>Le performance sono sempre state una delle principali
+ priorità durante lo sviluppo di Nmap. Una scansione di default
+ (<command moreinfo="none">nmap
+ <replaceable>hostname</replaceable></command>) di un host in una
+ rete locale richiede circa un quinto di secondo, poco più di un
+ battito di ciglia. Tuttavia esso aumenta quando si sta effettuando
+ una scansione di centinaia o 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 avanzati
+ per diminuire il tempo totale impiegato, l'utente ha comunque il
+ controllo finale sulle modalità in cui Nmap viene eseguito. Un utente
+ esperto userà quindi comandi specifici per ottenere solo le
+ informazioni di cui ha bisogno, restando però 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 perché spesso gli aggiornamenti includono
+ miglioramenti delle performance). Anche ottimizzare i parametri di
+ timing è 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 quantità di tempo
+ in secondi (di default), ma è possibile aggiungere 'ms', 's', 'm' o
+ 'h' per indicare millisecondi, secondi, minuti oppure ore. Ad
+ esempio, per il parametro <option>--host-timeout</option> gli
+ argomenti <literal moreinfo="none">900000ms</literal>, <literal
+ moreinfo="none">900</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;numhosts&gt;</option>;
+ <option>--max-hostgroup &lt;numhosts&gt;</option> (Adjust
+ parallel scan group sizes)</term>
+
+ <listitem>
+ <para>Nmap ha l'abilità di effettuare port scan o version
+ scan su più 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
+ portano ad una migliore efficienza. Il lato negativo di tutto
+ ciò è che i risultati non possono essere mostrati all'utente
+ fino a quando l'intero gruppo non è stato esplorato
+ completamente. Quindi, se si lancia Nmap impostando la
+ dimensione del gruppo a 50, l'utente non vedrà alcun risultato
+ fino a quando i primi 50 host non sono stati completati (a meno
+ che non si selezioni la modalità verbose).</para>
+
+ <para>Di default, Nmap usa un compromesso per ovviare a questa
+ difficoltà. Inizialmente utilizza una dimensione di cinque
+ host in modo da mostrare i primi risultati velocemente,
+ dopodiché 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
+ oltrepasserà mai questo limite. Specificando invece una
+ dimensione minima con <option>--min-hostgroup</option>
+ obbligherà Nmap a usare dimensioni almeno equivalenti. Nmap
+ potrebbe tuttavia dover usare gruppi più 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>Queste opzioni durante la fase di host discovery di una
+ scansione non hanno effetto; ciò include anche il plain ping
+ scan (<option>-sn</option>). L'host discovery lavora sempre su
+ grandi gruppi di host per aumentare la velocità e
+ l'accuratezza.</para>
+
+ <para>L'utilizzo principale di queste opzioni è quello di
+ specificare una dimensione minima maggiore rispetto al default
+ in modo da rendere più veloce la scansione globale. Una scelta
+ piuttosto comune è 256 per una scansione di una rete di classe
+ C. Per una scansione con molte porte, eccedere questo numero
+ è improbabile che aiuti molto. Per una scansione con poche
+ porte invece, una dimensione di 2048 o più può essere
+ d'aiuto.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--min-parallelism &lt;numprobes&gt;</option>;
+ <option>--max-parallelism &lt;numprobes&gt;</option>
+ (Adjust probe parallelization)</term>
+
+ <listitem>
+ <para>Queste opzioni controllano il numero totale di probe che
+ possono 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'è 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 fino a quando la
+ rete lo permette. Questa opzione limiti minimi o massimi alla
+ variabile. Di default, il parallelismo può arrivare ad
+ un minimo di 1 se la rete si dimostra essere poco affidabile;
+ può invece aumentare a diverse centinaia per una rete in
+ condizioni ottimali.</para>
+
+ <para>L'uso più 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. È abbastanza rischioso giocare con
+ quest'opzione, in quanto impostandola ad un valore troppo alto
+ può influire negativamente sull'accuratezza. Impostandola
+ manualmente inoltre riduce l'abilità di Nmap di controllare
+ dinamicamente il parallelismo basandosi sulle condizioni della
+ rete. Un valore di 10 è 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
+ più di un probe alla volta verso un determinato host. L'opzione
+ <option>--scan-delay</option> (discussa in seguito), è un altro
+ modo per ottenere questo risultato.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--min-rtt-timeout &lt;time&gt;</option>,
+ <option>--max-rtt-timeout &lt;time&gt;</option>,
+ <option>--initial-rtt-timeout &lt;time&gt;</option> (Adjust probe
+ timeouts)</term>
+
+ <listitem>
+ <para>Nmap mantiene un valore di timeout aggiornato per
+ determinare quanto ci vorrà per un probe response prima di
+ ritrasmettere il probe. Questo viene calcolato basandosi sui
+ tempi di response degli ultimi probe inviati. La formula si
+ trova al link <ulink
+ url="https://nmap.org/book/scan-methods.html#port-scanning-algorithms"><quote>Idle
+ Scan Implementation Algorithms</quote></ulink>. Se la latenza
+ della rete dovesse oscillare troppo questo timeout può
+ crescere fino ad un valore di diversi secondi. Inoltre esso è
+ 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>Specificando limiti di <option>--max-rtt-timeout</option>
+ e di <option>--initial-rtt-timeout</option> inferiori ai
+ valori di default è possibile ridurre di molto i tempi di
+ scansione. Questo è vero in particolare per scansioni di tipo
+ "pingless" (opzione <option>-Pn</option>) e nei confronti di
+ reti particolarmente protette. Tuttavia, è bene non esagerare;
+ infatti la scansione può addirittura richiedere più 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 (<option>--max-rtt-timeout 100ms</option>)è un
+ valore ragionevolmente aggressivo. Se nella scansione è
+ coinvolto qualche routing, sarebbe meglio effettuare un ping
+ preliminare dell'host (con l'utility ICMP ping o con un
+ generatore di pacchetti come Nping che può penetrare un
+ firewall più facilmente), e osservare poi il valore massimo di
+ andata/ritorno ("round trip") per un numero di pacchetti non
+ inferiore a 10. È 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> è usata
+ molto raramente; essa può essere utile nel caso in cui una
+ rete è talmente poco affidabile che anche il default di Nmap
+ risulta essere troppo aggressivo. Poiché Nmap riduce il timeout
+ fino al valore minimo quando la rete sembra affidabile, questa
+ esigenza di solito non è necessaria e dovrebbe essere
+ indicata come bug alla mailing list nmap-dev.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--max-retries &lt;numtries&gt;</option> (Specify
+ the maximum number of port scan probe retransmissions)</term>
+
+ <listitem>
+ <para>Quando Nmap non riceve risposta ad un port scan probe,
+ potrebbe significare che la porte è filtrata. O forse che la
+ risposta o il probe stesso si sono persi nella rete. È anche
+ possibile che l'host obiettivo abbia attivato dei limiti sul
+ traffico che bloccano la risposta. In questi questi, Nmap prova
+ nuovamente a ritrasmettere il probe iniziale e, se ritiene che
+ la rete sia poco affidabile, prova molte volte prima di passare
+ alla porta successiva. Nonostante il vantaggio
+ dell'accuratezza, tutto ciò prolunga i tempi di scansione.
+ Quando le performance sono al primo posto, si può velocizzare
+ le scansioni limitando il numero di ritrasmissioni consentite.
+ Si può addirittura indicare <option>--max-retries 0</option>
+ per disabilitare ogni ritrasmissione, anche se è consigliato
+ solo in quelle situazioni in cui la non risposta di alcune
+ porte e alcuni host è accettabile (ad esempio sondaggi interni
+ o test).</para>
+
+ <para>Di default (senza nessun template, opzione
+ <option>-T</option>) vengono effettuate dieci ritrasmissioni.
+ Se la rete risulta affidabile e gli host obiettivo non hanno
+ limitazioni, Nmap solitamente effettua una ritrasmissione.
+ Quindi la maggior parte degli obiettivi non viene coinvolta
+ abbassando <option>--max-retries</option> ad un valore basso,
+ ad esempio tre. Alcuni valori possono velocizzare sensibilmente
+ le scansioni di host piuttosto lenti. Di solito vengono perse
+ alcune informazioni quando Nmap scansiona le porte velocemente,
+ però è sempre meglio che lasciar scadere
+ <option>--host-timeout</option> e perdere tutte le informazioni
+ dell'obiettivo.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--host-timeout &lt;time&gt;</option> (Give up on
+ slow target hosts)</term>
+
+ <listitem>
+ <para>Alcuni host a volte richiedono un tempo estremamente
+ <emphasis>lungo</emphasis> per portare a termine una
+ scansione. Questo può essere dovuto a hardware o software
+ poco performante o inaffidabile, a limiti di traffico impostati
+ o a firewall troppo restrittivi. La minoranza degli host
+ sottoposti a scansione può richiedere la maggior parte del
+ tempo di scansione. A volte è preferibile risparmiare sul tempo
+ ed evitare questi host fin dal principio. Questo comportamento
+ viene forzato dall'opzione <option>--host-timeout</option>
+ seguito dal tempo dopo il quale non si vuole più aspettare. Ad
+ esempio si specifica un valore di 30m per avere la garanzia che
+ Nmap non sprechi più di mezz'ora su di un singolo host. Si noti
+ che Nmap può 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 né risultati di
+ version detection per quell'host.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--scan-delay &lt;time&gt;</option>;
+ <option>--max-scan-delay &lt;time&gt;</option> (Adjust delay
+ between probes)</term>
+
+ <listitem>
+ <para>Quest'opzione obbliga Nmap ad aspettare almeno il tempo
+ indicato 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 valore di
+ <option>--scan-delay</option> di 1s manterrà Nmap al di sotto
+ di questa particolare frequenza di invio di probe. Nmap
+ comunque cercherà di capire eventuali limiti sulla frequenza e
+ modificherà i ritardi sui probe di conseguenza, tuttavia non è
+ cattiva abitudine specificarlo sulla linea di comando quando
+ dovesse essere noto a priori il valore ottimale.</para>
+
+ <para>Quando Nmap aumenta lo scan delay in base al rate
+ limiting, la scansione rallenta drammaticamente. L'opzione
+ <option>--max-scan-delay</option> indica il valore massimo di
+ delay che Nmap può adottare. Un valore basso di quest'opzione
+ può velocizzare Nmap, ma ci sono dei rischi: settarlo troppo
+ basso può portare a ritrasmissioni inutili e una possibile
+ perdita di dati da porte che hanno rate limiting molto
+ ridotti.</para>
+
+ <para>Un altro uso dell'opzione<option>--scan-delay</option>
+ è quello in cui si desidera evitare sistemi anti-intrusione
+ (IDS/IPS, "intrusion-detection" e "intrusion-prevention
+ system"). Questa tecnica viene utilizzata nella sezione
+ <quote><ulink
+ url="https://nmap.org/book/firewalls.html#defeating-ids-snort-portscan">
+ A practical example: bypassing default Snort 2.2.0
+ rules</ulink></quote> per vincere il port scanner detector di
+ default in Snort IDS. Molti altri IDS possono essere sconfitti
+ con questo sistema.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--min-rate &lt;number&gt;</option>;
+ <option>--max-rate &lt;number&gt;</option> (Directly control the
+ scanning rate)</term>
+
+ <listitem>
+ <para>Il timing dinamico di Nmap fa un buon lavoro trovando una
+ velocità adeguata a ciò che si sta scansionando. Alle volte,
+ però, può succedere di conoscere uno scanning rate appropriato
+ per quella determinata rete, oppure bisogna finire una
+ scansione in un tempo preciso. O forse si vuole impedire ad
+ Nmap di scansionare troppo velocemente. Le opzioni
+ <option>--min-rate</option> e <option>--max-rate</option> sono
+ state create proprio per queste situazioni.</para>
+
+ <para>Quando viene definita l'opzione
+ <option>--min-rate</option> Nmap farà del suo meglio per
+ inviare i pacchetti non al di sotto del limite di frequenza
+ impostato. L'argomento è un numero reale positivo che
+ rappresenta la frequenza di invio dei pacchetti in
+ pacchetti/secondo. Per esempio, indicando
+ <option>--min-rate 300</option> significa che Nmap proverà a
+ mantenere una frequenza di invio di almeno 300 pacchetti al
+ secondo. Quest'opzione non impedisce ad Nmap di aumentare la
+ frequenza se le condizioni lo permettono.</para>
+
+ <para>Viceversa, <option>--max-rate</option> forza la
+ frequenza di invio dandogli un limite massimo. Utilizzare
+ <option>--max-rate 100</option>, ad esempio, per limitare
+ l'invio a 100 pacchetti al secondo su una rete veloce. Usare
+ <option>--max-rate 0.1</option> per una scansione lenta, un
+ pacchetto ogni dieci secondi. Entrambe le opzioni
+ <option>--min-rate</option> e <option>--max-rate</option>
+ mantengono la frequenza all'interno del range
+ specificato.</para>
+
+ <para>Queste due opzioni sono globali, hanno effetto cioè
+ sull'intera scansione, non sugli host individuali. Vanno ad
+ agire sui port scan e gli host discovery. Altre feature, come
+ l'OS detection, hanno le loro opzioni di timing.</para>
+
+ <para>Ci sono due casi in cui la frequenza potrebbe
+ scendere sotto il minimo richiesto. Il primo è impostare la
+ frequenza minima più alta di quanto Nmap riesca ad inviare, il
+ che dipende dall'hardware in uso. In questo casto Nmap invierà
+ i pacchetti il più velocemente possibile, ma bisogna comunque
+ essere consapevoli che ciò potrebbe causare un calo
+ dell'affidabilità. Il secondo caso è quando Nmap non ha nulla
+ da inviare, ad esempio alla fine di uno scan quando gli ultimi
+ probe sono stati inviati ed Nmap sta aspettando una risposta
+ o che vadano in time out. È normale che lo scanning rate cali
+ alla fine di una scansione o tra hostgroups. La frequenza di
+ invio potrebbe inoltre superare temporaneamente il massimo
+ prefissato, per far fronte a delay improvvisi, ma nella media
+ rimarrà comunque entro i limiti.</para>
+
+ <para>Specificare un rate minimo, è una cosa da fare con
+ attenzione. Effettuare una scansione più velocemente di quanto
+ una rete possa supportare potrebbe portare a risultati
+ inaffidabili. In alcuni casi, una frequenza troppo alta può
+ portare ad un scansione <emphasis>più lenta</emphasis> rispetto
+ ad una scansione con un rate più basso. Questo perché
+ l'algoritmo <ulink
+ url="https://nmap.org/book/scan-methods.html#scan-methods-adaptive-retransmission">adaptive
+ retransmission</ulink> di Nmap potrebbe rilevare una
+ congestione della rete causata da un eccessivo scanning rate e
+ aumentare il numero di ritrasmissioni per mantenere una certa
+ affidabilità. Quindi anche se i pacchetti verranno inviati
+ velocemente, ne verranno comunque inviati di più. Limitare il
+ numero massimo ritrasmissioni con l'opzione
+ <option>--max-retries</option> se si deve rispettare un tempo
+ massimo per la scansione totale.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--defeat-rst-ratelimit</option></term>
+ <listitem>
+ <para>Molti host usano da tempo delle funzionalità di "rate
+ limiting" (limitazioni alla frequenza) per ridurre il numero di
+ messaggi di errore ICMP che mandano (ad esempio gli errori
+ "port-unreachable"). Alcuni sistemi hanno iniziato ad applicare
+ le stesse tecniche all'invio di pacchetti RST (reset). Queste
+ tecniche possono rallentare di molto Nmap poiché esso
+ continuerà a calibrare la gestione dei timing per gestire
+ queste limitazioni di frequenza. Si può 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'utilizzo di quest'opzione può ridurre la precisione di
+ uno scan, poiché alcune porte potrebbero restituire uno stato
+ di non-risposta perché Nmap non è 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 è ricevuto un RST) in questo caso vengono indicate con
+ <literal moreinfo="none">filtered</literal> piuttosto che
+ <literal moreinfo="none">closed</literal>. Quest'opzione è
+ utile solo quando si è interessati alle porte aperte, e la
+ distinzione tra porte <literal moreinfo="none">closed</literal>
+ e <literal moreinfo="none">filtered</literal> non è di alcun
+ interesse rispetto al tempo che richiede.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--nsock-engine
+ epoll|kqueue|poll|select</option>
+ </term>
+ <listitem>
+ <para>Forza l'utilizzo di un determinato "nsock IO multiplexing
+ engine". Solo per il "<option>select(2)</option>-based fallback
+ engine" viene garantita la compatibilità con il sistema in uso.
+ Gli engine vengono dichiarati dopo il nome del "IO management
+ facility" cui fanno riferimento. Gli engine attualmente
+ implementati sono <literal moreinfo="none">epoll</literal>,
+ <literal moreinfo="none">kqueue</literal>, <literal
+ moreinfo="none">poll</literal> e <literal
+ moreinfo="none">select</literal>, ma non saranno tutti presenti
+ su tutte le piattaforme. Utilizzare <command
+ moreinfo="none">nmap -V</command> per sapere quali engine sono
+ supportati.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-T
+ &lt;paranoid|sneaky|polite|normal|aggressive|insane&gt;</option>
+ (Set a timing template)</term>
+
+ <listitem>
+ <para>Mentre le opzioni mostrate nella precedente sezione sono
+ molto utili ed efficaci alcuni potrebbero trovarle troppo
+ complicate da usare. Inoltre, la scelta dei valori più
+ appropriati può a volte richiedere più tempo della scansione
+ stessa che si sta cercando di ottimizzare. Nmap offre quindi un
+ approccio più semplice mediante sei "timing templates", ovvero
+ opzioni pre-impostate per regolare l'aggressività 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 modalità "gentile" rallenta
+ la scansione in modo da usare meno banda e risorse sulla
+ macchina bersaglio. La modalità "normale" è di default
+ (e pertanto l'opzione <option>-T3</option> non modifica nulla).
+ La modalità "aggressiva" incrementa la velocità assumendo che
+ si è su una rete veloce ed affidabile. Infine la modalità
+ "folle" dà per scontato che si è su una rete estremamente
+ veloce ed affidabile o che si vuole sacrificare l'accuratezza
+ in nome della velocità.</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 più 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 più 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 è consigliabile mantenere quell'opzione
+ (intesa come inserita all'inizio dei comandi) anche qualora si
+ dovessero aggiungere controlli più precisi in modo da
+ beneficiare da tutti i piccoli miglioramenti che dovessero
+ intervenire.</para>
+
+ <para>Se la propria connessione è 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 più sia troppo
+ aggressiva. Altri a volte usano l'opzione <option>-T2</option>
+ perché credono che sia meno propensa a mandare in crash un
+ host o perché si considerano persone educate. Spesso essi non
+ si rendono conto di quanto è lenta l'opzione <option>-T
+ polite</option>; una scansione di questo tipo può 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 è l'opzione consigliata a chi deve effettuare
+ scansioni senza dare troppo nell'occhio. Omettere una
+ scansione di tipo version detection è molto più 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, 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> è 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 1250ms --initial-rtt-timeout
+ 500ms --max-retries 6</option> e di impostare il ritardo
+ massimo per una scansione TCP a 10 millisecondi. Infine
+ l'opzione <option>T5</option> è equivalente a
+ <option>--max-rtt-timeout 300ms --min-rtt-timeout 50ms
+ --initial-rtt-timeout 250ms --max-retries 2 --host-timeout
+ 15m</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 connettività
+ universale è 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 connettività. 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 lasciò il posto a regole
+ stringenti sui canali di comunicazione approvati e sul contenuto che
+ può 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
+ migliorerà mai, perché limitare le differenze che permettono di
+ distinguere tra un apparecchio e un altro è 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'è sicura la propria rete è 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 attività di rete, le
+ aziende stanno sempre più tenendo sotto controllo il traffico con
+ sistemi anti-intrusione (IDS). La maggior parte di questi IDS è
+ configurato per accorgersi di una scansione di Nmap di default,
+ poiché 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, però, rilevare cattive intenzioni
+ analizzando semplicemente i dati contenuti nei pacchetti è un
+ problema difficile. Un attaccante con una buona dose di pazienza,
+ talento e l'aiuto di alcune opzioni di Nmap può 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
+ più facilmente da attaccanti piuttosto che da amministratori
+ attenti alle problematiche di sicurezza. Il problema con questo tipo
+ di ragionamento è che tali metodi verrebbero comunque usati da
+ attaccanti che potrebbero semplicemente usare altri strumenti o
+ modificare Nmap per fare ciò 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 è 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. È
+ un'attività 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 ciò che fanno.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-f</option> (fragment packets);
+ <option>--mtu</option> (using the specified 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 è quella di frammentare l'header TCP su più pacchetti, in
+ modo da rendere più 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 difficoltà a
+ gestire pacchetti di dimensione troppo piccola. Il vecchio tool
+ "Sniffit" andava in segmentation fault non appena riceveva il
+ primo frammento. Specificando quest'opzione una volta Nmap
+ dividerà i pacchetti in piccoli insiemi di al più 8 byte
+ ciascuno, inserendoli dopo l'header IP. In questo modo un
+ header TCP di 20 byte verrà diviso in tre pacchetti: due con
+ otto byte ciascuno e uno con i rimanenti quattro. E ovviamente
+ ogni frammento avrà un header IP. Specificando di nuovo
+ l'opzione <option>-f</option> si useranno insiemi di 16 byte
+ (riducendo così il numero di frammenti). In alternativa si può
+ indicare lo spiazzamento ("offset") desiderato mediante
+ l'opzione <option>--mtu</option>. Non si usi l'opzione
+ <option>-f</option> se si è usato <option>--mtu</option>.
+ L'offset 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 perché 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") è uno di questi. Si raccomanda
+ di effettuare la scansione mentre un packet sniffer (come
+ Wireshark) sta girando, in modo da avere la certezza che i
+ pacchetti inviati vengano 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&gt;[,&lt;decoy2&gt;][,ME][,...]</option>
+ (Cloak a scan with decoys)</term>
+
+ <listitem>
+ <para>Quest'opzione invoca una "decoy scan" (ovvero una
+ scansione utilizzando esche) che agli occhi dell'host di
+ destinazione apparirà come se provenisse dagli host
+ specificati come decoy. In questo modo l'IDS della rete
+ bersaglio mostrerà 5-10 port scan provenienti da indirizzi IP
+ singoli, e non potrà capire quale IP è veramente la sorgente
+ dell'attacco e quale IP è 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>Gli host decoy vanno separati con una virgola; è inoltre
+ 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 metterà
+ il vostro IP in una posizione a caso. Si può anche utilizzare
+ <option>RND</option> per generare un numero casuale di
+ indirizzi IP non riservati, oppure
+ <option>RND:<replaceable>number</replaceable></option> per
+ generare <replaceable>number</replaceable> indirizzi.</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 obiettivo. Inoltre diventerebbe
+ molto facile capire quale host è la causa della scansione, se
+ solo uno è attivo in una rete. È 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, ecc.)
+ sia durante la fase di port scanning effettiva. Infine i decoy
+ vengono usati durante l'OS detection remoto (opzione
+ <option>-O</option>). L'utilizzo dei decoy non è valido con
+ scansioni di tipo version detection o scansioni di tipo TCP
+ connect. Quando si hanno degli scan delay, il ritardo viene
+ applicato ad ogni blocco di probe, non ad ogni singolo probe.
+ Dato che i decoy vengono inviati tutti in una volta, potrebbero
+ temporaneamente violare i limiti di controllo sulla
+ congestione.</para>
+
+ <para>Inutile bisogna ricordare che l'uso di troppi decoy può
+ rallentare la propria scansione 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> (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 avvertirà della problematica). Se così fosse si può
+ 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> è in genere
+ richiesta per questo particolare utilizzo, e si consiglia
+ anche di usare <option>-Pn</option>. Da notare che così facendo
+ solitamente non si ricevono i pacchetti di risposta, saranno
+ infatti inviati all'indirizzo IP fasullo; Nmap di conseguenza
+ produrrà dei report inutili.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-e &lt;interface&gt;</option> (Use specified
+ interface)</term>
+
+ <listitem>
+ <para>Indica a Nmap quale 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
+ avvertirà.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--source-port &lt;portnumber&gt;; -g
+ &lt;portnumber&gt;</option> (Spoof source port number)</term>
+
+ <listitem>
+ <para>Un errore di configurazione sorprendentemente comune è
+ quello di fidarsi del traffico di rete basandosi solo sulla
+ porta di origine. È facile capire come può 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 più perché le risposte (sotto forma
+ di pacchetti UDP) provenienti da server esterni non possono più
+ entrare nella rete. Anche l'FTP è 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
+ fanno l'errore di lasciar passare il traffico proveniente da
+ queste porte. Essi spesso danno per scontato che nessun
+ attaccante potrebbe accorgersi di questi buchi di sicurezza e
+ approfittarne. In altri casi un amministratore può considerare
+ questa soluzione una misura temporanea fino a quando non
+ implementerà una soluzione migliore e più sicura e poi si
+ dimentica di farlo.</para>
+
+ <para>Gli amministratori di rete con troppe cose da fare non
+ sono gli unici a commettere questi errori. Molti prodotti sono
+ venduti con queste regole insicure; anche Microsoft è
+ 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 è 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 manderà pacchetti da
+ questa porta quando possibile. La maggior parte delle scansioni
+ TCP, incluse le scansioni SYN e UDP, supportano quest'opzione.
+ Tuttavia Nmap deve usare numeri di porta diversi per alcuni
+ test di OS detection perché essi funzionino a dovere; anche le
+ richieste DNS, i TCP connect scan, i version detection e gli
+ script scanning ignorano l'opzione
+ <option>--source-port</option> poiché Nmap si appoggia alle
+ librerie di sistema per gestirle.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--data &lt;hex string&gt;</option> (Append custom
+ binary data to sent packets)</term>
+
+ <listitem>
+ <para>Quest'opzione permette di includere valori binari come
+ dati nei pacchetti da inviare.
+ <replaceable>hex string</replaceable> può avere uno dei
+ seguenti formati: <option>0xAABBCCDDEEFF&lt;...&gt;</option>,
+ <option>AABBCCDDEEFF&lt;...&gt;</option> o
+ <option>\xAA\xBB\xCC\xDD\xEE\xFF&lt;...&gt;</option>. Alcuni
+ esempi sono <option>--data 0xdeadbeef</option> e <option>--data
+ \xCA\xFE\x09</option>. Da notare che se si indica un valore
+ come <option>0x00ff</option> nessuna conversione dell'ordine
+ dei byte viene effettuata. Fare in modo che l'informazione
+ indicata arrivi al destinatario con l'ordine dei byte che si
+ aspetta.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--data-string &lt;string&gt;</option> (Append
+ custom string to sent packets)</term>
+
+ <listitem>
+ <para>Quest'opzione permette di inviare una stringa come dati
+ nei pacchetti da inviare. <replaceable>string</replaceable> può
+ contenere qualsiasi stringa. Si noti comunque che alcuni
+ caratteri dipendono dal sistema in uso e il ricevente potrebbe
+ non ricevere la stessa informazione. Inoltre accertarsi di aver
+ racchiuso la string tra apici doppi ("") e di marcare con il
+ carattere di escape tutti i caratteri speciali interpretati
+ dalla shell. Alcuni esempi: <option>--data-string "Scan
+ conducted by Security Ops, extension 7192"</option> oppure
+ <option>--data-string "Ph34r my l33t skills"</option>.
+ Tenere a mente che nessuno può effettivamente vedere i commenti
+ lasciati da quest'opzione, a meno che non si stia monitorando
+ attentamente la rete con uno sniffer o delle regole IDS
+ personalizzate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--data-length &lt;number&gt;</option> (Append
+ random data to sent packets)</term>
+
+ <listitem>
+ <para>In genere Nmap invia pacchetti nella dimensione più
+ piccola possibile, contenenti soltanto l'header. Quindi i
+ pacchetti TCP sono in genere di 40 byte e le richieste ICMP
+ echo di 28 byte. Alcuni porte UDP e protocolli IP danno un
+ carico dati personalizzato di default. Quest'opzione indica a
+ Nmap di aggiungere un certo numero di byte casuali a quasi
+ tutti i pacchetti che invia e di non usare i valori specifici
+ del protocollo (Usare <option>--data-length 0</option> per
+ nessun valore random e nessun valore specifico del protocollo).
+ I pacchetti di OS detection (<option>-O</option>) tuttavia non
+ vengono modificati, perché 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 modalità.
+ Essa rallenta leggermente le performance ma ne può risultare
+ una scansione più accurata.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--ttl &lt;value&gt;</option> (Set IP time-to-live
+ field)</term>
+
+ <listitem>
+ <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> (Randomize target host
+ order)</term>
+
+ <listitem>
+ <para>Quest'opzione indica a Nmap di rimescolare l'ordine di
+ scansione di ogni gruppo di host (fino a 16384) prima di iniziare
+ la scansione. Questo può nascondere le scansioni a vari sistemi di
+ network monitoring, specialmente quando è affiancato a opzioni di
+ rallentamento ("slow timing"). Se si desidera un random su gruppi
+ di dimensione maggiore, è 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> (Spoof MAC address)</term>
+
+ <listitem>
+ <para>Richiede ad 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 può essere specificato in vari
+ formati: nel caso in cui sia semplicemente il numero "0", Nmap
+ sceglie un MAC completamente random per la sessione. Se la stringa
+ è un numero pari di simboli esadecimali (con le coppie separate
+ eventualmente dal simbolo di due punti), Nmap userà questo come
+ MAC. Se dovessero essere specificate meno di 12 cifre decimali,
+ Nmap riempirà il resto dei 6 byte con valori casuali. Se
+ l'argomento non è ne uno zero ne una stringa esadecimale, Nmap
+ cercherà 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 userà la
+ parte OUI del produttore (il prefisso di 3 byte) e riempirà i
+ restanti 6 byte 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>. Quest'opzione ha effetto solo sui
+ pacchetti raw, come nei SYN scan o negli OS detection, non sulle
+ feature "connection-oriented", come i version detection o
+ l'NSE.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--proxies &lt;Comma-separated list of proxy
+ URLs&gt;</option> (Relay TCP connections through a chain of
+ proxies)</term>
+
+ <listitem>
+ <para>Richiede ad Nmap ti stabilire connessioni TCP con l'obiettivo
+ attraverso una catena di uno o più proxy HTTP o SOCKS4. I proxy
+ possono aiutare a nascondere il sorgente reale di una scansione o
+ evadere certe restrizioni dei firewall, ma fanno calare la
+ performance della scansione aumentando la latenza. Si potrebbe,
+ di conseguenza, dover modificare i timeout di Nmap o altri
+ parametri di scansione; in particolar modo, un
+ <option>--max-parallelism</option> più basso potrebbe aiutare dato
+ che alcuni proxy non gestiscono diverse connessioni contemporanee,
+ come invece fa Nmap di default.</para>
+
+ <para>Quest'opzione riceve una lista di proxy come argomento,
+ espressa come URL nel formato <literal
+ moreinfo="none">proto://host:port</literal>. Utilizzare la virgola
+ come separatore di URL in una catena. È anche supportata la
+ non autenticazione. I protocolli sono HTTP e SOCKS4.</para>
+
+ <para>Attenzione: questa feature è ancora in fase di sviluppo ed
+ ha alcune limitazioni. È implementata con la libreria nsock e
+ quindi non ha effetto sui ping, i port scanning e la fase di OS
+ detection di una scansione. Solo l'NSE e i version scan ne traggono
+ beneficio finora, altre funzionalità potrebbero rivelare il
+ proprio vero indirizzo. Le connessioni SSL non sono ancora
+ supportate, così come la risoluzione DNS proxy-side (gli hostname
+ vengono sempre risolti da Nmap).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--badsum</option> (Send packets with bogus TCP/UDP
+ checksums)</term>
+
+ <listitem>
+ <para>Richiede ad Nmap di usare un checksum TCP o UDP non valido per
+ i pacchetti inviati alla macchina di destinazione. Poiché
+ teoricamente tutti gli stack IP degli host finiranno per ignorare
+ questi pacchetti, qualunque risposta ricevuta dovrà 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="https://nmap.org/p60-12.txt"/>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--adler32</option> (Use deprecated Adler32 instead of
+ CRC32C for SCTP checksums)</term>
+
+ <listitem>
+ <para>Richiede ad Nmap di usare l'algoritmo deprecato Adler32 per
+ calcolare il checksum SCTP. se <option>--adler32</option> non
+ viene impostato, viene usato CRC-32C (Castagnoli). L'<ulink
+ url="http://www.rfc-editor.org/rfc/rfc2960.txt">RFC 2960</ulink>
+ originariamente definisce Adler32 come l'algoritmo di checksum per
+ SCTP; L' <ulink
+ url="http://www.rfc-editor.org/rfc/rfc4960.txt">RFC 4960</ulink>
+ successivamente ha ridefinito il checksum SCTP specificando l'uso
+ di CRC-32C. Le implementazioni attuali SCTP dovrebbero
+ utilizzare CRC-32C, ma allo scopo di suscitare risposta dalle più
+ datate, è preferibile usare Adler32.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-output">
+ <title>Output</title>
+
+ <para>Qualunque tool di sicurezza è utile quanto l'output che esso stesso
+ genera. Test e algoritmi complessi sono di scarsa importanza se non
+ presentati in modo comprensibile e ben organizzato. Dato il grande numero
+ di modi in cui Nmap viene usato dagli utenti e da altro software, un
+ singolo formato non potrebbe soddisfare tutti. Per questo motivo Nmap
+ offre molti formati, inclusa la modalità interattiva per la lettura
+ diretta degli utenti, e il formato 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 verbosità dell'output, come anche dei
+ messaggi di debugging. I tipi di output possono essere mandati allo
+ standard output o a files, ai quali Nmap può accodare o sovrascrivere il
+ 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 è chiamato <literal moreinfo="none">interactive
+ output</literal>, e viene mandato allo standard output (stdout). Poi si
+ ha il <literal moreinfo="none">normal output</literal>, simile
+ all'interactive ad eccezione del fatto che mostra meno informazioni di
+ runtime e warnings, dal momento che si suppone che dovrà essere
+ analizzato dopo il completamento della scansione, piuttosto che
+ interattivamente.</para>
+
+ <para>L'<literal moreinfo="none">XML output</literal> è uno dei tipi di
+ output più importanti, dal momento che può essere convertito in HTML,
+ interpretato con facilità dai programmi (come ad esempio le interfacce
+ grafiche di Nmap) o importato in un database.</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 lo <literal
+ moreinfo="none">sCRiPt KiDDi3 0utPUt</literal> per gli utenti che si
+ considerano |&lt;-r4d.</para>
+
+ <para>Mentre l'output interattivo è quello predefinito e non ha opzioni
+ da linea di comando associate, gli altri quattro formati usano una
+ sintassi comune. Ricevono un argomento, il nome del file nel quale i
+ risultati dovranno essere scritti. Possono essere specificati formati
+ multipli, ma ogni formato può essere specificato solo una volta. Per
+ esempio si potrebbe voler salvare il normal output per le proprie
+ revisioni e nel mentre salvare l'XML per l'analisi programmatica. Ciò si
+ potrebbe realizzare con le opzioni <option>-oX myscan.xml -oN
+ myscan.nmap</option>. Questo capitolo usa per brevità dei nomi semplici
+ come <literal moreinfo="none">myscan.xml</literal>, ma sono generalmente
+ consigliati nomi più descrittivi. I nomi scelti sono un problema di
+ preferenza personale, anche se è solito usarne di lunghi che incorporano
+ la data della scansione e un paio di parole che descrivano la scansione,
+ messi in una directory chiamata come l'azienda che si sta
+ scansionando.</para>
+
+ <para>Mentre queste opzioni salvano i risultati su files, Nmap mostra
+ anche 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 risultati interattivi che avrebbe
+ stampato se <option>-oX</option> non fosse stata specificata. Si può
+ cambiare questo comportamento passando un trattino ("-") come argomento
+ di un tipo di formato. Questo fa si che Nmap disattivi l'output
+ interattivo e stampi il risultato nel formato che specificato nello
+ stream dello standard output. Così il comando <command
+ moreinfo="none">nmap -oX - target</command> manderà in stdout soltanto
+ l'output XML. Gli errori gravi possono comunque essere mostrati sullo
+ stream di standard error (stderr).</para>
+
+ <para>A differenza di alcuni argomenti di Nmap, lo spazio tra l'opzione
+ di log (ad esempio <option>-oX</option>) e il nome del file o il
+ trattino, è obbligatorio. Se si omettono le opzioni e si danno argomenti
+ come <option>-oG-</option> o <option>-oXscan.xml</option>, una feature di
+ retro-compatibilità causerà la creazione di file di output in
+ <literal moreinfo="none">normal format</literal> chiamati rispettivamente
+ <filename moreinfo="none"> G-</filename> e <filename
+ moreinfo="none">Xscan.xml</filename>.</para>
+
+ <para>Tutti questi argomenti supportano le conversioni di tipo <literal
+ moreinfo="none">strftime</literal> nel nome del file. <literal
+ moreinfo="none">%H</literal>, <literal moreinfo="none">%M</literal>,
+ <literal moreinfo="none">%S</literal>, <literal
+ moreinfo="none">%m</literal>, <literal moreinfo="none">%d</literal>,
+ <literal moreinfo="none">%y</literal> e <literal
+ moreinfo="none">%Y</literal> sono gli stessi parametri che si trovano in
+ <literal moreinfo="none">strftime</literal>. <literal
+ moreinfo="none">%T</literal> è l'equivalente di <literal
+ moreinfo="none">%H%M%S</literal>, <literal moreinfo="none">%R</literal>
+ è l'equivalente di <literal moreinfo="none">%H%M</literal> e <literal
+ moreinfo="none">%D</literal> è l'equivalente di <literal
+ moreinfo="none">%m%d%y</literal>. Un % seguito da qualsiasi altro
+ carattere da precedenza a quel carattere (%% mostra il simbolo
+ percentuale). Quindi <option>-oX 'scan-%T-%D.xml'</option> lavorerà su di
+ un file XML con un nome del tipo <literal
+ moreinfo="none">scan-144840-121307.xml</literal>.</para>
+
+ <para>Nmap offre inoltre l'opzione di controllo della verbosità e la
+ possibilità di accodare ai file 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 normal output venga rediretto al file
+ specificato. Come sopra, quest'output diverge leggermente 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 file specificato.
+ Nmap contiene un document type definition (DTD) che permette agli
+ interpreti XML di validare l'output XML di Nmap. Sebbene serva
+ principalmente per l'uso programmatico, può 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. L'ultima versione è sempre disponibile al link <ulink
+ url="https://svn.nmap.org/nmap/docs/nmap.dtd" />.</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. Qualcuno ha anche 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://nmapparser.wordpress.com/">Nmap::Parser</ulink> nel
+ Perl CPAN. In quasi tutti i casi il formato preferito per
+ interpretare i risultati di Nmap è stato XML.</para>
+
+ <para>L'output XML fa riferimento ad uno stylesheet XSL che può
+ essere usato per formattare il risultato in HTML. La maniera più
+ facile di usarlo è semplicemente 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 su una
+ configurata in maniera simile) dato che il percorso a <filename
+ moreinfo="none">nmap.xsl</filename> è quello scritto nel codice di
+ Nmap. Si vedano le opzioni <option>--webxml</option> o
+ <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 è come l'interactive output, ad
+ eccezione del post-processing che meglio adatta l'output ai 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 allo humor, si noti che questa opzione
+ prende in giro gli script kiddies, quindi non si critichi per un
+ presunto "averli aiutati".</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-oG &lt;filespec&gt;</option> (grepable output)</term>
+
+ <listitem>
+ <para>Questo formato di output viene descritto per ultimo perché
+ il suo uso è deprecato. L'output XML è di gran lunga più potente ed
+ in pratica ugualmente utile per gli utenti esperti. XML è uno
+ standard per le dozzine di eccellenti parsers che sono disponibili,
+ mentre il grepable output è un semplice hack. XML è estensibile al
+ supporto di nuove features di Nmap man mano che queste vengono
+ rilasciate, mentre spesso vengono omesse queste nuove feature per
+ il formato grepable per mancanza di spazio dove aggiungerle.</para>
+
+ <para>Ad ogni modo, il grepable output è ancora discretamente
+ usato. È un formato semplice che lista ogni host su una riga e può
+ essere facilmente cercato e interpretato dai tool standard di UNIX,
+ come grep, awk, cut, sed, diff e Perl. Viene utilizzato per test
+ semplici da riga di comando: trovare tutti gli host che hanno
+ la porta SSH aperta o che montano Solaris, è questione 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, separati da tabulazioni e
+ terminati da un due punti (:). 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">IP ID</literal> e
+ <literal moreinfo="none">Status</literal>.</para>
+
+ <para>Il più importante tra questi campi è generalmente il campo
+ <literal moreinfo="none">Ports</literal>, che da dettagli su ogni
+ porta interessante. È una lista di "port entries" separate da una
+ virgola. Ogni "port entry" rappresenta una porta interessante e
+ prende la forma di sette sotto-campi separati da uno slash (/).
+ Questi sotto-campi 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> e <literal
+ moreinfo="none">Version info</literal>.</para>
+
+ <para>Così come nell'output XML, questa pagina di manuale non
+ permette di documentare l'intero formato. È disponibile una
+ descrizione più dettagliata del formato grepable
+ output nella sezione <quote><ulink
+ url="https://nmap.org/book/output-formats-grepable-output.html">Grepable
+ Output (-oG)</ulink></quote>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-oA &lt;basename&gt;</option> (Output to all
+ formats)</term>
+
+ <listitem>
+ <para>In caso di bisogno, si potrebbe specificare <option>-oA
+ <replaceable>basename</replaceable> </option> per salvare i
+ risultati dello scan nei formati normal, XML e grepable in una sola
+ volta. Questi vengono salvati rispettivamente nei file
+ <replaceable>basename</replaceable>.nmap,
+ <replaceable>basename</replaceable>.xml e
+ <replaceable>basename</replaceable>.gnmap. Come la maggior parte
+ dei programmi, si può aggiungere un prefisso ai nomi dei file, come
+ ad esempio un percorso ad una directory, <filename
+ moreinfo="none">~/nmaplogs/foocorp/</filename> su UNIX o <filename
+ moreinfo="none">c:\hacking\sco</filename> su Windows.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <title>Verbosità e opzioni di debugging</title>
+
+ <varlistentry>
+ <term><option>-v</option> (Increase verbosity level),
+ <option>-v&lt;level&gt;</option> (Set verbosity level)</term>
+
+ <listitem>
+ <para>Aumenta il livello di verbosità, facendo in modo che Nmap
+ stampi più informazioni riguardo lo scan in esecuzione. Le porte
+ aperte sono mostrate man mano che Nmap le trova e il tempo
+ rimanente stimato viene mostrato se Nmap ritiene che lo scan possa
+ durare più di qualche minuto. Si può mettere l'opzione due o più
+ volte per aumentare ulteriormente il livello di verbosità.</para>
+
+ <para>La maggior parte dei cambiamenti riguarda l'interactive
+ output, e alcune cose anche il normal e lo script kiddie output.
+ Gli altri tipi di output sono fatti per essere processati dalle
+ macchine, quindi Nmap può dare un grosso livello di dettaglio di
+ default, senza il problema di poter affaticare un utente umano. In
+ ogni caso ci sono delle leggere differenze negli altri modi dove la
+ dimensione dell'output può essere sostanzialmente ridotta omettendo
+ alcuni dettagli. Per esempio solo in modalità verbosa viene
+ stampata una linea di commento nel grepable output che fornisce una
+ lista di tutte le porte scansionate, questo perché potrebbe essere
+ abbastanza lunga.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option> (Increase debugging level),
+ <option>-d&lt;level&gt;</option> (Set debugging level)</term>
+
+ <listitem>
+ <para>Quando anche il verbose mode non fornisce dati a sufficienza,
+ è disponibile la modalità debugging, che sommergerà l'utente di
+ informazioni! Così come succede per l'opzione verbosity
+ (<option>-v</option>), il debugging viene attivato da un'opzione di
+ riga di comando (<option>-d</option>) e il livello di debug può
+ essere aumentato ripetendo l'opzione diverse volte, ad esempio
+ <option>-dd</option>, o si può settare il debug level dando come
+ argomento di <option>-d</option> un numero. Ad esempio,
+ <option>-d9</option> setta il livello a nove. Questo è il livello
+ più alto e produrrà 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
+ perché. Siccome questa feature è stata pensata principalmente per
+ gli sviluppatori, le linee di debug non sono granché
+ autoesplicative. Si potrebbe incontrare qualcosa tipo: <literal
+ moreinfo="none">Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta
+ 14987 ==&gt; srtt: 14987 rttvar: 14987 to: 100000</literal>. Se non
+ si capisce una linea, quello che si può fare è ignorarla, guardarla
+ nel codice sorgente, o richiedere aiuto alla lista di sviluppo
+ (nmap-dev). Alcune linee si spiegano bene da sé, ma i messaggi
+ divengono sempre più oscuri man mano che il livello di debugging
+ sale.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--reason</option> (Host and port state reasons)</term>
+
+ <listitem>
+ <para>Mostra il motivo per cui ad ogni singola porta è stato
+ assegnato quello stato e la ragione per cui ogni host è attivo o
+ meno. Quest'opzione mostra il tipo di pacchetto che ha determinato
+ lo stato di una porta o di un host. Per esempio, un pacchetto RST
+ da una porta chiusa o un echo reply da un host attivo.
+ L'informazione che Nmap restituisce dipende dal tipo di scansione o
+ di ping. Il SYN scan e il SYN ping (<option>-sS</option> e
+ <option>-PS</option>) sono molto dettagliati, mentre il TCP connect
+ scan (<option>-sT</option>) è limitato all'implementazione della
+ chiamata di sistema <function moreinfo="none">connect</function>.
+ Questa feature è automaticamente abilitata dall'opzione di debug
+ (<option>-d</option>) e i suoi risultati vengono salvati in file
+ log in formato XML anche se quest'opzione non viene
+ specificata.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--stats-every &lt;time&gt;</option> (Print periodic
+ timing stats)</term>
+
+ <listitem>
+ <para>Periodicamente stampa un messaggio di timing status ogni
+ intervallo di <replaceable>time</replaceable>. Il tempo è una
+ specifica del tipo descritto nella sezione <quote><ulink
+ url="https://nmap.org/book/man-performance.html">Timing and
+ Performance</ulink></quote> di questo manuale; quindi per esempio,
+ si utilizzerà <option>--stats-every 10s</option> per avere un
+ aggiornamento dello stato ogni 10 secondi. Gli aggiornamenti
+ vengono stampati sull'interactive output (a schermo) e sull'XML
+ output.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--packet-trace</option> (Trace packets and data sent
+ and received)</term>
+
+ <listitem>
+ <para>Fa in modo che Nmap stampi un riassunto di ogni pacchetto
+ mandato o ricevuto. Viene usata spesso per il debugging, ma è anche
+ un modo valido per gli utenti novizi per capire esattamente cosa
+ sta 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 procede il version detection si può usare
+ <option>--version-trace</option>. Se invece si è solo interessati
+ allo script tracing, indicare <option>--script-trace</option>. Con
+ <option>--packet-trace</option>, si avranno tutti quelli
+ sopra.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--open</option> (Show only open (or possibly open)
+ ports)</term>
+
+ <listitem>
+ <para>Può succedere di essere interessati solamente alle porte cui
+ ci si può connettere al momento (le <literal
+ moreinfo="none">open</literal>) e non si vuole mischiare i
+ risultati con quelle <literal moreinfo="none">closed</literal>,
+ <literal moreinfo="none">closed</literal> o <literal
+ moreinfo="none">closed|filtered</literal>. Si potrebbe
+ personalizzare l'output dopo la scansione utilizzando tool come
+ grep, awk e Perl, ma è stata aggiunta quest'opzione a causa di
+ richieste travolgenti. Indicare <option>--open</option> per vedere
+ solamente gli host con almeno una porta <literal
+ moreinfo="none">open</literal>, <literal
+ moreinfo="none">open|filtered</literal> o <literal
+ moreinfo="none">unfiltered</literal>, e vedere solamente le porte
+ con questi stati. Questi tre stati vengono trattati normalmente, il
+ che significa che <literal moreinfo="none">open|filtered</literal>
+ e <literal moreinfo="none">unfiltered</literal> potrebbero essere
+ raggruppate se ce ne dovessero essere troppe.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--iflist</option> (List interfaces and routes)</term>
+
+ <listitem>
+ <para>Stampa la lista delle interfacce e degli instradamenti di
+ sistema rilevati da Nmap. Questo è utile per risolvere i problemi
+ di routing o cattive caratterizzazioni delle interfacce (ad esempio
+ quando Nmap scambia una connessione PPP per ethernet).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <variablelist>
+ <title>Altre opzioni di output</title>
+
+ <varlistentry>
+ <term><option>--append-output</option> (Append to rather than clobber
+ output files)</term>
+
+ <listitem>
+ <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
+ anziché essere sovrascritti. Quest'opzione non è di grande aiuto
+ (e non funziona molto bene) nel caso di output in formato XML
+ (<option>-oX</option>), poiché il parsing del file risultante non
+ sarà corretto fino a quando non si controllerà il file
+ manualmente.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--resume &lt;filename&gt;</option> (Resume aborted
+ scan)</term>
+
+ <listitem>
+ <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 può diventare irraggiungibile,
+ la macchina sulla quale Nmap sta girando può subire un riavvio
+ pianificato o improvviso o Nmap stesso può andare in crash.
+ L'amministratore che sta usando Nmap può interromperlo per
+ qualsiasi ragione, premendo <keycap
+ moreinfo="none">ctrl-C</keycap>. Ricominciare l'intera scansione
+ dall'inizio può diventare fastidioso. Fortunatamente se sono
+ rimasti i log in formato "normal" (<option>-oN</option>) o
+ "grepable" (<option>-oG</option>), l'utente può richiedere a Nmap
+ di ricominciare la scansione dall'host sul quale stava lavorando
+ quando l'esecuzione è stata interrotta. Semplicemente basta
+ specificare l'opzione <option>--resume</option> e passargli il file
+ di output in formato normal/grepable come argomento. Non è permesso
+ nessun altro argomento, poiché Nmap farà il parsing del file di
+ output per usare le stesse opzioni specificate in precedenza. È
+ quindi sufficiente invocare Nmap come <command
+ moreinfo="none">nmap --resume
+ <replaceable>logfilename</replaceable></command>. Nmap aggiungerà i
+ nuovi risultati ai file specificati nell'esecuzione precedente. La
+ ripresa di un'esecuzione non supporta il formato di output XML
+ poiché 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> (Set XSL
+ stylesheet to transform XML output)</term>
+
+ <listitem>
+ <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 è stato
+ installato Nmap la prima volta. Processare il file XML con un XSLT
+ processor come <ulink
+ url="http://xmlsoft.org/XSLT/">xsltproc</ulink> per produrre un
+ file HTML. Aprire direttamente l'output XML in un browser non
+ funziona più tanto bene in quanto i browser recenti limitano le
+ location da cui può essere caricato un foglio di stile. Se si
+ volesse usare un foglio di stile diverso, va specificato mediante
+ l'opzione <option>--stylesheet</option>. Il file va indicato con il
+ percorso completo o l'URL. Un esempio di invocazione con
+ quest'opzione è <option>--stylesheet
+ https://nmap.org/svn/docs/nmap.xsl</option>. Questo indica ad un
+ XSLT processor di caricare l'ultima versione del foglio di stile da
+ Nmap.Org. L'opzione <option>--webxml</option> fa la stessa cosa ma
+ richiede meno digitazioni e meno cose da ricordare. Caricando l'XSL
+ da Nmap.Org rende più 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 è
+ 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> (Load stylesheet from Nmap.Org)
+ </term>
+
+ <listitem>
+ <para>Quest'opzione è semplicemente una comodità per l'opzione
+ <option>--stylesheet
+ https://nmap.org/svn/docs/nmap.xsl</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <option>--no-stylesheet</option> (Omit XSL stylesheet declaration
+ from XML)
+ </term>
+
+ <listitem>
+ <para>Quest'opzione va specificata quando non si vuole che Nmap
+ associ un qualsiasi foglio di stile XSL al 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 non così
+ importanti) che non hanno trovato posto in altre sezioni.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-6</option> (Enable IPv6 scanning)</term>
+
+ <listitem>
+ <para>Nmap offre supporto IPv6 per le sue funzioni più comuni. Le
+ funzioni ping scanning, port scanning, rivelazione di versione e
+ l'NSE supportano tutti IPv6. La sintassi dei comandi è la stessa di
+ sempre, ad eccezione dell'aggiunta dell'opzione
+ <option>-6</option>. Ovviamente si dovrà utilizzare la sintassi
+ IPv6 se si vuole specificare un indirizzo anziché un hostname. Un
+ indirizzo sarà qualcosa del tipo <literal
+ moreinfo="none">3ffe:7501:4819:2000:210:f3ff:fe03:14d0</literal>,
+ ne consegue che è raccomandato l'uso degli hostname. L'output ha il
+ solito aspetto, l'unica differenza è l'indirizzo IPv6 sulla linea
+ delle "interesting ports".</para>
+
+ <para>Mentre IPv6 non ha esattamente preso il sopravvento nel
+ mondo, trova un uso più significativo in alcuni Paesi (tipicamente
+ Asiatici) e supporto nella maggior parte dei moderni sistemi
+ operativi. Per usare Nmap con l'IPv6, sia l'obiettivo che la
+ sorgente dello scan devono essere configurate per IPv6. Se il
+ proprio l'ISP (come la maggior parte) non alloca indirizzi IPv6,
+ c'è una vasta disponibilità di tunnel broker gratuiti e funzionano
+ bene con Nmap. Uno dei migliori è fornito da <ulink
+ url="http://www.tunnelbroker.net/" />. Altri tunnel broker si
+ possono trovare <ulink
+ url="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers"> su
+ Wikipedia</ulink>. Un altro approccio free comune sono i tunnel
+ 6to4.</para>
+
+ <para>Su Windows, gli scan IPv6 raw-socket sono supportati solo su
+ dispositivi ethernet (non tunnel) e solo da Windows Vista in poi.
+ Utilizzare l'opzione <option>--unprivileged</option> nelle altre
+ situazioni.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-A</option> (Aggressive scan options)</term>
+
+ <listitem>
+ <para>Quest'opzione abilita altre opzioni addizionali avanzate ed
+ aggressive. Al momento questa opzione attiva l'OS detection
+ (<option>-O</option>), il version scanning (<option>-sV</option>),
+ lo script scanning (<option>-sC</option>) e il traceroute
+ (<option>--traceroute</option>). Ulteriori caratteristiche verranno
+ aggiunte in futuro. Il punto è attivare un completo set di opzioni
+ di scan senza che ci sia il bisogno di ricordarsi una lunga serie
+ di flag. In ogni modo, dato che lo script scanning con il set di
+ default è considerato intrusivo, si dovrebbe utilizzare
+ <option>-A</option> contro le reti senza averne avuto
+ autorizzazione. Quest'opzione attiva solo delle modalità di
+ funzionamento, ma non le opzioni di timing (come
+ <option>-T4</option>), né quelle di verbosity (<option>-v</option>)
+ che si potrebbero comunque volere. Le opzione che richiedono
+ privilegi speciali (ad esempio i permessi di root), come l'OS
+ detection e il traceroute, saranno abilitate solo se si questi
+ permessi sono attivi.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--datadir &lt;nomedirectory&gt;</option>(Specify custom
+ Nmap data file location)</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> ed <filename
+ moreinfo="none">nmap-os-fingerprints</filename>. Se la location di
+ uno questi file viene specificata(usando l'opzione
+ <option>--servicedb</option> o l'opzione
+ <option>--versiondbNmap</option>), questa location viene utilizzata
+ per tutti quanti. Altrimenti, Nmap cerca i file nella directory
+ specificata con l'opzione <option>--datadir</option> (qualora
+ specificata). Qualunque file non trovato in questa locazione, verrà
+ cercato nella directory specificata nella variabile d'ambiente
+ <literal moreinfo="none">NMAPDIR</literal>. Segue poi <literal
+ moreinfo="none">~/.nmap</literal> per le vere e proprie UID (valido
+ solo per i sistemi POSIX) o, su Windows, <literal
+ moreinfo="none">&lt;HOME&gt;\AppData\Roaming\nmap</literal> (dove
+ <literal moreinfo="none">&lt;HOME&gt;</literal> è la home directory
+ dell'utente, tipo <literal
+ moreinfo="none">C:\Users\user</literal>). Seguono poi la directory
+ dell'eseguibile di Nmap e le sue subdirectory <literal
+ moreinfo="none">../usr/share/nmap</literal>. Infine vengono
+ utilizzate le locazioni precompilate come <literal
+ moreinfo="none">/usr/local/share/nmap</literal> o <literal
+ moreinfo="none">/usr/share/nmap</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--servicedb &lt;services file&gt;</option> (Specify
+ custom services file)</term>
+
+ <listitem>
+ <para>Chiede ad Nmap di utilizzare specifici file "services" invece
+ che il file <filename moreinfo="none">nmap-services</filename> che
+ viene fornito con Nmap. Inoltre quest'opzione attiva l'opzione
+ <option>-F</option> che esegue una scansione veloce. Vedere la
+ descrizione di <option>--datadir</option> per avere più
+ informazioni sui data files di Nmap.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--versiondb &lt;service probes file&gt;</option>
+ (Specify custom service probes file)</term>
+
+ <listitem>
+ <para>Chiede ad Nmap di utilizzare specifici file "service probes"
+ invece che il file <filename
+ moreinfo="none">nmap-service-probes</filename> che
+ viene fornito con Nmap. Vedere la descrizione di
+ <option>--datadir</option> per avere più informazioni sui data
+ files di Nmap.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--send-eth </option> (Use raw ethernet sending)</term>
+
+ <listitem>
+ <para>Chiede a Nmap di mandare pacchetti al livello ethernet (data
+ link) piuttosto che al livello più alto IP (network). Di default,
+ Nmap sceglie quello che è generalmente migliore per la piattaforma
+ in cui sta venendo eseguito. I raw sockets (livello IP) solitamente
+ sono i più efficienti per le macchine UNIX, mentre invece sono
+ 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'è alternativa (ad esempio se
+ si ha una connessione non ethernet)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--send-ip</option> (Send at raw IP level)</term>
+
+ <listitem>
+ <para>Chiede a Nmap di mandare pacchetti via raw socket IP,
+ piuttosto che mandare trame al livello inferiore, ethernet. È
+ l'opzione complementare di <option>--send-eth</option> discussa
+ precedentemente.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--privileged</option> (Assume that the user is fully
+ privileged)</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
+ <literal moreinfo="none">geteuid</literal> non è zero.
+ <option>--privileged</option> è utile con delle funzionalità del
+ kernel Linux e 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à
+ privilegiate (SYN scan, OS detection, ecc.). La variabile
+ d'ambiente NMAP_PRIVILEGED può comunque essere settata e
+ rappresenta un'equivalente alternativa all'opzione
+ <option>--privileged</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--unprivileged</option> (Assume that the user lacks raw
+ socket privileges)</term>
+
+ <listitem>
+ <para>quest'opzione è l'opposta di <option>--privilegerd</option>.
+ Dice ad Nmap di trattare l'utente come se non avesse i permessi
+ necessari per i raw socket e lo sniffing. Può tornare utile in fase
+ di test, debugging o quando le funzionalità di raw network del
+ sistema operativo hanno qualche problema. La variabile d'ambiente
+ NMAP_PRIVILEGED può comunque essere settata e rappresenta
+ un'equivalente alternativa all'opzione
+ <option>--unprivileged</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>--release-memory </option>(Release memory before
+ quitting)</term>
+
+ <listitem>
+ <para>Quest'opzione è utile solo per la risoluzione di problemi di
+ perdita di memoria (memory-leak debugging). Obbliga infatti ad Nmap
+ a liberare la memoria allocata appena prima di uscire così da
+ individuare più facilmente le effettive perdite di memoria. Di
+ solito Nmap salta questo passaggio come fa il sistema operativo in
+ ogni caso al momento della chiusura del processo.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-V</option>; <option>--version</option> (Print version
+ number)</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> (Print help
+ summary page)</term>
+
+ <listitem>
+ <para>Stampa a video una breve schermata di aiuto con le opzioni
+ più comuni. Eseguire Nmap senza argomenti fa la stessa cosa.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-runtime-interaction">
+ <title>Interazione in Runtime</title>
+
+ <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 speciali possono cambiare
+ opzioni, mentre altri stampano un messaggio di stato sulla scansione in
+ corso. La convenzione è che <emphasis>le lettere minuscole
+ aumentano</emphasis> la quantità di messaggi stampati, mentre
+ <emphasis>le lettere maiuscole la diminuiscono</emphasis>. È inoltre
+ possibile premere <literal moreinfo="none">'?'</literal> per avere un
+ aiuto.</para>
+ <variablelist>
+ <varlistentry>
+ <term><option>v</option> / <option>V</option></term>
+
+ <listitem>
+ <para>Aumenta / diminuisce la quantità 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>Stampa una schermata di aiuto per le interazioni in tempo
+ reale</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Qualsiasi altro tasto</term>
+
+ <listitem>
+ <para>Stampa un messaggio di stato come il seguente:</para>
+ <screen>
+ Stats: 0:00:07 elapsed; 20 hosts completed (1 up), 1 undergoing
+ Service Scan
+ Service scan Timing: About 33.33% done; ETC: 20:57 (0:00:12
+ remaining)
+ </screen>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="man-examples">
+ <title>Esempi</title>
+
+ <para>Ecco alcuni esempi di uso di Nmap, dal più semplice e routinario al
+ più complesso ed esoterico. Saranno usati alcuni indirizzi IP e hostname
+ reali per rendere le cose più concrete. Si dovranno solo sostituire nei
+ posti giusti gli indirizzi e gli hostname della <emphasis>propria
+ rete</emphasis>. Nonostante molti siano convinti che il port scanning
+ delle reti altrui non è o non dovrebbe essere illegale, alcuni
+ amministratori di rete potrebbero non apprezzare uno scanning non
+ richiesto delle loro reti e potrebbero lamentarsi. Ottenere prima un
+ permesso è l'approccio migliore.</para>
+
+ <para>Per motivi di test, è 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, è meglio non
+ attivare più di una dozzina di scan verso questo host al giorno. Qualora
+ si abusasse di questo servizio, questo verrà disattivato e Nmap riporterà
+ 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 così via, finché
+ ne esisteranno.</para>
+
+ <para>
+ <command moreinfo="none">nmap -v scanme.nmap.org</command>
+ </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 modalità verbose.</para>
+
+ <para>
+ <command moreinfo="none">nmap -sS -O scanme.nmap.org/24</command>
+ </para>
+
+ <para>Lancia un SYN scan invisibile verso ciascuna macchina che risulta
+ accesa tra le 256 nell'intera rete di classe C in cui risiede Scanme.
+ Inoltre tenta di determinare il sistema operativo installato su ogni host
+ trovato. Questo richiede i privilegi di root a causa della funzioni SYN
+ scan e OS detection.</para>
+
+ <para>
+ <command moreinfo="none">nmap -sV -p 22,53,110,143,4564
+ 198.116.0-255.1-127</command>
+ </para>
+
+ <para>Lancia una enumerazione di hosts e uno scan TCP alla prima metà di
+ ognuna delle 255 sottoreti di 8 bit all'interno dello spazio di
+ indirizzamento della classe B 198.116. Quest'operazione controlla se tali
+ sistemi stanno eseguendo i servizi SSH, DNS, POP3 o IMAP sulle loro porte
+ standard, o altro sulla porta 4564. Qualora qualche porta di queste venga
+ trovata aperta, verrà utilizzato il version detection per determinare
+ quale applicazione stia effettivamente ascoltando su quella porta.</para>
+
+ <para>
+ <command moreinfo="none">nmap -v -iR 100000 -Pn -p 80</command>
+ </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 è disabilitata con l'opzione <option>-Pn</option> dal momento
+ che verificare se un host è attivo è uno spreco quando si sta analizzando
+ soltanto una porta per ogni hosts.</para>
+
+ <para>
+ <command moreinfo="none">nmap -Pn -p80 -oX logs/pb-port80scan.xml -oG
+ logs/pb-port80scan.gnmap 216.163.128.20/20</command>
+ </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-nmap-book">
+ <title>Nmap Book</title>
+
+ <para>Dato che questa guida di riferimento mostra nel dettaglio tutte le
+ opzioni di Nmap, non può dimostrare in maniera completa come utilizzare
+ queste feature per risolvere velocemente applicazioni reali. È per questo
+ che è stato pubblicato <ulink url="https://nmap.org/book/"><emphasis>Nmap
+ Network Scanning: The Official Nmap Project Guide to Network Discovery
+ and Security Scanning</emphasis></ulink>. Gli argomenti trattati sono
+ sovvertire i firewall e gli IDS, ottimizzare le performance di Nmap e
+ l'automazione di comuni processi di rete con l'Nmap Scripting Engine.
+ Vengono forniti suggerimenti ed istruzioni per operazioni comuni con Nmap
+ come fare un inventario della rete, penetration testing, trovare rogue
+ access point wireless e l'annullamento di possibili worm. Esempi e
+ diagrammi mostrano l'attuale sistema di comunicazione via cavo. Più della
+ metà del libro è disponibile gratuitamente online. Per maggiori
+ informazioni <ulink url="https://nmap.org/book" />.</para>
+ </refsect1>
+
+ <refsect1 id="man-bugs">
+ <title>Bugs</title>
+
+ <para>Al pari del suo autore (e di questa traduzione, NdT), Nmap non è
+ 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 su <ulink url="https://nmap.org/" />. Se il problema
+ persiste effettua qualche ricerca per determinare se il problema è stato
+ già scoperto e segnalato. Prova a cercare sulla nostra pagina di ricerca
+ <ulink url="https://insecure.org/search.html" /> o su Google il messaggio
+ di errore o ancora a sfogliare l'archivio Nmap-dev all'indirizzo <ulink
+ url="https://seclists.org/" />. Leggi inoltre tutta questa pagina di
+ manuale. Se nulla di questo riguarda il tuo caso, manda un bug report a
+ <email>dev@nmap.org</email>. Accertati di includere ogni cosa che sei
+ riuscito a sapere sul problema, la versione di Nmap che hai installato e
+ su quale sistema operativo la stai usando. Segnalazioni di problemi ed
+ eventuali domande sull'uso di Nmap inviate a <email>dev@nmap.org</email>
+ hanno più probabilità di avere risposta di quelle inviate a Fyodor
+ direttamente. Se ti registri alla lista di nmap-dev prima di inviare il
+ messaggio, quest'ultimo non verrà moderato e quindi arriverà più
+ velocemente. Iscriviti su <ulink
+ url="https://nmap.org/mailman/listinfo/dev" />.</para>
+
+ <para>Le patch che risolvono i bug sono molto meglio di una segnalazione.
+ Le istruzioni di base per creare delle patch sono disponibili su <ulink
+ url="https://svn.nmap.org/nmap/HACKING" />. Le patch potranno essere
+ inviate a nmap-dev (raccomandato) oppure direttamente a Fyodor.</para>
+ </refsect1>
+
+ <refsect1 id="man-author">
+ <title>Autore</title>
+
+ <para>Gordon <quote>Fyodor</quote> Lyon <email>fyodor@nmap.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>Aggiornamento e revisione 04/2015: Andrea Pizzarotti
+ <email>andrew3686@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 è distribuito assieme a Nmap ed è anche disponibile su <ulink
+ url="https://nmap.org/changelog.html" />.</para>
+ </refsect1>
+
+ <refsect1 id="man-legal">
+ <title>Note Legali</title>
+
+ <refsect2>
+ <title>Copyright e Licenze di Nmap</title>
+
+ <para>Nmap Security Scanner è (C) 1996-2015 Insecure.Com LLC. Nmap è
+ inoltre un marchio registrato di Insecure.Com LLC. Questo programma è
+ free software, è liberamente redistribuibile e/o modificabile in
+ accordo con i termini della GNU General Public License come pubblicata
+ dalla Free Software Foundation; Versione 2 (<quote>GPL</quote>) MA SOLO
+ CON TUTTE LE PRECISAZIONI ED ECCEZIONI QUI DESCRITTE. Questo garantisce
+ il diritto di utilizzare, 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 già le tecnologie di Nmap come per
+ esempio "host discovery", "port scanning", "OS detection", "version
+ detection" e l'Nmap Scripting Engine.</para>
+
+ <para>Si noti che la licenza GPL implica importanti vincoli sui
+ <quote>progetti derivati</quote>, sebbene essa non fornisca una precisa
+ definizione di questi. Allo scopo di evitare malintesi, interpretiamo
+ questo termine nel modo più ampio che la legge sul copyright permetta.
+ Ad esempio, consideriamo un'applicazione come progetto derivato inteso
+ ai fini di questa licenza se presenta una delle seguenti
+ caratteristiche ottenute con software o contenuti coperti da questa
+ licenza (d'ora in poi definiti <quote>Covered Software</quote>):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Integra codice sorgente di <quote>Covered
+ Software</quote>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Legge o include data file protetti da copyright, quali
+ <filename moreinfo="none">nmap-os-db</filename> o <filename
+ moreinfo="none">nmap-service-probes</filename> di Nmap.</para>
+ </listitem>
+
+ <listitem>
+ <para>È progettato specificatamente per eseguire <quote>Covered
+ Software</quote> e ne utilizza i risultati (al contrario delle
+ tipiche applicazioni shell o eseguibili da menù che eseguono
+ qualsiasi cosa venga detto loro).</para>
+ </listitem>
+
+ <listitem>
+ <para>Integra/include/aggrega <quote>Covered Software</quote> in un
+ eseguibile di installazione proprietario, come ad esempio quelli
+ prodotti da InstallShield. Includere Nmap con altro software in
+ forma compressa o di archiviazione, non rientra in questi casi,
+ fornire appropriati software open-source di decompressione o di
+ de-archiviazione è ampiamente disponibile senza nessun ricarico. Ai
+ fini di questa licenza, viene considerato programma di
+ installazione ciò che include <quote>Covered Software</quote>,
+ anche se in realtà recupera una copia di <quote>Covered
+ Software</quote> da un'altra fonte in fase di installazione (come,
+ ad esempio, scaricandola da Internet).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>È collegato (staticamente o dinamicamente) a una libreria che
+ presenta una delle caratteristiche sopracitate.</para>
+ </listitem>
+
+ <listitem>
+ <para>Esegue un programma di aiuto, un modulo o uno script che
+ presenta una delle caratteristiche sopracitate.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Questa lista non è esclusiva, ma è concepita per chiarificare la
+ nostra interpretazione di progetto derivato con alcuni esempi comuni.
+ Altre persone potrebbero interpretare la licenza GPL in modo diverso,
+ quindi dobbiamo considerare questo come un'eccezione speciale alla GPL
+ che applicheremo a <quote>Covered Software</quote>. Le opere che
+ soddisfano una qualsiasi di queste condizioni, devono essere conformi a
+ tutti i termini di questa licenza, in particolar modo i requisiti della
+ Sezione 3 della licenza GPL di fornire il codice sorgente e permettere
+ la libera ridistribuzione del lavoro nel suo complesso. Come altra
+ 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 è distribuita sotto una licenza identica a quella
+ che si trova nel file <filename
+ moreinfo="none">docs/licenses/OpenSSL.txt</filename> e di redistribuire
+ combinazioni collegate che includono entrambi.</para>
+
+ <para>Ogni redistribuzione di <quote>Covered Software</quote>, inclusa
+ ogni eventuale opera derivata, deve sottostare e portare avanti tutti i
+ termini di questa licenza, incluso sottostare a tutte le regole e
+ restrizioni della GPL. Ad esempio, deve essere fornito il codice
+ sorgente di un intero progetto ed autorizzata la sua libera e gratuita
+ distribuzione. Tutti i riferimenti alla GPL con <quote>questa
+ Licenza</quote>, sono da considerarsi come inclusioni dei termini e
+ delle condizioni nel testo di questa stessa licenza.</para>
+
+ <para>Dato che questa licenza impone eccezioni speciali alla GPL,
+ "Covered Work" non è cumulabile (neanche con parte di un più ampio
+ lavoro) con il semplice software GPL. I termini, le condizioni e le
+ eccezioni di questa licenza devono altresì essere inclusi. Questa
+ licenza è incompatibile con qualsiasi altra licenza open-source. In
+ alcuni casi potremmo porre sotto diversa licenza parti di Nmap o
+ concedere permessi speciali di utilizzo in altro software open-source.
+ Per qualsiasi informazioni contattare <email>fyodor@nmap.org</email>.
+ Allo stesso modo, non incorporiamo software incompatibile al principio
+ di open-source in <quote>Covered Software</quote> senza uno speciale
+ permesso dai titolari del copyright.</para>
+
+ <para>Se avete domande a proposito delle limitazioni imposte all'uso di
+ Nmap in altri progetti, saremo felici di aiutarvi. Come detto poc'anzi,
+ offriamo anche licenze alternative per l'integrazione di Nmap in
+ applicazioni o dispositivi 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 contattare
+ <email>sales@insecure.com</email>.</para>
+
+ <para>Se si riceve questo file con accordo di licenza scritto,
+ o un contratto per <quote>Covered Software</quote> che afferma termini
+ diversi da quelli appena descritti, allora si può scegliere di
+ utilizzare e ridistribuire <quote>Covered Software</quote> sotto quei
+ termini anziché quelli qui riportati.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Creative Commons License per questa Guida di Nmap</title>
+
+ <para>Questa <emphasis>Nmap Reference Guide</emphasis> è protetta da
+ copyright (C) 2005–2012 Insecure.Com LLC. È con ciò coperta dalla
+ versione 3.0 della Creative Commons Attribution License. Questo
+ permette la ridistribuzione e la modifica dell'opera come si ritenga
+ opportuno, a patto di far riferimento alla copia originale. In
+ alternativa, si può scegliere di trattare questo documento come
+ rientrante sotto la stessa licenza di Nmap stesso (discussa in
+ precedenza).</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Disponibilità del Codice Sorgente e Contribuzioni
+ della Comunità</title>
+
+ <para>Il codice sorgente di questo software viene fornito perché
+ crediamo che gli utenti abbiano il diritto di sapere esattamente cosa
+ questo programma potrà fare prima di eseguirlo. Questo permette inoltre
+ di scoprire falle di sicurezza.</para>
+
+ <para>Il codice sorgente permette anche di rendere Nmap portabile a
+ nuove architetture, correggere i bug e aggiungere nuove funzioni. Si è
+ molto incoraggiati a mandare le proprie modifiche ad
+ <email>dev@nmap.org</email> per possibili inclusioni nella
+ distribuzione principale. Mandando le modifiche a Fyodor o altri
+ sviluppatori della mailing list di Insecure.Org, si assume che si sta
+ offrendo all' Nmap Project (Insecure.Com LLC) il diritto illimitato,
+ non-esclusivo di riutilizzo, modifica e re-licenziamento del codice.
+ Nmap sarà sempre disponibile sotto open-source, ma questo è di vitale
+ importanza perché l'impossibilità di re-licenziare il codice ha causato
+ problemi devastanti ad altri progetti open-source (come KDE e NASM).
+ Occasionalmente noi re-licenziamo il codice per terze parti come detto
+ sopra. Se si vuole specificare una condizione di licenza speciale delle
+ proprie contribuzioni, è sufficiente dirlo nel momento
+ dell'invio.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>Nessuna Garanzia</title>
+
+ <para>Questo programma è distribuito nella speranza che possa essere
+ utile, ma SENZA NESSUNA GARANZIA; senza garanzia di RIVENDIBILITÀ né di
+ APPLICABILITÀ PER SCOPI PARTICOLARI. Fare riferimento alla GNU General
+ Public License per ulteriori dettagli, al sito <ulink
+ url="http://www.gnu.org/licenses/gpl-2.0.html" /> oppure nel file
+ COPYING incluso nel pacchetto di Nmap.</para>
+
+ <para>Si noti anche che Nmap è stato occasionalmente noto per far
+ andare in crash applicazioni mal scritte, gli stack TCP/IP ed anche
+ alcuni sistemi operativi. Anche se si tratta di casi estremamente rari,
+ è importante da tenere a mente. <emphasis>Nmap non dovrebbe mai essere
+ lanciato contro sistemi "mission critical"</emphasis> a meno che non si
+ sia preparati ad affrontare un downtime. Confermiamo che Nmap può far
+ andare in crash alcuni sistemi e reti e disconosciamo ogni
+ responsabilità 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. È quindi consigliabile
+ richiedere il 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). Questo potrebbe creare problemi di
+ vulnerabilità che altri utenti del sistema (o attaccanti) potrebbero
+ utilizzare.</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> è distribuita assieme a Nmap.
+ La versione per Windows di Nmap utilizza invece un derivato di Libpcap,
+ <ulink url="http://www.winpcap.org">WinPcap library</ulink>. Il
+ supporto per le regular espressions è garantito dalla libreria <ulink
+ url="http://www.pcre.org">PCRE library</ulink>, che è software
+ open-source, scritta da Philip Hazel. Alcune funzioni di raw networking
+ usano la libreria <ulink
+ url="http://libdnet.sourceforge.net">Libdnet</ulink>, che è stata
+ scritta da Dug Song. Con Nmap ne è distribuita una versione modificata.
+ Nmap può opzionalmente collegarsi con l'<ulink
+ url="http://www.openssl.org">OpenSSL cryptography toolkit</ulink> per
+ supportare il riconoscimento della versione di SSL. L'Nmap Scripting
+ Engine utilizza una versione implementata di <ulink
+ url="http://www.lua.org/">Lua programming language</ulink>. La <ulink
+ url="http://www.csie.ntu.edu.tw/~cjlin/liblinear/">Liblinear linear
+ classification library</ulink> viene utilizzata per le nostre tecniche
+ di apprendimento automatico dell'OS version su IPv6 (vedi la sezione
+ <quote><ulink
+ url="https://nmap.org/book/osdetect-guess.html#osdetect-guess-ipv6">IPv6
+ matching</ulink></quote>). Tutto il software di terze parti descritto
+ in questo paragrafo è liberamente ridistribuibile sotto licenza stile
+ BSD.</para>
+ </refsect2>
+
+ <refsect2 id="us-export">
+ <title>United States Export Control</title>
+
+ <para>Nmap utilizza la crittografia solo quando compilato con il
+ supporto opzionale ad OpenSSL ed a lui collegato. Quando compilato
+ senza il supporto ad OpenSSL, Insecure.Com LLC ritiene che Nmap non
+ sia soggetto ai controlli sull'export U.S. <ulink
+ url="http://www.access.gpo.gov/bis/ear/ear_data.html">Export
+ Administration Regulations (EAR)</ulink>. Come tale, non esiste ECCN
+ (numero di classificazione di controllo delle esportazioni) applicabile
+ e l'esportazione non richiede licenze speciali, permessi o altre
+ autorizzazioni governative.</para>
+
+ <para>Quando compilato col supporto ad OpenSSL o distribuito come
+ codice sorgente, Insecure.Com LLC crede che Nmap rientri sotto U.S.
+ ECCN <ulink
+ url="http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf">5D002</ulink>
+ (<quote>Information Security Software</quote>). Distribuiamo Nmap
+ secondo l'eccezione TSU per il software di crittografia disponibile
+ pubblicamente definito in <ulink
+ url="http://www.access.gpo.gov/bis/ear/pdf/740.pdf">EAR
+ 740.13(e)</ulink>.</para>
+ </refsect2>
+
+ <para>La presente traduzione ha il solo scopo di aiutare nella
+ comprensione del testo originale <quote>Nmap Reference Guide</quote>,
+ non ne costituisce copia sostitutiva e nemmeno licenza alternativa
+ di <quote>Covered Software</quote>. Per qualsiasi informazione o
+ chiarimento e per la versione più aggiornata, fare riferimento al testo
+ originale disponibile al link <ulink
+ url="https://nmap.org/book/man.html" />.</para>
+ </refsect1>
+ </refentry>
+</article>