Android

Hogyan lehet ellenőrizni (beolvasni) a Linuxban nyitott portokat

Week 7

Week 7

Tartalomjegyzék:

Anonim

Akár hibaelhárítást végez a hálózati kapcsolatokkal kapcsolatban, akár beállítja a tűzfalat, az első ellenőrizni kell, hogy milyen portokat nyitnak meg a rendszeren.

Ez a cikk számos megközelítést ír le annak megismerésére, hogy mely portok nyithatók meg a Linux rendszerén kívül.

Mi az az Open Port

A figyelő port egy hálózati port, amelyet egy alkalmazás hallgat. A rendszer hallgatási portjainak listáját a hálózati verem lekérdezésével kaphatja meg, például az ss , a netstat vagy az lsof parancsokkal. Minden figyelőport nyitható vagy zárható (szűrhető) tűzfal segítségével.

Általánosságban elmondható, hogy a nyitott port egy hálózati port, amely távoli helyekről fogadja a bejövő csomagokat.

Például, ha olyan webszervert fut, amely meghallgatja a 80 és 443 portot, és ezek a portok nyitva vannak a tűzfalon, bárki (kivéve a blokkolt ip-eket) hozzáférhet az Ön webszerverén tárolt webhelyekhez a böngészőjével. Ebben az esetben mind a 80 , mind a 443 nyitott port.

A nyitott portok biztonsági kockázatot jelentenek, mivel a támadók mindegyik nyílt portot felhasználhatják egy sebezhetőség kihasználására vagy bármilyen más típusú támadás végrehajtására. Csak az alkalmazás funkcionalitásához szükséges portokat tegye ki, és zárja be az összes többi portot.

Ellenőrizze az Open Ports lehetőséget az nmap

Az Nmap egy erőteljes hálózati szkennelő eszköz, amely egyetlen gazdagépet és nagy hálózatokat képes beolvasni. Főleg biztonsági ellenőrzésekhez és penetrációs tesztekhez használják.

Ha rendelkezésre áll, az nmap kell lennie az első eszköznek a portok szkennelésekor. A nmap mellett az nmap képes felismerni a Mac-címeket, az operációs rendszer típusát, a kernel verzióit és még sok minden mást.

A konzolból kiadott alábbi parancs határozza meg, hogy mely portok figyelik a hálózat TCP-kapcsolatait:

sudo nmap -sT -p- 10.10.8.8

Az -sT nmap -sT utasítja a TCP-portok keresését, és -sT az összes 65535-port keresését. Ha a -p- nem használják, akkor az nmap csak 1000 portot szkennel.

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

A fenti kimenet azt mutatja, hogy csak a 22 , 80 és 8069 portokat nyitják meg a célrendszeren.

UDP-portok kereséséhez használja -sU helyett -sT :

sudo nmap -sU -p- 10.10.8.8

További információkért látogasson el az nmap kézikönyv oldalra, és olvassa el az eszköz összes többi hatékony opcióját.

Ellenőrizze az Open Ports lehetőséget a netcat

A Netcat (vagy nc ) egy olyan parancssori eszköz, amely a TCP vagy az UDP protokollok segítségével képes adatokat olvasni és írni hálózati kapcsolatokon keresztül.

A netcat segítségével egyetlen portot vagy porttartományt szkennelhet.

Például az 10.10.8.8 IP-címmel 10.10.8.8 , 20-80 tartományba eső távoli gépen nyitott TCP-portok 10.10.8.8 használja a következő parancsot:

nc -z -v 10.10.8.8 20-80

A -z opció azt mondja az nc hogy csak nyitott portokat keressen, anélkül, hogy bármilyen adatot kellene -v és a -v több pontos információhoz szolgál.

A kimenet így néz ki:

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!

UDP-portok kereséséhez adja át az -u opciót az nc parancsnak:

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

Ellenőrizze a Nyitott portok használatát a Bash Pseudo Device segítségével

Egy másik módszer annak ellenőrzésére, hogy egy adott port nyitva vagy zárva van-e, a Bash shell /dev/tcp/.. vagy /dev/udp/.. álnév eszközzel használható.

Ha a /dev/$PROTOCOL/$HOST/$IP álnév-eszközön parancsot hajt végre, Bash megnyit egy TCP vagy UDP kapcsolatot a megadott gazdagéppel a megadott porton.

A következő if..else utasítás ellenőrzi, hogy a kernel.org 443 portja nyitva van-e:

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

Hogyan működik a fenti kód?

Az álnevezett eszközzel egy porthoz történő csatlakozáskor az alapértelmezett időtúllépés óriási, tehát az timeout parancsot használjuk, hogy 5 másodperc elteltével megsemmisítsük a tesztparancsot. Ha a kapcsolat létrejött a kernel.org 443 porthoz, akkor a tesztparancs visszatér.

A hurok segítségével a porttartományt is ellenőrizheti:

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

A kimenet így néz ki:

port 22 is open port 80 is open

Következtetés

Számos olyan eszközt mutattunk be, amelyek segítségével nyitott portokat kereshet. Vannak más segédprogramok és módszerek is a nyitott portok ellenőrzésére, például használhatjuk a Python socket modult, curl , telnet vagy a wget .

terminál