GNU/Linux >> Linux Esercitazione >  >> Linux

Scansioni delle porte Linux efficaci per l'amministratore di rete

Stai cercando un modo per aumentare la sicurezza della tua rete? Perché non imparare a eseguire una scansione delle porte Linux come un professionista?

In questo tutorial imparerai alcuni degli strumenti e delle tecniche più popolari e anticiperai potenziali rischi e vantaggi associati alla scansione delle porte.

Sembra promettente? Inizia subito la scansione delle porte per proteggere la tua rete!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere un sistema Linux:questo tutorial utilizza Ubuntu 20.04, ma qualsiasi distribuzione Linux moderna funzionerà.

La scansione per aprire le porte con Nmap

Esistono vari modi per scansionare le porte e Nmap è uno strumento eccellente per il rilevamento della rete e il controllo della sicurezza. Nmap ti consente di trovare host e servizi su una rete di computer inviando pacchetti e analizzando le risposte.

Nmap è disponibile gratuitamente ed è compatibile con Windows, Linux e OS X.

La scansione delle porte ti consente di sondare un server o un host per le porte aperte, il che è utile per vari motivi:

  • Scoprire quali servizi sono in esecuzione su un host.
  • Scoprire le vulnerabilità
  • Enumerare un sistema.

Ma prima di sfruttare Nmap, devi prima installare Nmap sulla tua macchina:

1. Esegui il comando apt update di seguito per aggiornare l'indice del pacchetto di sistema.

apt update -y

2. Quindi, esegui il seguente comando apt install per installare Nmap.

apt install nmap -y

3. Esegui il comando nmap –version di seguito per verificare la versione di Nmap installata sulla tua macchina.

nmap --version

Di seguito, la versione installata di Nmap è la 7.80, l'ultima release da questo scritto.

4. Ora, esegui il seguente comando nmap per scansionare il nome host o l'indirizzo IP di destinazione (scanme.nmap.org). Hai solo bisogno di un minimo di opzioni per iniziare.

nmap scanme.nmap.org

Di seguito è riportato il dettaglio dell'output della scansione.:

  • L'indirizzo IPv4 della destinazione:45.33.32.156 .
  • L'indirizzo IPv6 del target (se disponibile) – 2600:3c01::f03c:91ff .
  • Nome DNS inverso (se disponibile).

Puoi anche vedere ogni porta e il suo stato nell'output:

  • aperto – Indica che la porta è aperta e attende le connessioni in entrata.
  • chiuso – Indica che la porta è chiusa e non ascolta le connessioni in entrata.
  • filtrato – Indica che la porta viene filtrata e Nmap non può determinare se la porta è aperta o chiusa. Nmap invia le sonde alla porta ma non riceve alcuna risposta.

Scansione di porte specifiche

Nmap fa molte cose in background per cercare di determinare lo stato di ogni porta. Puoi personalizzare ulteriormente la tua scansione aggiungendo opzioni CLI per un maggiore controllo, come il -p opzione. Questa opzione ti consente di specificare quali porte scansionare.

1. Eseguire il comando seguente per scansionare la porta 80 nel nome host di destinazione (scanme.nmap.org). Questo comando ti consente di sapere se la porta 80 dell'host di destinazione è aperta o chiusa.

nmap -p 80 scanme.nmap.org

Di seguito, puoi vedere che la porta 80 è aperta. Questo stato ti dice che il server web è in esecuzione sulla porta 80.

2. Quindi, esegui il comando seguente per utilizzare i server DNS pubblici di Google (8.8.8.8 e 8.8.4.4) per scansionare la porta 80 del nome host (scanme.nmap.org).

L'opzione –dns-servers consente di specificare quali server DNS utilizzare per la scansione. Questa opzione è utile quando si desidera eseguire la scansione di un host su una rete diversa. Mentre il flag -v fornisce maggiori informazioni sulla scansione.

nmap --dns-servers -p 80 8.8.8.8,8.8.4.4 -v scanme.nmap.org

Di seguito puoi vedere che Nmap utilizza i server DNS pubblici di Google per risolvere il nome host e la scansione ha esito positivo.

3. Infine, esegui il comando seguente per scansionare la porta 80 del nome host (scanme.nmap.org) come hai fatto nel passaggio uno. Ma questa volta, aggiungi l'opzione -d per aumentare il livello di debug a 3. Questa opzione è utile per risolvere i problemi con Nmap.

L'opzione -d accetta un numero intero (tra 0 e 9) come argomento. Più alto è il numero, più output di debug vedrai.

Il livello 9 è per un output molto dettagliato, utile per gli sviluppatori che lavorano su Nmap.

nmap -d 3 -p 80 scanme.nmap.org

Scansione delle porte Utilizzo di Netcat (Ncat)

Netcat (nc ) è uno strumento da riga di comando per l'esplorazione della rete, il controllo della sicurezza e i test di penetrazione. Puoi utilizzare Netcat per creare semplici connessioni TCP e UDP e proxy SOCKS e HTTP più complessi. Ma in questo tutorial utilizzerai Netcat per scansionare le porte aperte su sistemi remoti.

1. Eseguire il comando nc seguente per cercare le porte aperte senza inviare alcun dato (-z) dalle porte da 20 a 1000 su 159.89.176.25. L'opzione -v dice a Netcat di essere dettagliato in modo da poter vedere cosa sta succedendo durante la scansione.

nc -z -v 159.89.176.25 20-1000

