Ricerca nel sito web

Installazione e configurazioni iniziali del server su RHEL 7


In questo tutorial discuteremo i primi passaggi di configurazione di cui devi occuparti dopo una nuova installazione di Red Hat Enterprise Linux 7 su un server bare metal o su un server privato virtuale.

Requisiti

  1. RHEL 7 Installazione minima

Importante: gli utenti di CentOS 7 possono seguire questo articolo per eseguire una configurazione iniziale del server su CentOS 7.

Aggiorna il sistema RHEL 7

Nel primo passaggio accedi alla console del tuo server RHEL con un account con privilegi di root o direttamente come root ed esegui il comando seguente per aggiornare completamente i componenti del tuo sistema, come i pacchetti installati, il kernel o applicare altre patch di sicurezza.

yum check-update
yum update

Per rimuovere tutti i pacchetti scaricati localmente e le altre cache YUM correlate, eseguire il comando seguente.

yum clean all

Installa le utilità di sistema su RHEL 7

Le seguenti utilità possono rivelarsi utili per l'amministrazione quotidiana del sistema: nano (editor di testo per sostituire l'editor vi), wget, curl (utilità utilizzate per scaricare i pacchetti principalmente sulla rete) net-tools, lsof (utilità per la gestione della rete locale) e bash-completion (completamento automatico della riga di comando).

Installali tutti in un colpo solo eseguendo il comando seguente.


yum install nano wget curl net-tools lsof bash-completion

Configura la rete in RHEL 7

RHEL 7 dispone di un'ampia gamma di strumenti che possono essere utilizzati per configurare e gestire la rete, dalla modifica manuale del file di configurazione di rete all'utilizzo di comandi come ip, ifconfig, nmtui, nmcli o percorso.

L'utilità più semplice che un principiante può utilizzare per gestire e modificare le configurazioni di rete è la riga di comando grafica nmtui.

Per modificare il nome host del sistema tramite l'utilità nmtui, esegui il comando nmtui-hostname, imposta il nome host della tua macchina e premi OK per terminare, come illustrato nello screenshot qui sotto.


nmtui-hostname

Per manipolare un'interfaccia di rete, esegui il comando nmtui-edit, scegli l'interfaccia che desideri modificare e seleziona Modifica dal menu a destra, come mostrato nello screenshot seguente.

Una volta entrato nell'interfaccia grafica fornita dall'utilità nmtui puoi configurare le impostazioni IP dell'interfaccia di rete come illustrato nello screenshot seguente. Al termine, vai a OK utilizzando il tasto [tab] per salvare la configurazione e uscire.

Per applicare la nuova configurazione dell'interfaccia di rete, esegui il comando nmtui-connect, seleziona l'interfaccia che desideri gestire e premi l'opzione Disattiva/Attiva per disattivare e ripristinare l'interfaccia con le impostazioni IP, come presentato negli screenshot seguenti.


nmtui-connect

Per visualizzare le impostazioni dell'interfaccia di rete, è possibile controllare il contenuto del file di interfaccia oppure eseguire i comandi seguenti.


ifconfig enp0s3
ip a
ping -c2 google.com

Altre utilità utili che possono essere utilizzate per gestire la velocità, lo stato del collegamento o ottenere informazioni sulle interfacce di rete della macchina sono ethtool e mii-tool.


ethtool enp0s3
mii-tool enp0s3

Crea un nuovo account utente

Nel passaggio successivo, mentre accedi come root al tuo server, crea un nuovo utente con il comando seguente. Questo utente verrà utilizzato in seguito per accedere al sistema ed eseguire attività amministrative.

adduser tecmint_user

Dopo aver aggiunto l'utente utilizzando il comando precedente, imposta una password complessa per questo utente immettendo il comando seguente.

passwd tecmint_user

Nei casi in cui desideri forzare questo nuovo utente a modificare la propria password al primo tentativo di accesso, esegui il comando seguente.

