Ricerca nel sito web

Configurazione iniziale del server con CentOS/RHEL 8


In questo articolo ti guideremo attraverso i primi passaggi di base che devi applicare dopo aver installato un server CentOS/RHEL 8 minimo senza ambiente grafico per recuperare le informazioni sul sistema installato, il hardware su cui è in esecuzione il server e configurare altre attività di sistema specifiche, come l'aggiornamento del sistema, la rete, i privilegi di root, la configurazione di ssh, la gestione dei servizi e altro.

Requisiti

  1. Guida all'installazione di CentOS 8
  2. RHEL 8 Installazione minima
  3. Abilita l'abbonamento RHEL in RHEL 8

Importante: devi avere un servizio di abbonamento Red Hat abilitato sul tuo server RHEL 8 per eseguire l'aggiornamento del sistema e installazione software.

Passaggio 1: aggiornare il software di sistema

Innanzitutto, accedi al tuo server come utente root ed esegui i seguenti comandi per aggiornare completamente il sistema con il kernel, le patch di sicurezza del sistema, i repository software e i pacchetti più recenti.

dnf check-update
dnf update

Una volta terminato il processo di aggiornamento del software, per liberare spazio su disco è possibile eliminare tutti i pacchetti software scaricati con tutte le informazioni sui repository memorizzati nella cache eseguendo il comando seguente.

dnf clean all

Passaggio 2: installare le utilità di sistema

