indiferent dacă depanați probleme de conectivitate la rețea sau configurați un firewall, unul dintre primele lucruri de verificat este ce porturi sunt de fapt deschise pe sistemul dvs.

Acest articol descrie mai multe abordări pentru a afla ce porturi sunt deschise către exterior pe sistemul dvs.

ce este port deschis #

un port de ascultare este un port de rețea pe care o aplicație îl ascultă., Puteți obține o listă a asculta porturile de pe sistemul dvs. prin interogarea stiva de rețea cu comenzi, cum ar fi ss, netstat sau lsof. Fiecare port de ascultare poate fi deschis sau închis (filtrat) folosind un firewall.

în termeni generali, un port deschis este un port de rețea care acceptă pachete primite din locații la distanță.,

De exemplu, dacă rulați un server de web care ascultă pe porturile 80 și 443 și aceste porturi sunt deschise pe firewall-ul, nimeni (cu excepția blocat ip-uri), va fi capabil de a accesa web site-uri gazduite pe serverul dvs. de web folosind browser-ul său. În acest caz, ambele 80 și 443 sunt porturi deschise.porturile deschise pot prezenta un risc de securitate, deoarece fiecare port deschis poate fi folosit de atacatori pentru a exploata o vulnerabilitate sau pentru a efectua orice alt tip de atac., Ar trebui să expuneți numai porturile necesare pentru funcționalitatea aplicației dvs. și să închideți toate celelalte porturi.

verificați porturile deschise cu Nmap #

Nmap este un instrument puternic de scanare în rețea care poate scana gazde individuale și rețele mari. Este utilizat în principal pentru audituri de securitate și teste de penetrare.

dacă este disponibil, nmap ar trebui să fie primul instrument atunci când vine vorba de scanarea porturilor. Pe lângă scanarea porturilor, nmap poate detecta și adresa Mac, tipul de sistem de operare , versiunile kernel-ului și multe altele.,

următoarea comandă emise de consola determină porturile pe care asculta pentru conexiuni TCP de la rețea:

sudo nmap -sT -p- 10.10.8.8

-sT spune nmap pentru a scana pentru porturile TCP și -p- pentru a scana pentru toate 65535 porturi. Dacă -p-nu este utilizat nmap va scana doar cele mai populare 1000 de porturi.

ieșire de mai sus arată că numai porturile 22, 80 și 8069 sunt deschise pe sistemul țintă.,

Pentru a scana pentru UDP folosesc -sU în loc de -sT:

sudo nmap -sU -p- 10.10.8.8

Pentru mai multe informații, vizitați nmap om pagină și am citit despre toate celelalte opțiuni puternice de acest instrument.

Verifica Porturile Deschise cu netcat #

Netcat (sau nc) este un instrument de linie de comandă care poate citi și scrie date peste conexiuni de rețea, folosind TCP sau UDP.

cu netcat puteți scana un singur port sau un interval de port.,

De exemplu pentru a scana pentru a deschide porturile TCP pe o mașină de la distanță cu adresa IP 10.10.8.8 în intervalul 20-80 ar trebui să utilizați următoarea comandă:

nc -z -v 10.10.8.8 20-80

-z opțiune spune nc pentru a scana numai pentru porturile deschise, fără a trimite orice date și -v este mai detaliat de informații.,dacă doriți ca doar liniile cu porturile deschise să fie tipărite pe ecran, filtrați rezultatele cu comanda grep.

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded!Connection to 10.10.8.8 80 port succeeded!

Pentru a scana pentru UDP trece -u opțiunea de a nc command:

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
2>&1 construct redirecționa eroarea standard la ieșirea standard.,

Verifica Porturile Deschise folosind Bash Pseudo Dispozitiv #

un Alt mod de a verifica daca un anumit port este deschis sau închis este prin utilizarea Bash shell /dev/tcp/.. sau /dev/udp/.. pseudo-dispozitiv.

când executați o comandă pe un pseudo-dispozitiv /dev/$PROTOCOL/$HOST/$IP, Bash va deschide o conexiune TCP sau UDP la gazda specificată pe portul specificat.

următoarele dacă..,altceva declarație va verifica dacă port 443 pe kernel.org este deschis:

if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'then echo "Port is open"else echo "Port is closed"fi
Port is open

Cum face codul de mai sus functioneaza?

când vă conectați la un port folosind un pseudo-dispozitiv, timeout-ul implicit este imens, așa că folosim comanda timeout pentru a ucide comanda de testare după 5 secunde. Dacă conexiunea este stabilită la kernel.orgport 443 comanda de testare va reveni true.,

Pentru a verifica pentru un interval de porturi utilizat pentru bucla :

for PORT in {20..80}; do timeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "port $PORT is open"done

ieșire va arata ceva de genul asta:

port 22 is openport 80 is open

Concluzie #

v-Am arătat de mai multe instrumente pe care le puteți folosi pentru a scana pentru a deschide porturile. Există, de asemenea, alte utilități și metode pentru a verifica porturile deschise, de exemplu, puteți folosi Python socket module, curl , telnet sau wget .