Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

nmap — audyt sieci i skanowanie portów na VPS

Opublikowano: 10 kwietnia 2026 · Kategoria: Bezpieczeństwo

Każdy administrator serwera powinien wiedzieć co "widzi" internet patrząc na jego VPS. Czy firewall blokuje port MySQL (3306)? Czy Redis (6379) nie jest przypadkiem dostępny publicznie? Czy SSH działa na niestandardowym porcie? nmap pozwala zobaczyć własny serwer oczami potencjalnego atakującego — i poprawić konfigurację zanim ktoś skorzysta z luk. Ten artykuł pokazuje jak efektywnie używać nmap do audytu własnej infrastruktury.

Ważne: Skanuj TYLKO własne serwery lub serwery dla których masz pisemną zgodę właściciela. Skanowanie cudzych serwerów bez zgody jest nielegalne w Polsce i UE (Art. 267 k.k., Computer Misuse Act). nmap generuje też alerty w systemach IDS/IPS.

Instalacja i podstawowe skanowanie

# Ubuntu/Debian
sudo apt install nmap -y
nmap --version

# Podstawowe skanowanie — top 1000 portów TCP
nmap 192.168.1.1
nmap twoj-serwer.pl

# Typy skanowania:
# -sS  SYN scan (domyślny, wymaga root) — szybki, mniej wykrywalny
# -sT  TCP Connect scan (bez root) — wolniejszy, pełne połączenie
# -sU  UDP scan (wymaga root) — wolny, ważny dla DNS/SNMP/NTP
# -sn  Ping scan — tylko czy host żyje, bez portów

# Najczęstsze flagi analizy:
# -sV  wykryj wersję usługi (Service Version)
# -sC  uruchom default scripts NSE
# -O   wykryj system operacyjny (wymaga root)
# -A   agresywny: -sV -sC -O -traceroute

# Szybki audyt własnego VPS:
sudo nmap -sV -sC -O your-vps-ip

# Wynik przykładowy:
# PORT     STATE  SERVICE VERSION
# 22/tcp   open   ssh     OpenSSH 8.9p1 Ubuntu
# 80/tcp   open   http    nginx 1.24.0
# 443/tcp  open   https   nginx 1.24.0
# 3306/tcp closed mysql
# 6379/tcp closed redis

Szczegółowe opcje skanowania

# Skanuj WSZYSTKIE porty (65535) — wolniejsze ale kompletne
sudo nmap -p- -sV your-vps-ip

# Konkretne porty
sudo nmap -p 22,80,443,3306,5432,6379 -sV your-vps-ip

# Zakres portów
sudo nmap -p 1-1024 -sV your-vps-ip

# UDP scan (DNS=53, SNMP=161, NTP=123)
sudo nmap -sU -p 53,123,161 your-vps-ip

# Skanowanie wielu hostów
sudo nmap -sV 192.168.1.0/24         # cała podsieć
sudo nmap -sV 10.0.0.1-50            # zakres IP
sudo nmap -iL hosts.txt              # z pliku (jeden IP/hostname per linia)

# Timing (szybkosc skanowania):
# -T0 Paranoid  — bardzo wolny, omija IDS
# -T1 Sneaky    — wolny, omija IDS
# -T2 Polite    — ostrożny, nie przeciąża sieci
# -T3 Normal    — domyślny
# -T4 Aggressive — szybki (zalecany do audytu własnych sieci)
# -T5 Insane    — bardzo szybki, może pominąć wyniki

sudo nmap -T4 -p- -sV your-vps-ip  # szybki pełny skan

NSE Scripts — testowanie podatności i usług

# Kategorie NSE scripts
# safe       — bezpieczne, nie zakłócają usług
# discovery  — zbierają informacje o usługach
# auth       — testują mechanizmy uwierzytelniania
# vuln       — sprawdzają znane podatności (CVE)
# exploit    — aktywnie eksploatują podatności (tylko pentesty!)
# intrusive  — mogą zakłócić usługi (nie na produkcji)
# malware    — wykrywają backdoory i malware