Le seguenti utilità di sistema possono essere molto utili per le attività quotidiane di amministrazione del sistema: nano, vim editor, wget & curl (utilità utilizzate principalmente per scaricare pacchetti sulla rete) net-tools (utilità per la gestione della rete locale) lsof (utile per ricerca dell'elenco dei file aperti per processo) e bash-completion (completamento automatico della riga di comando).

dnf install nano vim wget curl net-tools lsof bash-completion

Passaggio 3: impostazione del nome host e della rete

In CentOS/RHEL 8, nei repository è inclusa un'ampia gamma di strumenti utilizzati per configurare e gestire la rete, dall'alterazione manuale del file di configurazione della rete all'utilizzo di comandi come ifconfig, ip, nmcli e nmtui.

L'utilità più semplice che un principiante può utilizzare per configurare e gestire le configurazioni di rete come l'impostazione del nome host di rete e la configurazione dell'indirizzo IP statico è l'utilizzo dell'utilità grafica della riga di comando nmtui.

Imposta il nome host in CentOS 8

Per impostare o modificare il nome host del sistema, esegui il seguente comando nmtui-hostname, che ti chiederà di inserire il nome host della tua macchina e premere OK per terminare, come illustrato nello screenshot seguente.

nmtui-hostname

Imposta l'indirizzo IP statico in CentOS 8

Per configurare un'interfaccia di rete, esegui il seguente comando nmtui-edit, che ti chiederà di selezionare l'interfaccia che desideri configurare dal menu come mostrato nello screenshot seguente.

nmtui-edit

Dopo aver fatto clic sul pulsante Modifica, ti verrà richiesto di configurare le impostazioni IP dell'interfaccia di rete come illustrato nello screenshot seguente. Al termine, vai a OK utilizzando [tab] un tasto per salvare la configurazione e uscire.

Una volta terminata la configurazione di rete, devi eseguire il seguente comando per applicare le nuove impostazioni di rete selezionando l'interfaccia che desideri gestire e premendo l'opzione Disattiva/Attiva per disattivare e visualizzare l'interfaccia con le impostazioni IP, come presentato nello screenshot seguente.

nmtui-connect

Per verificare le impostazioni di configurazione della rete, è possibile controllare il contenuto del file di interfaccia oppure eseguire i comandi seguenti.

ifconfig enp0s3
ip a
ping -c2 google.com

Puoi anche utilizzare altre utili utilità di rete come ethtool e mii-tool per verificare la velocità dell'interfaccia di rete, lo stato del collegamento di rete e ottenere informazioni sulle interfacce di rete della macchina.

ethtool enp0s3
mii-tool enp0s3

Un aspetto importante della rete della tua macchina, è importante elencare tutti i socket di rete aperti per verificare quali servizi sono in ascolto su quali porte e qual è lo stato delle connessioni di rete stabilite ed elencare tutti i file aperti dai processi.

netstat -tulpn
ss -tulpn
lsof -i4 -6

Passaggio 4: crea un nuovo account utente

È sempre consigliabile avere un utente normale con permessi di root per svolgere attività amministrative quando necessario. Per assegnare i privilegi di root a un utente normale, innanzitutto creare un utente con il comando useradd, impostare la password e aggiungere un utente al gruppo di controllo amministrativo.

useradd ravisaive
passwd ravisaive
usermod -aG wheel ravisaive

Per verificare che il nuovo utente disponga dei privilegi di root, accedi al sistema con le credenziali dell'utente ed esegui il comando dnf con le autorizzazioni Sudo come mostrato.

su - ravisaive
sudo dnf update

Passaggio 5: imposta l'accesso senza password SSH su CentOS 8

Per aumentare la sicurezza del tuo server, imposta un'autenticazione SSH senza password per il tuo nuovo utente generando una coppia di chiavi SSH, che contengono una chiave pubblica e una chiave privata, ma devi crearne uno. Ciò aumenterà la sicurezza del tuo server richiedendo una chiave SSH privata per connettersi al sistema.

su - ravisaive
ssh-keygen -t RSA

Una volta generata la chiave, ti verrà chiesto di inserire la passphrase per proteggere la chiave privata. Puoi inserire una passphrase complessa o scegliere di lasciare la passphrase vuota se desideri automatizzare le attività amministrative tramite il server SSH.

Una volta generata la chiave SSH, è necessario copiare la coppia di chiavi pubbliche generata su un server remoto eseguendo il comando ssh-copy-id con il nome utente e l'indirizzo IP del server remoto come mostrato.

ssh-copy-id [email 

Una volta copiata la chiave SSH, puoi provare ad accedere al tuo server Linux remoto utilizzando la chiave privata come metodo di autenticazione. Dovresti essere in grado di accedere automaticamente senza che il server SSH richieda una password.

[email 

Passaggio 6: protezione degli accessi remoti SSH

Qui proteggeremo un po' di più il nostro server disabilitando l'accesso SSH remoto all'account root nel file di configurazione SSH.

vi /etc/ssh/sshd_config

Trova la riga che dice #PermitRootLogin yes, decommenta la riga eliminando # dall'inizio della riga e modifica la riga in.

PermitRootLogin no

Successivamente, riavvia il server SSH per applicare le nuove modifiche recenti.

systemctl restart sshd

Ora verifica la configurazione provando ad accedere come account root, otterrai l'errore di accesso SSH negato come mostrato.

ssh [email 

Esistono scenari in cui potresti voler disconnettere automaticamente tutte le connessioni SSH remote al tuo server dopo un certo periodo di inattività.

Passaggio 7: configura il firewall su CentOS 8

In CentOS/RHEL 8, il firewall predefinito è Firewalld, che viene utilizzato per gestire le regole iptables sul server. Per abilitare e avviare il servizio firewalld sul server, esegui i seguenti comandi.

systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld

Per aprire una connessione in entrata verso un servizio specifico (SSH), è necessario innanzitutto verificare che il servizio sia presente nelle regole firewalld e, poi, aggiungere la regola per il servizio aggiungendo --permanent passa ai comandi come mostrato.

firewall-cmd --add-service=[tab]  #List services
firewall-cmd --add-service=ssh
firewall-cmd --add-service=ssh --permanent

Se desideri aprire connessioni in entrata ad altri servizi di rete come HTTP o SMTP, aggiungi semplicemente le regole come mostrato specificando il nome del servizio.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=smtp

Per visualizzare tutte le regole del firewall sul server, eseguire il comando seguente.

firewall-cmd --permanent --list-all

Passaggio 8: rimuovere i servizi indesiderati in CentOS 8

Si consiglia vivamente, dopo aver installato un nuovo server CentOS/RHEL 8, di rimuovere e disabilitare i servizi indesiderati in esecuzione per impostazione predefinita sul server per ridurre gli attacchi al server.

Per elencare tutti i servizi di rete in esecuzione, inclusi TCP e UDP sul server, esegui il comando ss o il comando netstat come illustrato nell'esempio seguente.

ss -tulpn
OR
netstat -tulpn

I comandi precedenti elencheranno alcuni servizi interessanti che sono in esecuzione per impostazione predefinita sul server, come il server di posta Postfix. Se non hai intenzione di ospitare il sistema di posta sul server, devi arrestarlo e rimuoverlo dal sistema come mostrato.

systemctl stop postfix
systemctl disable postfix
dnf remove postfix

Oltre ai comandi ss e netstat, puoi anche eseguire i comandi ps, top o pstree per scoprire e identificare tutti i servizi indesiderati e rimuoverli dal sistema.

dnf install psmisc
pstree -p

Passaggio 9: gestisci i servizi in CentOS 8

In CentOS/RHEL 8, tutti i servizi e i demoni vengono gestiti tramite un comando systemctl ed è possibile utilizzare questo comando per elencare tutti i servizi attivi, in esecuzione, usciti o non riusciti.

systemctl list-units

Per verificare se un demone o un servizio viene abilitato automaticamente durante l'avvio del sistema, emettere il comando seguente.

systemctl list-unit-files -t service

Per ulteriori informazioni sul comando systemctl, leggi il nostro articolo che spiega: Come gestire i servizi utilizzando "Systemctl" in Linux.

È tutto! In questo articolo, abbiamo spiegato alcune impostazioni e comandi di base che ogni amministratore di sistema Linux deve conoscere e applicare su un sistema CentOS/RHEL 8 appena installato o per eseguire attività quotidiane sul sistema .