<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: manhtml.xml 2991 2005-12-12 10:21:33Z fyodor $ -->
<article id="man">
<artheader>
  <title>Opis programu Nmap</title>
</artheader>
<refentry id="man-nmap1">
  <refmeta>
    <refentrytitle>nmap</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>
  <refnamediv id="man-name">
    <refname>nmap</refname>
    <refpurpose>Narz&#281;dzie do eksploracji sieci i skaner port&#243;w/zabezpiecze&#324;</refpurpose>
  </refnamediv>
  <!-- body begins here -->
  <refsynopsisdiv id="man-synopsis">
    <cmdsynopsis sepchar=" ">
      <command moreinfo="none">nmap</command>
      <arg choice="opt" rep="repeat">
        <replaceable>Typ Skanowania</replaceable>
      </arg>
      <arg choice="opt" rep="norepeat">
        <replaceable>Opcje</replaceable>
      </arg>
      <arg choice="req" rep="norepeat">
        <replaceable>specyfikacja celu</replaceable>
      </arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1 id="man-description">
    <title>Opis</title>

    <para>Nmap (ang. <quote>Network Mapper</quote>) jest narz&#281;dziem open source
    do eksploracji sieci i audyt&#243;w bezpiecze&#324;stwa. Zosta&#322; zaprojektowany do 
    szybkiego skanowania du&#380;ych sieci, ale r&#243;wnie&#380; dzia&#322;a dobrze w stosunku do
    pojedynczych adres&#243;w. Nmap wykorzystuje niskopoziomowe pakiety IP do 
    wykrywania kt&#243;re adresy s&#261; dost&#281;pne w sieci, jakie udost&#281;pniaj&#261; us&#322;ugi 
    (nazwa aplikacji i wersja), na jakich systemach operacyjnych pracuj&#261; (wersja 
    systemu), jakie typy system&#243;w zaporowych (firewall) s&#261; wykorzystywane i 
    dziesi&#261;tek innych cech. Nmap jest powszechnie wykorzystywany do audyt&#243;w 
    bezpiecze&#324;stwa, r&#243;wnie&#380; wielu administrator&#243;w sieci i system&#243;w wykorzystuje
    go wykonywania rutynowych czynno&#347;ci, takich jak inwentaryzacja zasob&#243;w sieci, 
    zarz&#261;dzanie aktualizacjami oprogramowania i monitorowania system&#243;w oraz ich 
    czasu dzia&#322;ania (uptime).</para>

    <para>Wynikiem dzia&#322;ania Nmapa jest lista przeskanowanych adres&#243;w z 
    dodatkowymi informacjami zale&#380;nymi od wykorzystanych opcji. Jedn&#261; z 
    g&#322;&#243;wnych informacji jest <quote>lista interesuj&#261;cych port&#243;w</quote>. 
    Zawiera ona numery port&#243;w wraz z protoko&#322;ami, nazwami us&#322;ugi i 
    wykrytym stanem. Stan mo&#380;e zosta&#263; opisany jako 
    <literal moreinfo="none">otwarty</literal>, 
    <literal moreinfo="none">filtrowany</literal>,
    <literal moreinfo="none">zamkni&#281;ty</literal>, lub 
    <literal moreinfo="none">niefiltrowany</literal>. 
    Otwarty oznacza, &#380;e aplikacja na badanym adresie oczekuje na 
    po&#322;&#261;czenia/pakiety przychodz&#261;ce na ten port.
    <literal moreinfo="none">Filtrowany</literal> oznacza, &#380;e system zaporowy 
    lub inne urz&#261;dzenie blokuj&#261;ce ruch sieciowy nie dopuszcza 
    komunikacji do tego portu i z tego powodu Nmap nie jest w stanie okre&#347;li&#263; 
    czy badany port jest <literal moreinfo="none">otwarty</literal> czy 
    <literal moreinfo="none">zamkni&#281;ty</literal>. 
    <literal moreinfo="none">Zamkni&#281;ty</literal> port nie posiada aplikacji, 
    kt&#243;ra obs&#322;uguje komunikacj&#281; sieciow&#261;. Porty sklasyfikowane jako 
    <literal moreinfo="none">niefiltrowane</literal> odpowiada&#322;y na zapytania 
    Nmapa, jednak nie by&#322;o mo&#380;liwe okre&#347;lenie, czy by&#322;y one otwarte czy 
    zamkni&#281;te. Nmap raportuje kombinacje stan&#243;w 
    <literal moreinfo="none">otwarty|filtrowany</literal> i 
    <literal moreinfo="none">zamkni&#281;ty|filtrowany</literal> je&#347;li nie jest w 
    stanie okre&#347;li&#263;, kt&#243;ry z dw&#243;ch podanych stan&#243;w lepiej opisuje stan portu.
    Lista port&#243;w mo&#380;e r&#243;wnie&#380; zawiera&#263; informacje o wykrytych wersjach 
    oprogramowania, je&#347;li zosta&#322;a w&#322;&#261;czona detekcja wersji. Je&#347;li zosta&#322;a 
    wybrana opcja skanowania dost&#281;pnych protoko&#322;&#243;w (<option>-sO</option>), 
    Nmap zamiast listy port&#243;w dostarczy informacji na temat dost&#281;pno&#347;ci 
    poszczeg&#243;lnych protoko&#322;&#243;w IP.</para>

    <para>Poza list&#261; interesuj&#261;cych port&#243;w, Nmap mo&#380;e dostarczy&#263; dodatkowych
    informacje na temat badanych adres&#243;w, takich jak odwrotne nazwy DNS, 
    prawdopodobne systemy operacyjne, typu urz&#261;dze&#324; i adresy sprz&#281;towe 
    MAC.</para>

    <para>Typowy wynik skanowania Nmapa jest przedstawiony w 
    <xref linkend="man-ex-repscan"/>. W tym przypadku wykorzystano tylko opcj&#281;
    <option>-A</option>, wykrywaj&#261;c&#261; wersje systemu operacyjnego, 
    <option>-T4</option> dla szybszego dzia&#322;ania i dwa adresy docelowe.</para>

<example id="man-ex-repscan"><title>Przyk&#322;adowe wyniki skanowania Nmapa</title>
<screen format="linespecific">
# nmap -A -T4 scanme.nmap.org playground

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

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

Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds

</screen>
</example>

<para>Najnowsz&#261; wersj&#281; Nmapa mo&#380;na pobra&#263; z 
<ulink url="http://www.insecure.org/nmap/"/>. Najnowsza wersja dokumentacji man
jest dost&#281;pna pod adresem 
<ulink url="http://www.insecure.org/nmap/man/"/>.</para>

  </refsect1>

  <refsect1 id="man-translator">
    <title>Uwagi do t&#322;umaczenia</title>
    <para>Przemys&#322;aw Galczewski
    <email>sako(at)avet.com.pl</email>
    (<ulink url="http://www.avet.com.pl"/>)
    </para>
    
    <para>Dokument ten zawiera nieoficjalne polskie t&#322;umaczenie 
    <ulink url="http://www.insecure.org/nmap/man/">oryginalnej dokumentacji 
    Nmapa</ulink> w wersji 2991. Do&#322;o&#380;y&#322;em wszelkich stara&#324;, aby by&#322;o ono jak 
    najbardziej zbli&#380;one do orygina&#322;u, a przy tym fachowe i zrozumia&#322;e. 
    Nie jest przy tym gwarantowane, &#380;e jest ono tak samo dok&#322;adne i aktualne jak
    oficjalna wersja angielska. Dokument ten mo&#380;e by&#263; modyfikowany i
    rozpowszechniany na zasadach <ulink
    url="http://creativecommons.org/licenses/by/2.5/">Creative
    Commons Attribution License</ulink>.
    Polska wersja tego dokumentu jest dost&#281;pna w formatach
    <ulink url="http://www.insecure.org/nmap/man/pl/">HTML</ulink>, 
    <ulink url="http://www.insecure.org/nmap/data/man-xlate/nmap-pl.1">NROFF</ulink> i
    <ulink url="http://www.insecure.org/nmap/data/man-xlate/nmap-man-pl.xml">XML</ulink>.
    Wszelkie uwagi
    dotycz&#261;ce t&#322;umaczenia prosz&#281; kierowa&#263; bezpo&#347;rednio do mnie.</para>

  </refsect1>  
  
  <refsect1 id="man-briefoptions">
    <title>Skr&#243;cona lista opcji</title>

<para>Skr&#243;cona lista opcji jest wy&#347;wietlana przy uruchomieniu Nmapa bez 
dodatkowych parametr&#243;w, a jej najnowsza wersja jest zawsze dost&#281;pna pod adresem
<ulink url="http://www.insecure.org/nmap/data/nmap.usage.txt"/>.
Skr&#243;cona lista pozwala &#322;atwiej zapami&#281;ta&#263; najpopularniejsze opcje, ale 
nie zast&#261;pi wg&#322;&#281;bienia sie w reszt&#281; tej dokumentacji. 
Wiele z pozosta&#322;ych opcji nie jest nawet zawartych na li&#347;cie skr&#243;conej.</para>

<para>
<literallayout format="linespecific" class="normal">U&#380;ycie: nmap [Typ(y) skanowania] [Opcje] {specyfikacja celu}
SPECYFIKACJA CELU:
  Mo&#380;na poda&#263; nazwy host&#243;w, adresy IP, sieci, itp.
  Przyk&#322;ady: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL &lt;plik_wej&#347;ciowy&gt;: Odczytanie listy host&#243;w/sieci z pliku
  -iR &lt;ilo&#347;&#263; host&#243;w&gt;: Wybranie losowych adres&#243;w
  --exclude &lt;host1[,host2][,host3],...&gt;: Wy&#322;&#261;czenie host&#243;w/sieci
  --excludefile &lt;plik_wy&#322;&#261;cze&#324;&gt;: Wy&#322;&#261;czenie listy host&#243;w/sieci z pliku
