Come aprire una porta su CentOS/RHEL?

Pubblicato 27 agosto 2024

Problema: Aprire Porte su CentOS/RHEL

Aprire porte su sistemi CentOS o RHEL è un compito per amministratori di sistema e sviluppatori. È necessario quando si vuole consentire a specifico traffico di rete di attraversare il firewall per raggiungere i servizi sul server. Il processo può essere confuso per chi è nuovo ai firewall Linux, specialmente su queste distribuzioni che usano firewalld come impostazione predefinita.

Apertura di Porte su CentOS/RHEL

Uso di FirewallD per la Gestione delle Porte

FirewallD è lo strumento firewall predefinito per CentOS e RHEL. Gestisce le regole del firewall. Segui questi passaggi per aprire le porte con FirewallD:

  1. Controlla lo stato di FirewallD:

    sudo firewall-cmd --state
  2. Elenca le porte aperte:

    sudo firewall-cmd --list-ports
  3. Apri una porta (es. porta 80 per HTTP):

    sudo firewall-cmd --add-port=80/tcp --permanent
  4. Ricarica le regole del firewall:

    sudo firewall-cmd --reload

Configurazione di IPTables per l'Accesso alle Porte

IPTables è uno strumento firewall più vecchio. Usalo per aprire le porte:

  1. Controlla le regole IPTables:

    sudo iptables -L
  2. Aggiungi una regola per aprire una porta (es. porta 22 per SSH):

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  3. Salva le nuove regole:

    sudo service iptables save
  4. Riavvia IPTables:

    sudo service iptables restart

Fai attenzione quando apri le porte, poiché può influire sulla sicurezza del tuo sistema. Apri solo le porte necessarie e monitora spesso i log del firewall.

Verifica delle Porte Aperte su CentOS

Uso di Netstat per Elencare le Porte Aperte

Netstat è uno strumento per controllare le porte aperte sul tuo sistema CentOS. Per usare netstat:

  1. Apri un terminale.
  2. Esegui questo comando:
    sudo netstat -tuln

    Questo mostra tutte le porte TCP e UDP in ascolto.

L'output mostra:

  • Protocollo (TCP o UDP)
  • Indirizzo locale e numero di porta
  • Indirizzo esterno e numero di porta
  • Stato della connessione

Ad esempio:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

Questo significa che la porta 22 (SSH) è aperta e in ascolto per connessioni.

Uso di LSOF per Controllare le Porte in Ascolto

LSOF (List Open Files) è un altro strumento per identificare le porte aperte. Per usare LSOF:

  1. Installa LSOF se non è presente nel tuo sistema:

    sudo yum install lsof
  2. Esegui questo comando per vedere le porte in ascolto:

    sudo lsof -i -P -n | grep LISTEN

Questo comando mostra:

  • Il nome del processo che usa la porta
  • L'utente che esegue il processo
  • Il numero di porta

Ad esempio:

sshd    1234    root    3u  IPv4  12345      0t0  TCP *:22 (LISTEN)

Questo mostra che il demone SSH è in ascolto sulla porta 22.

Sia netstat che LSOF forniscono informazioni sulle porte aperte sul tuo sistema CentOS, aiutandoti a verificare le impostazioni del firewall.

Metodi Alternativi per la Configurazione delle Porte

Uso dello Strumento System-Config-Firewall

System-config-firewall è uno strumento per gestire le impostazioni del firewall su CentOS. Offre un'interfaccia visuale per chi preferisce alternative alle operazioni da riga di comando.

Per usare system-config-firewall:

  1. Installa lo strumento:

    sudo yum install system-config-firewall
  2. Avvia l'applicazione:

    sudo system-config-firewall
  3. Nell'interfaccia, seleziona "Altre Porte" e clicca "Aggiungi".

  4. Scegli il protocollo (TCP o UDP) e inserisci il numero di porta.

  5. Clicca "Applica" per salvare le modifiche.

Questo metodo è utile per gli utenti che preferiscono strumenti visuali.

Gestione delle Porte Specifica per il Cloud

Quando esegui CentOS su piattaforme cloud, potresti dover considerare impostazioni firewall aggiuntive per il tuo provider cloud.

Per CentOS ospitato sul cloud:

  1. Controlla la documentazione del tuo provider cloud per la gestione del firewall.

  2. Usa il pannello di controllo della piattaforma cloud o gli strumenti CLI per gestire i gruppi di sicurezza di rete.

  3. Configura sia il firewall CentOS che il firewall del provider cloud per consentire il traffico desiderato.

  4. Alcuni provider cloud potrebbero richiedere l'apertura delle porte a livello di rete prima di configurare il firewall a livello di sistema operativo.

  5. Testa la tua configurazione per assicurarti che entrambi i firewall cloud e OS funzionino correttamente insieme.

Ricorda, gli ambienti cloud possono avere pratiche di sicurezza diverse rispetto alle configurazioni on-premises. Segui sempre le linee guida di sicurezza del tuo provider cloud quando gestisci porte e regole firewall.

Risoluzione dei Problemi di Accesso alle Porte su CentOS

Quando affronti problemi di accesso alle porte su CentOS, potresti incontrare queste difficoltà. Ecco alcune soluzioni per aiutarti a risolverle:

  1. Porta non si apre:

    • Controlla le regole del firewall usando firewall-cmd --list-all
    • Aggiungi la porta alla zona corretta
    • Ricarica il firewall dopo aver apportato modifiche
  2. Servizio non si avvia:

    • Verifica se il servizio è in esecuzione con systemctl status nome_servizio
    • Controlla i log del servizio per errori
    • Assicurati che il servizio utilizzi la porta corretta
  3. Impostazioni SELinux errate:

    • Usa sestatus per verificare se SELinux è attivo
    • Esegui semanage port -l | grep numero_porta per controllare le etichette delle porte SELinux
    • Se necessario, aggiungi il contesto SELinux corretto con semanage port -a -t etichetta_porta_t -p tcp numero_porta
  4. Applicazioni in conflitto:

    • Usa netstat -tuln o ss -tuln per verificare se un'altra applicazione usa la porta
    • Arresta o modifica l'applicazione in conflitto se necessario

Per controllare i log del firewall per tentativi di connessione:

  1. Attiva la registrazione per i pacchetti negati:

    sudo firewall-cmd --set-log-denied=all --permanent
    sudo firewall-cmd --reload
  2. Visualizza i log del firewall:

    sudo journalctl -f -u firewalld
  3. Cerca voci con "FINAL_REJECT" o "FINAL_DROP" che mostrano connessioni bloccate

  4. Controlla le voci del log per trovare l'IP di origine, la porta di destinazione e il protocollo del traffico bloccato