Avatud portide kontroll: ss, netstat, nmap, telnet

Avatud porte kontrollitakse kahelt poolt: kohapeal — millised teenused kuulavad (ss -tulpn, netstat -tulpn) — ja väljastpoolt, millised on tulemüüri taga tegelikult kättesaadavad (nmap, telnet). Vahe on oluline: port võib serveris kuulata, kuid olla tulemüüriga suletud. Allpool on täpsed käsud mõlema kontrolli jaoks.

Kohalik kontroll: mida server kuulab

ss — tänapäevane tööriist

Näidake kõiki kuulavaid TCP- ja UDP-porte koos protsessidega:

ss -tulpn

Lippude tähendus:

Lipp Tähendus
-t TCP-soklid
-u UDP-soklid
-l ainult kuulavad (listening)
-p näita protsessi
-n arvulised pordid ilma nimede lahendamiseta

Leidke, kes hõivas konkreetse pordi:

ss -tulpn | grep :443

netstat — klassikaline variant

Kui pakett net-tools on paigaldatud:

netstat -tulpn

Väline kontroll: mis on väljastpoolt kättesaadav

Kohalik kontroll ei arvesta tulemüüri. Selleks et teada saada, kas port on internetist kättesaadav, skannige serverit teisest hostist.

nmap

Populaarsemate portide kontroll:

nmap 203.0.113.10

Konkreetse pordi kontroll:

nmap -p 443 203.0.113.10

Vahemiku skannimine ja teenuste tuvastamine:

nmap -p 1-1000 -sV 203.0.113.10

Portide olekud nmapi väljundis:

Olek Mida tähendab
open port kuulab ja on kättesaadav
closed kättesaadav, kuid keegi ei kuula
filtered pakette blokeerib tulemüür

telnet — ühe pordi kiire kontroll

telnet 203.0.113.10 443

Kui ühendus luuakse, on port avatud. Kui tuleb „Connection refused“, on port suletud või ei kuula keegi; hangumine tähendab tavaliselt tulemüüri blokeeringut.

PowerShelli analoog ilma telnetita:

Test-NetConnection -ComputerName 203.0.113.10 -Port 443

Kontroll nc (netcat) abil:

nc -zv 203.0.113.10 443

Kes ja kuhu on ühendunud: aktiivsed ühendused

Peale kuulavate portide on kasulik näha ka loodud ühendusi — näiteks et aru saada, kes on serveriga praegu ühendatud:

ss -tnp state established

Loendage ühenduste arv iga kaug-IP kohta (lihtne kõrvalekallete tuvastus):

ss -tn state established | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn

Windowsis annab sarnase pildi:

Get-NetTCPConnection -State Established | Sort-Object RemoteAddress

Populaarsete teenuste standardpordid

Diagnostikas on kasulik meeles pidada, millised pordid on vaikimisi millise teenuse jaoks:

Port Teenus
22 SSH
80 HTTP
443 HTTPS
3306 MySQL/MariaDB
5432 PostgreSQL
3389 RDP

Kui pordil kuulab mõni muu teenus kui oodatud, tasub konfiguratsioon üle vaadata või kontrollida süsteemi võõraste protsesside suhtes.

Tüüpiline diagnostika järjekord

  1. Serveris: ss -tulpn | grep :PORT — kas teenus kuulab?
  2. Kui ei kuula, käivitage või seadistage teenus.
  3. Kui kuulab, kuid väljastpoolt pole kättesaadav, kontrollige tulemüüri (ufw status, iptables -L).
  4. Väljastpoolt: nmap -p PORT IP — olek filtered viitab tulemüürile.

Korduma kippuvad küsimused

ss näitab porti, aga väljastpoolt pole see kättesaadav — miks? Teenus kuulab, kuid sissetulevat liiklust lõikab tulemüür. Kontrollige ufw status või iptablesi reegleid ja avage vajalik port.

Mille poolest on ss parem kui netstat? ss on kiirem ja kuulub praegusesse paketti iproute2. netstat on vananenud ja sageli pole see vaikimisi paigaldatud.

nmap näitab filtered — mida see tähendab? Paketid ei jõua pordini tulemüüri tõttu (serveris või teenusepakkuja võrgus). Port pole „suletud“, vaid filtreeritud.

Kas võõrast serverit tohib skannida? Skannige ainult oma süsteeme või omaniku selgel loal — muidu võib see rikkuda reegleid ja seadust.

Kuidas kontrollida porti ilma nmapi paigaldamata? Kasutage telnet IP PORT, nc -zv IP PORT või Test-NetConnection PowerShellis.

Vajate serverit, kus portide ja tulemüüri üle on täielik kontroll? Võtke kasutusele Linuxi VPS jaotisest VPS rent või tellige serverite haldus.

Kristaps Bērziņš