Android

Kuinka tarkistaa (skannata) avoimia portteja Linuxissa

Suomidigiaamu: Digitalisaatio sosiaalihuollossa

Suomidigiaamu: Digitalisaatio sosiaalihuollossa

Sisällysluettelo:

Anonim

Vianmääritys verkkoyhteyteen tai palomuurin määrittäminen on yksi ensimmäisistä tarkistettavista asioista, mitkä portit todella avautuvat järjestelmässäsi.

Tässä artikkelissa kuvataan useita lähestymistapoja selville, mitkä portit avataan ulkopuolelle Linux-järjestelmässäsi.

Mikä on Open Port

Kuunteluportti on verkkoportti, jota sovellus kuuntelee. Voit saada luettelon järjestelmän kuunteluporteista kysymällä verkon pinoa komennoilla, kuten ss , netstat tai lsof . Jokainen kuunteluportti voi olla avoin tai suljettu (suodatettu) palomuurilla.

Yleisesti ottaen avoin portti on verkkoportti, joka vastaanottaa saapuvat paketit etäpaikoista.

Jos esimerkiksi käytät verkkopalvelinta, joka kuuntelee portteja 80 ja 443 ja nämä portit ovat avoinna palomuurissa, kuka tahansa (paitsi estettyjä ips) voi käyttää Web-palvelimellasi ylläpitämiä verkkosivustoja selaimensa avulla. Tässä tapauksessa sekä 80 että 443 ovat avoimia portteja.

Avoimet portit voivat aiheuttaa turvallisuusriskin, koska hyökkääjät voivat käyttää jokaista avointa porttia haavoittuvuuden hyödyntämiseen tai muun tyyppisten hyökkäysten suorittamiseen. Sinun tulisi paljastaa vain sovelluksen toiminnallisuuteen tarvittavat portit ja sulkea kaikki muut portit.

Valitse Avaa portit nmap

Nmap on tehokas verkkoskannaustyökalu, joka voi skannata yksittäisiä isäntiä ja suuria verkkoja. Sitä käytetään pääasiassa turvatarkastuksiin ja levinneisyystesteihin.

Jos mahdollista, nmap tulisi olla ensimmäinen työkalu porttien skannaamiseen. nmap lisäksi nmap pystyy tunnistamaan myös Mac-osoitteet, käyttöjärjestelmätyypit, ytimen versiot ja paljon muuta.

Seuraava konsolin antama komento määrittää, mitkä portit kuuntelevat TCP-yhteyksiä verkosta:

sudo nmap -sT -p- 10.10.8.8

-sT käskee nmap ohjelman tarkistamaan TCP-portit ja -p- tarkistamaan kaikki 65535-portit. Jos -p- ei käytetä, nmap skannaa vain 1000 porttia.

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

Yllä oleva lähtö osoittaa, että vain portit 22 , 80 ja 8069 avataan kohdejärjestelmässä.

Voit tarkistaa UDP-portit -sU sijasta -sT :

sudo nmap -sU -p- 10.10.8.8

Lisätietoja on nmap-man-sivulla ja lue kaikki tämän työkalun tehokkaat vaihtoehdot.

Tarkista avoimet satamat netcat

Netcat (tai nc ) on komentorivityökalu, joka pystyy lukemaan ja kirjoittamaan tietoja verkkoyhteyksien kautta TCP- tai UDP-protokollia käyttämällä.

netcat -sovelluksella voit skannata yhden portin tai porttialueen.

Esimerkiksi skannataksesi etäkoneen avoimia TCP-portteja, joiden IP-osoite 10.10.8.8 on alueella 20-80 käyttäisit seuraavaa komentoa:

nc -z -v 10.10.8.8 20-80

-z asetus käskee nc : n tarkistamaan vain avoimet portit, lähettämättä mitään tietoja, ja -v on enemmän monisanaista tietoa.

Tulos näyttää tältä:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

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!

Voit tarkistaa UDP-portit siirtämällä -u vaihtoehdon nc komentoon:

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

Tarkista avoimet portit Bash Pseudo -laitteella

Toinen tapa tarkistaa, onko tietty portti auki vai suljettu, on käyttää Bash-kuoria /dev/tcp/.. tai /dev/udp/.. pseudo-laitetta.

Suorittaessaan komentoa /dev/$PROTOCOL/$HOST/$IP -selainlaitteessa, Bash avaa TCP- tai UDP-yhteyden määritettyyn isäntään määrätyssä portissa.

Seuraava if..else-käsky tarkistaa, onko kernel.org portti 443 auki:

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

Kuinka yllä oleva koodi toimii?

Oletusaikakatkaisu, kun yhdistät porttiin pseudo-laitteella, on valtava, joten käytämme timeout tappamaan testikomento 5 sekunnin kuluttua. Jos yhteys luodaan kernel.org porttiin 443 , kernel.org palaa totta.

Voit myös käyttää for-silmukkaa tarkistaaksesi porttialueen:

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

Tulos näyttää tältä:

port 22 is open port 80 is open

johtopäätös

Olemme osoittaneet sinulle useita työkaluja, joiden avulla voit etsiä avoimia portteja. Auki olevien porttien tarkistamiseen on myös muita apuohjelmia ja menetelmiä, esimerkiksi voit käyttää Python- socket moduulia, curl , telnet tai wget .

pääte