Verificarea Porturilor Deschise și Ascultătoare în Linux Folosind Netstat și SS
Monitorizarea porturilor deschise și ascultătoare pe un sistem Linux este una dintre cele mai fundamentale practici pentru menținerea securității serverului, diagnosticarea problemelor de rețea și gestionarea eficientă a infrastructurii. Indiferent dacă rulați un server web de producție, un mediu VPS Hosting sau un Dedicated Server, înțelegerea exactă a porturilor deschise — și a serviciilor legate de acestea — vă oferă vizibilitatea necesară pentru a preveni accesul neautorizat, a detecta configurări greșite și a elimina suprafețele de atac inutile.
În acest ghid cuprinzător, vă vom arăta cum să utilizați comenzile netstat și ss pentru a verifica porturile deschise și ascultătoare pe orice sistem Linux, pentru a compara punctele lor forte și pentru a introduce instrumente suplimentare, cum ar fi lsof și nmap, pentru o analiză mai profundă a rețelei.
De ce este importantă monitorizarea porturilor deschise
Fiecare port deschis pe serverul dvs. reprezintă un potențial punct de intrare. Serviciile care sunt configurate greșit, învechite sau pur și simplu uitate pot expune sistemul dvs. la exploatare. Auditarea regulată a porturilor dvs. ascultătoare vă permite să:
- Identificați serviciile neautorizate care rulează pe porturi neașteptate
- Detectați încercări de intruziune sau procese compromise
- Verificați că regulile firewall-ului funcționează conform intenției
- Confirmați că aplicațiile nou implementate se leagă de interfețele corecte
- Închideți porturile neutilizate pentru a reduce suprafața dvs. de atac
Acest lucru este deosebit de critic pentru administratorii care gestionează medii de Shared Web Hosting sau servere multi-tenant în care rulează simultan mai multe servicii.
Înțelegerea porturilor și tipurilor acestora
Înainte de a aprofunda în instrumente, este important să înțelegeți terminologia pe care o veți întâlni în rezultatul comenzilor.
| Termen | Descriere |
|---|---|
| Port deschis | Un port pe care o aplicație ascultă activ pentru conexiuni de intrare |
| Port ascultător | Un port legat de un serviciu care așteaptă traficul de rețea |
| TCP (Transmission Control Protocol) | Orientat pe conexiune, fiabil, utilizat de HTTP, SSH, FTP, etc. |
| UDP (User Datagram Protocol) | Fără conexiune, mai rapid dar mai puțin fiabil, utilizat de DNS, NTP, etc. |
Verificarea porturilor cu netstat
Ce este netstat?
netstat (statistici de rețea) este un utilitar clasic de linie de comandă care oferă informații detaliate despre conexiuni de rețea, tabele de rutare, statistici de interfață și porturi ascultătoare. Deși a fost oficial depreciat în favoarea ss pe distribuțiile moderne, rămâne utilizat pe scară largă și se găsește încă pe multe sisteme moștenite.
Instalarea netstat
Comanda netstat face parte din pachetul net-tools, care poate să nu fie instalat implicit pe distribuțiile Linux moderne.
Debian / Ubuntu:
sudo apt install net-toolsCentOS / RHEL / AlmaLinux / Rocky Linux:
sudo yum install net-toolsUtilizarea netstat pentru a verifica porturile deschise și ascultătoare
Pentru a afișa toate porturile TCP și UDP ascultătoare pe sistemul dvs., executați următoarea comandă:
sudo netstat -tulnDetalii despre steaguri:
| Steag | Descriere |
|---|---|
-t | Afișează porturile TCP |
-u | Afișează porturile UDP |
-l | Afișează doar porturile ascultătoare |
-n | Afișează adresele numerice în loc să rezolve numele de gazdă |
Rezultat exemplu
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp6 0 0 :::443 :::* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*Înțelegerea coloanelor de rezultat
- Adresa locală — Adresa IP și numărul portului unde serviciul ascultă.
0.0.0.0înseamnă că serviciul ascultă pe toate interfețele disponibile. - Adresa externă — IP-ul și portul la distanță pentru conexiuni active. Un asterisc (
*) înseamnă că nicio conexiune nu este încă stabilită. - Stare — Starea conexiunii.
LISTENindică faptul că portul este deschis și așteaptă conexiuni de intrare.
Filtrarea porturilor specifice cu netstat
Puteți direcționa rezultatul prin grep pentru a izola un port sau serviciu specific. De exemplu, pentru a verifica dacă ceva ascultă pe portul 80 (HTTP):
sudo netstat -tuln | grep ":80"Pentru a verifica portul 443 (HTTPS), care este esențial pentru serverele cu SSL Certificates instalate:
sudo netstat -tuln | grep ":443"Pentru a afișa, de asemenea, numele procesului și PID-ul responsabil pentru fiecare conexiune, adăugați steagul -p:
sudo netstat -tulnpVerificarea porturilor cu ss
Ce este ss?
ss (statistici de socket) este înlocuitorul modern pentru netstat. Este mai rapid, mai eficient și oferă rezultate mai bogate — în special pe sisteme cu un număr mare de conexiuni simultane. Comanda ss este inclusă implicit pe practic toate distribuțiile Linux moderne și nu necesită nicio instalare suplimentară.
Utilizarea ss pentru a verifica porturile deschise și ascultătoare
Sintaxa ss reflectă îndeaproape pe cea a netstat, făcând tranziția simplă:
ss -tulnDetalii despre steaguri:
| Steag | Descriere |
|---|---|
-t | Afișează socketurile TCP |
-u | Afișează socketurile UDP |
-l | Afișează doar socketurile ascultătoare |
-n | Afișează adresele numerice |
Rezultat exemplu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 511 [::]:443 [::]:*
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:*Utilizare avansată a ss
Comanda ss oferă o gamă de opțiuni avansate de filtrare și afișare care depășesc cu mult ceea ce poate face netstat.
Afișează doar porturile TCP ascultătoare
ss -tlAfișează doar porturile UDP ascultătoare
ss -ulAfișează numele proceselor și PID-urile
Pentru a identifica exact care proces utilizează un port specific, utilizați steagul -p:
ss -tulnpAceasta este una dintre cele mai utile comenzi pentru depanare — arată numele procesului și PID-ul alături de fiecare socket ascultător, făcând imediat clar care aplicație deține care port.
Rezultat exemplu cu steagul -p
Netid State Local Address:Port Process
tcp LISTEN 0.0.0.0:80 users:(("nginx",pid=1234,fd=6))
tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=987,fd=3))
tcp LISTEN 0.0.0.0:3306 users:(("mysqld",pid=2345,fd=21))Filtrare după un port specific
Pentru a verifica care proces ascultă pe portul 8080:
ss -tulnp | grep ":8080"Afișează toate conexiunile TCP stabilite
ss -tn state establishedAfișează statistici de rezumat
ss -sAceasta oferă un rezumat rapid al socketurilor totale după tip și stare — util pentru a detecta volume de conexiuni neobișnuite.
netstat vs. ss: O comparație directă
| Caracteristică | `netstat` | `ss` |
|---|---|---|
| Performanță | Mai lentă pe sisteme ocupate | Semnificativ mai rapidă |
| Disponibilitate implicită | Necesită pachetul net-tools | Pre-instalată pe distribuții moderne |
| Opțiuni de filtrare | De bază (grep necesar) | Filtre avansate încorporate |
| Informații despre proces | Disponibile cu -p | Disponibile cu -p |
| Detaliu rezultat | Standard | Informații socket mai detaliate |
| Recomandat pentru | Sisteme moștenite, familiaritate | Medii Linux moderne |
Când să utilizați netstat
- Pe sisteme Linux mai vechi în care
ssnu este disponibil - Când lucrați cu scripturi sau documentație scrisă în jurul sintaxei
netstat - Pentru verificări rapide pe sisteme în care
net-toolseste deja instalat
Când să utilizați ss
- Pe orice distribuție Linux modernă (Ubuntu 20.04+, CentOS 8+, Debian 10+, etc.)
- Când aveți nevoie de rezultat mai rapid pe servere cu trafic ridicat
- Pentru filtrare avansată și analiză detaliată a socketurilor
Instrumente suplimentare pentru audit de porturi
Dincolo de netstat și ss, mai multe alte utilitare sunt valoroase pentru un audit complet de porturi.
Utilizarea lsof
lsof (listează fișierele deschise) tratează socketurile de rețea ca fișiere, făcând-o un alt mod puternic de a identifica care proces utilizează un port dat.
Pentru a verifica care proces este legat de portul 80:
sudo lsof -i :80Pentru a verifica toate porturile ascultătoare:
sudo lsof -i -P -n | grep LISTENRezultat exemplu:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 6u IPv4 23456 0t0 TCP *:80 (LISTEN)
sshd 987 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)Utilizarea nmap
nmap este un instrument puternic de scanare a rețelei care poate detecta porturi deschise atât local cât și pe gazde la distanță. Este deosebit de util pentru a verifica configurația firewall-ului din perspectiva externă.
Instalați nmap dacă nu este deja prezent:
sudo apt install nmap # Debian/Ubuntu
sudo yum install nmap # CentOS/RHELScanați toate porturile TCP pe mașina locală:
sudo nmap -sT localhostScanați pentru porturi deschise pe o adresă IP specifică:
sudo nmap -sV 192.168.1.100Steagul -sV încearcă, de asemenea, să detecteze versiunea serviciului care rulează pe fiecare port deschis, ceea ce este neprețuit pentru identificarea software-ului învechit sau vulnerabil.
> Notă de securitate: Executați scanări nmap doar pe sisteme pe care le dețineți sau pentru care aveți permisiune explicită de a scana.
Flux de lucru practic de securitate: Auditarea porturilor serverului dvs.
Iată un flux de lucru recomandat pas cu pas pentru auditarea porturilor deschise pe un server Linux:
- Listați toate porturile ascultătoare cu informații despre proces:
ss -tulnp- Corelați fie
