Cum se poate spune dacă un port TCP sau UDP este deschis sau închis în Linux

Știind dacă un port TCP sau UDP este deschis sau închis este o sarcină fundamentală pentru orice administrator de sistem și rețea. De multe ori, este esențial să știm dacă porturile sunt deschise pentru a stabili comunicarea cu serviciul care ascultă în spate, dar este, de asemenea, foarte important să știm dacă sunt închise pentru a evita posibile probleme de securitate. Astăzi, în acest articol, vă vom arăta cum să știți dacă un port este deschis sau închis într-un Linux sistemul de operare, deoarece acest sistem de operare este utilizat în mod normal în servere.

Există mai multe moduri de a verifica dacă un anumit port este deschis sau închis, mai ales în Linux, primul dintre ele utilizează popularul program Netcat care este preinstalat în toate distribuțiile, apoi o modalitate foarte bună de a ști dacă un port este deschis Este verificându-l direct cu Nmap program care ne va permite să scanăm toate porturile unei anumite gazde. În cele din urmă, dacă vrem să știm dacă avem un port deschis sau închis, va trebui să îl analizăm în firewall și, de asemenea, în conexiunile actuale ale sistemului de operare.

Spuneți dacă un port TCP sau UDP este deschis sau închis în Linux

Vizualizați porturile deschise cu Netcat

Netcat este un instrument care vine în mod implicit în majoritatea distribuțiilor Linux, deci, în afară de faptul că este foarte ușor de utilizat, nu va trebui să instalăm pachete suplimentare. Înainte de a verifica cu Netcat dacă portul este deschis, să vedem cei mai importanți doi parametri Netcat:

  • z este un parametru care asigură că, la sfârșitul verificării, conexiunea este închisă sau, în caz contrar, programul ar rămâne rulat într-o buclă până când îl terminăm manual cu control + C, într-un mod similar cu atunci când un ping pe Linux.
  • v este parametrul care se ocupă de verificarea dacă portul este deschis sau închis.

Pentru a verifica portul, ceea ce trebuie să facem este să tastați următoarele într-un terminal:

nc -zv {IP} {PUERTO}

De exemplu, pentru a verifica portul 443 de pe routerul nostru vom tip:

nc -zv 192.168.10.1 443

În următoarea imagine puteți vedea cum este deschis acest port:

Dacă testăm site-ul web al acestui articol și portul 443, vom obține informații similare:

În cazul în care este închis, ar trebui să punem următoarele:

După cum ați văzut, este foarte ușor să verificați dacă un port este deschis sau închis cu Netcat, un utilitar foarte simplu care este preinstalat în Linux. Pe lângă comenzile „z” și „v”, avem și alte argumente disponibile care ne vor permite să aflăm mai multe informații. Dacă executăm următoarea comandă, va apărea ajutorul:

nc -h

După cum puteți vedea, avem multe argumente pentru a extinde funcționalitățile.

Vizualizați porturile deschise cu Nmap

Nmap este programul prin excelență pentru a descoperi gazde și, de asemenea, pentru a verifica dacă diferitele porturi sunt deschise, acest program nu vine preinstalat în sistemele de operare Linux, dar îl putem instala direct din depozite cu următoarea ordine:

sudo apt install nmap

Odată instalat, pentru a afla dacă un anumit port este deschis, trebuie să punem următoarea comandă:

nmap -p {PUERTO} {IP}

În următoarea imagine puteți vedea cum ar apărea un port deschis:

În cazul în care un port este închis sau este filtrat de un firewall, vor apărea următoarele:

Dacă dorim să scanăm toate porturile unei anumite gazde sau a unei game de porturi, va trebui să indicăm o gamă de porturi după cum urmează:

nmap -p {PUERTO}-{PUERTO} {IP}

De exemplu:

nmap -p 1-65535 192.168.10.1

După cum puteți vedea, verificarea porturilor deschise cu Nmap este foarte simplă, în plus, putem scana toate gazdele din rețeaua locală sau profesională, pentru a scana ulterior diferitele porturi.

Verificați paravanul de protecție în Linux

Dacă vrem să verificăm dacă avem un port deschis pentru a accepta conexiuni, primul lucru de verificat este starea firewall-ului din sistemul nostru de operare Linux. În mod implicit, pe toate serverele Linux politica este permisivă, adică toate pachetele sunt acceptate de politică. Putem modifica această politică pentru una restrictivă și chiar putem adăuga noi tabele, lanțuri și reguli pentru a permite sau a interzice traficul.

Dacă în terminalul nostru Linux punem următoarele:

iptables -L

Vom obține toate lanțurile și regulile din tabelul „filtru” iptables, în cazul utilizării Nftables, trebuie să indicați următoarea comandă:

nft list ruleset

O recomandare de securitate foarte importantă este ca toate porturile de pe un server Linux să fie închise, în acest fel, atunci când creștem un serviciu ascultând pe un anumit port, acesta nu va fi accesibil decât dacă îl permitem în firewall. Trebuie să verificăm în detaliu dacă un anumit port este deschis sau nu, astfel încât serviciile noastre să fie accesibile din străinătate.

Vizualizați starea conexiunilor TCP și UDP

Dacă suntem interesați să cunoaștem starea tuturor protocoalelor TCP, UDP, ICMP și a altor protocoale din sistemul nostru de operare, un instrument utilizat pe scară largă a fost întotdeauna „netstat”, totuși, acest instrument a fost pe locul doi datorită noilor „ss”. care ne va oferi o cantitate mare de informații ușor și rapid. Acest instrument este responsabil de verificarea tuturor socket-urilor deschise sau închise de pe serverul nostru Linux și vom putea vedea statisticile socket-urilor deschise sau închise. Dacă ați folosit instrumentul netstat în trecut, suntem siguri că vă va plăcea acest nou instrument „ss”.

Instrumentul „ss” este deja preinstalat pe sistemele de operare Linux ca parte a sistemului în sine, așa cum este cazul „ping”, „traceroute” și multe alte instrumente. Dacă deschidem o consolă, atât în ​​modul utilizator, cât și în modul superutilizator, trebuie să executăm:

ss

Odată ce am executat această comandă, putem vedea următoarele:

Vom vedea starea conexiunii (ESTAB), precum și pachetele primite și trimise, adresa locală și portul, precum și adresa la distanță și portul utilizat. Vom obține un număr mare de porturi folosite de diferitele programe și servicii pe care le vom avea instalate în sistemul de operare.

Dacă vrem să vedem starea tuturor porturilor (soclurilor) putem pune următoarea ordine:

ss -a

Dacă vrem să vedem doar porturile care „ascultă”, trebuie să punem următoarea comandă:

ss -l

În imaginea următoare puteți vedea un exemplu de porturi care sunt „GATA” pentru a accepta conexiunile primite:

În cazul în care dorim să afișăm conexiuni TCP, va trebui să folosim argumentul „-t” și în cazul în care dorim să afișăm conexiuni UDP, va trebui să folosim argumentul „-u”.

ss -t ss -u

Comanda „ss” este foarte utilă pentru a afișa toate conexiunile stabilite și, de asemenea, pentru a asculta în sistemul nostru de operare Linux.

După cum ați văzut, avem diferite metode pentru a ști dacă un port este deschis sau închis pe o gazdă la distanță și, de asemenea, pe computerul nostru local, în funcție de ceea ce ne interesează să știm, vom folosi un instrument sau altul, cel mai important lucru este că toate porturile care nu sunt utilizate ar trebui închise pentru securitate prin firewall, în acest fel vom evita problemele de securitate și exploatarea vulnerabilităților din servere.