chage -d0 tecmint_user

Questo nuovo account utente ha per ora privilegi di account regolari e non può eseguire attività amministrative tramite il comando sudo.

Per evitare l'utilizzo dell'account root per eseguire privilegi amministrativi, concedere a questo nuovo utente privilegi amministrativi aggiungendo l'utente al gruppo di sistema “wheel”.

Agli utenti appartenenti al gruppo “wheel” è consentito, per impostazione predefinita in RHEL, eseguire comandi con privilegi di root utilizzando l'utilità sudo prima di scrivere il comando necessario per l'esecuzione.

Ad esempio, per aggiungere l'utente “tecmint_user” al gruppo “wheel”, esegui il comando seguente.

usermod -aG wheel tecmint_user

Successivamente, accedi al sistema con il nuovo utente e prova ad aggiornare il sistema tramite il comando "sudo yum update" per verificare se all'utente sono concessi i poteri di root.

su - tecmint_user
sudo yum update

Configurare l'autenticazione con chiave pubblica SSH su RHEL 7

Nel passaggio successivo, per aumentare la sicurezza del servizio RHEL, configura l'autenticazione con chiave pubblica SSH per il nuovo utente. Per generare una coppia di chiavi SSH, la chiave pubblica e privata, esegui il seguente comando sulla console del server. Assicurati di aver effettuato l'accesso al sistema con l'utente per cui stai configurando la chiave SSH.

su - tecmint_user
ssh-keygen -t RSA

Durante la generazione della chiave, ti verrà richiesto di aggiungere una passphrase per proteggere la chiave. Puoi inserire una passphrase complessa o scegliere di lasciare vuota la passphrase se desideri automatizzare le attività tramite il server SSH.

Dopo che la chiave SSH è stata generata, copia la coppia di chiavi pubbliche su un server remoto eseguendo il comando seguente. Per installare la chiave pubblica sul server SSH remoto avrai bisogno di un account utente dotato di credenziali per accedere a quel server.