WYKRYWANIE HOST&#211;W:
  -sL: Lista skanowania - tylko wy&#347;wietla list&#281; host&#243;w do skanowania
  -sP: Skanowanie Ping - tylko wykrywanie dost&#281;pno&#347;ci host&#243;w
  -P0: Traktuj wszystkie hosty jako dos&#281;pne - pomijanie wykrywania
  -PS/PA/PU [lista_port&#243;w]: Wykrywanie TCP SYN/ACK lub UDP na wybranych portach
  -PE/PP/PM: Zykrywanie za pomoc&#261; ICMP echo, timestamp, zapytania o mask&#281; sieci
  -n/-R: Nie u&#380;ywaj zapyta&#324; DNS/Zawsze odpytuj DNS [domy&#347;lnie: czasami]
  --dns-servers &lt;serv1[,serv2],...&gt;: U&#380;ywaj okre&#347;lonych serwer&#243;w DNS
  --system-dns: U&#380;ywaj systemowych ustawie&#324; DNS
TECHNIKI SKANOWANIA:
  -sS/sT/sA/sW/sM: Skanowania TCP SYN/Connect()/ACK/Window/Maimon
  -sN/sF/sX: Skanowania TCP Null, FIN i Xmas
  --scanflags &lt;flagi&gt;: R&#281;czne narzucanie flag TCP
  -sI &lt;host zombie[:port]&gt;: Idlescan
  -sO: Skanowanie protoko&#322;&#243;w IP
  -b &lt;host po&#347;redni ftp&gt;: Skanowanie FTP bounce
SPECYFIKACJA PORT&#211;W I KOLEJNO&#346;CI SKANOWANIA:
  -p &lt;zakres port&#243;w&gt;: Skanuj tylko podane porty
    Przyk&#322;ad: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
  -F: Szybkie skanowanie - tylko porty zawarte w pliku nmap-services
  -r: Skanuj porty kolejno - wy&#322;&#261;czenie losowania kolejno&#347;ci
DETEKCJA US&#321;UG/WERSJI:
  -sV: Wykrywaj wersj&#281; us&#322;ugi na otwartych portach
  --version-intensity &lt;poziom&gt;: Od 0 (tylko niekt&#243;re) do 9 (U&#380;ywaj wszystkich test&#243;w)
  --version-light: Limituj do najpopularniejszych test&#243;w (poziom 2)
  --version-all: U&#380;ywaj wszystkich test&#243;w (poziom 9)
  --version-trace: Pokazuj dok&#322;adne informacje podczas skanowania (do usuwania b&#322;&#281;d&#243;w)
DETEKCJA OS:
  -O: W&#322;&#261;czenie wykrywania systemu operacyjnego
  --osscan-limit: Limitowanie wykrywania OS do obiecuj&#261;cych host&#243;w
  --osscan-guess: Zgaduj wersj&#281; OS bardziej agresywnie
WYDAJNO&#346;&#262; I ZALE&#379;NO&#346;CI CZASOWE:
  -T[0-5]: Ustaw szablon (wy&#380;szy jest szybszy)
  --min-hostgroup/max-hostgroup &lt;rozmiar&gt;: Rozmiary grup do r&#243;wnoleg&#322;ego skanowania
  --min-parallelism/max-parallelism &lt;msec&gt;: Zr&#243;wnoleglenie test&#243;w
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout &lt;msec&gt;: Specyfikuje czas test&#243;w
  --max-retries &lt;ilo&#347;&#263;&gt;: Ustala ilo&#347;&#263; mo&#380;liwych powt&#243;rze&#324; testu
  --host-timeout &lt;msec&gt;: Pomijaj po zadanym czasie
  --scan-delay/--max-scan-delay &lt;msec&gt;: Ustalenie op&#243;&#378;nienia pomi&#281;dzy testami
OPCJE FIREWALL/IDS:
  -f; --mtu &lt;warto&#347;&#263;&gt;: fragmentacja pakiet&#243;w (opcjonalnie z podanym MTU)
  -D &lt;decoy1,decoy2[,ME],...&gt;: Ukrywaj skanowanie za pomoc&#261; innych host&#243;w
  -S &lt;Adres_IP&gt;: Podmieniaj adres nadawcy
  -e &lt;interfejs&gt;: U&#380;ywaj podanego interfejsu
  -g/--source-port &lt;portnum&gt;: U&#380;ywaj podanego portu &#378;r&#243;d&#322;owego
  --data-length &lt;num&gt;: Dodawaj losowe dane do wysy&#322;anych pakiet&#243;w
  --ttl &lt;warto&#347;&#263;&gt;: Ustaw czas &#380;ycia pakiet&#243;w
  --spoof-mac &lt;adres mac/prefix/producent&gt;: Podmieniaj adres MAC
  --badsum: Wysy&#322;aj pakiety z nieprawid&#322;ow&#261; sum&#261; kontroln&#261; TCP/UDP
WYJ&#346;CIE:
  -oN/-oX/-oS/-oG &lt;plik&gt;: Zapisz wyniki w podanym pliku normalnie, w XML, s|&lt;rIpt kIddi3
     i formacie grepowalnym
  -oA &lt;nazwabazowa&gt;: Zapisz wyniki w trzech formatach jednocze&#347;nie
  -v: Podwy&#380;szenie poziomu raportowania (podw&#243;jne u&#380;ycie powi&#281;ksza efekt)
  -d[poziom]: Ustaw lub podwy&#380;sz poziom debugowania (do najwy&#380;szego 9)
  --packet-trace: Pokazuj wszystkie wysy&#322;ane i odbierane pakiety
  --iflist: Wy&#347;wietl list&#281; interfejs&#243;w i routingu (do wykrywania b&#322;&#281;d&#243;w)
  --append-output: Do&#322;&#261;cz nowe wyniki do ju&#380; istniej&#261;cych w pliku
  --resume &lt;nazwapliku&gt;: Wzn&#243;w przerwane skanowanie
  --stylesheet &lt;&#347;cie&#380;ka/URL&gt;: plik styli XSL do konwersji wynik&#243;w w XML do formatu HTML
  --webxml: Domy&#347;lny styl z Insecure.Org
  --no-stylesheet: Wy&#322;&#261;czenie dodawania styli do plik&#243;w z wynikami XML
R&#211;&#379;NE:
  -6: W&#322;&#261;czenie skanowania IPv6
  -A: W&#322;&#261;czenie detekcji OS i wersji us&#322;ug
  --datadir &lt;katalog&gt;: Podanie katalogu z plikami danych Nmapa
  --send-eth/--send-ip: Wysy&#322;aj za pomoc&#261; ramek ethernet lub pakiet&#243;w IP
  --privileged: Zak&#322;adaj &#380;e u&#380;ytkownik ma odpowiednie uprawnienia
  -V: Wy&#347;wietl numer wersji Nmapa
  -h: Wy&#347;wietl stron&#281; pomocy
PRZYK&#321;ADY:
  nmap -v -A scanme.nmap.org
  nmap -v -sP 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -P0 -p 80
</literallayout>

</para>

  </refsect1>

  <refsect1 id="man-target-specification">
    <title>Specyfikacja celu</title>

<para>Wszystko co nie jest opcj&#261; Nmapa w parametrach wywo&#322;ania (lub jej 
argumentem) jest traktowane jako specyfikacja celu skanowania.
Najprostszym przypadkiem jest sam adres do przeskanowania.</para>

<para>Czasami chcesz przeskanowa&#263; ca&#322;&#261; sie&#263;, dlatego Nmap obs&#322;uguje format 
CDIR. Mo&#380;esz do&#322;&#261;czy&#263; do adresu /<replaceable>ilo&#347;&#263;bit&#243;w</replaceable> i nmap
przeskanuje ka&#380;dy adres, kt&#243;ry zawiera si&#281; w podanym zakresie.
Na przyk&#322;ad, 192.168.10.0/24 przeskanuje 256 adres&#243;w pomi&#281;dzy 192.168.10.0 
(binarnie: <literal moreinfo="none">11000000 10101000 00001010 
00000000</literal>) i 192.168.10.255 (binarnie: 
<literal moreinfo="none">11000000 10101000 00001010 11111111</literal>) 
w&#322;&#261;cznie. Podanie 192.168.10.40/24 spowoduje dok&#322;adnie takie samo zachowanie. 
Za&#322;&#243;&#380;my, &#380;e host scanme.nmap.org ma adres 205.217.153.62, podanie 
scanme.nmap.org/16 spowoduje przeskanowanie 65,536 adres&#243;w IP pomi&#281;dzy 
205.217.0.0 i 205.217.255.255. Najmniejsz&#261; dopuszczalna warto&#347;&#263; to /1,
co stanowi po&#322;ow&#281; Internetu. Najwi&#281;ksza warto&#347;&#263; to 32, kt&#243;ra oznacza 
skanowanie pojedynczego adresu IP.</para>

<para>Notacja CIDR jest kr&#243;tka i zwi&#281;z&#322;a, jednak nie zawsze wystarczaj&#261;co 
elastyczna. Na przyk&#322;ad, chcesz przeskanowa&#263; 192.168.0.0/16 z pomini&#281;ciem 
wszystkich adres&#243;w ko&#324;cz&#261;cych si&#281; .0 i .255, poniewa&#380; s&#261; one najcz&#281;&#347;ciej 
adresami typu broadcast. Nmap obs&#322;uguje to poprzez podawanie zakres&#243;w adres&#243;w 
za pomoc&#261; oktet&#243;w. Zamiast podawa&#263; normalny adres IP, mo&#380;esz poda&#263; list&#281; 
adres&#243;w lub zakres&#243;w oddzielon&#261; przecinkami. Na przyk&#322;ad 192.168.0-255.1-254 
pominie wszystkie adresy ko&#324;cz&#261;ce si&#281; .0 lub .255.
Zakresy nie s&#261; limitowane do ko&#324;cowych oktet&#243;w: podanie 0-255.0-255.13.37 
pozwoli na przeskanowanie wszystkich adres&#243;w ko&#324;cz&#261;cych si&#281; 13.37. Tego typu
skanowania mog&#261; by&#263; przydatne podczas przeprowadzania bada&#324; Internetu.</para>

<para>Adresy IPv6 mog&#261; by&#263; podawane jedynie w pe&#322;nej formie IPv6 lub nazwy 
hosta. Zapis z wykorzystaniem CIDR i zakres&#243;w nie jest obs&#322;ugiwany przy IPV6, 
jednak rzadko by&#322;oby to przydatne.</para>

<para>Nmap akceptuje podawanie wielu host&#243;w w linii polece&#324; i nie musz&#261; one 
by&#263; tego samego typu. Komenda <command moreinfo="none">nmap scanme.nmap.org
192.168.0.0/8 10.0.0,1,3-7.0-255</command> zrobi to co powinna.</para>

<para>Zwykle adresy s&#261; podawane w linii polece&#324;, jednak poni&#380;sze opcje 
pozwalaj&#261; na alternatywn&#261; specyfikacj&#281; celu:</para>

    <variablelist>
      <varlistentry>
        <term>
          <option>-iL &lt;plik_wej&#347;ciowy&gt;</option> (Odczytanie z pliku)
        </term>
        <listitem>
          <para>odczytuje specyfikacj&#281; celu z pliku
          <replaceable>plik-wej&#347;ciowy</replaceable>. Podawanie d&#322;ugiej listy 
          adres&#243;w z linii polece&#324; jest dosy&#263; niewygodne. Na przyk&#322;ad Tw&#243;j 
          serwer DHCP mo&#380;e posiada&#263; list&#281; 10,000 aktualnie dzier&#380;awionych 
          adres&#243;w, kt&#243;re chcesz przeskanowa&#263;. Mo&#380;liwe r&#243;wnie&#380;, &#380;e chcesz 
          przeskanowa&#263; wszystkie adresy IP z <emphasis>wykluczeniem</emphasis>
          aktualnie dzier&#380;awionych aby uzyska&#263; list&#281; nielegalnie przypisanych
          adres&#243;w statycznych. Po prostu wygeneruj list&#281; adres&#243;w i podaj j&#261; 
          Nmapowi jako argument do parametru <option>-iL</option>. 
          Poszczeg&#243;lne definicje mog&#261; by&#263; zgodne z dowolnym formatem 
          akceptowanym przez Nmapa w linii polece&#324; (adres IP, nazwa, CIDR, 
          IPv6 lub zakres). Ka&#380;dy wpis musi by&#263; oddzielony od nast&#281;pnego za 
          pomoc&#261; jednej (lub wiecej) spacji, znak&#243;w tabulacji lub znak&#243;w 
          nowej linii. Mo&#380;esz r&#243;wnie&#380; poda&#263; znak 
          (<literal moreinfo="none">-</literal>) zamiast nazwy pliku je&#347;li 
          chesz aby Nmap pobra&#322; adresy ze standardowego wej&#347;cia zamiast z 
          pliku.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-iR &lt;ilo&#347;&#263; host&#243;w&gt;</option> (Wybierz losowe cele)
        </term>
        <listitem>
          <para>Do przeprowadzania bada&#324; Internetu, mo&#380;esz u&#380;ywa&#263; wyboru 
          losowych adres&#243;w. Argument <replaceable>ilo&#347;&#263; host&#243;w</replaceable>
          informuje Nmapa ile losowych adres&#243;w ma wygenerowa&#263;. Adresy prywatne,
          typu multicast lub niewykorzystywane s&#261; automatycznie pomijane 
          przy generowaniu. Argument <literal moreinfo="none">0</literal> 
          pozwala na przeprowadzanie skanowania bez ko&#324;ca. Pami&#281;taj, &#380;e 
          niekt&#243;rzy administratorzy nie lubi&#261; skanowania ich sieci i mo&#380;e si&#281;
          im to nie spodoba&#263;. U&#380;ywaj tej opcji na w&#322;asne ryzyko! Je&#347;li 
          poczujesz si&#281; naprawd&#281; znudzony w deszczowe popo&#322;udnie, wyprubuj 
          komend&#281; <command moreinfo="none">nmap -sS -PS80 -iR 0 -p 
          80</command> do wykrycia losowych serwer&#243;w WWW do przegl&#261;dania 
          udost&#281;pnianych przez nie stron.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--exclude
          &lt;host1[,host2][,host3],...&gt;</option> (Wy&#322;&#261;czenie host&#243;w/sieci)
        </term>
        <listitem>
          <para>Podana lista cel&#243;w do wy&#322;&#261;czenia z zakresu skanowania, je&#347;li 
          wchodz&#261; w zakres aktualnego skanowania. Lista musi by&#263; podana 
          zgodnie ze standardowym formatem akceptowanycm przez Nmapa, wi&#281;c mo&#380;e 
          zawiera&#263; nazwy, adresy w formacie CDIR, zakresy, itp. Opcja ta jest
          przydatna, je&#347;li sie&#263; kt&#243;r&#261; chcesz przeskanowa&#263; zawiera systemy 
          nietykalne lub krytyczne, o kt&#243;rych wiadomo, &#380;e nie toleruj&#261; dobrze 
          skanowania lub te&#380; sieci administrowane przez innych ludzi.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--excludefile &lt;plik_wy&#322;&#261;cze&#324;&gt;</option> (Lista wy&#322;&#261;cze&#324; z pliku)
        </term>
        <listitem>
          <para>Opcja ta oferuje tak&#261; sam&#261; funkcjonalno&#347;&#263; jak 
          <option>--exclude</option> z t&#261; ro&#380;nic&#261;, &#380;e wykluczone cele 
          (oddzielone spacjami, znakami tabulacji lub nowej linii) s&#261; pobierane
          z pliku <replaceable>plik_wy&#322;&#261;cze&#324;</replaceable>, a nie z linii 
          polece&#324;.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 id="man-host-discovery">
    <title>Wykrywanie host&#243;w</title>
 
   <para>Jednym z pierwszych krok&#243;w rekonesansu sieciowego jest redukcja 
   (czasami ogromnych) zakres&#243;w adres&#243;w IP do listy aktywnych lub 
   interesuj&#261;cych host&#243;w. Skanowanie ka&#380;dego portu na ka&#380;dym adresie
   IP jest wolne i przewa&#380;nie niepotrzebne. Oczywi&#347;cie to co czyni host
   interesuj&#261;cym g&#322;&#243;wnie zale&#380;y od celu skanowania. Administratorzy sieci
   mog&#261; by&#263; zainteresowani hostami udost&#281;pniaj&#261;cymi okre&#347;lon&#261; us&#322;ug&#281; podczas
   gdy audytorzy bezpiecze&#324;stwa mog&#261; chcie&#263; przyjrze&#263; si&#281; ka&#380;demu urz&#261;dzeniu
   posiadaj&#261;cemu adres IP. Administratorowi mo&#380;e wystarcza&#263; wykorzystanie
   pinga ICMP do zlokalizowania host&#243;w w jego wewn&#281;trznej sieci, podczas gdy
   audytor przeprowadzaj&#261;cy zewn&#281;trzne testy penetracyjne mo&#380;e wykorzystywa&#263;
   dziesi&#261;tki r&#243;&#380;nych test&#243;w do omini&#281;cia regu&#322; filtrowania systemu 
   zaporowego.</para>

    <para>Poniewa&#380; niezb&#281;dne s&#261; r&#243;&#380;ne metody wykrywania host&#243;w, Nmap oferuje 
    szeroki wachlarz opcji pozwalaj&#261;cych na wybieranie wykorzystywanych technik.
    Wykrywanie host&#243;w cz&#281;sto jest zwane skanowaniem Ping, jednak wykracza 
    daleko poza proste wysy&#322;anie zapytania ICMP echo request znanego z 
    programu <application moreinfo="none">ping</application>.
    U&#380;ytkownik mo&#380;e pomin&#261;&#263; etap wykrywania poprzez wykorzystanie opcji skanowania
    listy (<option>-sL</option>), poprzez wy&#322;&#261;czenie pingowania
    (<option>-P0</option>) lub wykorzystania r&#243;&#380;nych kombinacji wieloportowego
    badania za pomoc&#261; test&#243;w TCP SYN/ACK, UDP, i ICMP. Celem tych test&#243;w jest
    uzyskanie informacji o adresach IP, kt&#243;re s&#261; aktualnie dost&#281;pne (s&#261; 
    wykorzystywane przez urz&#261;dzenie sieciowe lub komputer). W przypadku wielu
    sieci tylko ma&#322;y procent wykorzystywanych adres&#243;w IP jest r&#243;wnocze&#347;nie 
    aktywnych. Jest to szczeg&#243;lnie powszechne w sieciach prywatnych zgodnych 
    z adresacj&#261; RFC1918, takich jak 10.0.0.0/8. Ta sie&#263; zawiera 16 milion&#243;w
    adres&#243;w IP, ale widzia&#322;em nie raz firmy wykorzystuj&#261;ce nieca&#322;y tysi&#261;c z 
    nich. Opcja wykrywania host&#243;w pozwala na szybkie wykrycie rzeczywi&#347;cie 
    wykorzystywanych adres&#243;w IP z ca&#322;ej dost&#281;pnej puli.</para>

    <para>Je&#347;li nie podano opcji wybieraj&#261;cej metod&#281; wykrywania host&#243;w, Nmap
          wysy&#322;a pakiety TCP ACK na port 80 i zapytanie ICMP Echo Request query
          do ka&#380;dego badanego adresu. Wyj&#261;tkiem od tej regu&#322;y jest skanowanie 
          ARP przeprowadzane dla aktualnego segmentu sieci ethernet. W 
          przypadku uruchamiania przez nie uprzywilejowanych u&#380;ytkownik&#243;w 
          system&#243;w UNIX, wysy&#322;any jest pakiet SYN zamiast ACK z wykorzystaniem
          wywo&#322;ania systemowego <function moreinfo="none">connect()</function>.
          Ustawienia domy&#347;lne s&#261; to&#380;same z opcjami <option>-PA -PE</option>.
          Takie wykrywanie host&#243;w jest najcz&#281;&#347;ciej wystarczaj&#261;ce podczas 
          skanowania sieci lokalnej, jednak podczas audyt&#243;w bezpiecze&#324;stwa
          zalecane jest wykorzystywanie bardziej zaawansowanych opcji.</para>
    
    <para>Opcje <option>-P*</option> (kt&#243;re wybieraj&#261; spos&#243;b pingowania) mog&#261;
    by&#263; &#322;&#261;czone. Mo&#380;esz poprawic dok&#322;adno&#347;&#263; wykrywania host&#243;w za systemem 
    zaporowym poprzez stosowanie wielu r&#243;&#380;nych port&#243;w/flag TCP i typ&#243;w ICMP.
    Zwracam uwag&#281;, &#380;e wykrywanie host&#243;w  ARP (<option>-PR</option>) jest 
    z za&#322;o&#380;enia w&#322;&#261;czane podczas test&#243;w sieci lokalnej w ramach tego samego 
    segmentu, nawet je&#347;li podasz inne opcje <option>-P*</option>, poniewa&#380;
    praktycznie zawsze tak jest szybciej i efektywniej.</para>

    <para>Opcje kontroli wykrywania host&#243;w.</para>
    <variablelist>

      <varlistentry>
        <term>
        <option>-sL</option> (Lista skanowania)</term>
        <listitem>
          <para>Lista skanowania jest okrojon&#261; funkcj&#261; wykrywania host&#243;w, kt&#243;ra
          po prostu wy&#347;wietla wszystkie adresy z podanych zakres&#243;w skanowania i
          nie wysy&#322;a &#380;adnych pakiet&#243;w do nich. Domy&#347;lnie Nmap wykonuje 
          odwrotne zapytania DNS o badane adresy aby pozna&#263; ich nazwy. Cz&#281;sto
          niespodziank&#261; jest jak du&#380;o informacji mog&#261; udzieli&#263; ju&#380; same nazwy
          host&#243;w. Na przyk&#322;ad 
          <literal moreinfo="none">fw.chi.playboy.com</literal> jest systemem 
          zaporowym w biurze Playboy Enterprises w Chicago. Na ko&#324;cu Nmap 
          podaje tak&#380;e ca&#322;kowit&#261; liczb&#281; adres&#243;w IP. Lista skanowania jest 
          dobrym sposobem na sprawdzenie i uzyskanie pewno&#347;ci, &#380;e prawid&#322;owo
          podano zakres skanowania. Je&#347;li nie rozpoznajesz nazw domen na 
          uzyskanej li&#347;cie, warto sprawdzi&#263; podany zakres, co pozwala unik&#261;&#263;
          niepotrzebnego skanowania sieci nieznanej firmy.</para>

          <para>Ide&#261; tej opcji jest wy&#347;wietlanie prostej listy adres&#243;w, z tego 
          powodu bardziej zaawansowana funkcjonalno&#347;&#263; taka jak skanowanie 
          port&#243;w, wykrywanie systemu operacyjnego czy pingowanie nie mo&#380;e by&#263;
          &#322;&#261;czone z t&#261; metod&#261;. Je&#347;li chcesz wy&#322;&#261;czy&#263; pingowanie podczas 
          skanowania, poczytaj na ten temat w opisie opcji 
          <option>-P0</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-sP</option> (Skanowanie Ping)</term>
        <listitem>

           <para>Ta opcja nakazuje Nmapowi przeprowadza&#263; <emphasis>tylko</emphasis>
           skanowanie typu Ping (wykrywanie host&#243;w), a wynikiem jej
           dzia&#322;ania jest lista aktywnych host&#243;w. Dodatkowe testy (takie jak
           skanowanie port&#243;w lub wykrywanie systemu operacyjnego) nie s&#261; 
           przeprowadzane. Metoda ta idzie krok dalej ni&#380; lista skanowania i 
           mo&#380;e by&#263; wykorzystywana w podobnym celu. Pozwala na przeprowadzenie
           delikatnego rekonesansu bez zwracania zbytniej uwagi. Posiadanie
           wiedzy na temat ilo&#347;ci aktywnych host&#243;w jest bardziej warto&#347;ciowe
           dla atakuj&#261;cych ni&#380; sama lista adres&#243;w zawieraj&#261;ca adres IP i
           nazw&#281; hosta.</para>

           <para>R&#243;wnie&#380; administratorzy system&#243;w cz&#281;sto korzystaj&#261; z tej 
           opcji. Pozwala ona na &#322;atwe i szybkie okre&#347;lenie liczby host&#243;w w 
           sieci lub monitorowanie dost&#281;pno&#347;ci serwer&#243;w. Opcja ta cz&#281;sto jest
           nazywna Ping Sweep i daje bardziej wiarygodne wyniki ni&#380; pingowanie 
           adresu broadcast, poniewa&#380; niekt&#243;re adresy mog&#261; na niego nie 
           odpowiedzie&#263;.</para>

           <para>Domy&#347;lnie opcja <option>-sP</option> wysy&#322;a pakiety ICMP echo 
           request i pakiety TCP na port 80. W przypadku wykonywania z konta 
           nie uprzywilejowanego u&#380;ytkownika wysy&#322;ane s&#261; pakiety SYN (z 
           wykorzystaniem funkcji systemowej 
           <function moreinfo="none">connect()</function>) na port 80 badanego
           hosta. Je&#347;li uprzywilejowany u&#380;ytkownik pr&#243;buje przeskanowa&#263; adresy
           w lokalnej sieci ethernet, wykorzystywane s&#261; zapytania ARP 
           (<option>-PR</option>), chyba &#380;e dodano opcj&#281; 
           <option>--send-ip</option>.
           Dla wi&#281;kszej wygody opcja <option>-sP</option> mo&#380;e by&#263; &#322;&#261;czona w 
           dowolny spos&#243;b z innymi metodami wykrywania host&#243;w (opcje 
           <option>-P*</option>, nie dotyczy <option>-P0</option>).
           
           Je&#347;li wybrano kt&#243;ry&#347; z typ&#243;w test&#243;w i numer portu, nie s&#261; 
           wykorzystywne domy&#347;lne ustawienia (ACK i echo request). 
           Wykorzystywanie tych opcji jest szczeg&#243;lnie zalecane, je&#347;li
           pomi&#281;dzy badanym systemem, a hostem na kt&#243;rym jest uruchomiony 
           Nmap jest system zaporowy, inaczej niekt&#243;re (lub wszystkie) hosty
           nie zostan&#261; wykryte.</para>

        </listitem>
      </varlistentry>


      <varlistentry>
        <term>
          <option>-P0</option> (Bez pinga)
        </term>
        <listitem>
          <para>Ta opcja wy&#322;&#261;cza ca&#322;kowicie wykrywanie host&#243;w. Normalnie
          Nmap pr&#243;buje wykry&#263; aktywne adresy przed rozpocz&#281;ciem w&#322;a&#347;ciwego
          skanowania. Domy&#347;lnie Nmap przeprowadza tylko testy takie jak 
          skanowanie port&#243;w, wykrywanie wersji i systemu operacyjnego tylko
          dla host&#243;w, kt&#243;re zosta&#322;y wcze&#347;niej wykryte jako aktywne. Wy&#322;&#261;czenie
          wykrywania host&#243;w za pomoc&#261; opcji <option>-P0</option> powoduje, 
          &#380;e Nmap pr&#243;buje wykona&#263; wszystkie &#380;adane typy skanowania na 
          <emphasis>ka&#380;dym</emphasis> podanym adresie IP. Je&#347;li wi&#281;c jako cel 
          w linii plece&#324; podano klas&#281; B (/16), wszystkie 65,536 adres&#243;w 
          zostanie przeskanowane. Drugi znak w opcji <option>-P0</option> jest
          zerem, a nie liter&#261; O. Wykrywanie host&#243;w jest pomijane jak przy 
          wy&#347;wietlaniu listy skanowania, jednak zamiast zatrzyma&#263; si&#281; i 
          wy&#347;wietli&#263; list&#281;, Nmap kontynuuje i przeprowadza za&#322;o&#380;one testy
          na ka&#380;ym adresie IP, tak jak by by&#322; wykryty jako aktywny.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-PS [listaport&#243;w]</option> (TCP SYN Ping)</term>
        <listitem>

          <para>Opcja ta powoduje wysy&#322;anie pustych pakiet&#243;w TCP z ustawion&#261;
          flag&#261; SYN. Domy&#347;lnie port docelowy to 80 (konfigurowalne przed 
          kompilacj&#261; za pomoc&#261; sta&#322;ej DEFAULT_TCP_PROBE_PORT w pliku
          <filename moreinfo="none">nmap.h</filename>), ale inny port mo&#380;e by&#263;
          podany jako parametr. Mo&#380;liwe jest r&#243;wnie&#380; podanie listy port&#243;w, 
          odzielonych przecinkami 
          (np. <option>-PS22,23,25,80,113,1050,35000</option>), co spowoduje
          przeprowadzenie test&#243;w na wszystkich podanych portach r&#243;wnolegle.
          </para>

          <para>Ustawiona flaga SYN sugeruje badanemu systemowi, &#380;e pr&#243;bujesz
          nawi&#261;za&#263; z nim po&#322;&#261;czenie. Normalnie zdalny port b&#281;dzie zamkni&#281;ty
          i zostanie wys&#322;any z powrotem pakiet z flag&#261; RST (reset). Je&#347;li 
          port b&#281;dzie otwarty, host b&#281;dzie pr&#243;bowa&#322; wykona&#263; drugi krok z 
          tr&#243;jstopniowego procesu nawi&#261;zywania po&#322;&#261;czenia odpowiadaj&#261;c za
          pomoc&#261; pakietu TCP SYN/ACK. Nmap zamiast wys&#322;a&#263; pakiet ACK, kt&#243;ry by
          pomy&#347;lnie zako&#324;czy&#322; nawi&#261;zywanie po&#322;&#261;czenia, w tym momencie przerwie 
          po&#322;&#261;czenie wysy&#322;aj&#261;c pakiet RST. Pakiet RST jest wysy&#322;any przez 
          kernel systemu na kt&#243;rym pracuje Nmap automatycznie, w odpowiedzi
          na niespodziwany pakiet SYN/ACK, a nie przez samego Nmapa.</para>

          <para>Nmap nie zwraca uwagi czy port jest otwarty czy zamkni&#281;ty.
          W zale&#380;no&#347;ci od uzyskanej om&#243;wionej wcze&#347;niej odpowiedzi (RST lub 
          SYN/ACK) host jest uznawany za dost&#281;pny.</para>

          <para>W systemach UNIX, tylko u&#380;ytkownik uprzywilejowany - 
          <literal moreinfo="none">root</literal> - mo&#380;e wysy&#322;a&#263; niskopoziomowe
          pakiety raw TCP. W przypadku u&#380;ytkownik&#243;w nie posiadaj&#261;cych 
          odpowiednich uprawnie&#324; wykorzystywane jest obej&#347;cie w postaci 
          wykorzystania funkcji systemowej connect() do wykonania po&#322;&#261;cze&#324; ze
          wskazanymi portami. Je&#347;li connect() zwr&#243;ci poprawno&#347;&#263; wykonania 
          operacji lub b&#322;&#261;d odmowy po&#322;&#261;czenia ECONNREFUSED, stos TCP musia&#322;
          otrzyma&#263; pakiet z flagami SYN/ACK lub RST i host jest uznawany za
          dost&#281;pny. Je&#347;li pr&#243;ba nawi&#261;zania po&#322;&#261;czenia zosta&#322;a przerwana po 
          przekroczeniu maksymalnego czasu oczekiwania, host jest oznaczany 
          jako niedost&#281;pny. To obej&#347;cie jest r&#243;wnie&#380; wykorzystywane dla
          protoko&#322;u IPv6, poniewa&#380; wysy&#322;anie niskopoziomowych pakiet&#243;w raw TCP
          nie jest jeszcze dost&#281;pne w Nmapie.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-PA [lista port&#243;w]</option> (TCP ACK Ping)</term>
        <listitem>
          <para>Metoda TCP ACK ping jest dosy&#263; podobna do powy&#380;ej opisanego
          SYN ping. R&#243;&#380;nica, jak &#322;atwo zgadn&#261;&#263;, polega na wykorzystaniu flagi 
          ACK zamiast SYN. Flaga ACK jest wykorzystywana do potwierdzania 
          otrzymania danych za pomoc&#261; utworzonego wcze&#347;niej po&#322;&#261;czenia TCP,
          jednak w tym wypadku po&#322;&#261;czenie takie nie istnieje. Z tego powodu
          badany system powinien zawsze odpowiedzie&#263; pakietem z flag&#261; RST,
          &#347;wiadcz&#261;c&#261; o nie isnieniu takiego po&#322;&#261;czenia.</para>

          <para>Opcja <option>-PA</option>, tak jak SYN, u&#380;ywa portu numer 80 i
          r&#243;wnie&#380; mo&#380;e przyjmowa&#263; list&#281; port&#243;w jako argument (w takim samym 
          formacie). Je&#347;li program zosta&#322; uruchomiony przez 
          nie uprzywilejowanego u&#380;ytkownika lub badany jest adres IPv6, 
          wykorzystywane jest opisane wcze&#347;niej obej&#347;cie za pomoc&#261; connect().
          Obej&#347;cie to nie jest idealne, poniewa&#380; funkcja connect() wysy&#322;a 
          pakiet SYN zamiast oczekiwanego ACK.</para>

          <para>Powodem udost&#281;pniania zar&#243;wno metody SYN jak i ACK jest
          zwi&#281;kszenie szansy na omini&#281;cie systemu zaporowego. Wielu 
          administrator&#243;w konfiguruje routery i proste systemy zaporowe tak, 
          &#380;eby blokowa&#322;y przychodz&#261;ce pakiety SYN, poza przychodz&#261;cymi do 
          publicznych serwer&#243;w takich jak WWW czy pocztowych. Zabezpiecza to
          przed przychodzeniem innych po&#322;&#261;cze&#324; przy jednoczesnym nie
          zak&#322;ucaniu pozosta&#322;ej transmisji wychodz&#261;cej do Internetu. Takie
          bezstanowe (non-stateful) rozwi&#261;zanie zajmuje ma&#322;o zasob&#243;w systemu
          zaporowego/routera i jest szeroko wspierane przez filtry sprz&#281;towe i 
          programowe. Linuxowy firewall Netfilter/iptables dla wygody posiada 
          opcj&#281; <option>--syn</option>, kt&#243;ra implementuje takie w&#322;a&#347;nie
          bezstanowe filtrowanie. W przypadku takiego systemu zaporowego testy
          wykorzystuj&#261;ce metod&#281; SYN ping (<option>-PS</option>) zostan&#261;
          prawdopodobnie zablokowane w przypadku zamkni&#281;tych port&#243;w. W tym
          przypadku metoda ACK pozwoli na obej&#347;cie tych zabezpiecze&#324;.</para>

          <para>Innym popularnym typem jest firewall wykorzystuj&#261;cy stany 
          (stateful) do blokowania niechcianych pakiet&#243;w. Taka funkcjonalno&#347;&#263; 
          jest najcz&#281;&#347;ciej spotykana w wysokiej klasy systemach zaporowych, kt&#243;re
          staj&#261; si&#281; z roku na rok coraz popularniejsze. Linuxowy 
          Netfilter/iptables posiada opcj&#281; <option>--state</option>, kt&#243;ra 
          kategoryzuje pakiety na podstawie stanu po&#322;&#261;czenia. Metoda SYN
          prawdopodobnie b&#281;dzie dzia&#322;a&#322;a poprawnie dla tego typu system&#243;w,
          ale ju&#380; pakiet z ACK zostanie rozpoznany jako nieprawid&#322;owy i 
          zostanie zablokowany. Rozwi&#261;zaniem tego problemu jest wykorzystywanie 
          jednocze&#347;nie obu metod SYN i ACK poprzez podanie parametr&#243;w
          <option>-PS</option> i <option>-PA</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-PU [listaport&#243;w]</option> (UDP Ping)</term>
        <listitem>

          <para>Kolejn&#261; metod&#261; wykrywania host&#243;w jest UDP ping, kt&#243;ry wysy&#322;a
          puste (o ile nie wykorzystano opcji <option>--data-length</option>)
          pakiety UDP na wskazane porty. Lista port&#243;w jest podawana w takim 
          samym formacie jak dla wcze&#347;niej opisanych opcji <option>-PS</option> 
          i <option>-PA</option>. Je&#347;li nie podano numer&#243;w port&#243;w, domy&#347;lnie
          u&#380;ywany jest port 32338. Port ten mo&#380;e by&#263; zmieniony przed
          kompilacj&#261; poprzez zmian&#281; sta&#322;ej DEFAULT_UDP_PROBE_PORT w pliku
          <filename moreinfo="none">nmap.h</filename>. Wyb&#243;r tak ma&#322;o 
          popularnego portu zosta&#322; podyktowany ch&#281;ci&#261; unikni&#281;cia wysy&#322;ania
          pakiet&#243;w do otwartych port&#243;w, co w przypadku tego testu nie 
          przynios&#322;o by oczekiwanego efektu.</para>

          <para>W przypakdu kiedy port jest zamkni&#281;ty na badaniej maszynie, w 
          odpowiedzi na pakiet UDP powinien zosta&#263; odes&#322;any pakiet ICMP
          port unreachable oznaczaj&#261;cy brak mo&#380;liwo&#347;ci komunikacji z wybranym 
          portem. Po otrzymaniu takiej odpowiedzi Nmap oznacza host jako 
          dost&#281;pny. Inne typy odpowiedzi ICMP, takie jak host/sie&#263; niedost&#281;pna
          czy przekroczony czas &#380;ycia TTL oznaczaj&#261;, &#380;e badany host nie jest
          dost&#281;pny, podobnie interpretowany jest brak odpowiedzi. Je&#347;li badany 
          port jest otwarty, wi&#281;kszo&#347;&#263; typowych us&#322;ug zignoruje pusty pakiet i
          nie zostanie wys&#322;ana &#380;adna informacja zwrotna. W&#322;a&#347;nie dla tego 
          domy&#347;lnie testowanym portem jest 31338, kt&#243;ry jest bardzo rzadko
          wykorzystywany. Wiele us&#322;ug, takich jak chargen, odpowie na pusty
          pakiet co spowoduje, &#380;e Nmap uzna host za dost&#281;pny.</para>

          <para>G&#322;&#243;wn&#261; zalet&#261; tego typu skanowania jest fakt, &#380;e omija systemy
          zaporowe i filtry skupiaj&#261;ce sie tylko na TCP. Przyk&#322;adowo, mia&#322;em
          kiedy&#347; szerokopasmowy router bezprzewodowy Linksys BEFW11S4. 
          Zewn&#281;trzny interfejs tego urz&#261;dzenia filtrowa&#322; domy&#347;lnie wszystkie
          porty TCP, za to testy UDP zwraca&#322;y odpowiedzi ICMP port unreachable,
          co ujawnia istnienie urz&#261;dzenia.</para>

        </listitem>
      </varlistentry>

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

          <para>Dodatkowo poza opisanymi wcze&#347;niej metodami wykrywania host&#243;w 
          TCP i UDP, Nmap mo&#380;e wysy&#322;a&#263; standardowe pakiety ICMP znane z
          typowego programu <application moreinfo="none">ping</application>.
          Nmap wysy&#322;a pakiety ICMP typu 8 (echo request) do badanego hosta i
          oczekuje typu 0 (echo reply) w odpowiedzi. Niestety wiele host&#243;w i 
          system&#243;w zaporowych blokuje tego typu pakiety, zamiast odpowiada&#263;
          prawid&#322;owo i zgodnie z 
          <ulink url="http://www.rfc-editor.org/rfc/rfc1122.txt">RFC
          1122</ulink>. Z tego powodu skanowania nieznanych host&#243;w w internecie
          za pomoc&#261; tej metody przewa&#380;nie nie s&#261; wiarygodne. Jednak&#380;e 
          administratorzy system&#243;w monitoruj&#261;cy wewn&#281;trzne sieci mog&#261; z 
          powodzeniem efektywnie wykorzystywa&#263; t&#261; metod&#281;. Takie wykorzystanie
          zapyta&#324; ICMP echo request jest mo&#380;liwe za pomoc&#261; opcji
          <option>-PE</option>.</para>
          
          <para>Zapytanie echo request jest standardowym zapytaniem ICMP ping,
          jednak Nmap nie poprzestaje na tym. Standard ICMP 
          (<ulink url="http://www.rfc-editor.org/rfc/rfc792.txt">RFC
          792</ulink>) opisuje tak&#380;e zapytania timestamp request, information
          request, i address mask request o kodach odpowiednio 13, 15 i 17.
          Podczas kiedy za&#322;o&#380;onym efektem dzia&#322;ania tych zapyta&#324; jest uzyskanie
          informacji typu maska sieci czy aktualny czas, mog&#261; by&#263; one 
          wykorzystane do wykrywania aktywno&#347;ci host&#243;w. System kt&#243;ry odpowiada,
          jest uznawany za aktywny. Nmap nie obs&#322;uguje zapyta&#324; information 
          request, jako &#380;e nie s&#261; one cz&#281;sto spotykane. RFC 1122 zaleca, &#380;e
          <quote>host NIE POWINIEN obs&#322;ugiwa&#263; tych zapyta&#324;</quote>.
          Zapytania timestamp i address mask mog&#261; by&#263; wysy&#322;ane z wykorzystaniem
          opcji odpowiednio <option>-PP</option> i <option>-PM</option>.
          Odpowiedzi timestamp reply (ICMP kod 14) lub address mask reply 
          (kod 18) ujawniaj&#261; aktywno&#347;&#263; hosta. Te dwa zapytania mog&#261; by&#263; 
          pomocne, kiedy administrator specyficznie blokuje zapytania
          echo request zapominaj&#261;c przy tym blokowa&#263; inne typy ICMP, kt&#243;re
          mog&#261; by&#263; wykorzystane w tym samym celu.</para>

        </listitem>
      </varlistentry>

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

          <para>Jednym z najcz&#281;&#347;ciej spotykanych scenariuszy wykorzystania 
          Nmapa jest skanowanie sieci lokalnej ethernet. W wi&#281;kszo&#347;ci sieci
          LAN, w szczeg&#243;lno&#347;ci wykorzystuj&#261;cych adresacj&#281; prywatn&#261; zalecan&#261;
          przez RFC1918, wi&#281;kszo&#347;&#263; adres&#243;w IP nie jest wykorzystywana. Kiedy
          Nmap pr&#243;buje wys&#322;a&#263; pakiet raw IP taki jak ICMP echo
          request, by poprawnie zaadresowa&#263; ramk&#281; ethernet system operacyjny 
          musi okre&#347;li&#263; (ARP) docelowy adres sprz&#281;towy koresponduj&#261;cy z 
          docelowym adresem IP.
          
          Takie zachowanie jest cz&#281;sto powolne i problematyczne, poniewa&#380;
          systemy operacyjne nie zosta&#322;y napisane z uwzgl&#281;dnieniem potrzeby
          wysy&#322;ania milion&#243;w zapyta&#324; ARP o niedost&#281;pne hosty w kr&#243;tkim 
          czasie.</para>

          <para>Skanowanie ARP wykorzystuje zoptymalizowany algorytm Nmapa
          do wysy&#322;ania zapyta&#324; ARP. Po otrzymaniu odpowiedzi Nmap nie musi
          si&#281; nawet martwi&#263; o oparte na IP pakiety ping, poniewa&#380; ju&#380; wie,
          &#380;e host jest aktywny. Takie zachowanie pozwala na du&#380;o szybsze
          i bardziej wiarygodne skanowanie. Z tego powodu zachowanie takie 
          jest domy&#347;lne podczas skanowania sieci, kt&#243;r&#261; Nmap wykryje jako sie&#263;
          lokaln&#261; nale&#380;&#261;c&#261; do tego samego segmentu. Nawet je&#347;li zostan&#261; podane
          inne typy skanowania ping (takie jak <option>-PE</option> lub
          <option>-PS</option>), Nmap u&#380;ywa ARP zamiast nich do wykrywaia 
          host&#243;w w lokalnej sieci ethernet. Je&#347;li nie chcesz u&#380;ywa&#263; ARP do
          skanowania, dodaj opcj&#281; <option>--send-ip</option>.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-n</option> (Wy&#322;&#261;cz zapytania DNS)
        </term>
        <listitem>
          <para>Nakazuje Nmapowi <emphasis>nigdy</emphasis> nie u&#380;ywa&#263; zapyta&#324;
          odrotnych do serwer&#243;w DNS o nazwy przypisane do adres&#243;w IP. Jako &#380;e 
          zapytania DNS s&#261; najcz&#281;&#347;ciej d&#322;ugo trwaj&#261;, opcja ta przyspiesza 
          prac&#281;.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-R</option> (Wymu&#347; zapytania DNS)
        </term>
        <listitem>
          <para>Nakazuje Nmapowi <emphasis>zawsze</emphasis> wykonywa&#263; 
          odwrotne zapytania do serwera DNS o nazwy dla skanowanych adres&#243;w
          IP. Domy&#347;lnie zapytania s&#261; wykonywane tylko dla aktywnych 
          host&#243;w.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--system_dns</option> (U&#380;ywaj systemowego DNS)
        </term>
        <listitem>
          <para>Domy&#347;lnie Nmap okre&#347;la nazwy dla adres&#243;w IP poprzez wysy&#322;anie
          zapyta&#324; bezpo&#347;rednio do serwer&#243;w DNS skonfigurowanych w systemie, o
          ile s&#261; dost&#281;pne. Wiele zapyta&#324; (cz&#281;sto dziesi&#261;tki) jest wykonywanych 
          r&#243;wnolegle dla uzyskania wiekszej szybko&#347;ci. Dodanie tej opcji 
          wymusza wykorzystywanie rozwi&#261;zywania nazw za 
          po&#347;rednictwem systemu operacyjnego (ka&#380;dorazowo o pojedyncze IP za
          pomoc&#261; funkcji getnameinfo()). Ta opcja jest wolniejsza i jest 
          u&#380;yteczna tylko w sporadycznych przypadkach, chyba &#380;e w Nmapie jest
          b&#322;&#261;d w kodzie DNS - prosze si&#281; z nami skontaktowa&#263; w tym przypadku.
          W przypadku skanowania sieci IPv6, rozwi&#261;zywanie nazw jest zawsze
          wykonywane z wykorzystaniem systemu operacyjnego.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--dns_servers &lt;server1[,server2],...&gt;
          </option> (Serwery do wykonywania zapyta&#324; DNS)
        </term>
        <listitem>
          <para>Domy&#347;lnie Nmap pr&#243;buje odczyta&#263; serwery DNS wpisane do pliku
          resolv.conf (UNIX) lub rejestru (Win32). Alternatywnie, mo&#380;esz u&#380;y&#263;
          tej opcji do podania w&#322;asnych serwer&#243;w. Opcja ta nie jest 
          uwzgl&#281;dniana, je&#347;li u&#380;yto r&#243;wnie&#380; opcji <option>--system_dns</option>
          lub skanowane s&#261; adresy IPv6. U&#380;ywanie wielu serwer&#243;w DNS jest cz&#281;sto
          du&#380;o szybsze, ni&#380; tylko jednego.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 id="man-port-scanning-basics">
    <title>Podstawy skanowania port&#243;w</title>

          <para>Przez lata funkcjonalno&#347;&#263; Nmapa by&#322;a sukcesywnie powi&#281;kszana,
          z pocz&#261;tku by&#322; tylko efektywnym skanerem port&#243;w i to nadal pozostaje
          jego g&#322;&#243;wn&#261; funkcj&#261;. Prosta komenda <command moreinfo="none">nmap
          <replaceable>target</replaceable></command> skanuje ponad 1660 port&#243;w
          TCP na wybranym <replaceable>celu skanowania</replaceable>. Podczas
          kiedy wi&#281;kszo&#347;&#263; skaner&#243;w tradycyjnie zalicza wszystkie porty do 
          kategorii otwarty lub zamkni&#281;ty, Nmap jest du&#380;o dok&#322;adniejszy.
          Rozr&#243;&#380;nia sze&#347;&#263; mo&#380;liwych stan&#243;w ka&#380;dego portu:
          <literal moreinfo="none">otwarty</literal>,
          <literal moreinfo="none">zamkni&#281;ty</literal>, 
          <literal moreinfo="none">filtrowany</literal>,
          <literal moreinfo="none">niefiltrowany</literal>,
          <literal moreinfo="none">otwarty|filtrowany</literal>, or
          <literal moreinfo="none">zamkni&#281;ty|filtrowany</literal>.</para>

<para>Te stany nie s&#261; rzeczywistymi stanami port&#243;w, opisuj&#261; jak Nmap je widzi.
Na przyk&#322;ad, skanowanie Nmapa z wn&#281;trza sieci pokazuje port 135/TCP jako
otwarty, podczas kiedy skanowanie przez Internet mo&#380;e okre&#347;li&#263; stan portu
jako <literal moreinfo="none">filtrowany</literal>.</para>

<variablelist><title>Sze&#347;&#263; stan&#243;w port&#243;w Nmapa</title>

  <varlistentry><term>otwarty</term>
  <listitem><para>Aplikacja aktywnie akceptuje na tym porcie po&#322;&#261;czenia TCP 
  lub pakiety UDP. Znalezienie takich port&#243;w jest g&#322;&#243;wnym celem skanowania.
  Osoby obeznane z bezpiecze&#324;stwem wiedz&#261;, &#380;e ka&#380;dy otwarty port to potencjalny
  cel ataku. Atakuj&#261;cy i wykonuj&#261;cy testy penetracyjne chc&#261; wykorzysta&#263; luki w 
  oprogramowaniu poprzez otwarte porty, podczas gdy administratorzy staraj&#261; si&#281;
  zamyka&#263; lub chroni&#263; je za pomoc&#261; system&#243;w zaporowych przed niepo&#380;&#261;danymi
  u&#380;ytkownikami. Otwarte porty s&#261; tak&#380;e interesuj&#261;ce przy skanowaniach nie
  zwi&#261;zanych z ocen&#261; bezpiecze&#324;stwa, poniewa&#380; pokazuj&#261; us&#322;ugi dost&#281;pne w sieci.
  </para></listitem></varlistentry>

  <varlistentry><term>zamkni&#281;ty</term>

  <listitem><para>Zamkni&#281;ty port jest dost&#281;pny (odbiera i odpowiada na 
  pakiety Nmapa), ale nie ma &#380;adnej aplikacji, kt&#243;ra by obs&#322;u&#380;y&#322;a po&#322;aczenie.
  Porty te mog&#261; by&#263; pomocne przy sprawdzaniu czy host jest aktywny (wykrywanie 
  host&#243;w lub skanowanie Ping) oraz przy wykrywaniu systemu operacyjnego.
  Poniewa&#380; s&#261; dost&#281;pne zamkni&#281;te porty, warto skanowa&#263; dalej w poszukiwaniu 
  otwartych. Administratorzy mog&#261; chcie&#263; blokowa&#263; takie porty za pomoc&#261; 
  system&#243;w zaporowych, wtedy ich stan zostanie okre&#347;lony jako filtrowany, 
  opisany dalej.</para></listitem></varlistentry>

  <varlistentry><term>filtrowany</term>

  <listitem><para>Nmap nie mo&#380;e okre&#347;li&#263; czy port jest otwarty z powodu
  filtrowania komunikacji. Filtrowanie mo&#380;e by&#263; przeprowadzane na
  dedykowanym urz&#261;dzeniu, za pomoc&#261; regu&#322; routera lub programowego firewalla
  na ho&#347;cie. Takie porty s&#261; frustruj&#261;ce dla atakuj&#261;cych, poniewa&#380; dostarczaj&#261;
  znikomych ilo&#347;ci informacji. Porty czasami odpowiadaj&#261; komunikatami ICMP 
  takim jak typ 3 kod 13 (destination unreachable: communication 
  administratively prohibited), ale filtry blokuj&#261; wysy&#322;anie takiego komunikatu
  bez wysy&#322;ania typowej odpowiedzi. Takie zachowanie zmusza Nmapa do 
  kilkukrotnego powtarzania pakiet&#243;w na wypadek ich zagini&#281;cia na przyk&#322;ad
  na skutek przeci&#261;&#380;enia sieci, co spowalnia skanowanie w spos&#243;b drastyczny.
  </para></listitem></varlistentry>

  <varlistentry><term>niefiltrowany</term>
  <listitem><para>Stan niefiltrowane oznacza &#380;e port jest dost&#281;pny, ale Nmap
  nie jest w stanie ustali&#263; czy port jest otwarty czy zamkni&#281;ty. Tylko 
  skanowanie ACK, kt&#243;re jest u&#380;ywane do mapowania regu&#322; firewalla, mo&#380;e
  przypisa&#263; portom taki stan. Skanowanie niefiltrowanych port&#243;w za pomoc&#261;
  innych typ&#243;w skanowania takich jak Window, SYN czy FIN mo&#380;e pom&#243;c okre&#347;li&#263;
  czy port jest otwarty czy zamkni&#281;ty.</para></listitem></varlistentry>

  <varlistentry><term>otwarty|filtrowany</term>
  <listitem><para>Nmap podaje taki stan w przypadku port&#243;w, dla kt&#243;rych nie
  jest w stanie okre&#347;li&#263; czy port jest otwarty, czy filtrowany. Taki zachowanie
  wyst&#281;puje podczas typ&#243;w skanowania, przy kt&#243;rych porty nie daj&#261; odpowiedzi.
  Brak odpowiedzi mo&#380;e r&#243;wnie&#380; oznacza&#263;, &#380;e filtr pakiet&#243;w zablokowa&#322; po&#322;&#261;czenie
  lub wysy&#322;an&#261; odpowied&#378;. Z tego powodu Nmap nie ma pewno&#347;ci czy port jest 
  otwarty, czy filtrowany. W ten spos&#243;b klasyfikuj&#261; porty skanowania UDP, FIN,
  Null, Xmas i skanowanie protoko&#322;&#243;w.</para></listitem></varlistentry>

  <varlistentry><term>zamkni&#281;ty|filtrowany</term>
  <listitem><para>Ten stan jest u&#380;ywany przez Nmapa do oznaczania port&#243;w, dla
  kt&#243;rych nie jest mo&#380;liwe ustalenie czy port jest zamkni&#281;ty czy filtrowany.
  Taki stan mo&#380;e si&#281; pojawia&#263; tylko podczas skanowania IPID Idle.
  </para></listitem></varlistentry>
  </variablelist>
</refsect1>

<refsect1 id="man-port-scanning-techniques">
  <title>Techniki skanowania port&#243;w</title>

<para>Jako pocz&#261;tkuj&#261;cy mechanik samochodowy, mog&#322;em godzinami m&#281;czy&#263; si&#281; z
wykonaniem naprawy posiadanymi narz&#281;dziami (m&#322;otek, ta&#347;ma izolacyjna, 
klucz francuski itp.). Kiedy popad&#322;em w depresj&#281; i w ko&#324;cu zaprowadzi&#322;em
mojego gruchota do prawdziwego mechanika, pogrzeba&#322; w przepastnej skrzyni
z narz&#281;dziami i wyci&#261;gn&#261;&#322; specjalne narz&#281;dzie, kt&#243;rym wykona&#322; napraw&#281; 
b&#322;yskawicznie i bez k&#322;opot&#243;w. Sztuka skanowania polega dok&#322;adnie na tym samym.
Eksperci znaj&#261; dziesi&#261;tki typ&#243;w skanowania i wybieraj&#261; jedn&#261; adekwatn&#261; (lub 
kombinacj&#281; kilku) do danego zadania. Z drugiej strony niedo&#347;wiadczeni 
u&#380;ytkownicy i script kiddies pr&#243;buj&#261; rozwi&#261;za&#263; ka&#380;dy problem za pomoc&#261; 
domy&#347;lnego skanowania SYN. Nmap jest darmowy i dost&#281;pny dla wszyskich, 
w zwi&#261;zku z tym jedyn&#261; barier&#261; jest odpowiednia wiedza.
To oczywi&#347;cie bije na g&#322;ow&#281; &#347;wiat motoryzacyjny, gdzie trzeba posiada&#263; du&#380;e
umiej&#281;tno&#347;ci, &#380;eby domy&#347;li&#263; si&#281;, &#380;e potrzebne jest bardzo specyficzne 
narz&#281;dzie, ale wtedy potrzeba jeszcze du&#380;o pieni&#281;dzy na jego zakup.</para>

