Configurazione iniziale del server con Rocky Linux 8

Introduzione

Quando si crea per la prima volta un nuovo server Rocky Linux 8, ci sono alcuni passaggi di configurazione che è opportuno eseguire all’inizio come parte dell’impostazione di base. Ciò aumenterà la sicurezza e la usabilità del server e fornirà una solida base per le azioni successive.

Passaggio 1 — Accesso come Root

Per accedere al server, è necessario conoscere l’indirizzo IP pubblico del server. Avrai anche bisogno della password o, se hai installato una chiave SSH per l’autenticazione, della chiave privata per l’account dell’utente root. Se non hai già effettuato l’accesso al tuo server, potresti voler seguire la nostra documentazione su come connetterti al tuo Droplet con SSH, che copre questo processo in dettaglio.

Se non sei già connesso al tuo server, accedi ora come utente root utilizzando il seguente comando (sostituisci la parte evidenziata del comando con l’indirizzo IP pubblico del tuo server):

  1. ssh root@your_server_ip

Accetta l’avviso sull’autenticità dell’host se compare. Se stai usando l’autenticazione tramite password, fornisci la tua password root per effettuare l’accesso. Se stai utilizzando una chiave SSH protetta da passphrase, potresti essere invitato a inserire la passphrase la prima volta che utilizzi la chiave durante ogni sessione. Se è la prima volta che accedi al server con una password, potresti anche essere invitato a cambiare la password root.

Riguardo a Root

L’utente root è l’utente amministrativo in un ambiente Linux e ha privilegi molto ampi. A causa dei privilegi elevati dell’account root, è sconsigliato utilizzarlo regolarmente. Ciò perché parte del potere intrinseco dell’account root è la capacità di apportare modifiche molto distruttive, anche per errore.

Di conseguenza, il prossimo passo è configurare un account utente alternativo con un ambito di influenza ridotto per il lavoro quotidiano. Questo account sarà comunque in grado di ottenere privilegi aumentati quando necessario.

Passaggio 2 — Creazione di un Nuovo Utente

Una volta effettuato l’accesso come root, puoi creare il nuovo account utente che utilizzeremo per accedere d’ora in poi.

Questo esempio crea un nuovo utente chiamato sammy, ma dovresti sostituirlo con qualsiasi nome utente preferisci:

  1. adduser sammy

Successivamente, imposta una password sicura per l’utente sammy:

  1. passwd sammy

Ti verrà chiesto di inserire la password due volte. Dopo averlo fatto, il tuo utente sarà pronto all’uso, ma prima daremo a questo utente privilegi aggiuntivi per utilizzare il comando sudo. Ciò ci permetterà di eseguire comandi come root quando necessario.

Passaggio 3 — Concessione di Privilegi Amministrativi

Ora abbiamo un nuovo account utente con privilegi di account regolari. Tuttavia, potremmo occasionalmente dover eseguire compiti amministrativi.

Per evitare di dover effettuare il logout dal nostro utente regolare e accedere nuovamente come account root, possiamo configurare quello che è conosciuto come privilegi “superutente” o root per il nostro account regolare. Ciò permetterà al nostro utente regolare di eseguire comandi con privilegi amministrativi inserendo la parola sudo prima di ogni comando.

Per aggiungere questi privilegi al nostro nuovo utente, dobbiamo aggiungere il nuovo utente al gruppo wheel. Per impostazione predefinita, su Rocky Linux 8, gli utenti che appartengono al gruppo wheel possono utilizzare il comando sudo.

Come root, esegui questo comando per aggiungere il tuo nuovo utente al gruppo wheel (sostituisci la parola evidenziata con il tuo nuovo nome utente):

  1. usermod -aG wheel sammy

Ora, quando accedi come tuo utente regolare, puoi digitare sudo prima dei comandi per eseguire azioni con privilegi di superutente.

Passaggio 4 — Configurazione di un firewall di base

I firewall forniscono un livello di sicurezza di base per il tuo server. Queste applicazioni sono responsabili di negare il traffico a ogni porta sul tuo server, tranne quelle porte/servizi che hai esplicitamente approvato. Rocky Linux ha un servizio chiamato firewalld per svolgere questa funzione. Uno strumento chiamato firewall-cmd viene utilizzato per configurare le politiche del firewall di firewalld.

Nota: Se i tuoi server sono in esecuzione su DigitalOcean, puoi eventualmente utilizzare i Firewall Cloud di DigitalOcean invece di firewalld. Consigliamo di utilizzare un solo firewall alla volta per evitare regole in conflitto che potrebbero essere difficili da individuare.

Prima di installare firewalld:

  1. dnf install firewalld -y

La configurazione predefinita di firewalld consente le connessioni ssh, quindi possiamo attivare immediatamente il firewall:

  1. systemctl start firewalld

Controlla lo stato del servizio per assicurarti che sia avviato:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Nota che è sia attivo che abilitato, il che significa che partirà per impostazione predefinita se il server viene riavviato.

