Suomidigiaamu: Digitalisaatio sosiaalihuollossa
Sisällysluettelo:
- Mikä on Open Port
- Valitse Avaa portit
nmap
- Tarkista avoimet satamat
netcat
- Tarkista avoimet portit Bash Pseudo -laitteella
- johtopäätös
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
.
Kuinka käynnistää kromi uudelleen menettämättä avoimia välilehtiä yhdellä napsautuksella
Onko sinulla Chrome-selaimesi ongelmia ja joudut käynnistämään se usein uudelleen? Tässä on tapa käynnistää Chrome uudelleen menettämättä avoimia välilehtiä yhdellä napsautuksella
Kuinka tarkistaa levytilaa Linuxissa df-komennon avulla
Kuinka paljon tilaa on jäljellä kiintolevylläni? Linux-pohjaisissa järjestelmissä voit käyttää df-komentoa saadaksesi yksityiskohtaisen raportin järjestelmän levytilan käytöstä.
Kuinka tarkistaa ytimen versio Linuxissa
Ydin on käyttöjärjestelmän ydinosa. Tässä opetusohjelmassa osoitamme sinulle useita eri tapoja selvittää, mikä Linux-ytimen versio on käynnissä järjestelmässäsi.