<para>Wi&#281;kszo&#347;&#263; typ&#243;w skanowania jest dost&#281;pna tylko dla uprzywilejowanych 
u&#380;ytkownik&#243;w, poniewa&#380; tylko oni mog&#261; wysy&#322;a&#263; pakiety raw. 
Takim u&#380;ytkownikiem w przypadku system&#243;w UNIX jest root. U&#380;ywanie konta
administratora w systemach Windows jest zalecane, jednak Nmap przewa&#380;nie 
dzia&#322;a poprawnie z konta zwyk&#322;ego u&#380;ytkownika przy zainstalowanej w systemie
bibliotece WinPcap. Wym&#243;g posiadania uprawnie&#324; u&#380;ytkownika root by&#322; powa&#380;nym
ograniczeniem kiedy pojawi&#322; si&#281; Nmap w 1997 roku, jako &#380;e u&#380;ytkownicy posiadali
dost&#281;p g&#322;&#243;wnie tylko do wsp&#243;&#322;dzielonych kont. &#346;wiat si&#281; zmieni&#322;. Komputery s&#261; 
ta&#324;sze, coraz wi&#281;cej ludzi ma bezpo&#347;redni dost&#281;p do Internetu i coraz 
powszechniejsze staj&#261; si&#281; komputery z systemami UNIX (w&#322;&#261;czaj&#261;c Linuxa i MAC
OS X). Dost&#281;pna jest r&#243;wnie&#380; Windowsowa wersja Nmapa, co powi&#281;ksza mo&#380;liwo&#347;ci
jego wykorzystywania. Z tych powod&#243;w coraz rzadziej zachodzi potrzeba 
uruchamiania Nmapa z ograniczonych wsp&#243;&#322;dzielonych kont. Na szcz&#281;&#347;cie wi&#281;ksze 
przywileje u&#380;ytkownik&#243;w przek&#322;adaj&#261; si&#281; na wi&#281;ksz&#261; elastyczno&#347;&#263; i mo&#380;liwo&#347;ci
Nmapa.</para>

