- Venerdì 27 Luglio 2018
- Non classificato
Quando leggi i tutorial sulla configurazione dei server e sui firewall, ti imbatti spesso in indirizzi IP in questo formato:
La prima parte potrebbe esservi familiare, ma la parte dopo i due punti (:) forse no. Quel numero (8080) rappresenta una porta di rete.
Un indirizzo IP è una sequenza unica di numeri che rappresenta un’interfaccia su una rete, spesso su internet. Con un indirizzo IP, la rete può instradare pacchetti di dati all’interfaccia di rete di un dispositivo specifico, che potrebbe essere un server o un router o anche il tuo telefono.
Ci sono molti programmi in esecuzione su quei dispositivi che potrebbero essere interessati a ricevere dati dalla rete e inviare dati ad altri dispositivi. Ma l’indirizzo IP non dice al dispositivo ricevente nulla sul programma a cui sono destinati i dati. Questo è il ruolo della porta di rete.
In ogni pezzo di dati inviato su una connessione TCP o UDP (compresi HTTP (il web), SSH, FTP, DNS, e la maggior parte degli altri protocolli familiari) c’è un numero di porta sorgente e un numero di porta di destinazione.
Questi numeri non rappresentano un pezzo di attrezzatura o una porta fisica come una porta ethernet o una porta lightning. Sono un costrutto software che associa un processo che fornisce un servizio ai pacchetti di dati che hanno la relativa porta di destinazione.
Un processo è un pezzo di software che è in esecuzione sul server. Un server web è un processo, così come i server SSH, i server FTP e i server DNS. Ogni programma che gira su un server è un processo.
Il sistema operativo di un server usa le porte per assicurarsi che i dati siano ricevuti dal processo giusto, spesso consegnandoli a un pezzo di memoria mappato per quello scopo. I processi sono legati ad una porta specifica e, nel caso delle connessioni TCP, solo un processo può legarsi ad ogni porta. Se più di un processo è legato a una porta, ci sarebbe un conflitto e i dati potrebbero non essere consegnati al processo giusto.
Le porte sono rappresentate da numeri che vanno da 0 a 65535, il massimo che entra in un intero senza segno a 16 bit. Alcuni di questi numeri sono associati a particolari tipi di servizi. Le porte da 0 a 1024 sono chiamate porte note e sono convenzionalmente associate ai tipi più comuni di servizi di rete. I server web usano la porta 80, i server SSH usano la porta 22, e così via.
Le porte da 1024 a 49151 sono porte registrate. Possono essere registrate con ICANN da organizzazioni per l’uso con il loro software. Le porte sopra 49151 sono porte private che possono essere usate per scopi arbitrari.
Se eseguite il seguente comando sul vostro server CentOS, sarete in grado di vedere una lista di porte e i servizi a cui corrispondono.
meno /etc/services
Capire come funzionano le porte è utile in una varietà di circostanze. Per esempio, molti bot di forza bruta prendono di mira i server SSH attraverso la porta 22. Potreste voler associare SSH a una porta diversa in modo che il vostro server non debba affrontare migliaia di richieste di login illegittime. Puoi cambiare la porta SSH con una delle porte private (sopra 49151) modificando l’impostazione “Port” in “/etc/ssh/sshd_config”. I bot a forza bruta non saranno più in grado di trovarla. Se cambiate la porta SSH, assicuratevi di ricordare a cosa l’avete cambiata o non sarete più in grado di accedere.
Le porte sono anche utili per configurare i firewall e per far funzionare i server di sviluppo: è comune usare la porta 8080 come alternativa alla porta 80 per i server web.
In un futuro articolo, vedremo come le porte sono usate per proteggere i server CentOS con il firewall iptables.