Ora che il servizio è attivo e in esecuzione, possiamo utilizzare l’utilità firewall-cmd per ottenere e impostare le informazioni sulla politica per il firewall.

Prima di tutto vediamo quali servizi sono già consentiti:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Per vedere i servizi aggiuntivi che è possibile abilitare per nome, digitare:

  1. firewall-cmd --get-services

Per aggiungere un servizio che dovrebbe essere consentito, utilizzare il flag --add-service:

  1. firewall-cmd --permanent --add-service=http

Questo aggiungerà il servizio http e consentirà il traffico TCP in ingresso alla porta 80. La configurazione verrà aggiornata dopo aver ricaricato il firewall:

  1. firewall-cmd --reload

Ricorda che dovrai aprire esplicitamente il firewall (con servizi o porte) per qualsiasi servizio aggiuntivo che potresti configurare successivamente.

Passaggio 5 — Abilitare l’Accesso Esterno per il Tuo Utente Regolare

Ora che abbiamo un utente regolare non root per l’uso quotidiano, dobbiamo assicurarci di poterlo utilizzare per accedere via SSH al nostro server.

Nota: Fino a quando non verifichi di poter accedere e utilizzare sudo con il tuo nuovo utente, ti consigliamo di rimanere connesso come root. In questo modo, se riscontri problemi, puoi risolverli e apportare eventuali modifiche come root. Se stai utilizzando un Droplet DigitalOcean e riscontri problemi con la connessione SSH del tuo root, puoi accedere al Droplet utilizzando la Console DigitalOcean.

Il processo per configurare l’accesso SSH per il tuo nuovo utente dipende dal fatto che l’account root del tuo server utilizzi una password o chiavi SSH per l’autenticazione.

Se l’Account Root Utilizza l’Autenticazione tramite Password

Se hai effettuato l’accesso al tuo account root utilizzando una password, significa che l’autenticazione tramite password è abilitata per SSH. Puoi accedere via SSH al tuo nuovo account utente aprendo una nuova sessione terminale e utilizzando SSH con il tuo nuovo nome utente:

  1. ssh sammy@your_server_ip

Dopo aver inserito la password del tuo utente regolare, verrai connesso. Ricorda, se devi eseguire un comando con privilegi amministrativi, digita sudo prima, come mostrato di seguito:

  1. sudo command_to_run

Ti verrà richiesta la password del tuo utente regolare quando utilizzi sudo per la prima volta in ogni sessione (e periodicamente in seguito).

Per migliorare la sicurezza del server, raccomandiamo vivamente di configurare le chiavi SSH invece di utilizzare l’autenticazione tramite password. Segui la nostra guida su come configurare le chiavi SSH su Rocky Linux 8 per imparare come configurare l’autenticazione basata su chiave.

Se l’account Root Utilizza l’Autenticazione con Chiave SSH

Se hai effettuato l’accesso al tuo account root utilizzando chiavi SSH, l’autenticazione tramite password è disabilitata per SSH. Sarà necessario aggiungere una copia della tua chiave pubblica al file ~/.ssh/authorized_keys del nuovo utente per accedere con successo.

Dato che la tua chiave pubblica è già nel file ~/.ssh/authorized_keys dell’account root sul server, possiamo copiare tale file e struttura di directory nel nostro nuovo account utente.

Il modo più semplice per copiare i file con i permessi e i proprietari corretti è utilizzare il comando rsync. Questo copierà la directory .ssh dell’utente root, preserverà i permessi e modificherà i proprietari dei file, il tutto con un singolo comando. Assicurati di cambiare le parti evidenziate nel comando qui sotto per corrispondere al nome del tuo utente regolare:

Nota: Il comando rsync tratta in modo diverso le origini e le destinazioni che terminano con una barra obliqua finale rispetto a quelle senza una barra obliqua finale. Quando si utilizza rsync di seguito, assicurati che la directory di origine (~/.ssh) non includa una barra obliqua finale (controlla per assicurarti di non utilizzare ~/.ssh/).

Se aggiungi accidentalmente una barra obliqua finale al comando, rsync copierà il contenuto della directory ~/.ssh dell’account root nella directory home dell’utente sudo anziché copiare l’intera struttura della directory ~/.ssh. I file saranno nella posizione sbagliata e SSH non sarà in grado di trovarli e utilizzarli.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Ora, torna in un nuovo terminale sul tuo computer locale, apri una nuova sessione SSH con il tuo utente non-root:

  1. ssh sammy@your_server_ip

Dovresti essere connesso al nuovo account utente senza utilizzare una password. Ricorda, se hai bisogno di eseguire un comando con privilegi amministrativi, digita sudo prima come segue:

  1. sudo command_to_run

Ti verrà richiesta la password del tuo utente regolare quando utilizzi sudo per la prima volta in ogni sessione (e periodicamente in seguito).

Conclusione

A questo punto, hai una solida base per il tuo server. Ora puoi installare qualsiasi software di cui hai bisogno sul tuo server.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8