<para>Nmap stara si&#281; podawa&#263; jak najbardziej dok&#322;adne wyniki, jednak trzeba
mie&#263; na uwadze fakt, &#380;e wyniki s&#261; oparte na pakietach zwracanych przez badane
systemy (lub firewalle je ochraniaj&#261;ce). Dlatego te&#380; zwracane informacje nie 
musz&#261; by&#263; wiarygodne i mog&#261; wprowadza&#263; Nmapa w b&#322;&#261;d. Bardzo powszechne s&#261;
hosty nie zachowuj&#261;ce si&#281; zgodnie z RFC w odpowiedzi na zapytania Nmapa.
Rozwi&#261;zaniem s&#261; skanowania FIN, Null czy Xmas. Tego typu problemy zosta&#322;y 
opisane oddzielnie w cz&#281;&#347;ciach po&#347;wi&#281;conych poszczeg&#243;lnym typom skanowania.</para>

<para>Ta sekcja opisuje dziesi&#261;tki typ&#243;w skanowania dost&#281;pnych w Nmapie.
Jednocze&#347;nie mo&#380;e by&#263; wykorzystywana tylko jedna metoda, za wyj&#261;tkiem skanowania
UDP (<option>-sU</option>), kt&#243;re mo&#380;e by&#263; &#322;&#261;czone z dowolnymi typami skanowania
TCP. Dla &#322;atwiejszego zapami&#281;tania, opcje skanowania port&#243;w posiadaj&#261; nazwy
w formie <option>-s<replaceable>C</replaceable></option>, gdzie 
<replaceable>C</replaceable> jest przewa&#380;nie pierwsz&#261; du&#380;&#261; liter&#261; angielskiej
nazwy typu skanowania. Wyj&#261;tkiem jest przestarza&#322;a opcja skanowania FTP bouce
(<option>-b</option>). Domy&#347;lnie Nmap wykonuje skanowanie SYN, kt&#243;re jest
zast&#281;powane connect(), je&#347;li u&#380;ytkownik nie ma odpowiednich uprawnie&#324; do 
wysy&#322;ania pakiet&#243;w raw (co wymaga konta root w systemach UNIX)
lub w przypadku skanowania sieci IPv6. Z po&#347;r&#243;d przedstawionych poni&#380;ej typ&#243;w 
skanowania u&#380;ytkownicy nie uprzywilejowani mog&#261; jedynie u&#380;ywa&#263; typ&#243;w connect() i
FTP bounce.</para>

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

<para>Skanowanie SYN jest domy&#347;ln&#261; i najpopularniejsz&#261; metod&#261; skanowania.
Jest to spowodowane tym, &#380;e mo&#380;e by&#263; przeprowadzone szybko, mo&#380;liwe jest
skanowanie tysi&#281;cy port&#243;w na sekund&#281; w szybkich sieciach nie chronionych 
systemami zaporowymi. Skanowanie SYN jest relatywnie dyskretne i niewidoczne,
poniewa&#380; nigdy nie otwiera po&#322;&#261;cze&#324; do ko&#324;ca. Dzia&#322;a to dobrze w stosunku do
wszystkich stos&#243;w zgodnych z TCP, w przeciwie&#324;stwie do udziwnionych, dla 
kt&#243;rych Nmap ma tryby FIN/Null/Xmas, Maimon i Idle. SYN pozwala na 
przejrzyste i wiarygodne rozr&#243;&#380;nienie stan&#243;w portu pomi&#281;dzy 
<literal moreinfo="none">otwartym</literal>,
<literal moreinfo="none">zamkni&#281;tym</literal> i 
<literal moreinfo="none">filtrowanym</literal>.</para>

<para>Technika ta jest cz&#281;sto okre&#347;lana jako skanowanie z po&#322;owicznym 
otwieraniem po&#322;&#261;cze&#324; (ang. half-open), poniewa&#380; nie otwiera pe&#322;nego po&#322;&#261;czenia
TCP. Wysy&#322;any jest pakiet SYN, tak jak by mia&#322;o by&#263; otwarte prawdziwe 
po&#322;&#261;czenie i czeka na odpowied&#378;. SYN/ACK oaznacza, &#380;e port oczekuje na 
po&#322;&#261;czenia (jest otwarty), a RST (reset) identyfikuje port jako zamkni&#281;ty.
Je&#347;li odpowied&#378; nie zostanie otrzymana pomimo kilku pr&#243;b, port jest oznaczany
jako filtrowany. Port jest r&#243;wnie&#380; oznaczany jako filtrowany w przypadku
otrzymania komunikatu b&#322;&#281;du ICMP unreachable error (typ 3, kody 1, 2, 3, 9, 10
lub 13).</para>

        </listitem>
      </varlistentry>

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

<para>Skanowanie TCP Connect() jest wybierane domy&#347;lne, je&#347;li SYN nie jest dost&#281;ne.
Ma to miejsce kiedy u&#380;ytkownik nie posiada uprawnie&#324; do wysy&#322;ania  
pakiet&#243;w raw lub podczas skanowania sieci IPv6. Zamiast wysy&#322;a&#263; pakiety raw, 
jak to ma miejsce przy innych typach skanowania, Nmap prosi system operacyjny o
zestawienie po&#322;&#261;czenia z badanym hostem za pomoc&#261; wywo&#322;ania funkcji systemowej
<literal moreinfo="none">connect()</literal>. Jest to taki sam wysoki poziom 
wywo&#322;a&#324; systemowych, z jakich korzystaj&#261; przegl&#261;darki internetowe, oprogramowanie
Peer2Peer czy inne programy korzystaj&#261;ce z po&#322;&#261;cze&#324; sieciowych. Jest to cz&#281;&#347;&#263;
interfejsu programistycznego znanego jako Berkeley Sockets API. Zamiast 
odczytywa&#263; odpowiedzi za pomoc&#261; odwo&#322;a&#324; niskopoziomowych prosto z sieci, Nmap
wykorzystuje ten sam wysokopoziomowy interfejs do otrzymania informacji o stanie 
operacji dla ka&#380;dej pr&#243;by po&#322;&#261;czenia oddzielnie.</para>

<para>Kiedy skanowanie SYN jest dost&#281;pne, przewa&#380;nie jest lepszym wyborem. Nmap
ma du&#380;o mniejsz&#261; kontrol&#281; nad wywo&#322;aniem wysokopoziomowym 
<literal moreinfo="none">connect()</literal> ni&#380; nad pakietami raw, co jest du&#380;o 
mniej efektywne. Wywo&#322;anie systemowe otwiera pe&#322;ne po&#322;&#261;czenie w przeciwie&#324;stwie
do metody SYN korzystaj&#261;cej z po&#322;owicznego po&#322;&#261;czenia. Nie tylko wymaga to 
wi&#281;cej czasu i wymaga wi&#281;cej pakiet&#243;w do uzyskania takich samych informacji, 
ale r&#243;wnie&#380; prawdopodobnie spowoduje zapisanie w logach badanego systemu pr&#243;by 
po&#322;&#261;czenia. Nowoczesne systemy detekcji intruz&#243;w IDS potrafia wykrywa&#263; takie 
po&#322;&#261;czenia, ale wi&#281;kszo&#347;&#263; system&#243;w nie posiada odpowiednich system&#243;w alarmowych.
Wiele us&#322;ug w typowym systemie UNIX zapisze uwag&#281; do logu systemowego i czasami
zagadkowy komunikat b&#322;&#281;du, kiedy Nmap po&#322;&#261;czy si&#281; i natychmiast zamknie 
po&#322;&#261;czenie bez wysy&#322;ania jakichkolwiek danych. Naprawd&#281; &#380;a&#322;osne us&#322;ugi 
przestan&#261; dzia&#322;a&#263; po otrzymaniu takiego pakietu, ale nie jest to cz&#281;sto 
spotykane. Administrator widz&#261;cy w logach informacje o wielu pr&#243;bach nawi&#261;zania 
po&#322;&#261;czenia z jednego adresu powinien wiedzie&#263;, &#380;e jego system by&#322; skanowany za 
pomoc&#261; metody connect().</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-sU</option> (Skanowanie UDP)</term>
        <listitem>

<para>Wi&#281;kszo&#347;&#263; popularnych us&#322;ug w sieci Internet wykorzystuje protok&#243;&#322; TCP,
ale r&#243;wnie&#380; us&#322;ugi <ulink url="http://www.rfc-editor.org/rfc/rfc768.txt">UDP</ulink>
s&#261; cz&#281;sto spotykane. Najpopularniesze z nich to DNS, SNMP i DHCP (porty 53, 
161/162 i 67/68). Poniewa&#380; skanowanie UDP jest og&#243;lnie wolniejsze i trudniejsze
ni&#380; TCP, wielu audytor&#243;w bezpiecze&#324;stwa ignoruje te porty. Jest to pomy&#322;ka, jako
&#380;e wiele us&#322;ug UDP jest podatnych na zdalne ataki i atakuj&#261;cy nie ignoruj&#261; tego
protoko&#322;u. Na szcz&#281;&#347;cie Nmap umo&#380;liwia inwentaryzacj&#281; port&#243;w UDP.</para>

<para>Skanowanie UDP jest aktywowane za pomoc&#261; opcji
<option>-sU</option>. Mo&#380;e by&#263; &#322;&#261;czone z innymi typami skanowania TCP, takimi 
jak SYN (<option>-sS</option>), dla sprawdzenia obu protoko&#322;&#243;w w jednym 
przebiegu.</para>

<para>Skanowanie UDP polega na wysy&#322;aniu pustych (bez danych) nag&#322;&#243;wk&#243;w 
protoko&#322;u UDP do ka&#380;dego portu docelowego. Je&#347;li w odpowiedzi zostanie zwr&#243;cony 
komunikat ICMP port uchreachable (typ 3, kod 3), port jest uznawany za 
<literal moreinfo="none">zamkni&#281;ty</literal>. Inne typy komunikat&#243;w ICMP 
unreachable (typ 3, kody 1, 2, 9, 10 lub 13) oznaczaj&#261;, &#380;e port jest
<literal moreinfo="none">filtrowany</literal>. Czasami w odpowiedzi zwr&#243;cony
zostanie pakiet UDP, co oznacza, &#380;e porty jest 
<literal moreinfo="none">otwarty</literal>. Je&#347;li pomimo powtarzania transmisji
nie zostanie uzyskana &#380;adna odpowied&#378;, port zostaje zaklasyfikowany jako 
<literal moreinfo="none">otwarty|filtrowany</literal>. Oznacza to, &#380;e port mo&#380;e
by&#263; otwarty lub filtr pakiet&#243;w blokuje do niego dost&#281;p. Wykorzystanie
skanowania wersji us&#322;ug (<option>-sV</option>) mo&#380;e pom&#243;c w odr&#243;&#380;nieniu port&#243;w
na prawd&#281; otwartych od filtrowanych.</para>

<para>Najwi&#281;kszym wyzwaniem przy skanowaniu UDP jest przeprowadzenie go odpowiednio szybko.
Otwarte i filtrowane porty rzadko wysy&#322;aj&#261; jak&#261;kolwiek odpowied&#378;, zmuszaj&#261;c
Nmapa do oczekiwania na odpowied&#378; i ponawiania transmisji na wypadek zagubienia
pakiet&#243;w. Zamkni&#281;te porty s&#261; cz&#281;sto jeszcze wi&#281;kszym problemem. Zwykle wysy&#322;aj&#261;
pakiet ICMP port unreachable, jednak w odr&#243;&#380;nieniu od pakiet&#243;w z flag&#261; RST znanych 
ze skanowania SYN czy connect, wiele host&#243;w domy&#347;lnie limituje szybko&#347;&#263; wysy&#322;ania 
pakiet&#243;w ICMP port unreachable. Przyk&#322;adami mog&#261; by&#263; systemy Linux i Solaris. 
Kernel Linuxa w wersji 2.4.20 limituje ilo&#347;&#263; pakiet&#243;w o niedost&#281;pno&#347;ci port&#243;w do
jednego na sekund&#281; (w <filename moreinfo="none">net/ipv4/icmp.c</filename>).</para>