# Uruchom default scripts (kategoria safe + discovery)
sudo nmap -sC your-vps-ip

# Sprawdź podatności na portach 80/443
sudo nmap --script=vuln -p 80,443 your-vps-ip

# Specific scripts:
# SSL/TLS konfiguracja — heartbleed, POODLE, ciphers
sudo nmap --script=ssl-heartbleed,ssl-poodle,ssl-enum-ciphers -p 443 your-vps-ip

# HTTP server info
sudo nmap --script=http-server-header,http-methods,http-robots.txt -p 80,443 your-vps-ip

# SSH — obsługiwane algorytmy i podatności
sudo nmap --script=ssh2-enum-algos,ssh-auth-methods -p 22 your-vps-ip

# MySQL — sprawdź anonimowy dostep
sudo nmap --script=mysql-empty-password,mysql-info -p 3306 your-vps-ip

# FTP — anonimowy dostep
sudo nmap --script=ftp-anon,ftp-bounce -p 21 your-vps-ip

# Lista dostepnych skryptow
ls /usr/share/nmap/scripts/ | grep ssl
nmap --script-help ssl-heartbleed

Output — formaty XML i grepable

# Formaty output:
# -oN  Normal  — czytelny tekst (domyślny)
# -oX  XML     — do parsowania narzędziami (np. python lxml)
# -oG  Grepable — łatwy grep/awk
# -oA  All     — wszystkie 3 formaty naraz (zalecane dla audytów)

# Zapisz do wszystkich formatów naraz
sudo nmap -sV -sC -oA /tmp/audit-$(date +%Y%m%d) your-vps-ip
# Wyniki: /tmp/audit-20260410.nmap, .xml, .gnmap

# XML — parsuj przez Python
# python3 -c "
# import xml.etree.ElementTree as ET
# tree = ET.parse('/tmp/audit-20260410.xml')
# for port in tree.findall('.//port'):
#     state = port.find('state').get('state')
#     if state == 'open':
#         print(port.get('portid'), state)
# "

# Grepable — szybkie filtry
grep "open" /tmp/audit-20260410.gnmap
grep "22/open" /tmp/audit-20260410.gnmap | awk '{print $2}'  # tylko IP z otwartym SSH

# Ndiff — porównaj dwa skany (co się zmieniło?)
sudo nmap -oX before.xml your-vps-ip
# [po kilku dniach/tygodniach]
sudo nmap -oX after.xml your-vps-ip
ndiff before.xml after.xml  # pokaż róznice

IPv6 i wykrywanie systemu operacyjnego

# IPv6 skanowanie (flaga -6)
sudo nmap -6 -sV 2a01:4f8:1:2::3  # konkretny adres IPv6
sudo nmap -6 -sV fe80::1%eth0      # link-local IPv6

# Wykrywanie OS (wymaga root i otwartych portów)
sudo nmap -O your-vps-ip
# Running: Linux 5.X
# OS details: Linux 5.4 - 5.15
# Network Distance: 1 hop

# OS z bardziej agresywnym odgadywaniem
sudo nmap -O --osscan-guess --fuzzy your-vps-ip

# Traceroute zintegrowany z nmap
sudo nmap --traceroute -sV your-vps-ip

# Agresywny tryb all-in-one (sV + sC + O + traceroute)
sudo nmap -A -T4 your-vps-ip

# Skanowanie bez pingoowania hosta (jeśli ICMP jest zablokowany)
sudo nmap -Pn -sV your-vps-ip  # nie sprawdzaj żywotności przez ping

# Tylko ping (odkryj które hosty żyją, bez portów)
sudo nmap -sn 192.168.1.0/24

Porównanie nmap, Masscan i Zmap

