Android

Hur man kontrollerar (skannar) för öppna portar i Linux

How to install firewall and open ports in kali linux

How to install firewall and open ports in kali linux

Innehållsförteckning:

Anonim

Oavsett om du felsöker nätverksanslutningsproblem eller konfigurerar en brandvägg är en av de första sakerna att kontrollera vilka portar som faktiskt öppnas på ditt system.

Den här artikeln beskriver flera metoder för att ta reda på vilka portar som öppnas för utsidan på ditt Linux-system.

Vad är öppen port

En lyssningsport är en nätverksport som en applikation lyssnar på. Du kan få en lista över lyssningsportarna på ditt system genom att fråga nätverksstacken med kommandon som ss , netstat eller lsof . Varje lyssningsport kan vara öppen eller stängd (filtrerad) med en brandvägg.

I allmänna termer är en öppen port en nätverksport som accepterar inkommande paket från avlägsna platser.

Om du till exempel kör en webbserver som lyssnar på portarna 80 och 443 och dessa portar är öppna på din brandvägg kan alla (utom blockerade ips) komma åt webbplatser som är värd på din webbserver med sin webbläsare. I detta fall är både 80 och 443 öppna portar.

Öppna portar kan utgöra en säkerhetsrisk eftersom varje öppen port kan användas av angripare för att utnyttja en sårbarhet eller utföra någon annan typ av attacker. Du bör bara exponera de portar som behövs för att din applikation ska fungera och stänga alla andra portar.

Kontrollera Öppna portar med nmap

Nmap är ett kraftfullt nätverksskanningsverktyg som kan skanna enskilda värdar och stora nätverk. Det används främst för säkerhetsrevisioner och penetrationstest.

Om det är tillgängligt, bör nmap vara ditt första verktyg när det gäller hamnsökning. Förutom portskanning kan nmap också upptäcka Mac-adress, OS-typ, kärnversioner och mycket mer.

Följande kommando från konsolen avgör vilka portar som lyssnar på TCP-anslutningar från nätverket:

sudo nmap -sT -p- 10.10.8.8

-sT berättar för nmap att söka efter TCP-portar och -p- att söka efter alla 65535 portar. Om -p- inte används nmap skannar bara 1000 portar.

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

Utgången ovan visar att endast portarna 22 , 80 och 8069 öppnas i målsystemet.

För att söka efter UDP-portar använder du -sU istället för -sT :

sudo nmap -sU -p- 10.10.8.8

För mer information besök nmap man-sidan och läs om alla andra kraftfulla alternativ för det här verktyget.

Kontrollera öppna portar med netcat

Netcat (eller nc ) är ett kommandoradsverktyg som kan läsa och skriva data över nätverksanslutningar med TCP- eller UDP-protokoll.

Med netcat du skanna en enda port eller ett portintervall.

Till exempel för att söka efter öppna TCP-portar på en fjärrmaskin med IP-adress 10.10.8.8 inom området 20-80 använder du följande kommando:

nc -z -v 10.10.8.8 20-80

Alternativet -z berättar för nc att bara söka efter öppna portar utan att skicka data och -v är för mer ordinär information.

Utgången ser ut så här:

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!

För att söka efter UDP-portar skicka alternativet -u till kommandot nc :

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

Kontrollera Öppna portar med Bash Pseudo-enhet

Ett annat sätt att kontrollera om en viss port är öppen eller stängd är att använda Bash shell /dev/tcp/.. eller /dev/udp/.. pseudo-enhet.

När du utför ett kommando på en /dev/$PROTOCOL/$HOST/$IP pseudo-enhet öppnar Bash en TCP- eller UDP-anslutning till den angivna värden på den angivna porten.

Följande if..else-uttalande kommer att kontrollera om port 443 kernel.org är öppen:

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

Hur fungerar koden ovan?

Standard timeout när vi ansluter till en port med en pseudo-enhet är enorm så vi använder timeout kommandot för att döda testkommandot efter 5 sekunder. Om anslutningen upprättas till kernel.org port 443 kommer kernel.org att returneras.

Du kan också använda for-loopen för att leta efter ett portintervall:

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

Utgången ser ut så här:

port 22 is open port 80 is open

Slutsats

Vi har visat dig flera verktyg som du kan använda för att söka efter öppna portar. Det finns också andra verktyg och metoder för att leta efter öppna portar, till exempel kan du använda Python- socket modulen, curl , telnet eller wget .

terminal