<para>Nmap potrafi wykrywa&#263; limitowanie odpowiedzi i zwalnia odpowiednio proces 
skanowania dla unikni&#281;cia za&#347;miecania sieci niepotrzebnymi pakietami, kt&#243;re i tak 
nie zostan&#261; wykorzystane. Niestety, skanowanie wszystkich 65,536 port&#243;w UDP 
przy limicie Linuxowym jeden pakiet na sekund&#281; powoduje, &#380;e skanowanie trwa ponad
18 godzin. Sposobami na przyspieszenie s&#261; skanowanie wielu host&#243;w r&#243;wnolegle, 
wykonywanie na pocz&#261;tek szybkiego skanowania popularnych port&#243;w, skanowanie z poza
systemu zaporowego i u&#380;ywanie opcji <option>--host-timeout</option> do pomijania
zbyt wolnych host&#243;w.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-sN</option>; <option>-sF</option>; <option>-sX</option> (Skanowania TCP Null, FIN i Xmas)</term>
        <listitem>

<para>Te typy skanowania (wi&#281;ksze mo&#380;liwo&#347;ci posiada opcja 
<option>--scanflags</option> opisana w dalszej cz&#281;&#347;ci) wykorzystuj&#261; nieopisane
w <ulink url="http://www.rfc-editor.org/rfc/rfc793.txt">TCP RFC</ulink> 
kombinacje flag do rozr&#243;&#380;nienia pomi&#281;dzy stanami port&#243;w 
<literal moreinfo="none">otwarty</literal> oraz 
<literal moreinfo="none">zamkni&#281;ty</literal>. Strona 65 opisuje, &#380;e <quote>je&#347;li 
[docelowy] port jest ZAMKNI&#280;TY ... w odpowiedzi na pakiet nie zawieraj&#261;cy RST nale&#380;y
wys&#322;a&#263; odpowied&#378; RST.</quote> Nast&#281;pna strona opisuje pakiety wysy&#322;ane na porty bez
flag SYN, RST lub ACK w nast&#281;puj&#261;cy spos&#243;b: <quote>co&#347; takiego nie powinno mie&#263; 
miejsca, jednak je&#347;li si&#281; zdarzy, pomi&#324; taki pakiet</quote>.</para>

<para>Podczas skanowania system&#243;w zgodnych z zapisami w RFC, dowolny pakiet nie
zawieraj&#261;cy flag SYN, RST lub ACK powinien wywo&#322;ywa&#263; odpowied&#378; RST w przypadku 
portu zamkni&#281;tego i ca&#322;kowity brak odpowiedzi w przypadku portu otwartego.
Tak d&#322;ugo jak &#380;adna z wymienionych flag nie zosta&#322;a u&#380;yta, wszystkie inne 
kombinacje flag (FIN, PSH i URG) s&#261; prawid&#322;owe. Nmap wykorzystuje to do
przeprowadzania trzech typ&#243;w skanowania:</para>

<variablelist>
  <varlistentry><term>Skanowanie Null (<option>-sN</option>)</term>
  <listitem><para>Nie ustawia &#380;adnych flag (pole flag w nag&#322;&#243;wku tcp zawiera 0).</para></listitem></varlistentry> 

  <varlistentry><term>Skanowanie FIN (<option>-sF</option>)</term>
  <listitem><para>Ustawiona flaga FIN.</para></listitem></varlistentry> 

  <varlistentry><term>Skanowanie Xmas (<option>-sX</option>)</term>
  <listitem><para>Ustawione flagi FIN, PSH i URG, pakiet pod&#347;wietlony jak choinka.</para></listitem></varlistentry>
</variablelist>

<para>Te trzy tryby skanowania s&#261; takie same poza ustawionymi flagami w 
pakietach. Je&#347;li w odpowiedzi zostanie otrzymany pakiet RST, port jest
uznawany za <literal moreinfo="none">zamkni&#281;ty</literal>, podczas gdy brak
odpowiedzi oznacza <literal moreinfo="none">otwarty|filtrowany</literal>.
Port uznajemy za <literal moreinfo="none">filtrowany</literal>, je&#347;li 
otrzymany zostanie komunikat ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 lub 
13).</para>

<para>G&#322;&#243;wn&#261; zaleta tych typ&#243;w skanowania jest to, &#380;e potrafi&#261; si&#281; one
przemyka&#263; przez bezstanowe systemy zaporowe i filtrowanie na routerach.
Inn&#261; zalet&#261; jest tylko minimalnie wi&#281;ksza wykrywalno&#347;&#263; ni&#380; skanowania SYN.
Nie mo&#380;na jednak na to liczy&#263; - wi&#281;kszo&#347;&#263; nowych system&#243;w IDS mo&#380;e zosta&#263;
skonfigurowana do ich wykrywania. Ujemn&#261; stron&#261; jest to, &#380;e nie wszystkie 
systemy s&#261; zgodne z RFC793. Wiele system&#243;w wysy&#322;a odpowiedzi RST niezale&#380;nie od
tego czy port jest otwarty czy nie. Powoduje to, &#380;e wszystkie porty pojawiaj&#261;
si&#281; jako <literal moreinfo="none">zamkni&#281;ty</literal>. Najcz&#281;&#347;ciej spotykane 
systemy, kt&#243;re si&#281; tak zachowuj&#261; to Microsoft Windows, wiele urz&#261;dze&#324; Cisco, 
BSDI, i IBM OS/400. Skanowania dzia&#322;aj&#261; jednak dobrze w przypadku wi&#281;kszo&#347;ci
system&#243;w UNIXowych. Kolejnym minusem tych metod jest to, &#380;e nie potrafi&#261;
rozr&#243;&#380;ni&#263; port&#243;w oznaczonych jako <literal moreinfo="none">otwarty</literal>
od <literal moreinfo="none">filtrowany</literal>, ujawniaj&#261;c jedynie stan
<literal moreinfo="none">otwarty|filtrowany</literal>.</para>

        </listitem>
      </varlistentry>

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

<para>Ten typ skanowanie jest inny ni&#380; omawiane powy&#380;ej, bo nigdy nie wykrywa
stan&#243;w port&#243;w <literal moreinfo="none">otwarty</literal> (lub nawet 
<literal moreinfo="none">otwarty|filtrowany</literal>).  Jest wykorzystywany 
do mapowania regu&#322; filtrowania, do sprawdzania czy fitrowanie jest oparte 
o stany (stateful) lub nie i kt&#243;re porty s&#261; filtrowane.</para>

<para>Pakiety skanowania ACK posiadaj&#261; tylko flag&#281; ACK (o ile nie zosta&#322;a
u&#380;yta opcja <option>--scanflags</option>). Podczas skanowania system&#243;w nie 
posiadaj&#261;cych filtrowania, porty o stanach 
<literal moreinfo="none">otwarty</literal> i 
<literal moreinfo="none">zamkni&#281;ty</literal>
zwr&#243;c&#261; pakiet RST. W obu przypadkach Nmap oznaczy je jako 
<literal moreinfo="none">niefiltrowane</literal>, co oznacza, &#380;e by&#322;y 
osi&#261;galne dla pakietu ACK, ale nie zosta&#322;o okre&#347;lone, czy posiadaj&#261; stan
<literal moreinfo="none">otwarty</literal> czy 
<literal moreinfo="none">zamkni&#281;ty</literal>. Porty, kt&#243;re nie odpowiedz&#261;
lub odpowiedz&#261; za pomoc&#261; komunikatu o b&#322;&#281;dzie ICMP (typ 3, kody 1, 2, 3, 9, 
10 lub 13), zostan&#261; oznaczone jako <literal moreinfo="none">filtrowany</literal>.</para>

        </listitem>
      </varlistentry>

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

<para>Skanowanie Window jest takie samo jak ACK, r&#243;&#380;nica polega na tym, &#380;e
potrafi odr&#243;&#380;ni&#263; porty otwarte od zamkni&#281;tych, zamiast zawsze podawa&#263; stan
<literal moreinfo="none">niefiltrowany</literal>, kiedy otrzymano flag&#281; RST.
Jest to realizowane poprzez analiz&#281; pola Window pakietu zwrotnego RST. Na
niekt&#243;rych systemach, otwarte porty zwracaj&#261; dodatni&#261; warto&#347;&#263; rozmiaru okna
(tak&#380;e w pakietach RST), a przy zamkni&#281;tych o rozmiarze zero. Tak wi&#281;c zamiast
zawsze przedstawia&#263; port jako <literal moreinfo="none">niefiltrowany</literal>
kiedy w odpowiedzi przyjdzie RST, skanowanie Window oznacza port jako 
<literal moreinfo="none">otwarty</literal> lub 
<literal moreinfo="none">zamkni&#281;ty</literal>, w zale&#380;no&#347;ci czy odpowiednio 
otrzymano w odpowiedzi rozmiar okna o warto&#347;ci dodatniej lub zero.</para>

<para>Ten typ skanowania polega na szczeg&#243;lnej implementacji stosu TCP, 
wyst&#281;puj&#261;cej w rzadko spotykanych systemach w internecie, a wi&#281;c nie mo&#380;na 
zawsze na niej polega&#263;. Zwykle systemy, kt&#243;re nie obs&#322;uguj&#261; tej metody b&#281;d&#261; 
zwraca&#322;y porty oznaczone jako <literal moreinfo="none">zamkni&#281;ty</literal>.
Oczywi&#347;cie jest r&#243;wnie&#380; mo&#380;liwe, &#380;e host na prawd&#281; nie ma otwartych port&#243;w.
Je&#347;li wi&#281;kszo&#347;&#263; przeskanowanych port&#243;w ma stan 
<literal moreinfo="none">zamkni&#281;ty</literal>, jednak niekt&#243;re (takie jak 22, 
25 czy 53) maj&#261; stan <literal moreinfo="none">filtrowany</literal>, system
jest podejrzany. Czasami systemy potrafi&#261; si&#281; zachowywa&#263; zupe&#322;nie przeciwnie.
Je&#347;li skanowanie wyka&#380;e 1000 otwartych port&#243;w i tylko 3 zamkni&#281;te lub 
filtrowane, wtedy te trzy prawdopodobnie s&#261; rzeczywi&#347;cie otwarte.</para>

        </listitem>
      </varlistentry>

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

<para>Skanowanie Maimon zosta&#322;o nazwane na cze&#347;&#263; jego odkrywcy, Uriela Maimona.
Opisa&#322; t&#281; technik&#281; w Phrack Magazine w wydaniu #49 (Listopad 1996). Nmap, kt&#243;ry
potrafi&#322; wykorzysta&#263; t&#281; technik&#281; zosta&#322; wypuszczony dwa wydania p&#243;&#378;niej.
Skanowanie to nale&#380;y do rodziny Null, FIN i Xmass z t&#261; r&#243;&#380;nic&#261;, &#380;e u&#380;ywa flag 
FIN/ACK. Zgodnie z RFC 793 (TCP), dla takiej kombinacji flag, pakiet RST 
powinien by&#263; wygenerowany niezale&#380;nie czy port jest otwarty czy zamkni&#281;ty.
Jednak&#380;e Uriel zauwa&#380;y&#322;, &#380;e wiele system&#243;w opartych na BSD po prostu pomija
odpowiedzi, je&#347;li port jest otwarty.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>--scanflags</option> (Skanowanie TCP z definiowanymi flagami)</term>
        <listitem>

<para>Prawdziwie zaawansowani u&#380;ytkownicy Nmapa nie mog&#261; by&#263; ograniczani
ilo&#347;ci&#261; oferowanych wbudowanych typ&#243;w skanowania. Opcja
<option>--scanflags</option> pozwala na projektowanie w&#322;asnych typ&#243;w skanowania
z wykorzystaniem wybranych flag TCP. Cieszcie si&#281; podczas wykorzystywania tej 
techniki do oszukiwania system&#243;w IDS, kt&#243;rych tw&#243;rcy pobie&#380;nie przegl&#261;dali
dokumentacj&#281; Nmapa dodaj&#261;c specyficzne regu&#322;y!</para>

<para>Argument opcji <option>--scanflags</option> mo&#380;e by&#263; numerycznym zapisem
flag, np 9 (PSH i FIN), lub dla u&#322;atwienia mo&#380;na wykorzystywa&#263; symbliczne nazwy.
Mo&#380;na poda&#263; dowoln&#261; kombinacj&#281; flag <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> i
<literal moreinfo="none">FIN</literal>.  Na przyk&#322;ad <option>--scanflags
URGACKPSHRSTSYNFIN</option> ustawia wszystkie flagi, cho&#263; nie jest to zbyt 
u&#380;yteczna metoda skanowania. Kolejno&#347;&#263; podawania flag nie jest istotna.</para>

<para>Dodatkowo przy podawaniu wybranych flag mo&#380;liwe jest podanie typu 
skanowania (takiego jak <option>-sA</option> lub <option>-sF</option>).
Dodany typ skanowania informuje Nmapa jak ma interpretowa&#263; otrzymane odpowiedzi.
Na przyk&#322;ad skanowanie SYN zak&#322;ada, &#380;e brak odpowiedzi oznacza stan portu 
<literal moreinfo="none">filtrowany</literal>, podczas gdy skanowanie FIN 
potraktuje ten go jako <literal moreinfo="none">otwarty|filtrowany</literal>.
Nmap b&#281;dzie si&#281; zachowywa&#322; w taki sam spos&#243;b jak przy wybranym trybie 
skanowania, jednak wykorzystane zostan&#261; podane flagi. Je&#347;li bazowy typ 
skanowania nie zostanie okre&#347;lony, zostanie wykorzystany domy&#347;lny typ SYN.</para>

        </listitem>
      </varlistentry>

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

        <listitem>

          <para>Ta zaawansowana technika skanowania pozwala na prawdziwie
          &#347;lepe skanowanie TCP (co oznacza, &#380;e &#380;aden pakiet nie zostanie 
          wys&#322;any do badanego systemu z prawdziwego adresu IP Nmapa).
          Zamiast tego wykorzystany zostanie host zombie, o przwidywalnym
          dzia&#322;aniu stosu TCP polegaj&#261;cym na sekwencyjnym powi&#281;kszaniu
          numer&#243;w ID pakiet&#243;w, do uzyskania informacji o otwartych portach
          w badanym systemie. Systemy detekcji intruz&#243;w poka&#380;&#261; jako adres 
          atakuj&#261;cego zdefiniowany host zombie (musi spe&#322;nia&#263; okre&#347;lone 
          warunki). Ten fascynuj&#261;cy typ skanowania jest zbyt skomplikowany
          &#380;eby go dok&#322;adnie opisa&#263; w tej dokumentacji, dlatego napisa&#322;em
          oddzielny nieformalny dokument na ten temat ze szczeg&#243;&#322;owymi 
          informacjami i jest on dost&#281;pny pod adresem
          <ulink url="http://nmap.org/book/idlescan.html"/>.</para>

          <para>Poza tym, &#380;e metoda ta jest niespotykanie poufna (z powodu
          jej &#347;lepej natury), ten typ skanowania pozwala na mapowanie regu&#322;
          zaufania pomi&#281;dzy maszynami bazuj&#261;cych na adresach IP. Wyniki
          zawieraj&#261; otwarte porty, <emphasis>z punktu widzenia hosta zombie
          </emphasis>. Tak wi&#281;c mo&#380;na pr&#243;bowa&#263; skanowania z wykorzystaniem 
          r&#243;&#380;nych host&#243;w zombie, kt&#243;re mo&#380;na traktowa&#263; jako zaufane (poprzez
          router/regu&#322;y filtrowania pakiet&#243;w).</para>

          <para>Mo&#380;na po dwukropku doda&#263; numer portu, je&#347;li chcemy go 
          wykorzysta&#263; na ho&#347;cie zombie do badania zmian IPID. W innym przypadku
          Nmap wykorzysta domy&#347;lnie port u&#380;ywany przez tcp ping (80).</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-sO</option> (Skanowanie protoko&#322;&#243;w IP)</term>
        <listitem>
          
<para>Skanowanie to pozwala na wykrycie listy protoko&#322;&#243;w IP (TCP, ICMP, IGMP
itp), kt&#243;re s&#261; dost&#281;pne na danym ho&#347;cie. Technicznie nie jest to skanowanie
port&#243;w, poniewa&#380; sprawdza kolejne numery protoko&#322;&#243;w, a nie kolejne porty TCP
czy UDP. Opcja ta nadal u&#380;ywa parametru <option>-p</option> do wybrania numer&#243;w
protoko&#322;&#243;w do sprawdzenia, w formacie analogicznym do listy port&#243;w. Z tego
powodu metoda ta zosta&#322;a zaklasyfikowana jako skanowanie port&#243;w i dlatego 
znajduje si&#281; tutaj.</para>

<para>Poza swoj&#261; w&#322;asn&#261; funkcjonalno&#347;ci&#261;, skanowanie protoko&#322;&#243;w demonstruje
pot&#281;g&#281; oprogramowania open source. Podczas gdy podstawowa idea jest ca&#322;kiem
prosta, nie pomy&#347;la&#322;em o jej dodaniu, jak r&#243;wnie&#380; nie otrzyma&#322;em &#380;adnej
pro&#347;by o dodanie takiej funkcjonalno&#347;ci. Latem roku 2000, Gerhard Rieger
opracowa&#322; koncepcj&#281;, stworzy&#322; odpowiedni&#261; poprawk&#281; i wys&#322;a&#322; j&#261; na list&#281;
dyskusyjn&#261; nmap-hackers. W&#322;&#261;czy&#322;em j&#261; do drzewa Nmapa i wypu&#347;ci&#322;em now&#261;
wersj&#281; nast&#281;pnego dnia. Niewiele komercyjnych program&#243;w posiada u&#380;ytkownik&#243;w
na tyle entuzjastycznych, &#380;eby zaprojektowa&#263; i stworzy&#263; ich w&#322;asne poprawki!
</para>