Narzędzie Szybkość Dokładność Najlepsze do
nmap Wolny (tysiące pakietów/sek) Bardzo wysoka (wersje, OS, NSE) Dogłębna analiza 1-kilkuset hostów, audyt bezpieczeństwa
Masscan Bardzo szybki (10 mln pkt/sek) Tylko otwarte porty (TCP) Skanowanie dużych sieci /16-/8, discovery
Zmap Ekstremalnie szybki (całego internetu w <5 min) Tylko otwarte porty (jeden port) Internet-scale research, jeden port naraz
RustScan Bardzo szybki (port discovery) Średnia (potem oddaje do nmap) Szybkie odkrycie portów + nmap follow-up
Shodan CLI N/A (dane z bazy) Historyczna (może być nieaktualna) Pasywne wywiad o hostach, bez aktywnego skanowania

Praktyczny audyt VPS — checklist

  • Sprawdź otwarte porty z zewnątrzsudo nmap -sV -p- your-vps-ip — nic nieoczekiwanego nie powinno być dostępne.
  • Weryfikacja SSL/TLSsudo nmap --script=ssl-enum-ciphers -p 443 — szukaj słabych szyfrów (RC4, DES, MD5).
  • Sprawdź SSH hardeningsudo nmap --script=ssh2-enum-algos -p 22 — czy diffie-hellman-group1 jest wyłączony?
  • Bazy danych nie powinny być publiczne — porty 3306, 5432, 6379, 27017 muszą być w stanie "filtered" lub "closed" dla zewnętrznych skanów.
  • Regularne skanowania — uruchamiaj nmap -oA co miesiąc i porównuj z ndiff — nowe otwarte porty to sygnał alarmowy.
  • Skanuj też UDPsudo nmap -sU -p 53,123,161,500 — otwarte UDP dla SNMP, NTP lub IKE to potencjalne wektory ataku.

Najczęstsze pytania

Co to jest nmap i do czego służy? +
nmap (Network Mapper) to otwarte narzędzie do skanowania sieci i audytu bezpieczeństwa. Służy do: odkrywania otwartych portów na serwerze, identyfikacji działających usług i ich wersji (-sV), wykrywania systemu operacyjnego (-O), uruchamiania skryptów NSE (Nmap Scripting Engine) do testów podatności. Używany przez administratorów do audytu własnej infrastruktury i weryfikacji czy firewall działa prawidłowo.
Jak sprawdzić jakie porty są otwarte na moim VPS? +
Z zewnątrz (poza serwerem): nmap -sV twoj-serwer.pl — skanuje top 1000 portów TCP z wykrywaniem wersji. Dla pełnego skanu: nmap -p- -sV twoj-serwer.pl (wszystkie 65535 portów, trwa dłużej). Lokalnie (na serwerze): ss -tulpn — szybko pokazuje otwarte porty i procesy które ich słuchają. nmap przez loopback: nmap -sV localhost. Ważne: zawsze skanuj tylko własne serwery — skanowanie cudzych bez zgody jest nielegalne.
Czym są skrypty NSE i co wykrywają? +
NSE (Nmap Scripting Engine) to silnik skryptów w języku Lua umożliwiający zaawansowane testy. Kategorie: vuln (sprawdza znane CVE, np. heartbleed, ms17-010), auth (testuje domyślne hasła, anonimowe FTP/SMTP), discovery (zbiera dodatkowe informacje o usługach), safe (nieagresywne testy informacyjne), intrusive (agresywne, mogą zakłócić usługi). Przykład: nmap --script=vuln -p 443 example.com sprawdza podatności HTTPS. Skrypty NSE są w /usr/share/nmap/scripts/.
Czym różni się nmap od Masscan i Zmap? +
nmap to narzędzie do dogłębnego skanowania jednego lub kilku hostów — identyfikuje usługi, wersje, OS, uruchamia NSE skrypty. Masscan i Zmap są zaprojektowane do skanowania całego internetu lub ogromnych zakresów IP w kilka minut — wysyłają pakiety asynchronicznie z prędkością do 10 mln pakietów/sek. Masscan/Zmap = szybkie odkrycie otwartych portów w dużej skali. nmap = szczegółowa analiza po wstępnym skanowaniu. Typowy workflow: Masscan → lista IP z otwartym portem 443 → nmap -sV -sC na listę.

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.