ssh-copy-id [email 

Ora dovresti provare ad accedere tramite SSH al server remoto utilizzando la chiave privata come metodo di autenticazione. Dovresti essere in grado di accedere automaticamente senza che il server SSH richieda una password.

ssh [email 

Per visualizzare il contenuto della tua chiave SSH pubblica se desideri installare manualmente la chiave su un server SSH distante, immetti il comando seguente.

cat ~/.ssh/id_rsa

Proteggi SSH su RHEL 7

Per proteggere il demone SSH e impedire l'accesso SSH remoto all'account root tramite password o chiave, aprire il file di configurazione principale del server SSH e apportare le seguenti modifiche.

sudo vi /etc/ssh/sshd_config

Cerca la riga #PermitRootLogin sì, decommenta la riga rimuovendo il segno # (hashtag) dall'inizio della riga e modifica la riga in modo che assomigli a quella mostrata di seguito estratto.

PermitRootLogin no

Successivamente, riavvia il server SSH per applicare le nuove impostazioni e testa la configurazione provando ad accedere a questo server con l'account root. L'accesso all'account root tramite SSH dovrebbe ormai essere limitato.

sudo systemctl restart sshd

Ci sono situazioni in cui potresti voler disconnettere automaticamente tutte le connessioni SSH remote al tuo server dopo un periodo di inattività.

Per abilitare questa funzionalità a livello di sistema, esegui il comando seguente, che aggiunge la variabile bash TMOUT al file bashrc principale e forza la disconnessione o l'interruzione di ogni connessione SSH- fuori dopo 5 minuti di inattività.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Esegui il comando tail per verificare se la variabile è stata aggiunta correttamente alla fine del file /etc/bashrc. Da questo momento in poi tutte le connessioni SSH successive verranno chiuse automaticamente dopo 5 minuti di inattività.

tail /etc/bashrc

Nello screenshot seguente, la sessione SSH remota dal computer Drupal al server RHEL è stata disconnessa automaticamente dopo 5 minuti.

Configura il firewall su RHEL 7

Nel passaggio successivo configurare il firewall per proteggere ulteriormente il sistema a livello di rete. RHEL 7 viene fornito con l'applicazione Firewalld per gestire le regole iptables sul server.

Innanzitutto, assicurati che il firewall sia in esecuzione nel tuo sistema emettendo il comando seguente. Se il demone Firewalld viene arrestato dovresti avviarlo con il seguente comando.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Una volta che il firewall è abilitato e in esecuzione nel tuo sistema, puoi utilizzare l'utilità della riga di comando firewall-cmd per impostare le informazioni sulla politica del firewall e consentire il traffico verso alcune porte di rete specifiche, come il demone SSH, la connessione effettuata a un server Web interno o ad altri servizi di rete correlati.

Poiché al momento stiamo eseguendo solo un demone SSH nel nostro server, possiamo modificare la politica del firewall per consentire il traffico per la porta del servizio SSH emettendo il seguente comando.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Per aggiungere una regola firewall al volo, senza applicare la regola al successivo avvio del server, utilizzare la sintassi del comando seguente.

sudo firewall-cmd --add-service=sshd

Se installi altri servizi di rete nel tuo server, come un server HTTP, un server di posta o altri servizi di rete, puoi aggiungere regole per consentire connessioni specifiche come segue.

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

Per elencare tutte le regole del firewall, esegui il comando seguente.

sudo firewall-cmd --permanent --list-all

Rimuovere i servizi non necessari in RHEL 7

Per ottenere un elenco di tutti i servizi di rete (TCP e UDP) in esecuzione nel server RHEL per impostazione predefinita, emettere il comando ss, come illustrato nell'esempio seguente.

sudo ss -tulpn

Il comando ss rivelerà alcuni servizi interessanti che sono avviati e in esecuzione per impostazione predefinita nel tuo sistema, come il servizio master Postfix e il server responsabile del protocollo NTP.

Se non hai intenzione di configurare questo server come server di posta, dovresti arrestare, disabilitare e rimuovere il demone Postfix eseguendo i comandi seguenti.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Recentemente sono stati segnalati alcuni fastidiosi attacchi DDOS sul protocollo NTP. Nel caso in cui non intendi configurare il tuo server RHEL per l'esecuzione come server NTP in modo che i client interni possano sincronizzare l'ora con questo server, dovresti disabilitare e rimuovere completamente il demone Chrony eseguendo i comandi seguenti.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Ancora una volta, esegui il comando ss per identificare se altri servizi di rete sono in esecuzione nel tuo sistema e disabilitarli e rimuoverli.

sudo ss -tulpn

Per fornire l'ora precisa per il tuo server e sincronizzare l'ora con un server peer con orario superiore, puoi installare l'utilità ntpdate e sincronizzare l'ora con un server NTP pubblico, eseguendo i comandi seguenti.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Per automatizzare l'esecuzione del comando di sincronizzazione dell'ora ntpdate ogni giorno senza alcun intervento da parte dell'utente, pianifica un nuovo lavoro crontab da eseguire a mezzanotte con il seguente contenuto.

sudo crontab -e

Estratto del file Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

È tutto! Ora il tuo server RHEL è pronto per l'installazione di software aggiuntivo necessario per servizi o applicazioni di rete personalizzati, come l'installazione e la configurazione di un server Web, un server database, un servizio di condivisione file o altre applicazioni specifiche.

Per proteggere e rafforzare ulteriormente il server RHEL 7, consulta i seguenti articoli.

  1. La mega guida per rafforzare e proteggere RHEL 7 - Parte 1
  2. La mega guida per rafforzare e proteggere RHEL 7 - Parte 2

Se hai intenzione di distribuire siti Web su questo sistema RHEL 7, scopri come impostare e configurare lo stack LAMP o lo stack LEMP.