Nmap (Network Mapper) er det mest udbredte open source-værktøj til port scanning og netværksscanning i verden. Sikkerheds-professionelle, systemadministratorer og penetrationstestere bruger det dagligt til at kortlægge netværk, opdage åbne porte og identificere sårbare tjenester. Denne tutorial viser dig præcis, hvordan du installerer Nmap 7.95, kører 12 scanningstyper og bruger NSE-scripts til avanceret netværkssikkerhed, alt sammen på under 30 minutter.
Nmap blev skabt af Gordon “Fyodor” Lyon i 1997 og har siden sin debut været et uundværligt redskab i enhver sikkerhedsprofessionels værktøjskasse. Med over 600 indbyggede NSE-scripts (Nmap Scripting Engine) og understøttelse af alle 65.535 TCP- og UDP-porte giver Nmap en komplet oversigt over, hvad der kører på dit netværk, og hvad der potentielt kan udnyttes af angribere.
Hvad er Nmap, og hvorfor er det vigtigt?
Nmap er et gratis, open source netværksscanner licenseret under GPLv2. Det kan scanne enkelt hosts, hele netværksblokke i CIDR-notation og alt derimellem. Kerneformålene for Nmap er:
- Port scanning: Identificer hvilke porte er åbne, lukkede eller filtrerede på en given host
- Service-detektion: Afgør hvilken software og version der kører bag åbne porte
- OS-fingerprinting: Gæt operativsystemet baseret på netværkssvar
- NSE-scripting: Kør avancerede kontroller for kendte sårbarheder, konfigurationsfejl og mere
- Netværkskortlægning: Opdag alle aktive hosts på et subnet
For en dansk systemadministrator er Nmap særligt relevant i lyset af NIS2-direktivet, som kræver, at organisationer jævnligt kortlægger og vurderer deres angrebsflade. Et ukontrolleret port scan fra en ekstern angriber afslører præcis, hvad Nmap kan vise dig, men fra din egen side, proaktivt og lovligt på dine egne systemer.
Forudsætninger
Inden du begynder, skal du have følgende på plads:
| Komponent | Krav | Version |
|---|---|---|
| Nmap | Påkrævet | 7.95 (maj 2024) |
| Operativsystem | Linux, Windows, macOS | Enhver aktuel version |
| Root/Administrator-rettigheder | Krævet for SYN-scanning | sudo på Linux/macOS |
| Netværksadgang | Adgang til målnetværk | Lokalt netværk eller VPN |
| Testmiljø | Anbefalet | Virtuel maskine eller lab-netværk |
| Terminal | Påkrævet | Bash, Zsh eller PowerShell |
Vigtigt: Port scanning uden udtrykkelig tilladelse fra netværksejeren er ulovligt i Danmark og kan straffes med bøder og fængsling i henhold til straffelovens paragraf 263. Scan kun netværk, du ejer eller har skriftlig tilladelse til at teste.
Trin 1: Installation på Ubuntu og Debian
Nmap er tilgængeligt direkte fra de officielle pakke-repositories på alle større Linux-distributioner. På Ubuntu 22.04, Ubuntu 24.04 og Debian 12 installeres det med:
# Opdater pakkelisten og installer Nmap
sudo apt update
sudo apt install nmap -y
# Bekræft versionen
nmap --version
Output bør vise noget lignende:
Nmap version 7.95 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.4.6 libpcre2-10.42 libz-1.2.13 openssl-3.0.13
Compiled without: libdnet liblinear
Available nsock engines: epoll poll select
Hvis du vil have den absolut nyeste version, kan du installere direkte fra Nmaps officielle hjemmeside eller kompilere fra kildekode. Pakkemanager-versionen er generelt tilstrækkelig til de fleste formål og er lettere at holde opdateret med apt upgrade.
Trin 2: Installation på Windows og macOS
Nmap understøtter fuldt ud Windows 7 og nyere samt macOS 10.12 og nyere. Zenmap er den grafiske brugerflade til Nmap og installeres automatisk med Windows-installationspakken.
Windows
Download installationsguiden fra nmap.org og kør den som administrator. Installationen inkluderer automatisk Npcap (pakkekapturings-driveren som erstatter WinPcap), Zenmap GUI og alle NSE-scripts.
# I PowerShell (kræver administrator-rettigheder)
winget install Insecure.Nmap
# Bekræft installation
nmap --version
macOS
# Homebrew (anbefalet)
brew install nmap
# Eller MacPorts
sudo port install nmap
# Bekræft installation
nmap --version
På macOS skal du bruge sudo for SYN-scanning og OS-detektion, da disse kræver rå socket-adgang. Uden sudo falder Nmap automatisk tilbage på TCP Connect-scanning.
Trin 3: Din første Nmap-scanning
Den simpleste Nmap-scanning er en grundlæggende TCP-scanning mod en enkelt host. Brug altid et lovligt testmål. Nmaps officielle testserver scanme.nmap.org er godkendt til testscanning og er ideel for begyndere:
# Grundlæggende scanning af Nmaps officielle test-host
nmap scanme.nmap.org
# Scan et specifikt mål med verbose output
nmap -v 192.168.1.1
# Scan dit eget lokale netværk (alle hosts)
nmap 192.168.1.0/24
Eksempeloutput fra en grundlæggende scanning:
Starting Nmap 7.95 ( https://nmap.org ) at 2026-06-21 10:30 CEST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.12s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
9929/tcp open nping-echo
31337/tcp open Elite
Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds
Outputtet viser fire åbne porte. Port 22 (SSH) er standardadgangsporten til fjernlogin. Port 80 (HTTP) er webserveren. De øvrige to porte er sat op specifikt til testformål af Nmap-teamet. Portstatussen “Not shown: 996 closed tcp ports” betyder, at Nmap scannede de 1.000 mest almindelige porte og fandt 996 lukkede.
Trin 4: Forstå de vigtigste scanningstyper
Nmap understøtter mange scanningstyper, der alle fungerer anderledes på netværksniveau. At vælge den rigtige scanningstype afhænger af dit mål, dine rettigheder og om du vil undgå detektion.
| Scanningstype | Flag | Kræver root | Beskrivelse | Hastighed |
|---|---|---|---|---|
| TCP SYN (Stealth) | -sS | Ja | Sender kun SYN-pakke, gennemfører ikke TCP-håndtryk | Hurtig |
| TCP Connect | -sT | Nej | Gennemfører fuld TCP-forbindelse | Langsom |
| UDP-scanning | -sU | Ja | Scaner UDP-porte (DNS, SNMP, DHCP) | Meget langsom |
| FIN-scanning | -sF | Ja | Sender FIN-pakke, omgår simple firewalls | Hurtig |
| XMAS-scanning | -sX | Ja | Sætter FIN, PSH og URG flag | Hurtig |
| NULL-scanning | -sN | Ja | Ingen TCP-flag sat | Hurtig |
| Ping-scanning | -sn | Nej | Kun host-opdagelse, ingen port scan | Meget hurtig |
# TCP SYN stealth scan (standard for root-brugere)
sudo nmap -sS 192.168.1.1
# TCP Connect scan (ingen root kræves)
nmap -sT 192.168.1.1
# UDP scan (langsom men vigtig for DNS, SNMP, DHCP)
sudo nmap -sU 192.168.1.1
# Kombiner TCP og UDP scanning
sudo nmap -sS -sU 192.168.1.1
# Kun host-opdagelse, ingen port scan
nmap -sn 192.168.1.0/24
TCP SYN-scanning er standardmetoden, når du kører Nmap med root-rettigheder. Den er hurtigere end TCP Connect-scanning og efterlader færre spor i server-logs, da forbindelsen aldrig fuldføres. Den kan dog stadig opdages af avancerede IDS/IPS-systemer som Snort og Suricata.
Trin 5: Styr porte og scanning-omfang
Som standard scanner Nmap kun de 1.000 mest almindelige porte ud af 65.535 mulige. For en komplet sikkerhedsaudit bør du scanne alle porte. Her er de vigtigste flag til at styre hvad der scannes:
# Scan de 1000 mest almindelige porte (standard)
nmap 192.168.1.1
# Scan alle 65535 porte
nmap -p- 192.168.1.1
# Scan specifikke porte
nmap -p 22,80,443,8080 192.168.1.1
# Scan et portinterval
nmap -p 1-1024 192.168.1.1
# Scan top 100 porte (hurtig oversigt)
nmap --top-ports 100 192.168.1.1
# Scan dynamiske porte over 1024
nmap -p 1025-65535 192.168.1.1
# Ekskluder specifikke porte fra scanning
nmap --exclude-ports 22,23 192.168.1.1
En komplet scanning af alle 65.535 porte tager markant længere tid end standardscanningen. På et lokalt netværk med lav latens bør en fuld scanning af én host tage 1-5 minutter med standardindstillinger. Brug timing-skabeloner (se trin 11) til at balancere hastighed og nøjagtighed.
Trin 6: Service- og versionsdetektion
At vide at port 80 er åben fortæller dig ikke, hvilken webserver der kører, eller hvilken version. Service-detektion med -sV sender sonder til åbne porte og analyserer svarene mod en database med over 10.000 servicebannere for at identificere applikation og version præcist.
# Aktiver service-versionsdetektion
nmap -sV 192.168.1.1
# Intensiv versionsdetektion (prøver alle sonder)
nmap -sV --version-intensity 9 192.168.1.1
# Let versionsdetektion (hurtigere, færre sonder)
nmap -sV --version-intensity 2 192.168.1.1
# Kombiner service og OS-detektion
sudo nmap -sV -O 192.168.1.1
Eksempeloutput med versionsdetektion aktiveret:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.52 ((Ubuntu))
3306/tcp open mysql MySQL 8.0.35-0ubuntu0.22.04.1
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Denne type information er ekstremt værdifuld for en angriber. Den præcise version af Apache httpd, MySQL og OpenSSH kan matches mod kendte CVE-databaser. Formålet med en intern sikkerhedsaudit er at finde disse oplysninger, inden en angriber gør det, og dernæst opdatere sårbare tjenester til aktuelle versioner.
Trin 7: OS-fingerprinting
Nmaps OS-detektion (-O) analyserer TCP/IP-stackens adfærd for at gætte operativsystemet. Nmap sammenligner TCP/IP-svar mod en database med over 5.000 OS-fingeraftryk. Nøjagtigheden er høj for velkendte OS, men kræver mindst én åben og én lukket port for at fungere optimalt.
# OS-fingerprinting (kræver root)
sudo nmap -O 192.168.1.1
# Aggressivt OS-gæt (præsenterer det bedste bud, selv ved lav sikkerhed)
sudo nmap -O --osscan-guess 192.168.1.1
# Komplet scanning: OS, services, scripts og traceroute
sudo nmap -A 192.168.1.1
Eksempeloutput fra OS-detektion:
OS details: Linux 5.4 - 5.15
Network Distance: 1 hop
OS CPE: cpe:/o:linux:linux_kernel:5
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/
Flaget -A aktiverer OS-detektion, versionsdetektion, script-scanning og traceroute på én gang. Det er den mest informationsrige scanning, men også den mest synlige for IDS-systemer. Brug det med omtanke i produktionsmiljøer.
Trin 8: Nmap Scripting Engine (NSE)
NSE er en af Nmaps kraftigste funktioner. Med over 600 scripts skrevet i Lua kan du kontrollere for konkrete sårbarheder, hente certifikatoplysninger, afprøve standardadgangskoder og meget mere. Scripts er organiseret i 14 kategorier, og Nmap inkluderer dem alle som standard.
| NSE-kategori | Formål | Eksempel-scripts |
|---|---|---|
| auth | Autentificeringskontroller, standardadgangskoder | ftp-anon, ssh-auth-methods |
| broadcast | Netværksopdagelse via broadcast | broadcast-dhcp-discover |
| brute | Brute-force angreb (brug med tilladelse) | ssh-brute, ftp-brute |
| default | Standard sikre scripts, kører med -sC | http-title, ssl-cert |
| discovery | Serviceoplysninger og netværksdata | dns-brute, smb-enum-shares |
| exploit | Udnyttelse af sårbarheder (brug med tilladelse) | smb-vuln-ms17-010 |
| intrusive | Potentielt forstyrrende scripts | http-enum |
| malware | Backdoor-detektion | smtp-strangeport |
| safe | Sikre scripts uden risiko for skade | http-headers, ssl-dh-params |
| vuln | Sårbarheds-scanning | http-shellshock, ssl-heartbleed |
# Kør standard NSE-scripts (kategorien "default")
nmap -sC 192.168.1.1
# Kør et specifikt script
nmap --script=http-title 192.168.1.1
# Kør alle scripts i kategorien "vuln"
nmap --script=vuln 192.168.1.1
# Kør scripts der matcher et mønster
nmap --script="http-*" 192.168.1.1
# Tjek for Heartbleed-sårbarhed (CVE-2014-0160)
nmap --script=ssl-heartbleed -p 443 192.168.1.1
# Tjek for EternalBlue (CVE-2017-0143 / MS17-010)
nmap --script=smb-vuln-ms17-010 -p 445 192.168.1.1
# Hent SSL-certifikatoplysninger
nmap --script=ssl-cert -p 443 192.168.1.1
# Tjek for svage Diffie-Hellman parametre (LOGJAM)
nmap --script=ssl-dh-params -p 443 192.168.1.1
Eksempeloutput fra ssl-cert scriptet kørt mod en webserver:
PORT STATE SERVICE
443/tcp open https
| ssl-cert: Subject: commonName=example.com/organizationName=Example Corp
| Issuer: commonName=Let's Encrypt Authority X3/organizationName=Let's Encrypt
| Public Key type: rsa
| Public Key bits: 2048
| Not valid before: 2026-01-15T10:00:00
| Not valid after: 2026-04-15T10:00:00
|_SHA-1: c9d0 e1f2 a3b4 c5d6 e7f8 a9b0 c1d2 e3f4 a5b6
Kombiner -sC og -sV for den mest informationsrige standardscanning. Scripts i kategorierne “brute”, “exploit” og “dos” kan forstyrre eller skade produktionssystemer og bør kun bruges med eksplicit tilladelse i kontrollerede testmiljøer. Se dokumentationen for et script med nmap --script-help=SCRIPTNAVN.
Trin 9: Scan netværksblokke og multiple hosts
Nmap er designet til at scanne ikke bare enkelt hosts, men hele netværk. CIDR-notation, IP-ranges og hostlister giver fleksibilitet til at scanne præcis det omfang, du har brug for.
# Scan et helt /24 subnet (254 hosts)
nmap 192.168.1.0/24
# Scan et IP-interval
nmap 192.168.1.1-100
# Scan multiple specifikke hosts
nmap 192.168.1.1 192.168.1.50 192.168.1.100
# Scan fra en fil med mål
echo "192.168.1.1" > targets.txt
echo "192.168.1.50" >> targets.txt
nmap -iL targets.txt
# Ekskluder bestemte hosts fra scanning
nmap 192.168.1.0/24 --exclude 192.168.1.1,192.168.1.2
# Tilfældig rækkefølge af host-scanning
nmap --randomize-hosts 192.168.1.0/24
Til host-opdagelse på et stort netværk anbefales det at starte med et simpelt ping-sweep (-sn) for at identificere aktive hosts, og derefter fokusere den mere detaljerede port scanning på de aktive hosts. Dette reducerer total scan-tid markant på store netværk.
# Trin 1: Find aktive hosts hurtigt via ping sweep
nmap -sn 192.168.1.0/24 -oG - | grep "Status: Up" | awk '{print $2}' > live_hosts.txt
cat live_hosts.txt
# Trin 2: Scan kun aktive hosts med fuld detaljering
nmap -sV -sC -iL live_hosts.txt -oA full_scan_rapport
Trin 10: Outputformater og rapportering
Nmap understøtter fem outputformater. For professionelle sikkerhedsrapporter og integration med andre værktøjer er XML-formatet mest anvendeligt. Brug -oA til at gemme i alle primære formater på én gang, dette er god praksis for alle sikkerhedsaudits.
# Gem output i normalt tekstformat
nmap -sV 192.168.1.0/24 -oN scan_rapport.txt
# Gem output i XML-format (bruges af Metasploit, Faraday, Dradis)
nmap -sV 192.168.1.0/24 -oX scan_rapport.xml
# Gem output i "grepable" format (nem parsing med grep/awk)
nmap -sV 192.168.1.0/24 -oG scan_rapport.gnmap
# Gem i alle tre formater på én gang (anbefalet arbejdsflow)
nmap -sV -sC -O 192.168.1.0/24 -oA pentest_rapport_2026
# Konverter XML til HTML-rapport for præsentation
xsltproc scan_rapport.xml -o scan_rapport.html
For løbende netværksovervågning kan du sammenligne to Nmap-scanninger med Ndiff, som er inkluderet i Nmap-installationen. Ndiff identificerer nye hosts, ændringer i åbne porte og serviceopdateringer:
# Sammenlign to scanrapporter og vis forskelle
ndiff scan_rapport_mandag.xml scan_rapport_tirsdag.xml
# Eksempeloutput:
# -Nmap 7.95 scan initiated Mon Jun 16 2026
# +Nmap 7.95 scan initiated Tue Jun 17 2026
# 192.168.1.50:
# + 8080/tcp open http Apache httpd 2.4.52
# (Ny tjeneste opdaget siden sidst scan)
Trin 11: Timing-skabeloner og ydeevne-optimering
Nmap har seks timing-skabeloner (-T0 til -T5), der styrer scanningshastighed og aggressivitet. Valg af den rigtige template afhænger af netværkets stabilitet og om du ønsker at undgå detektion af IDS-systemer.
| Template | Navn | Bruges til | Relativ hastighed | IDS-risiko |
|---|---|---|---|---|
| -T0 | Paranoid | Maksimal IDS-evasion, ekstremt langsom | 1x | Minimal |
| -T1 | Sneaky | IDS-evasion, langsom scanning | 5x | Lav |
| -T2 | Polite | Reducerer netværksbelastning | 10x | Lav |
| -T3 | Normal | Standard (bruges når ingen -T angives) | 100x | Moderat |
| -T4 | Aggressive | Hurtige LAN-scanninger, anbefalet til audits | 300x | Høj |
| -T5 | Insane | Meget hurtig, kan misse porte på langsomme net | 500x | Meget høj |
# Hurtig scanning til interne netværk (anbefalet til LAN-audits)
nmap -T4 -F 192.168.1.0/24
# Langsom, diskret scanning der reducerer IDS-detektion
sudo nmap -T1 -sS 10.0.0.1
# Manuel timing-justering for præcis kontrol
nmap --min-rate 100 --max-rate 500 192.168.1.1
# Parallel scanning (håndter flere hosts og porte simultant)
nmap --min-parallelism 10 --max-parallelism 50 192.168.1.0/24
# Optimal kombination til grundig LAN-audit
sudo nmap -T4 -A -sV --min-parallelism 10 192.168.1.0/24 -oA audit_rapport
Trin 12: Etisk brug og juridiske overvejelser
Port scanning er et dobbeltkantet sværd. Som sikkerheds-professionel er det din pligt at bruge Nmap ansvarligt og inden for lovens grænser. I Danmark reguleres uautoriseret adgang til og scanning af computere og netværk af straffelovens paragraf 263 og 263a.
Hvornår er port scanning lovligt i Danmark?
- Dine egne systemer: Du kan altid scanne netværk og systemer du ejer
- Skriftlig tilladelse: En penetrationstest-kontrakt giver tilladelse til scanning af kundens systemer inden for aftalt scope
- Bug bounty programmer: Mange virksomheder tillader scanning inden for definerede scope-rammer
- Testmiljøer: Laboratoriesystemer og virtuelle maskiner under din kontrol
- Nmaps testserver: scanme.nmap.org er officielt godkendt til testformål
Uautoriseret port scanning af fremmede netværk kan i Danmark betragtes som et forsøg på ulovlig adgang og straffes med bøde eller fængsling op til 1,5 år. For sikkerhedsvirksomheder og freelance penetrationstestere er det afgørende at have en underskrevet aftale, der klart definerer scope, varighed og godkendte metoder.
8 hyppige fejl og faldgruber
Selv erfarne brugere begår fejl med Nmap. Her er de mest almindelige problemer og hvordan du undgår dem.
Faldgrube 1: Scanning uden tilladelse. Den absolut hyppigste fejl er at scanne netværk uden eksplicit tilladelse. Selv “uskyldig” nysgerrighed om naboens netværk er ulovligt i Danmark. Hav altid skriftlig tilladelse, inden du scanner fremmede netværk.
Faldgrube 2: Brug af -T5 på ustabile netværk. Insane-timing sender pakker så hurtigt, at du let kan misse åbne porte på langsomme eller overbelastede forbindelser. Brug -T4 som maximum i de fleste scenarier og gem -T5 til kontrollerede lab-miljøer.
Faldgrube 3: Glemmer UDP-scanning. Mange sikkerheds-folk scanner kun TCP og overser UDP. Kritiske tjenester som DNS (port 53), SNMP (port 161/162), DHCP (port 67/68) og NTP (port 123) kører over UDP og afslører ofte væsentlige sårbarheder. Inkluder -sU i dine fulde audits.
Faldgrube 4: Stoler blindt på “filtered” status. En port markeret som “filtered” betyder, at Nmap ikke fik nogen respons. Det kan betyde, at en firewall blokerer pakkerne, men tjenesten kan stadig køre bag firewallen. Brug FIN-, XMAS- eller NULL-scanning som supplement for at verificere.
Faldgrube 5: Glemmer at gemme output. Mange begyndere kører Nmap-scanninger uden at gemme resultaterne. Brug altid -oA filnavn til at gemme i alle formater. Det sparer tid, når du skal sammenligne med tidligere scanninger eller inkludere data i sikkerhedsrapporter.
Faldgrube 6: OS-detektion bag NAT. OS-fingerprinting fungerer bedst mod hosts du har direkte netværksadgang til. Bag NAT eller load balancers returnerer OS-detektionen oplysninger om gateway-enheden, ikke de bagvedliggende servere.
Faldgrube 7: Scanning i spidsbelastningstimer. Intensive Nmap-scanninger på et produktionsnetværk i spidsbelastningstimer kan forstyrre normal drift og udløse IDS-alarmer. Planlæg altid større sikkerhedstest uden for normal arbejdstid og informer de relevante teams på forhånd.
Faldgrube 8: Forældet NSE-script database. Nmap-scripts opdateres løbende med nye sårbarheds-signaturer. Opdater Nmap regelmæssigt via din pakkemanager for at sikre, at du har de nyeste scripts og opdateringer til OS-fingerprint-databasen.
8 fejlfindingspunkter
Når Nmap ikke opfører sig som forventet, er der otte primære årsager til at undersøge.
Problem 1: “Operation not permitted” under SYN-scanning. Årsag: SYN-scanning kræver root-rettigheder for at sende rå pakker. Løsning: Kør sudo nmap -sS ... eller brug TCP Connect-scanning (-sT) som ikke-root-bruger.
Problem 2: Alle porte vises som “filtered”. Årsag: En firewall blokerer alle pakker fra din IP, eller ICMP er deaktiveret. Løsning: Brug -Pn til at deaktivere ping-kontrollen og tving Nmap til at scanne alligevel: nmap -Pn 192.168.1.1.
Problem 3: Scanning er ekstremt langsom. Årsag: UDP-scanning eller scanning af alle 65.535 porte med lavt timing-niveau. Løsning: Brug -T4 og begræns til relevante porte. Til hurtig oversigt: nmap -T4 --top-ports 1000 192.168.1.0/24.
Problem 4: “Host seems down” for en aktiv host. Årsag: Målet blokerer ICMP-ekko (ping) men er alligevel aktiv. Løsning: Spring ping-kontrollen over med -Pn: nmap -Pn 192.168.1.1.
Problem 5: NSE-script virker ikke. Årsag: Scriptet kræver en specifik port at være åben, eller den målrettede service er ikke tilgængelig. Løsning: Specificer porten eksplicit: nmap --script=ssl-cert -p 443 192.168.1.1, og kontrollér at Nmap er opdateret.
Problem 6: “Nmap: no targets were specified”. Årsag: Du har glemt at angive et mål eller har brugt forkert syntaks. Løsning: CIDR-notation kræver ingen mellemrum: nmap 192.168.1.0/24, ikke nmap 192.168.1.0 /24.
Problem 7: Forkert OS-detektion. Årsag: OS-fingerprinting kræver mindst én åben og én lukket port. Hvis alle porte er filtrerede, giver Nmap usikre resultater. Løsning: Scan med -p- for et bredere portudsnit og brug --osscan-guess for Nmaps bedste estimat.
Problem 8: Nmap registreres af målets IDS/IPS. Årsag: Standard Nmap-scanninger er velkendte signaturer i Snort, Suricata og kommercielle IDS-løsninger. Løsning: Brug -T1 eller -T2 for langsommere scanning, -D RND:10 for decoy-scanning med 10 tilfældige lokke-IP-adresser, og --data-length 32 for at tilføje tilfældig payload til pakker.
Nmap vs. alternative port scanning-værktøjer
Nmap er ikke det eneste port scanning-værktøj, men det er det mest komplette. Her er en sammenligning med de mest populære alternativer for sikkerheds-professionelle.
| Værktøj | Licens | Hastighed | NSE/Scripts | OS-detektion | Bedst til |
|---|---|---|---|---|---|
| Nmap 7.95 | GPLv2 | Moderat | 600+ scripts | Ja | Komplet netværksaudit |
| Masscan | AGPL | Meget hurtig (25 mio. pakker/sek) | Ingen | Nej | Hurtig internet-scanning |
| RustScan | GPL | Op til 65.535 porte/sek | Via Nmap-integration | Via Nmap | Hurtig port-opdagelse |
| Angry IP Scanner | GPLv2 | Hurtig | Plugins | Nej | Simpel LAN-scanning med GUI |
| Zenmap | GPLv2 (Nmap) | Som Nmap | Alle Nmap scripts | Ja | Visuel Nmap-frontend til begyndere |
| OpenVAS | GPLv2 | Langsom (grundig) | 50.000+ NVT checks | Delvist | CVE-baseret sårbarhedsscanning |
En populær kombination i penetrationstest-miljøer er RustScan + Nmap. RustScan finder åbne porte ekstremt hurtigt og sender derefter resultatet videre til Nmap til detaljeret service-detektion og NSE-scripting. Se Kali Linuxs officielle Nmap-side for installation i Kali-miljøer:
# Brug RustScan til hurtig opdagelse, send til Nmap til analyse
rustscan -a 192.168.1.1 -- -sV -sC -O
# Output: RustScan finder åbne porte på sekunder, Nmap analyserer dem
Avancerede Nmap-teknikker
Når du har styr på grundlæggende scanning, er der avancerede teknikker, der kan gøre dine audits mere effektive og, i autoriserede penetrationstest-scenarier, sværere at opdage.
Decoy-scanning og IDS-evasion
# Send scanning fra 10 tilfældige decoy-adresser plus din rigtige IP
sudo nmap -D RND:10 192.168.1.1
# Specificer egne decoy-adresser
sudo nmap -D 192.168.1.100,192.168.1.101,ME 192.168.1.1
# Fragment pakker for at undgå DPI (Deep Packet Inspection)
sudo nmap -f 192.168.1.1
# Sæt kildeport til 53 (DNS) for at undgå visse firewalls
sudo nmap --source-port 53 192.168.1.1
Automatiseret sikkerhedsaudit-script
Her er et komplet bash-script til automatiseret netværksaudit med Nmap, der gennemfører alle fire faser og gemmer rapporter:
#!/bin/bash
# Automatiseret netværksaudit med Nmap
# Krav: nmap, xsltproc
# Brug: sudo ./audit.sh 192.168.1.0/24
TARGET="${1:-192.168.1.0/24}"
DATO=$(date +%Y%m%d_%H%M%S)
RAPPORT_DIR="./nmap_audit_${DATO}"
mkdir -p "$RAPPORT_DIR"
echo "[*] Starter netværksaudit af $TARGET"
echo "[*] Resultater gemmes i $RAPPORT_DIR"
# Fase 1: Hurtig host-opdagelse
echo "[*] Fase 1: Host-opdagelse (ping sweep)..."
nmap -sn "$TARGET" -oG "$RAPPORT_DIR/hosts.gnmap" 2>/dev/null
AKTIVE_HOSTS=$(grep "Status: Up" "$RAPPORT_DIR/hosts.gnmap" | awk '{print $2}')
ANTAL=$(echo "$AKTIVE_HOSTS" | grep -c .)
echo "[+] Fandt $ANTAL aktive hosts"
if [ "$ANTAL" -eq 0 ]; then
echo "[-] Ingen aktive hosts fundet. Tjek netværksadgang."
exit 1
fi
# Fase 2: Port scanning
echo "[*] Fase 2: Port scanning (top 1000 porte)..."
nmap -T4 $AKTIVE_HOSTS -oG "$RAPPORT_DIR/porte.gnmap" 2>/dev/null
# Fase 3: Service og OS-detektion
echo "[*] Fase 3: Service- og OS-detektion..."
sudo nmap -sV -sC -O -T4 $AKTIVE_HOSTS -oA "$RAPPORT_DIR/services" 2>/dev/null
# Fase 4: Sårbarhedstjek med NSE
echo "[*] Fase 4: NSE sårbarhedsscanning..."
nmap --script=vuln -T4 $AKTIVE_HOSTS -oA "$RAPPORT_DIR/saarbarhed" 2>/dev/null
# Konverter XML til HTML-rapport
if command -v xsltproc &>/dev/null; then
xsltproc "$RAPPORT_DIR/services.xml" -o "$RAPPORT_DIR/rapport.html" 2>/dev/null
echo "[+] HTML-rapport: $RAPPORT_DIR/rapport.html"
fi
echo "[+] Audit gennemført. Alle filer i $RAPPORT_DIR/"
Nmap i NIS2-compliance-sammenhæng
NIS2-direktivet, som trådte i kraft i Danmark den 17. oktober 2024, kræver at virksomheder inden for kritiske sektorer regelmæssigt vurderer og dokumenterer deres netværks-angrebsflade. Nmap er et centralt redskab til at opfylde disse krav. Et systematisk Nmap-scanningsprogram hjælper med:
- Asset discovery (NIS2 artikel 21): Kortlæg alle aktive enheder og tjenester på dit netværk
- Eksponeringsvurdering: Identificer unødvendigt eksponerede tjenester og porte
- Patch-management: Detekter forældede softwareversioner via Nmap -sV
- Ændringsstyring: Brug Ndiff til automatisk sporing af uautoriserede netværksændringer
- Revisionslog: Gem XML-rapporter som dokumentation for sikkerhedsrevisioner
Mange danske virksomheder kender allerede til Nmap fra penetrationstest udført af tredjepart. Det næste skridt er at integrere løbende, interne Nmap-scanninger som en del af en samlet sikkerhedsstrategi, i stedet for kun at scanne ved punkt-revisioner hvert 12. måned. For virksomheder under NIS2 anbefales månedlig scanning og scanning ved alle større netværksændringer.
Vigtige porte og hvad de afslører
Her er en oversigt over de porte, som oftest afslører potentielle sikkerhedsproblemer under en Nmap-scanning. Disse porte bør altid undersøges med versionsdetektion og relevante NSE-scripts.
| Port | Tjeneste | Protokol | Sikkerhedsrisiko | Anbefalede NSE-scripts |
|---|---|---|---|---|
| 21 | FTP | TCP | Ukrypteret filoverførsel, anonymt login | ftp-anon, ftp-brute |
| 22 | SSH | TCP | Brute-force, svage nøgler | ssh-auth-methods, ssh-hostkey |
| 23 | Telnet | TCP | Ukrypteret kommunikation | telnet-ntlm-info |
| 25 | SMTP | TCP | Open relay, spam, phishing | smtp-open-relay, smtp-commands |
| 53 | DNS | TCP/UDP | Zone transfer, cache poisoning | dns-zone-transfer |
| 80/443 | HTTP/HTTPS | TCP | Web-sårbarheder, svage TLS-ciphers | http-enum, ssl-cert, ssl-dh-params |
| 161/162 | SNMP | UDP | Svage community strings (public/private) | snmp-info, snmp-brute |
| 445 | SMB | TCP | EternalBlue, ransomware, uautoriseret deling | smb-vuln-ms17-010, smb-enum-shares |
| 3306 | MySQL | TCP | Eksponeret database, svage adgangskoder | mysql-empty-password, mysql-info |
| 3389 | RDP | TCP | BlueKeep, brute-force, credential stuffing | rdp-enum-encryption |
| 5432 | PostgreSQL | TCP | Eksponeret database | pgsql-brute |
| 27017 | MongoDB | TCP | Uautentificeret adgang, data exposure | mongodb-info |
Relateret indhold
Relateret dækning
- Kali Linux: Installation og Penetrationstest i 12 Trin [2026]
- Kali Linux vs Parrot OS: 600 vs 500 Pentestingværktøjer [2026]
- NIS2 i Danmark: 6.000 Virksomheder, €10M Bøder [2026]
- WireGuard VPN på 12 trin: Egen server på 20 min [2026]
- Ivanti zero-day: 50.000 ramt, CVSS 9,8 [2026]
For yderligere teknisk dokumentation om Nmap anbefales den officielle Nmap Network Scanning-bog af Gordon Lyon (frit tilgængelig online), NSE-script dokumentationen og Nmaps officielle GitHub-repository. For en hurtig referenceovesigt er StationX Nmap Cheat Sheet særdeles praktisk.
Ofte stillede spørgsmål om Nmap og port scanning
Er port scanning ulovligt i Danmark?
Port scanning af netværk og systemer du ejer, eller har skriftlig tilladelse til at teste, er fuldt lovligt. Scanning af fremmede systemer uden tilladelse kan betragtes som et brud på straffelovens paragraf 263 om ulovlig adgang til computere og straffes med bøde eller fængsling. Hav altid en skriftlig aftale, inden du scanner systemer du ikke ejer.
Hvilken Nmap-scanningstype bør jeg bruge som standard?
For internt auditarbejde på eget netværk anbefales sudo nmap -sS -sV -sC -O -T4. Dette giver SYN-scanning (hurtig og diskret), service-detektion, standard NSE-scripts og OS-fingerprinting i ét sweep. Til hurtig overbliks-scanning er nmap -T4 -F (de 100 mest almindelige porte) et godt udgangspunkt, som typisk tager under 30 sekunder per host.
Hvad er forskellen på Nmap og en sårbarhedsscanner?
Nmap er primært en portscanner og service-detektor. Med NSE-scripts kan den lave begrænsede sårbarhedstjek mod kendte CVE. Dedikerede sårbarhedsscannere som OpenVAS og Tenable Nessus er mere komplette til CVE-baseret vurdering med opdaterede signatur-databaser. I praksis bruges Nmap og en sårbarhedsscanner i kombination: Nmap kortlægger hvad der er tilgængeligt, og sårbarhedsscanneren analyserer de fundne tjenester i dybden.
Kan Nmap opdages af en firewall eller IDS?
Ja. Selv en SYN-scanning efterlader spor i netværkslogs og kan identificeres af IDS-systemer som Snort og Suricata. Teknikker som timing-nedsættelse (-T1), decoy-adresser (-D RND:10) og pakkefragmentering (-f) kan gøre scanning sværere at opdage, men eliminerer ikke risikoen for detektion hos systemer med avancerede IPS-løsninger.
Hvad er forskellen på Nmap og Zenmap?
Zenmap er den officielle grafiske brugerflade (GUI) til Nmap og er inkluderet i Windows-installationspakken. Det bruger nøjagtigt de samme underliggende Nmap-funktioner, men tilbyder visuel netværkskortlægning, profil-administration og en enklere tilgang for nye brugere. Kommandolinjeversionen anbefales til avanceret brug, automatisering og scripting.
Understøtter Nmap IPv6?
Ja. Nmap understøtter IPv6-scanning med flaget -6: nmap -6 2001:db8::1. IPv6-scanning har dog begrænsninger ved store subnets, da et /64 indeholder 18 trillioner adresser, som ikke kan brute-forces. Brug DNS-opslag og kendte adresser til at identificere IPv6-mål.
Hvor tit bør jeg scanne mit netværk?
For virksomheder under NIS2 anbefales minimum månedlige scanninger og scanning ved alle større netværksændringer. For kritisk infrastruktur bør scanning ske ugentligt. Brug Ndiff til automatisk sammenligning af scanresultater, og opret alerts ved uautoriserede nye porte eller tjenester på netværket.
Hvad er NSE-scripts, og er de sikre at bruge?
NSE (Nmap Scripting Engine) scripts er Lua-programmer, der kører under Nmap-scanningen for at indsamle ekstra information eller teste for specifikke sårbarheder. Scripts i kategorierne “safe” og “default” er designet til ikke at forstyrre services. Scripts i “brute”, “exploit” og “dos” kan forstyrre eller skade systemer og bør kun bruges med tilladelse i kontrollerede miljøer. Se dokumentation for et specifikt script med nmap --script-help=SCRIPTNAVN.
Kan jeg bruge Nmap til at opdage IoT-enheder på mit netværk?
Ja. Nmap er fremragende til at opdage IoT-enheder som IP-kameraer, printere, routere og smart home-enheder på dit netværk. Kør sudo nmap -sV -O 192.168.1.0/24 for at identificere alle enheder og deres OS. Kombiner med NSE-scripts som http-title og snmp-info for at hente information fra specifikke enheder. IoT-enheder kører ofte med standardadgangskoder og forældede firmwareversioner, som fremgår tydeligt i Nmap-output.




