Alcuni software Linux funzionano ascoltando le connessioni in entrata. Un semplice esempio potrebbe essere un server web, che gestisce le richieste degli utenti ogni volta che qualcuno naviga su un sito web. In qualità di amministratore o utente Linux, è importante sapere sempre quali porte del tuo sistema sono aperte a Internet. Altrimenti, potresti non essere a conoscenza delle connessioni esterne effettuate al tuo computer, che consuma larghezza di banda e risorse, oltre a rappresentare una potenziale falla nella sicurezza.
In questa guida vedremo come verificare la presenza di porte aperte su Ubuntu Linux. Questo può essere fatto con diverse utilità della riga di comando, che esamineremo in dettaglio. Vedremo anche come utilizzare il firewall ufw di Ubuntu per assicurarci che le porte siano sicure. Quindi, sai quali porte del tuo sistema sono aperte? Scopriamolo.
In questo tutorial imparerai:
- Come controllare le porte aperte con
ss
comando - Come controllare le porte aperte con l'utility Nmap
- Come verificare e aggiungere porte consentite nel firewall ufw
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Ubuntu Linux |
Software | ss, Nmap, ufw firewall |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Verifica porte aperte con il comando ss
Il comando ss può essere utilizzato per mostrare quali porte sono in ascolto per le connessioni. Mostra anche da quali reti sta accettando le connessioni.
Ti consigliamo di utilizzare il -ltn
opzioni con il comando per vedere un output conciso e pertinente. Diamo un'occhiata a un esempio sul nostro sistema di test.
$ sudo ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* LISTEN 0 5 [::1]:631 [::]:* LISTEN 0 511 *:80 *:*
Possiamo vedere che il nostro server è in attesa di connessioni sulle porte 80, 3306 e 33060. Queste sono le porte ben note associate a HTTP e MySQL.
Vedrai anche che il ss
l'uscita mostra che le porte 53 e 631 sono in uno stato di ascolto. Questi sono rispettivamente per DNS e Internet Printing Protocol. Questi sono abilitati per impostazione predefinita, quindi probabilmente li vedrai in ascolto sul tuo sistema. La porta DNS non è effettivamente aperta, ma fornisce la risoluzione dei nomi alle applicazioni installate sul nostro sistema.
Per vedere a quali processi appartengono queste porte in ascolto, includi il -p
opzione nel tuo comando.
$ sudo ss -ltnp State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=530,fd=13)) LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=572,fd=7)) LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=2320,fd=32)) LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=2320,fd=34)) LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=572,fd=6)) LISTEN 0 511 *:80 *:* users:(("apache2",pid=2728,fd=4),("apache2",pid=2727,fd=4),("apache2",pid=2725,fd=4))
Ora possiamo vedere che systemd-resolve, cupsd, mysqld e apache2 sono i servizi che utilizzano le porte per ascoltare le connessioni in entrata.
Verifica porte aperte con nmap
Nmap è uno strumento di ricognizione di rete che può essere utilizzato per verificare la presenza di porte aperte su host remoti. Tuttavia, possiamo anche usarlo per controllare il nostro sistema per ottenere un rapido elenco di quali porte sono aperte.
Normalmente, specifichiamo un indirizzo IP remoto per la scansione di Nmap. Invece, possiamo scansionare il nostro sistema specificando localhost
nel comando.
$ sudo nmap localhost Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-12 20:43 EST Nmap scan report for localhost (127.0.0.1) Host is up (0.000012s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 631/tcp open ipp 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Verifica quali porte sono aperte nel firewall ufw
C'è un grande avvertimento che dovresti tenere a mente. Quando si utilizza il ss
o nmap localhost
comandi sul nostro sistema locale, stiamo bypassando il firewall. In effetti, questi comandi mostrano le porte in stato di ascolto, ma ciò non significa necessariamente che le porte siano aperte a Internet, perché il nostro firewall potrebbe negare le connessioni.
Controlla lo stato del firewall ufw con il seguente comando.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Dall'output, possiamo vedere che ufw sta negando le connessioni in entrata. Poiché le porte 80 e 3306 non sono state aggiunte come eccezioni, HTTP e MySQL non sono in grado di ricevere connessioni in entrata, nonostante ss
e nmap
segnalando che sono in stato di ascolto.
Aggiungiamo eccezioni per queste porte con i seguenti comandi.
$ sudo ufw allow 80/tcp Rule added Rule added (v6) $ sudo ufw allow 3306/tcp Rule added Rule added (v6)
Possiamo controllare di nuovo lo stato di ufw, per vedere che le porte sono ora aperte.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 3306/tcp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 3306/tcp (v6) ALLOW IN Anywhere (v6)
Ora le nostre due porte sono aperte nel firewall e in stato di ascolto. Per ulteriori informazioni sul firewall ufw, inclusi esempi di comandi, consulta la nostra guida sull'installazione e l'utilizzo del firewall ufw su Linux.
Pensieri conclusivi
In questa guida abbiamo visto come utilizzare il ss
comando, così come il comando nmap
utility per verificare la presenza di porte in ascolto su Ubuntu Linux. Abbiamo anche imparato come controllare il firewall ufw per vedere quali porte sono aperte e aggiungere eccezioni se necessario.
Se una porta è in stato di ascolto ed è consentita attraverso il firewall, dovrebbe essere aperta alle connessioni in entrata. Ma questo dipende anche dal tuo router o da altri dispositivi di rete che si trovano tra il tuo computer e Internet, poiché potrebbero avere le proprie regole che bloccano le connessioni in entrata.