La gamma di porte può essere aumentata o ridotta secondo necessità. Ma le porte 20-1000 coprono un'ampia gamma di porte comunemente utilizzate.

L'output seguente mostra quali porte sono aperte e il loro stato di connessione è il seguente:

  • Connessione rifiutata – Indica che la connessione è stata rifiutata dalla porta corrispondente, probabilmente a causa della mancanza di un servizio in esecuzione su quella porta — la porta è chiusa.
  • Riuscito! – Indica che la connessione è riuscita — la porta è aperta.

Oltre alla porta 22 (SSH), che è aperta sul sistema remoto, vedrai anche molti altri messaggi, che possono essere fastidiosi. Quindi, vai al passaggio successivo per filtrare l'output.

2. Esegui il comando grep di seguito per scansionare le porte da 20 a 100 su 159.89.176.25 e visualizzare solo le porte aperte da ogni risultato di scansione che ha la parola riuscita in esse.

La parte 2>&1 dice alla shell di reindirizzare stderr (descrittore di file 2) a stdout (descrittore di file 1)., quindi vedrai il messaggio di errore nell'output se ce n'è uno.

nc -z -v 159.89.176.25 20-100 2>&1 | grep succeeded

Come puoi vedere di seguito, è aperta solo la porta 22, che ha anche il messaggio di successo.

3. Infine, esegui lo stesso comando del passaggio due. Ma questa volta, aggiungi l'opzione -u per cercare le porte UDP, come mostrato di seguito.

nc -z -v -u 159.89.176.25 20-100 2>&1 | grep succeeded

Tieni presente che la scansione richiede molto più tempo durante la scansione per UDP rispetto alle porte TCP:

  • Una scansione TCP tenta di stabilire una connessione con l'host di destinazione, scansionando tutte le 65.535 porte per vedere quali sono aperte.
  • Una scansione UDP non tenta di stabilire una connessione ma invia un pacchetto UDP a ciascuna delle porte dell'host di destinazione per vedere quali sono aperte. Una scansione UDP è inferiore a una scansione TCP perché invii un pacchetto e completa la gestione degli errori e l'handshake a 3 vie.

Di seguito puoi vedere che l'output è vuoto poiché nessun servizio UDP è in esecuzione sul sistema remoto.

Verifica se una porta è aperta utilizzando uno script Bash

Finora, hai visto come utilizzare Netcat e Nmap per cercare porte aperte su un sistema. Sebbene questi strumenti siano utili, non sono affidabili quando si automatizza l'attività di scansione delle porte.

Ad esempio, prevedi di cercare porte aperte su 1000 host. In tal caso, la scansione delle porte manualmente diventa noiosa e richiede molto tempo per essere completata. Ma come automatizzare le attività di scansione delle porte su Linux? Scrivere uno script Bash farà il trucco.

Per creare uno script Bash per automatizzare la scansione delle porte:

1. Apri un nuovo file nel tuo editor di testo preferito. Assegna un nome al file come preferisci, ma il file si chiama ports.sh per questo tutorial.

nano ports.sh

2. Aggiungi il codice seguente a ports.sh file, ma assicurati di sostituire i valori SERVER e PORT con il tuo indirizzo IP o nome host e porta da scansionare.

Dopo aver modificato i valori, salva le modifiche e chiudi l'editor.

# Defines the server you want to scan. 
SERVER=adamtheautomator.com
# Defines the port to scan.
PORT=443
# Runs the nmap command and assigns the output to the state variable. 
# The grep command filters and displays the output of the nmap command
# with the lines containing the "open" keyword.
state=`nmap -p $PORT $SERVER | grep "$PORT" | grep open`
# Checks if the state variable is blank (port is closed).
if [ -z "$state" ]; then
	# Displays a message if the connection fails.
  echo "Connection to $SERVER on port $PORT has failed"
else
	# Displays a message if the connection succeeded.
  echo "Connection to $SERVER on port $PORT was successful"
	# Exits the script with an exit code of 1 
	# to determine if the script was successful or not.
  exit 1
fi # Ends the if statement

3. Infine, esegui il comando bash di seguito per eseguire lo script ports.sh.

bash ports.sh

Se tutto va bene, vedrai il seguente output che dice che la porta 443 è aperta su adamtheautomator.com.

Conclusione

In questo tutorial, hai imparato a scansionare le porte aperte su un sistema con Netcat e Nmap. Oltre a questi strumenti, hai scritto uno script Bash per automatizzare la scansione delle porte in modo da poter svolgere altre attività sul tuo piatto.

A questo punto, hai già una buona conoscenza di come utilizzare questi strumenti per cercare porte aperte su un sistema in modo da poter mantenere la tua rete sicura. Ma per automatizzare ulteriormente le attività di scansione delle porte, perché non creare lavori cron per pianificare l'esecuzione degli script Bash?


Linux
  1. Una guida al terminale Linux per principianti

  2. 8 suggerimenti per la riga di comando di Linux

  3. Trovare pacchetti per Kali Linux

  4. Kali sul sottosistema Windows per Linux

  5. Kali Linux per Gemini PDA

GalliumOS:la distribuzione Linux per i Chromebook

I 50 comandi IP utili di Linux per gli amministratori di rete

I 10 migliori scanner di porte Linux per amministratori di rete

Pratici comandi Tee Linux e Unix per l'amministratore Linux

Esempi utili di tcpdump Linux per l'amministratore di rete

Comandi Nmap - 17 comandi di base per la rete Linux