<para>Skanowanie protoko&#322;&#243;w dzia&#322;a w spos&#243;b podobny do skanowania UDP, jednak 
zamiast iteracji po kolejnych numerach portu, w nag&#322;&#243;wkach pakiet&#243;w zmienia si&#281;
8-mio bitowy numer protoko&#322;u. Nag&#322;&#243;wki s&#261; przewa&#380;nie puste, nie zawieraj&#261; 
&#380;adnych danych ani nawet poprawnego dla danego protoko&#322;u nag&#322;&#243;wka. Trzema 
wyj&#261;tkami s&#261; TCP, UDP i ICMP. Poprawne nag&#322;&#243;wki dla tych protoko&#322;&#243;w s&#261; 
konieczne, poniewa&#380; niekt&#243;re systemy nie b&#281;d&#261; ich potrafi&#322;y wys&#322;a&#263; oraz 
dlatego, &#380;e Nmap posiada ju&#380; odpowiednie funkcje do ich tworzenia.
Zamiast obserwowa&#263; komunikaty ICMP unreachable, skanowanie protoko&#322;&#243;w nie polega
na komunikatach ICMP <emphasis>protocol</emphasis> unreachable. Je&#347;li Nmap 
otrzyma jak&#261;kolwiek odpowied&#378; w jakimkolwiek protokole, ustala stan protoko&#322;u 
jako <literal moreinfo="none">otwarty</literal>. Otrzymanie komunikatu ICMP
protocol unreachable (typ 3, kod 2) powoduje oznaczenie protoko&#322;u jako
<literal moreinfo="none">zamkni&#281;ty</literal>. Inne komuniakty ICMP protocol
unreachable (typ 3, kody 1, 3, 9, 10 lub 13) powoduj&#261; oznaczenie protoko&#322;u jako
<literal moreinfo="none">filtrowany</literal> (oraz r&#243;wnocze&#347;nie potwierdzaj&#261;, 
&#380;e protok&#243;&#322; ICMP jest r&#243;wnie&#380; <literal moreinfo="none">otwarty</literal>).
Je&#347;li nie uzyskano odpowiedzi, protok&#243;&#322; jest oznaczany jako 
<literal moreinfo="none">otwarty|filtrowany</literal>.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-b &lt;po&#347;rednicz&#261;cy host ftp&gt;</option> (Skanowanie FTP bounce)</term>
        <listitem>

<para>Interesuj&#261;c&#261; funkcj&#261; protoko&#322;u FTP
(<ulink url="http://www.rfc-editor.org/rfc/rfc959.txt">RFC 959</ulink>) jest
wspieranie tak zwanych po&#322;&#261;cze&#324; proxy. Pozwala to u&#380;ytkownikowi na po&#322;&#261;czenie 
z jednym serwerem FTP i poproszenie o wys&#322;anie plik&#243;w do innego. Ta 
funkcjonalno&#347;&#263; by&#322;a przyczyn&#261; nadu&#380;y&#263; na wielu poziomach, dlatego wiele serwer&#243;w
porzuci&#322;o dla niej wsparcie. Jednym z mo&#380;liwych nadu&#380;y&#263; jest sposobno&#347;&#263; do 
zmuszenia serwera do skanowania port&#243;w na zewn&#281;trznym ho&#347;cie. Wystarczy po 
prostu poprosi&#263; serwer o wys&#322;anie pliku kolejno na ka&#380;dy interesuj&#261;cy port badanego
systemu. Uzyskany komunikat o b&#322;&#281;dzie zwr&#243;ci informacj&#281;, czy porty by&#322; otwarty
czy zamkni&#281;ty. Jest to dobra metoda do omijania system&#243;w zaporowych, poniewa&#380;
korporacyjne serwery FTP cz&#281;sto s&#261; umieszczane w takim miejscu, &#380;e maj&#261; 
mo&#380;liwo&#347;&#263; komunikacji zar&#243;wno z hostami w internecie jak i w sieci lokalnej.
Nmap obs&#322;uguje skanowanie FTP bounce z wykorzystaniem opcji 
<option>-b</option>. Opcja przyjmuje argument w postaci
<replaceable>nazwa_u&#380;ytkownika</replaceable>:<replaceable>has&#322;o</replaceable>@<replaceable>serwer</replaceable>:<replaceable>port</replaceable>.

<replaceable>Serwer</replaceable> jest nazw&#261; lub adresem IP podatnego serwera
FTP. Tak jak przy zwyk&#322;ym adresie URL, mo&#380;na pomin&#261;&#263; pola
<replaceable>nazwa_u&#380;ytkownika</replaceable>:<replaceable>has&#322;o</replaceable>,
w tym przypadku zostanie wykorzystana domy&#347;lna kombinacja dla u&#380;ytkownik&#243;w
anonimowych (u&#380;ytkownik <literal moreinfo="none">anonymous</literal> 
has&#322;o:<literal moreinfo="none">-wwwuser@</literal>). Numer portu (i 
poprzedzaj&#261;cy go dwukropek) r&#243;wnie&#380; mo&#380;e zosta&#263; pomini&#281;ty, w tym przypadku 
przy po&#322;&#261;czeniu z wybranym adresem <replaceable>serwer</replaceable>, zostanie
wykorzystany domy&#347;lny port serwera FTP (21).</para>

<para>Podatno&#347;&#263; ta by&#322;a szeroko spotykana w roku 1997, kiedy to Nmap zosta&#322;
wypuszczony, jednak z biegiem czasu jej znaczenie bardzo si&#281; zmniejszy&#322;o.
Dziurawe serwery FTP nadal si&#281; zdarzaj&#261;, wi&#281;c warto wyprubowa&#263; i t&#281;
metod&#281;, je&#347;li inne zawiod&#261;. Je&#347;li potrzebne jest obej&#347;cie systemu zaporowego,
mo&#380;na przeskanowa&#263; sie&#263; w poszukiwaniu otwartych port&#243;w 21 (lub poprzez 
wyszukanie ftp na innych portach z wykorzystaniem opcji do wykrywania wersji)
i wypr&#243;bowa&#263; na wykrytych portach metod&#281; bounce. Nmap poinformuje, czy us&#322;uga 
jest podatna czy nie. Je&#347;li chcesz ukrywa&#263; swoje dzia&#322;ania, nie trzeba (i nie
powinno) ogranicza&#263; si&#281; do host&#243;w z badanej sieci. Przed rozpocz&#281;ciem
skanowania losowych adres&#243;w w sieci Internet w poszukiwaniu podatnych wersji 
serwer&#243;w FTP trzeba mie&#263; na uwadze, &#380;e wielu administrator&#243;w nie bedzie
zachwyconych wykorzystywaniem ich serwer&#243;w w ten spos&#243;b.</para>

        </listitem>
      </varlistentry>
    </variablelist>
   </refsect1>

   <refsect1 id="man-port-specification">
    <title>Specyfikacja port&#243;w i kolejno&#347;ci skanowania</title>

    <para>Poza wszystkimi metodami skanowania opisanymi wcze&#347;niej, Nmap
    oferuje opcj&#281; pozwalaj&#261;c&#261; na podanie numer&#243;w port&#243;w do skanowania i
    okre&#347;lenie, czy skanowanie ma przebiega&#263; w kolejno&#347;ci sekwencyjnej czy
    losowej. Domy&#347;lnie Nmap skanuje wszystkie porty do 1024 w&#322;&#261;cznie oraz
    wy&#380;sze porty wyszczeg&#243;lnione w pliku 
    <filename moreinfo="none">nmap-services</filename>.</para>

    <variablelist>
      <varlistentry>
        <term>
          <option>-p &lt;zakres port&#243;w&gt;</option> (Skanuj tylko wybrane porty)
        </term>
        <listitem>

          <para>Opcja pozwala na zdefiniowanie listy port&#243;w do skanowania, 
          zamiast domy&#347;lnej. Mo&#380;liwe jest podanie pojedynczych port&#243;w
          jak i zakres&#243;w oddzielonych my&#347;lnikiem (np. 1-1023). Zakres mo&#380;na 
          r&#243;wnie&#380; pomin&#261;&#263;, co spowoduje u&#380;ycie ca&#322;ego zakresu (1-65535). Mo&#380;na
          wi&#281;c po prostu poda&#263; opcj&#281; <option>-p-</option> do przeskanowania
          wszystkich port&#243;w od 1 do 65535 w&#322;&#261;cznie. Mo&#380;na r&#243;wnie&#380; poda&#263; port
          zero, ale trzeba to zrobic jawnie. W przypadku po&#322;&#261;czenia tej opcji
          ze skanowaniem protoko&#322;&#243;w (<option>-sO</option>), okre&#347;la ona numery
          protoko&#322;&#243;w do sprawdzenia (0-255).</para>

          <para>Przy jednoczesnym skanowaniu port&#243;w TCP i UDP mo&#380;liwe jest
          oddzielne zdefiniowanie port&#243;w dla obu protoko&#322;&#243;w poprzez 
          poprzedzenie numer&#243;w znakami odpowiednio 
          <literal moreinfo="none">T:</literal> i 
          <literal moreinfo="none">U:</literal>. Jako argument opcji przyjmowany
          jest ci&#261;g znak&#243;w a&#380; do nast&#281;pnej opcji. Na przyk&#322;ad, podanie <option>-p
          U:53,111,137,T:21-25,80,139,8080</option> spowoduje przeskanowanie 
          port&#243;w UDP o numerach 53,111 i 137 oraz podanych port&#243;w TCP. Przy
          skanowaniu zar&#243;wno port&#243;w TCP jak i UDP, nie
          mo&#380;na zapomnie&#263; poda&#263; odpowiednich typ&#243;w skanowania: <option>-sU</option>
          oraz przynajmniej jednego TCP (np. <option>-sS</option>, 
          <option>-sF</option> czy <option>-sT</option>). Je&#347;li nie podano
          protoko&#322;u skanowania, na czas skanowania numery port&#243;w zostan&#261; 
          dodane do domy&#347;lnej listy port&#243;w.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-F</option> (Skanowanie Fast (ograniczona ilo&#347;&#263; port&#243;w))
        </term>
        <listitem>

          <para>Pozwala na okre&#347;lenie, &#380;e maj&#261; by&#263; skanowane tylko porty 
          zawarte w pliku <filename moreinfo="none">nmap-services</filename>
          z pakietu Nmapa (lub z pliku protoko&#322;&#243;w dla opcji 
          <option>-sO</option>). Opcja ta pozwala na szybsze skanowanie, 
          ni&#380; w przypadku wszystkich 65535 port&#243;w. Poniewa&#380; lista ta 
          zawiera tylko nieco ponad 1200 port&#243;w, r&#243;&#380;nica w 
          szybko&#347;ci w por&#243;wnaniu do typowego skanowania TCP (oko&#322;o 1650 
          port&#243;w) nie jest du&#380;a. R&#243;&#380;nica mo&#380;e by&#263; wi&#281;ksza, je&#347;li zostanie
          podany w&#322;asny, ma&#322;y plik 
          <filename moreinfo="none">nmap-services</filename> za pomoc&#261; 
          opcji <option>--datadir</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-r</option> (Nie u&#380;ywaj losowej kolejno&#347;ci)
        </term>
        <listitem>
          <para>Domy&#347;lnie Nmap skanuje porty w kolejno&#347;ci losowej (poza
          niekt&#243;rymi najcz&#281;&#347;ciej wykorzystywanymi portami, kt&#243;re s&#261; skanowane
          na pocz&#261;tku ze wzgl&#281;d&#243;w wydajno&#347;ciowych). Takie zachowanie jest
          normalnie po&#380;&#261;dane, jednak mo&#380;na je wy&#322;&#261;czy&#263; za pomoc&#261; opcji 
          <option>-r</option>, wymuszaj&#261;cej sekwencyjn&#261; kolejno&#347;&#263; skanowania.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
   </refsect1>

  <refsect1 id="man-version-detection">
    <title>Detekcja us&#322;ug i wersji</title>

    <para>Przy skanowaniu zdalnego systemu, Nmap mo&#380;e wykry&#263; otwarte porty 
    takie jak 25/tcp, 80/tcp czy 53/udp. Wykorzystuj&#261;c baz&#281; danych zawieraj&#261;c&#261;
    oko&#322;o 2,200 popularnych us&#322;ug, znajduj&#261;c&#261; si&#281; w pliku 
    <filename moreinfo="none">nmap-services</filename>, Nmap odczyta
    przypuszczalne nazwy us&#322;ug dla wykrytych port&#243;w - odpowiednio serwer 
    pocztowy (SMTP), serwer WWW (HTTP) i serwer nazw (DNS). Takie dzia&#322;anie
    jest zwykle poprawne, wi&#281;kszo&#347;&#263; aplikacji s&#322;uchaj&#261;cych na porcie 25, to 
    rzeczywi&#347;cie serwery pocztowe. Jednak&#380;e, niech Twoja ocena bezpiecze&#324;stwa
    niepolega na tych podpowiedziach! Ludzie mog&#261; i cz&#281;sto umieszczaj&#261; us&#322;ugi
    na dziwnych portach.</para>

    <para>Nawet je&#347;li Nmap sie nie myli i hipotetyczny serwer z przyk&#322;adu
    powy&#380;ej udost&#281;pnia us&#322;ugi SMTP, HTTP i DNS, nie jest to du&#380;a ilo&#347;&#263; 
    informacji na temat tych us&#322;ug. Przeprowadzaj&#261;c testy bezpiecze&#324;stwa (lub
    zwyk&#322;&#261; inwentaryzacj&#281; zasob&#243;w) swojej firmy lub klienta, potrzeba uzyska&#263;
    dok&#322;adniejsze informacje na temat us&#322;ug: jaka aplikacja i w jakiej wersji
    jest zainstalowana na serwerze SMTP czy DNS. Posiadanie tych informacji w
    znacz&#261;cy spos&#243;b wp&#322;ywa na mo&#380;liwo&#347;&#263; ustalenia podatno&#347;ci danej aplikacji.
    Detekcja wersji pozwala na uzyskanie takiej informacji.</para>

    <para>Po tym jak zostan&#261; wykryte za pomoc&#261; innych technik skanowania 
    dost&#281;pne us&#322;ugi TCP i UDP, detekcja wersji odpytuje porty w celu okre&#347;lenia
    dalszych szczeg&#243;&#322;&#243;w na temat aplikacji. Baza danych 
    <filename moreinfo="none">nmap-service-probes</filename> zawiera opisy 
    wielu us&#322;ug i pr&#243;buje dopasowa&#263; je do uzyskanych informacji. Nmap stara si&#281;
    najpierw okre&#347;li&#263; protok&#243;&#322; wykorzystywany przez us&#322;ug&#281; (np. ftp, ssh, 
    telnet, http), nast&#281;pnie nazw&#281; aplikacji (np. ISC Bind, Apache httpd, 
    Solaris telnetd), wersj&#281; us&#322;ugi, nazw&#281; hosta, typ urz&#261;dzenia (np. drukarka,
    router), rodzin&#281; system&#243;w operacyjnych (np. Windows, Linux) i czasami
    uzyskuje dodatkowe informacje (takie jak czy X serwer przyjmuje po&#322;&#261;czenia,
    obs&#322;ugiwane wersje protoko&#322;u SSH czy nazw&#281; u&#380;ytkownika KaZaA). Oczywi&#347;cie
    wi&#281;kszo&#347;&#263; us&#322;ug nie dostarczy wszystkich tych informacji. Je&#347;li Nmap zosta&#322;
    skompilowany z OpenSSL, b&#281;dzie potrafi&#322; &#322;&#261;czy&#263; si&#281; z serwerami SSL i 
    uzyskiwa&#263; informacje od us&#322;ug ukrytych za szyfrowan&#261; warstw&#261;. Kiedy zostan&#261;
    wykryte us&#322;ugi RPC, odpowiedni skaner (<option>-sR</option>) zostanie 
    automatycznie uruchomiony do ustalenia oprogramowania i wersji RPC.
    Z powodu specyfiki UDP, po zako&#324;czeniu skanowania niekt&#243;re porty pozostaj&#261; 
    w stanie <literal moreinfo="none">otwarty|filtrowany</literal>, jako &#380;e ten
    typ skanowania nie potrafi okre&#347;li&#263;, czy port jest otwarty czy filtrowany.
    Skanowanie wersji spr&#243;buje uzyska&#263; odpowied&#378; od takiego portu (tak jak to
    robi przy otwartych portach) i je&#347;li to si&#281; uda, zmieni stan na otwarty.
    Porty TCP w stanie <literal moreinfo="none">otwarty|filtrowany</literal> s&#261;
    traktowane w ten sam spos&#243;b. Nale&#380;y zwr&#243;ci&#263; uwag&#281;, &#380;e opcja 
    <option>-A</option> poza innymi rzeczami w&#322;&#261;cza wykrywanie wersji. Dodatkowa
    dokumentacja na temat dzia&#322;ania detekcji wersji jest dost&#281;pna pod adresem
    <ulink url="http://www.insecure.org/nmap/vscan/"/>.</para>

    <para>Je&#347;li Nmap otrzyma odpowied&#378;, ale nie jest w stanie dopasowa&#263; jej do 
    &#380;adnej znanej us&#322;ugi, wy&#347;wietli specjalny odcisk palca (fingerprint) us&#322;ugi 
    wraz z adresem URL, pod kt&#243;rym mo&#380;na go nast&#281;pnie wys&#322;a&#263; wraz ze stosownym
    opisem, je&#347;li jeste&#347;my pewni jakiej us&#322;udze odpowiada.
    Prosz&#281; po&#347;wi&#281;ci&#263; te kilka minut na wys&#322;anie informacji o nieznanych 
    us&#322;ugach, a b&#281;d&#261; mogli z tego skorzysta&#263; r&#243;wnie&#380; inni u&#380;ytkownicy Nmapa.
    Dzi&#281;ki temu sposobowi wysy&#322;ania Nmap rozpoznaje oko&#322;o 3,000 odcisk&#243;w dla
    ponad 350 protoko&#322;&#243;w us&#322;ug, takich jak smtp, ftp, http itp.</para>

    <para>Detekcja wersji jest w&#322;&#261;czana i kontrolowana nast&#281;puj&#261;cymi opcjami:</para>


    <variablelist>

      <varlistentry>
        <term>
        <option>-sV</option> (Detekcja wersji us&#322;ug)</term>
        <listitem>

          <para>W&#322;&#261;cza detekcj&#281; wersji us&#322;ug, opisan&#261; powy&#380;ej. Alternatywnie 
          mo&#380;na u&#380;y&#263; opcji <option>-A</option> do jednoczesnego w&#322;&#261;czenia 
          detekcji wersji us&#322;ug i systemu operacyjnego.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--allports</option> (Nie pomijaj &#380;adnych port&#243;w przy detekcji wersji)
        </term>
        <listitem>
          <para>Domyslnie, skanowanie wersji Nmapa pomija port TCP 9100, 
          poniewa&#380; niekt&#243;re drukarki po prostu drukuj&#261; wszystko, co zostanie
          przys&#322;ane na ten port, powoduj&#261;c wydruk setek stron z zapytaniami
          HTTP, binarnymi zapytaniami SSL itp. Takie zachowanie mo&#380;e zosta&#263; 
          wy&#322;&#261;czone poprzez modyfikacj&#281; lub usuni&#281;cie dyrektywy 
          <literal moreinfo="none">Exclude</literal> w pliku
          <filename moreinfo="none">nmap-service-probes</filename>, lub poprzez 
          dodanie opcji <option>--allports</option>, wymuszaj&#261;cej skanowanie 
          wszystkich port&#243;w niezale&#380;nie od dyrektywy 
          <literal moreinfo="none">Exclude</literal>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--version-intensity &lt;poziom&gt;</option> (Ustaw poziom skanowania wersji)
        </term>
        <listitem>

          <para>Podczas przeprowadzania skanowania wersji (<option>-sV</option>),
          Nmap przeprowadza seri&#281; test&#243;w, przy czym ka&#380;dy z nich ma przypisany 
          sw&#243;j poziom pomi&#281;dzy 1 a 9. Niskie poziomy dzia&#322;aj&#261; poprawnie w 
          stosunku do najpopularniejszych us&#322;ug, wysokie numery obejmuj&#261; 
          ma&#322;o popularne. Poziom skanowania okre&#347;la kt&#243;re testy zostan&#261; 
          wykonane. Czym wy&#380;szy poziom, tym wi&#281;ksza szansa na prawid&#322;owe
          rozpoznanie ma&#322;o popularnych us&#322;ug. Domy&#347;ly poziom to 7. Je&#347;li
          test zostanie powi&#261;zany z wykryt&#261; us&#322;ug&#261; z pliku 
          <filename moreinfo="none">nmap-service-probes</filename>, okre&#347;lon&#261;
          dyrektyw&#261; <literal moreinfo="none">ports</literal>, zostanie on
          wykonany niezale&#380;nie od ustalonego poziomu wykrywania wersji.
          Zachowanie takie ma na celu zawsze poprawne wykrywanie domy&#347;lnych
          us&#322;ug na otwartych portach, wykrywanie serwera DNS na porcie 53, 
          SSL na porcie 443 itp.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--version-light</option> (W&#322;&#261;cz tryb delikatny)
        </term>
        <listitem>
          <para>Jest wygodniejszym odpowiednikiem ustalaj&#261;cym warto&#347;&#263;
          <option>--version-intensity 2</option>. Opcja ta pozwala na znaczne
          przyspieszenie wykrywania wersji, kosztem dok&#322;adno&#347;ci.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--version-all</option> (U&#380;yj wszystkich test&#243;w)
        </term>
        <listitem>
          <para>Odpowiednik opcji <option>--version-intensity 9</option>,
          powoduj&#261;cy wykonanie wszystkich mo&#380;liwych test&#243;w na ka&#380;dym porcie.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--version-trace</option> (&#346;ledzenie aktywno&#347;ci skanowania wersji)
        </term>
        <listitem>
          <para>Opcja w&#322;&#261;cza opcje &#347;ledzenia b&#322;&#281;d&#243;w podczas wykrywania wersji,
          powoduj&#261;c wy&#347;wietlanie dodatkowych informacji na temat prowadzonych
          dzia&#322;a&#324;. Opcja ta jest cz&#281;&#347;ci&#261; wi&#281;kszej <option>--packet-trace</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>-sR</option> (Skanowanie RPC)</term>
        <listitem>
          <para>Metoda ta dzia&#322;a w po&#322;&#261;czeniu z r&#243;&#380;nymi metodami skanowania 
          port&#243;w Nmapa. Na wszystkie wykryte wcze&#347;niej porty s&#261; wysy&#322;ane
          komendy NULL SunRPC i za ich pomoc&#261; sprawdzane jest, czy dany port
          nale&#380;y do us&#322;ug RPC. Je&#347;li tak, identyfikowana jest aplikacja i jej 
          wersja. Opcja pobiera takie same informacje jak komenda 
          <command moreinfo="none">rpcinfo -p</command>, nawet je&#347;li host jest
          chroniony za pomoc&#261; systemu zaporowego (lub TCP wrapper&#243;w). Hosty
          po&#347;rednie zombie nie s&#261; obs&#322;ugiwane przy tym trybie skanowania.
          Opcja jest automatycznie aktywowana jako cz&#281;&#347;&#263; wykrywania wersji
          us&#322;ug (<option>-sV</option>). Jako &#380;e detekcja wersji jest daleko 
          bardziej uniwersalna, opcja <option>-sR</option> jest wykorzystywana 
          sporadycznie.</para>
        </listitem>
      </varlistentry>
  
    </variablelist>
  </refsect1>

  <refsect1 id="man-os-detection">

    <title>Wykrywanie systemu operacyjnego</title>

    <para>Jedna z najbardziej znanych mo&#380;liwo&#347;ci Nmapa jest zdalna detekcja
    systemu operacyjnego za pomoc&#261; odcisk&#243;w palca (fingerprint) stosu TCP/IP.
    Nmap wysy&#322;a seri&#281; pakiet&#243;w TCP i UDP do zdalnego systemu i analizuje
    praktycznie ka&#380;dy bit z uzyskanych odpowiedzi. Po wykonaniu dziesi&#261;tek 
    test&#243;w takich jak pr&#243;bkowanie ISN TCP, analiza opcji protoko&#322;u TCP i 
    kolejno&#347;ci, pr&#243;bkowanie IPID i kontrola pocz&#261;tkowych rozmiar&#243;w okna, Nmap
    por&#243;wnuje uzyskane wyniki z baz&#261; z pliku 
    <filename moreinfo="none">nmap-os-fingerprints</filename>
    zawieraj&#261;c&#261; ponad 1500 znanych odcisk&#243;w system&#243;w operacyjnych i wy&#347;wietla
    wynik, je&#347;li uda&#322;o sie go odnale&#378;&#263;.
    Ka&#380;dy odcisk zawiera tekstowy opis systemu operacyjnego, nazw&#281; jego 
    producenta (np. Sun), nazw&#281; systemu (np. Solaris), generacj&#281; (np. 10) i typ
    urz&#261;dzenia (przeznaczenie og&#243;lne, router, switch, konsola do gier itp).</para>

    <para>Je&#347;li Nmap nie mo&#380;e ustali&#263; systemu i warunki do jego wykrycia s&#261;
    wystarczaj&#261;ce (np. wykryto przynajmniej jeden otwarty i jeden zamkni&#281;ty 
    port), Nmap poda adres URL, dzi&#281;ki kt&#243;remu, je&#347;li jeste&#347;my pewni, mo&#380;liwe 
    jest wys&#322;anie opisu nieznanego systemu, wraz z jego odciskiem. Wykonanie 
    tej operacji przyczynia si&#281; do rozbudowy bazy i poprawy wykrywania, na czym
    korzystaj&#261; wszyscy u&#380;ytkownicy.</para>

    <para>Detekcja systemu operacyjnego pozwala na uzyskanie innych informacji,
    kt&#243;re s&#261; zbierane podczas tego procesu. Jedn&#261; z nich jest czas od 
    uruchomienia hosta, co jest uzyskiwane poprzez wykorzystanie opcji TCP
    timestamp (RFC 1323) do ustalenia kiedy host by&#322; restartowany. Informacja
    ta jest podawana tylko wtedy, je&#347;li host jej dostarcza. Inn&#261; informacj&#261; jest
    klasyfikacja przewidywalno&#347;ci numer&#243;w sekwencyjnych TCP. Badane jest 
    prawdopodobie&#324;stwo mo&#380;liwo&#347;ci wstrzykni&#281;cia pakiet&#243;w w przechwycone
    po&#322;&#261;czenie. Informacja ta jest przydatna w przypadku testowania po&#322;&#261;cze&#324;
    opartych na zaufaniu do adresu IP nadawcy (rlogin, filtry firewalla itp)
    lub podczas ukrywania &#378;r&#243;d&#322;a ataku. Ten typ atak&#243;w jest obecnie rzadko
    wykorzystywany, jednak niekt&#243;re systemy s&#261; nadal na niego podatne.
    Podawany poziom trudno&#347;ci jest oparty na statystycznych pr&#243;bkach i mo&#380;e
    si&#281; zmienia&#263;. Og&#243;lnie lepiej jest u&#380;ywa&#263; angielskich okre&#347;le&#324; dla
    poszczeg&#243;lnych klas, takich jak <quote>worthy challenge</quote> (stanowi&#261;cy 
    wyzwanie) lub <quote>trivial joke</quote> (trywialny dowcip). Taki spos&#243;b
    raportowania jest dost&#281;pny tylko przy domy&#347;lnym formacie raportu przy
    w&#322;&#261;czonej opcji zwi&#281;kszaj&#261;cej szczeg&#243;&#322;owo&#347;&#263; podawanych informacji 
    (<option>-v</option>). Je&#347;li u&#380;yto opcji <option>-v</option> w po&#322;&#261;czeniu z
    <option>-O</option>, podane zostan&#261; informacje o generowaniu numer&#243;w 
    sekwencyjnych IPID. Wi&#281;kszo&#347;&#263; adres&#243;w nale&#380;y do klasy 
    <quote>incremental</quote> (rosn&#261;ce) co oznacza, &#380;e warto&#347;&#263; pola ID w
    nag&#322;&#243;wkach pakiet&#243;w IP jest zmieniana rosn&#261;co w kolejnych pakietach. Taki
    spos&#243;b powi&#281;kszania numer&#243;w powoduje podatno&#347;&#263; na szereg atak&#243;w.</para>

    <para>Dokument opisuj&#261;cy dzia&#322;anie i u&#380;ywanie detekcji wersji jest 
    dost&#281;pny w wielu j&#281;zykach pod adresem 
    <ulink url="http://www.insecure.org/nmap/osdetect/"/>.</para>

    <para>Wykrywanie systemu operacyjnego jest w&#322;&#261;czane i kontrolowane przez 
    poni&#380;sze opcje:</para>

    <variablelist>
      <varlistentry>
        <term>
          <option>-O</option> (W&#322;&#261;czenie wykrywania systemu operacyjnego)
        </term>
        <listitem>
          <para>W&#322;&#261;cza wykrywanie systemu operacyjnego opisanego powy&#380;ej.
          Alternatywnie mo&#380;na u&#380;ywa&#263; opcji <option>-A</option>, kt&#243;ra w&#322;&#261;cza 
          jednocze&#347;nie wykrywanie systemu operacyjnego i wersji us&#322;ug.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--osscan-limit</option> (Limitowanie wykrywania do 
          obiecuj&#261;cych cel&#243;w)
        </term>
        <listitem>
          <para>Wykrywanie systemu operacyjnego jest du&#380;o bardziej efektywne,
          je&#347;li wykryto przynajmniej po jednym otwartym i zamkni&#281;tym porcie TCP.
          U&#380;ycie tej opcji spowoduje, &#380;e Nmap nie b&#281;dzie pr&#243;bowa&#322; okre&#347;la&#263; 
          systemu operacyjnego, je&#347;li nie zosta&#322;y spe&#322;nione powy&#380;sze kryteria.
          Wykorzystanie tego ograniczenia pozwala na znaczne skr&#243;cenie czasu, 
          zw&#322;aszcza w po&#322;&#261;czeniu z opcj&#261; <option>-P0</option> przy skanowaniu 
          wielu adres&#243;w. Opcja ma znaczenie tylko w po&#322;&#261;czeniu z
          <option>-O</option> lub <option>-A</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--osscan-guess</option>; <option>--fuzzy</option> 
          (Zgadywanie wersji systemu operacyjnego)
        </term>
        <listitem>
          <para>Je&#347;li Nmap nie mo&#380;e jednoznacznie dopasowa&#263; systemu 
          operacyjnego, czasami mo&#380;e sugerowa&#263; kilka r&#243;&#380;nych, zbli&#380;onych 
          do siebie. Podobie&#324;stwo musi by&#263; bardzo du&#380;e, &#380;eby Nmap zachowa&#322;
          si&#281; w ten spos&#243;b przy domy&#347;lnej konfiguracji. Wykorzystanie tej opcji
          pozwala na wi&#281;ksz&#261; swobodno&#347;&#263; przy pr&#243;bach ustalenia wersji systemu.
          </para>
        </listitem>
      </varlistentry>


    </variablelist>
  </refsect1>

   <refsect1 id="man-performance">
    <title>Zale&#380;no&#347;ci czasowe i wydajno&#347;&#263;</title>
    <para>Zawsze najwa&#380;niejszym priorytetem przy tworzeniu Nmapa by&#322;a
    wysoka wydajno&#347;&#263;. Domy&#347;lne skanowanie (<command moreinfo="none">nmap
    <replaceable>nazwahosta</replaceable></command>) hosta w sieci lokalnej
    zajmuje tylko jedn&#261; pi&#261;t&#261; sekundy. Jest to zadowalaj&#261;cy czas, jednak przy
    skanowaniu setek tysi&#281;cy adres&#243;w sumaryczny czas staje si&#281; bardzo du&#380;y. 
    Dodatkowo niekt&#243;re typy skanowania, takie jak skanowanie UDP i detekcja 
    wersji tak&#380;e wp&#322;ywaj&#261; negatywnie na czas wykonania, podobnie jak konfiguracja 
    system&#243;w zaporowych, na przyk&#322;ad limituj&#261;ca ilo&#347;&#263; pakiet&#243;w. Nmap posiada 
    mo&#380;liwo&#347;ci r&#243;wnoleg&#322;ego skanowania i odpowiednie zaawansowane algorytmy 
    przyspieszaj&#261;ce skanowanie, a u&#380;ytkownik posiada ogromne mo&#380;liwo&#347;ci 
    wp&#322;ywania na to jak s&#261; one wykorzystywane. Zaawansowani u&#380;ytkownicy 
    uwa&#380;nie przegl&#261;daj&#261;cy komendy Nmapa, nakazuj&#261; mu dostarczanie tylko 
    istotnych informacji zgodnie z przyj&#281;tymi wymaganiami i za&#322;o&#380;eniami 
    czasowymi.</para>

    <para>Techniki przyspieszaj&#261;ce skanowanie dotycz&#261; ograniczenia wykonywania
    ma&#322;o istotnych test&#243;w i cz&#281;stej zmiany wersji Nmapa na najnowsz&#261; (zmiany
    dotycz&#261;ce przyszpieszenia pracy s&#261; wprowadzane dosy&#263; cz&#281;sto). Optymalizacja
    parametr&#243;w dotycz&#261;cych szybko&#347;ci skanowania r&#243;wnie&#380; ma du&#380;y wp&#322;yw i 
    zosta&#322;a opisana poni&#380;ej.</para>

    <variablelist>

      <varlistentry>
        <term>
        <option>--min-hostgroup &lt;ilo&#347;&#263;_host&#243;w&gt;</option>; 
        <option>--max-hostgroup
        &lt;numhosts&gt;</option> (Zmiana ilo&#347;ci host&#243;w w grupie)</term>
        <listitem>
<para>Nmap posiada mo&#380;liwo&#347;&#263; skanowania port&#243;w i wersji na wielu hostach
r&#243;wnocze&#347;nie. Jest to realizowane poprzez dzielenie listy adres&#243;w docelowych
na grupy, kt&#243;re s&#261; nast&#281;pnie kolejno skanowane. Og&#243;lnie skanowanie wi&#281;kszych 
grup jest bardziej efektywne. Wad&#261; tego rozwi&#261;zania jest op&#243;&#378;nienie w podawaniu
wynik&#243;w test&#243;w do czasu przeskanowania ca&#322;ej grupy. Przyk&#322;adowo, je&#347;li Nmap
rozpocz&#261;&#322; skanowanie w grupach po 50 adres&#243;w, &#380;adne wyniki nie zostan&#261; 
wy&#347;wietlone (poza informacjami podawanymi przez -v) do czasu zako&#324;czenia 
skanowania pierwszych 50 adres&#243;w.</para>

<para>Domy&#347;lnie Nmap stosuje rozwi&#261;zanie kompromisowe. Rozpoczyna z grup&#261; o
rozmiarze 5, co pozwala szybko wy&#347;wietli&#263; pierwsze wyniki, a nast&#281;pnie 
stopniowo powi&#281;ksza rozmiar grupy a&#380; do maksymalnie 1024. Dok&#322;adne 
wykorzystywane rozmiary grup s&#261; uzale&#380;nione od podania dodatkowych opcji.
Dla uzyskania wi&#281;kszej efektywno&#347;ci Nmap u&#380;ywa wi&#281;kszych grup dla skanowa&#324; UDP
oraz przy skanowaniach TCP dotycz&#261;cych zaledwie kilku port&#243;w.</para>

<para>Je&#347;li maksymalny rozmiar grupy zosta&#322; okre&#347;lony za pomoc&#261; opcji
<option>--max-hostgroup</option>, Nmap nigdy nie przekroczy tego limitu.
Analogicznie podanie minimalnego rozmiaru za pomoc&#261; 
<option>--min-hostgroup</option> wymusi stosowanie grup o przynajmniej takim 
rozmiarze. Nmap mo&#380;e u&#380;y&#263; mniejszej grupy tylko w przypadku, kiedy ilo&#347;&#263; 
adres&#243;w do przeskanowania jest mniejsza ni&#380; za&#322;o&#380;one minimum. Obie wymienione 
opcje pozwalaj&#261; na utrzymywanie rozmiaru grupy w podanym przedziale, jednak
jest to rzadko potrzebne.</para>

<para>Podstawowym zastosowaniem tych opcji jest podawanie du&#380;ego minimalnego
rozmiaru grupy tak, &#380;eby pe&#322;ne skanowanie odbywa&#322;o si&#281; szybciej. Cz&#281;sto 
stosowan&#261; warto&#347;ci&#261; jest 256, co pozwala na skanowanie w kawa&#322;kach o rozmiarze
klasy C. Przy skanowaniu wielu port&#243;w, stosowanie wi&#281;kszych warto&#347;ci 
minimalnych przewa&#380;nie nie poprawi wydajno&#347;ci. W przypadku skanowania ma&#322;ych
ilo&#347;ci port&#243;w pomocne mo&#380;e by&#263; stosowanie grup o rozmiarze 2048 lub nawet 
wi&#281;kszym.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>--min-parallelism &lt;ilo&#347;&#263;_pr&#243;b&gt;</option>;
        <option>--max-parallelism
        &lt;ilo&#347;&#263;_pr&#243;b&gt;</option> (Kontrola wsp&#243;&#322;bierzno&#347;ci test&#243;w)</term>
        <listitem>

<para>Opcja ta kontroluje ilo&#347;&#263; jednoczesnych dla danej grupy adres&#243;w 
test&#243;w i jest wykorzystywana podczas wykrywania host&#243;w i skanowania port&#243;w.
Domy&#347;lnie Nmap dobiera idealn&#261; ilo&#347;&#263; test&#243;w w zale&#380;no&#347;ci od parametr&#243;w sieci.
Je&#347;li jaki&#347; pakiet zostanie zagubiony, zwalnia i zaczyna wykonywa&#263;
mniejsz&#261; ilo&#347;&#263; test&#243;w r&#243;wnolegle. Nmap pr&#243;buje powoli przyspiesza&#263;, je&#347;li nie
s&#261; gubione pakiety. Podane opcje pozwalaj&#261; na okre&#347;lenie minimalnego i 
maksymalnego limitu ilo&#347;ci jednocze&#347;nie wykonywanych test&#243;w. Normalnie ilo&#347;&#263; 
ta mo&#380;e spa&#347;&#263; do 1 przy z&#322;ych warunkach sieciowych lub wzrosn&#261;&#263; do kilkuset
w idealnych warunkach.</para>

<para>Najcz&#281;&#347;ciej wykorzystywana jest opcja
<option>--min-parallelism</option> do ustawiania wy&#380;szej ni&#380; 1 warto&#347;ci przy
skanowaniu sieci przy z&#322;ych warunkach. Zmiana tej opcji mo&#380;e by&#263; ryzykowna, 
poniewa&#380; ustawienie zbyt wysokiej warto&#347;ci mo&#380;e sie odbi&#263; na poprawno&#347;ci test&#243;w.
Wykorzystanie jej tak&#380;e poci&#261;ga za sob&#261; zmniejszenie mo&#380;liwo&#347;ci Nmapa w 
zakresie dynamicznego dostosowywania si&#281; do warunk&#243;w panuj&#261;cych w sieci.
Ustalenie minimalnej ilo&#347;ci na 10 mo&#380;e by&#263; sensowne, jednak powinno by&#263; 
stosowane w ostateczno&#347;ci.</para>

<para>Opcja <option>--max-parallelism</option> jest czasami wykorzystywana do 
zmuszenia Nmapa do nie przeprowadzania wi&#281;cej ni&#380; jednego testu r&#243;wnolegle, co
mo&#380;e by&#263; u&#380;yteczne w po&#322;&#261;czeniu z opcj&#261;<option>--scan-delay</option> (opisan&#261;
dalej).</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>--min_rtt_timeout &lt;czas&gt;</option>, 
        <option>--max-rtt-timeout &lt;czas&gt;</option>, 
        <option>--initial-rtt-timeout
        &lt;czas&gt;</option> (Kontrola czasu oczekiwania na wykonanie testu)</term>
        <listitem>

<para>Nmap posiada mechanizm kontroluj&#261;cy czas oczekiwania na wynik testu,
zanim nie zostanie on ponowiony. Czas oczekiwania jest zale&#380;ny od czasu 
wykonania poprzednich test&#243;w. Je&#347;li op&#243;&#378;nienia w sieci oka&#380;&#261; sie du&#380;e i 
zmienne, czas oczekiwania mo&#380;e zwi&#281;kszy&#263; sie do kilku sekund. Pocz&#261;tkowa
warto&#347;&#263; jest dosy&#263; konserwatywna (wysoka) i mo&#380;e taka pozosta&#263; w przypadku
skanowania nie odpowiadaj&#261;cych host&#243;w.</para>

<para>Opcje przyjmuj&#261; warto&#347;ci w milisekundach, ale mo&#380;na doda&#263; litery
<literal moreinfo="none">s</literal>, <literal moreinfo="none">m</literal> 
lub <literal moreinfo="none">h</literal> odnosz&#261;ce si&#281; odpowiednio do sekund,
minut i godzin. Podanie ni&#380;szych warto&#347;ci <option>--max-rtt-timeout</option> i
<option>--initial-rtt-timeout</option> ni&#380; domy&#347;lne, mo&#380;e znacz&#261;co skr&#243;ci&#263; czas
skanowania. Jest to g&#322;&#243;wnie widoczne w przypadku skanowania bez wykorzystywania
pinga (<option>-P0</option>) oraz przy skanowaniu dobrze filtrowanych sieci.
Nie mo&#380;na r&#243;wnie&#380; przesadza&#263; w drug&#261; stron&#281;, ustawienie zbyt ma&#322;ego czasu
mo&#380;e przek&#322;ada&#263; sie na d&#322;u&#380;szy czas skanowania przez niepotrzebne retransmisje 
spowodowane up&#322;ywem czasu oczekiwania na odpowied&#378;.</para>

<para>Je&#347;li wszystkie skanowane hosty s&#261; w sieci lokalnej, sensownym agresywnym
ustawieniem opcje <option>--max-rtt-timeout</option> jest 100 milisekund.
Je&#347;li skanowany ma by&#263; inny segment, warto sprawdzi&#263; czasy odpowiedzi dla 
protoko&#322;u ICMP - za pomoc&#261; narz&#281;dzia ping lub innego pozwalaj&#261;cego na 
definiowanie pakiet&#243;w mog&#261;cych omija&#263; system zaporowy, takiego jak hping2.
Interesuj&#261;c&#261; nas wielko&#347;ci&#261; jest maksymalny czas odpowiedzi dla 10 lub wi&#281;cej 
pakiet&#243;w. Uzyskany czas mo&#380;e zosta&#263; po podwojeniu wykorzystany jako warto&#347;&#263; dla
<option>--initial-rtt-timeout</option>, a po pomno&#380;eniu przez trzy lub cztery
dla <option>--max-rtt-timeout</option>. Nie jest zalecane ustawianie 
maksymalnego rtt poni&#380;ej 100ms, niezale&#380;nie od czas&#243;w pingowania, podobnie 
wi&#281;kszego ni&#380; 1000ms.</para>

<para><option>--min_rtt_timeout</option> jest rzadko wykorzystywan&#261; funkcj&#261;, 
kt&#243;ra mo&#380;e by&#263; przydatna je&#347;li komunikacja sieciowa jest tak niepewna, &#380;e nawet
domy&#347;lne ustawienia Nmapa s&#261; zbyt agresywne. Jako &#380;e Nmap redukuje czas 
oczekiwania tylko do momentu w kt&#243;rym sie&#263; zacznie dzia&#322;a&#263; poprawnie, potrzeba
dodatkowego wyd&#322;u&#380;ania czasu oczekiwania nie jest normalna i powinna zosta&#263;
zaraportowana jako b&#322;&#261;d na li&#347;cie dyskusyjnej nmap-dev.</para>

        </listitem>
      </varlistentry>


      <varlistentry>
        <term>
          <option>--max-retries &lt;ilo&#347;&#263;&gt;</option> (Maksymalna ilo&#347;&#263; pr&#243;b ponawiania skanowania port&#243;w)
        </term>
        <listitem>

<para>Kiedy Nmap nie otrzyma odpowiedzi na skanowanie portu, mo&#380;e to oznacza&#263;,
&#380;e port ten jest filtrowany. Mo&#380;liwe jest jednak tak&#380;e, &#380;e pakiet testu lub 
odpowiedzi po prostu zagin&#261;&#322; w sieci, albo &#380;e host limituje ilo&#347;&#263; mo&#380;liwych
odpowiedzi w jednostce czasu i w&#322;a&#347;nie tymczasowo je zablokowa&#322;. Wi&#281;ksz&#261;
pewno&#347;&#263; uzyskuje si&#281; dzieki powtarzaniu testu w przedstawionych przypadkach.
Je&#347;li Nmap wykryje problemy z komunikacj&#261; sieciow&#261;, mo&#380;e ponawia&#263; pr&#243;b&#281; badania
portu wiele razy, zanim sie podda. Z jednej strony zwi&#281;ksza to dok&#322;adno&#347;&#263; 
test&#243;w, z drugiej wyd&#322;u&#380;a czas ich wykonania. Je&#347;li wydajno&#347;&#263; jest krytycznym 
aspektem, skanowania mog&#261; zosta&#263; przyspieszone poprzez limitowanie dozwolonej 
ilo&#347;ci retransmisji. Ustawienie opcji <option>--max-retries 0</option> ,
ca&#322;kowicie wy&#322;&#261;czaj&#261;cej powtarzanie test&#243;w jest wykorzystywane sporadycznie.
</para>

<para>Domy&#347;lnie (bez stosowania opcji <option>-T</option>) dozwolone jest 
maksymalnie 10 powt&#243;rze&#324;. Je&#347;li sie&#263; dzia&#322;a prawid&#322;owo i skanowane hosty nie
limituj&#261; ilo&#347;ci pakiet&#243;w, Nmap zwykle wykorzystuje jedn&#261; retransmisj&#281;. Dlatego te&#380;
wi&#281;kszo&#347;&#263; skanowa&#324; nie zostanie dotkni&#281;tych zmian&#261; warto&#347;ci 
<option>--max-retries</option> na trzy. Stosowanie tak niskich warto&#347;ci pozwala
na znaczne przyspieszenie skanowania host&#243;w limituj&#261;cych ilo&#347;&#263; odpowiedzi.
Je&#347;li Nmap b&#281;dzie zbyt szybko poddawa&#322; si&#281; przy skanowaniu port&#243;w, cz&#281;&#347;&#263; 
informacji nie zostanie zebrana, dlatego by&#263; mo&#380;e warto skorzysta&#263; z opcji
przerywaj&#261;cej test <option>--host-timeout</option>, kt&#243;ra dotyczy ca&#322;ego hosta,
a nie tylko pojedynczych test&#243;w.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>--host-timeout &lt;czas&gt;</option> (Pomijaj powolne hosty)
        </term>
        <listitem>

<para>Skanowanie niekt&#243;rych host&#243;w trwa <emphasis>bardzo d&#322;ugo</emphasis>.
Mo&#380;e to by&#263; spowodowane niezbyt wydajnym sprz&#281;tem sieciowym lub 
oprogramowaniem, limitowaniem ilo&#347;ci pakiet&#243;w czy restrykcjami systemu
zaporowego. Niewielki procent host&#243;w mo&#380;e zabra&#263; wi&#281;kszo&#347;&#263; czasu przeznaczonego
na skanowanie. Czasami najlepszym rozwi&#261;zaniem jest ich pomini&#281;cie z 
wykorzystaniem opcji <option>--host-timeout</option> z parametrem oznaczaj&#261;cym 
ilo&#347;&#263; milisekund, jakie jeste&#347;my w stanie po&#347;wi&#281;ci&#263; na czekanie per host.
Parametr mo&#380;na r&#243;wnie&#380; podawa&#263; w sekundach, minutach lub godzinach dodaj&#261;c 
odpowiednio litery <literal moreinfo="none">s</literal>, 
<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal>.
Cz&#281;sto dodaj&#281; <literal moreinfo="none">30m</literal> &#380;eby mie&#263; pewno&#347;&#263;, &#380;e Nmap 
nie b&#281;dzie skanowa&#322; jednego hosta d&#322;u&#380;ej ni&#380; p&#243;&#322; godziny. Trzeba pami&#281;ta&#263;, &#380;e 
Nmap mo&#380;e r&#243;wnolegle w tym czasie skanowa&#263; inne hosty, wi&#281;c nie bedzie to czas 
kompletnie stracony.  Host kt&#243;ry przekroczy czas jest pomijany i nie s&#261; dla 
niego wy&#347;wietlane wyniki takie jak lista port&#243;w, system operacyjny czy wersje 
us&#322;ug.</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
        <option>--scan-delay &lt;czas&gt;</option>;
        <option>--max_scan-delay
        &lt;czas&gt;</option> (Ustaw op&#243;&#378;nienie pomi&#281;dzy testami)</term>
        <listitem>

<para>Opcja pozwala na narzucenie czasu w milisekundach jaki musi min&#261;&#263;
pomi&#281;dzy kolejnymi testami dla badanego hosta. Podobnie jak przy innych opcjach
pozwalaj&#261;cych na okre&#347;lanie czasu, mo&#380;na doda&#263; 
<literal moreinfo="none">s</literal>,
<literal moreinfo="none">m</literal> lub <literal moreinfo="none">h</literal>
do parametru do okre&#347;lenia go odpowiednio w sekundach, minutach lub godzinach.
Opcja ta jest szczeg&#243;lnie u&#380;yteczna w przypadku system&#243;w limituj&#261;cych ilo&#347;&#263;
pakiet&#243;w. Solaris zwykle odpowiada na skanowanie UDP poprzez wysy&#322;anie tylko
jednego pakietu ICMP na sekund&#281;, wi&#281;c wysy&#322;anie zapyta&#324; szybciej jest zupe&#322;nie
nie potrzebne. Wykorzystanie opcji <option>--scan-delay 1s</option> pozwala na
wymuszenie odpowiedniej pr&#281;dko&#347;ci skanowania. Normalnie Nmap stara si&#281; 
wykry&#263; jaka powinna by&#263; optymalna pr&#281;dko&#347;&#263; skanowania dla ka&#380;dego hosta, jednak
r&#281;czne dodanie takiej opcji nie zaszkodzi, o ile znana jest optymalna pr&#281;dko&#347;&#263;.</para>

<para>Kiedy Nmap zwi&#281;ksza czas op&#243;&#378;nienia, dostosowuj&#261;c go do
limitu ilo&#347;ci otrzymywanych odpowiedzi, czas skanowania dramatycznie ro&#347;nie.
Opcja <option>--max_scan-delay</option> pozwala na ustawienie maksymalnego
limitu do kt&#243;rego mo&#380;e by&#263; automatycznie zwi&#281;kszane op&#243;&#378;nienie. Ustawienie
tej warto&#347;ci zbyt nisko mo&#380;e spowodowa&#263; niepotrzebne retransmisje i 
pomini&#281;cie niekt&#243;rych port&#243;w w przypadku host&#243;w &#347;ci&#347;le limituj&#261;cych ilo&#347;&#263;
pakiet&#243;w.</para>

<para>Inn&#261; mo&#380;liwo&#347;ci&#261; wykorzystanie opcji <option>--scan-delay</option>
jest omijanie system&#243;w detekcji intruz&#243;w (IDS/IPS).</para>

        </listitem>
      </varlistentry>

      <varlistentry>
        <term>
          <option>-T
          &lt;Paranoid|Sneaky|Polite|Normal|Aggressive|Insane&gt;</option>
          (Ustawnienie szablonu zale&#380;no&#347;ci czasowych skanowania)
        </term>
        <listitem>

<para>Opisane wcze&#347;niej opcje do zmiany zale&#380;no&#347;ci czasowych pozwalaj&#261; na
efektywne i precyzyjne sterowanie skanowaniem, jednak wiele os&#243;b uzna je za 
niepotrzebnie skomplikowane. Dodatkowo w wielu przypadkach dobranie 
odpowiedniej kombinacji parametr&#243;w mo&#380;e zaj&#261;&#263; wi&#281;cej czasu, ni&#380; samo
skanowanie. Z tego powodu Nmap oferuje prostrze rozwi&#261;zanie w postaci
sze&#347;ciu szablon&#243;w. Ich wyb&#243;r jest mo&#380;liwy poprzez wykorzystanie opcji
<option>-T</option> z parametrem oznaczaj&#261;cym numer lub nazw&#281; szablonu.
Dost&#281;pne szablony to paranoid (0, paranoidalny), sneaky (1, podst&#281;pny),
polite (2, grzeczny), normal (3, normalny), aggressive (4, agresywny) i 
insane (5, szalony). Pierwsze dwa wykorzystywane s&#261; do omijania system&#243;w
IDS. Szablon polite spowalnia skanowanie powoduj&#261;c mniejsze obci&#261;&#380;enie &#322;&#261;cza
i zmniejszaj&#261;ce wykorzystanie zasob&#243;w w badanym systemie. Domy&#347;lnie u&#380;ywany
jest normal, wi&#281;c podawanie <option>-T3</option> nic nie zmieni. Szablon 
agresywny przyspiesza skanowanie przy za&#322;o&#380;eniu &#380;e korzystamy z szybkiej i
nie przeci&#261;&#380;onej sieci. Insane zak&#322;ada wykorzystanie ponad przeci&#281;tnie szybkiej
sieci lub je&#347;li chcemy uzyska&#263; du&#380;&#261; szybko&#347;&#263; kosztem mo&#380;liwej utraty 
dok&#322;adno&#347;ci.</para>

<para>Szablony pozwalaj&#261; poinformowa&#263; Nmapa jak du&#380;ej agresywno&#347;ci od niego
oczekujemy przy jednoczesnym pozwoleniu mu na automatyczne dobieranie 
pozosta&#322;ych parametr&#243;w czasowych. Wprowadzane te&#380; s&#261; inne drobne modyfikacje,
do kt&#243;rych nie istniej&#261; odzielne opcje. Na przyk&#322;ad, <option>-T4</option> 
zabrania wzrostu dynamicznego op&#243;&#378;nienia skanowania powy&#380;ej 10ms dla port&#243;w 
TCP, a w przypadku <option>-T5</option> powy&#380;ej 5ms. Szablony mog&#261; by&#263; u&#380;ywane 
w po&#322;&#261;czeniu z innymi opcjami do ustawiania zale&#380;no&#347;ci czasowych o ile zostan&#261; 
umieszczone przed pozosta&#322;ymi opcjami w linii polece&#324; 
(inaczej domy&#347;lne ustawienia z szablonu zast&#261;pi&#261; ustawione innymi opcjami).
Wi&#281;kszo&#347;&#263; dzisiejszych sieci mo&#380;e by&#263; z powodzeniem skanowana z wykorzystaniem
opcji <option>-T4</option>.</para>

<para>Je&#347;li u&#380;ywasz &#322;&#261;cza szerokopasmowego lub sieci ethernet, rekomendowane 
jest sta&#322;e u&#380;ywanie szablonu <option>-T4</option>. Wiele os&#243;b lubi 
<option>-T5</option>, lecz jest ono jak dla mnie troch&#281; za agresywne. Ludzie 
czasami u&#380;ywaj&#261; <option>-T2</option> poniewa&#380; my&#347;l&#261;, &#380;e zminiejszaj&#261; szanse 
na zawieszenie serwera lub uwa&#380;aj&#261; si&#281; za bardziej kulturalnych z za&#322;o&#380;enia, 
cz&#281;sto nie zdaj&#261;c sobie sprawy z tego, jak wolne jest <option>-T Polite</option> 
- ich skanowania mo&#380;e trwa&#263; dziesi&#281;&#263; razy d&#322;u&#380;ej. Zawieszanie host&#243;w i problemy 
z pasmem s&#261; rzadko spotykane przy domy&#347;lym <option>-T3</option>, i ta opcja jest
polecana dla ostro&#380;nych skanuj&#261;cych. Nie w&#322;&#261;czanie detekcji wersji jest daleko 
bardziej efektywnym sposobem na unikanie problem&#243;w.</para>

<para>Podczas gdy opcje <option>-T0</option> i <option>-T1</option> mog&#261; by&#263; 
u&#380;yteczne przy unikaniu wykrycia przez systemy IDS, s&#261; niesamowicie powolne
przy skanowaniu setek adres&#243;w lub port&#243;w. Przy tak d&#322;ugich skanowaniach mo&#380;esz
raczej chcie&#263; ustawi&#263; r&#281;cznie poszczeg&#243;lne zale&#380;no&#347;ci czasowe, ni&#380; polega&#263; na
predefiniowanych warto&#347;ciach z <option>-T0</option> i <option>-T1</option>.
</para>

<para>G&#322;&#243;wnym efektem dzia&#322;ania <option>T0</option> jest ograniczenie ilo&#347;ci
r&#243;wnolegle przeprowadzanych test&#243;w do jednego i wprowadzenie odst&#281;pu pomi&#281;dzy 
kolejnymi testami o d&#322;ugo&#347;ci 5 minut. Opcje <option>T1</option> i
<option>T2</option> s&#261; podobne, ale czakaj&#261; ju&#380; tylko odpowiednio 15 i 0.4 
sekundy pomi&#281;dzy testami. <option>T3</option> jest domy&#347;lnym ustawieniem Nmapa 
w&#322;&#261;czaj&#261;c w to zr&#243;wnoleglanie test&#243;w. <option>T4</option> jest odpowiednikiem 
podania opcji <option>--max-rtt-timeout 1250 --initial-rtt-timeout 500 
--max-retries 6</option> i ustawienia maksymalnego op&#243;&#378;nienia przy skanowaniu 
TCP na 10 milisekund. Opcja <option>T5</option> jest alternatyw&#261; dla 
<option>--max-rtt-timeout 300 --min_rtt_timeout 50 --initial-rtt-timeout 250 
--max-retries 2 --host-timeout 900000</option> oraz ustawienia maksymalnego 
czasu op&#243;&#378;nienia dla skanowania TCP na 5ms.</para>

        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 id="man-bypass-firewalls-ids">
    <title>Firewall/IDS i podszywanie si&#281;</title>

<para>Wielu pionier&#243;w ineternetu wykorzystywa&#322;o globaln&#261; otwart&#261; sie&#263; opart&#261;
o uniwersaln&#261; przestrze&#324; adresow&#261; pozwalaj&#261;c&#261; na tworzenie wirtualnych
po&#322;&#261;cze&#324; pomi&#281;dzy dwoma dowolnymi w&#281;z&#322;ami. Pozwala&#322;o to hostom na r&#243;wnoprawn&#261;
komunikacj&#281; przy kt&#243;rej ka&#380;dy m&#243;g&#322; serwowa&#263; i pobiera&#263; dane od drugiego.
Ludzie mogli uzyska&#263; dost&#281;p do wszystkich swoich system&#243;w z dowolnego miejsca
w sieci. Wizja nieograniczonej &#322;&#261;czno&#347;ci zosta&#322;a ograniczona przez wyczerpuj&#261;ce
si&#281; zapasy wolnych adres&#243;w IP i wzgl&#281;dy bezpiecze&#324;stwa. We wczesnych latach
90-tych organizacje zacz&#281;&#322;y masowo wprowadza&#263; systemy zaporowe dla ograniczenia
mo&#380;liwo&#347;ci komunikacji.  Du&#380;e sieci zosta&#322;y otoczone kordonem zabezpiecze&#324; w 
postaci proxy aplikacyjnych, translacji adres&#243;w i filtrowania pakiet&#243;w.
Niczym nie ograniczany przep&#322;yw informacji ust&#261;pi&#322; &#347;cis&#322;ym regulacjom 
dotycz&#261;cym dozwolonych dr&#243;g komunikacji i tre&#347;ci nimi przesy&#322;anych.</para>

<para>Zabezpieczenia sieciowe takie jak systemy zaporowe mog&#261; bardzo utrudni&#263;
uzyskiwanie informacji o sieci i jej architekturze. 
Nmap posiada wiele funkcji pozwalaj&#261;cych zrozumie&#263; dzia&#322;anie z&#322;o&#380;onych sieci i
na weryfikacje dzia&#322;ania filtr&#243;w pakiet&#243;w i ich zgodno&#347;ci z za&#322;o&#380;eniami.
Pozwala nawet na omijanie &#378;le zaimplementowanych zabezpiecze&#324;. Jednym z 
najlepszych sposob&#243;w na poznanie bezpiecze&#324;stwa swojej sieci jest pr&#243;ba jego
prze&#322;amania. Zacznij my&#347;le&#263; jak atakuj&#261;cy, kt&#243;ry stosuje techniki z tej cz&#281;&#347;ci
dokumentacji przeciwko Twojej sieci. Uruchom skanowania FTP bounce, Idle, dodaj 
fragmentacj&#281; pakiet&#243;w lub spr&#243;buj ur