Introduzione
Quando crei per la prima volta un nuovo server Rocky Linux 9, ci sono alcuni passaggi di configurazione che dovresti effettuare all’inizio come parte dell’impostazione iniziale. Questo aumenterà la sicurezza e l’usabilità del tuo server e ti fornirà una solida base su cui costruire.
Passaggio 1 — Accesso come Root
Per accedere al tuo server, avrai bisogno di 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 utente root. Se non hai ancora 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 usando il seguente comando (sostituisci la parte evidenziata del comando con l’indirizzo IP pubblico del tuo server):
- ssh root@your_server_ip
Accetta l’avviso sull’autenticità dell’host se compare. Se stai utilizzando l’autenticazione tramite password, fornisci la tua password di root per accedere. Se stai utilizzando una chiave SSH protetta da passphrase, potresti essere invitato a inserire la passphrase la prima volta che utilizzi la chiave in ogni sessione. Se è la prima volta che accedi al server con una password, potresti anche essere invitato a cambiare la password di root.
Riguardo a Root
L’utente root è l’utente amministratore in un ambiente Linux e ha privilegi molto ampi. A causa dei privilegi elevati dell’account root, è sconsigliato utilizzarlo regolarmente. Questo perché parte del potere implicito dell’account root è la capacità di apportare cambiamenti molto distruttivi, anche per errore.
Di conseguenza, il prossimo passo è impostare 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 — Creare un Nuovo Utente
Una volta effettuato l’accesso come root, puoi creare un nuovo account utente che utilizzerai per accedere da ora in poi.
Questo esempio crea un nuovo utente chiamato sammy, ma puoi sostituirlo con qualsiasi nome utente che preferisci:
- adduser sammy
Successivamente, imposta una password robusta per l’utente sammy
:
- passwd sammy
Ti verrà chiesto di inserire la password due volte. Dopo averlo fatto, il tuo utente sarà pronto all’uso, ma prima concederai a questo utente privilegi aggiuntivi per utilizzare il comando sudo
. Ciò ti permetterà di eseguire comandi come root quando necessario.
Passaggio 3 — Concessione di Privilegi Amministrativi
Ora hai un nuovo account utente con privilegi di account regolari. Tuttavia, potresti aver bisogno di eseguire occasionalmente attività amministrative.
Per evitare di dover uscire dal tuo utente regolare e accedere nuovamente come utente root, puoi configurare ciò che è noto come privilegi di “superutente” o root per il tuo account regolare. Questo consentirà al tuo utente regolare di eseguire comandi con privilegi amministrativi inserendo la parola sudo
prima di ogni comando.
Per aggiungere questi privilegi al tuo nuovo utente, devi aggiungere il nuovo utente al gruppo wheel. Per impostazione predefinita, su Rocky Linux 9, gli utenti che appartengono al gruppo wheel sono autorizzati ad 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):
- usermod -aG wheel sammy
Ora, quando accedi come tuo utente normale, puoi digitare sudo
prima dei comandi per eseguire azioni con privilegi di superutente.
Passaggio 4 — Configurazione di un Firewall
I firewall forniscono un livello di sicurezza di base per il tuo server. Queste applicazioni sono responsabili di negare il traffico a ogni porta del server, tranne per 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 opzionalmente utilizzare Firewall Cloud DigitalOcean invece di firewalld
. Dovresti utilizzare un solo firewall alla volta per evitare regole in conflitto che potrebbero essere difficili da individuare.
Prima di tutto, installa firewalld
:
- dnf install firewalld -y
La configurazione predefinita di firewalld
consente le connessioni ssh
, quindi puoi attivare immediatamente il firewall:
- systemctl start firewalld
Verifica lo stato del servizio per assicurarti che sia avviato:
- 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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago
Docs: man:firewalld(1)
Main PID: 15060 (firewalld)
Tasks: 4 (limit: 10938)
Memory: 28.1M
CPU: 6.127s
CGroup: /system.slice/firewalld.service
└─15060 /usr/bin/python3 -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 funzionante, puoi utilizzare l’utilità firewall-cmd
per ottenere e impostare le informazioni sulla policy del firewall.
Prima facciamo un elenco dei servizi già consentiti:
- firewall-cmd --permanent --list-all
Outputpublic (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 puoi abilitare per nome, digita:
- firewall-cmd --get-services
Per aggiungere un servizio che dovrebbe essere consentito, utilizza l’opzione --add-service
:
- firewall-cmd --permanent --add-service=http
Questo aggiungerà il servizio http
e consentirà il traffico TCP in ingresso alla porta 80
. La configurazione si aggiornerà dopo il ricaricamento del firewall:
- firewall-cmd --reload
Ricorda che dovrai aprire esplicitamente il firewall (con servizi o porte) per eventuali servizi aggiuntivi che potresti configurare in seguito.
Passaggio 5 — Abilitazione dell’Accesso Esterno per il Tuo Utente Normale
Ora che hai un utente normale non root per un uso quotidiano, devi assicurarti di poterlo utilizzare per accedere via SSH al tuo server.
Nota: Fino a quando non verifichi di poter accedere e utilizzare sudo
con il tuo nuovo utente, dovresti rimanere connesso come root. In questo modo, se riscontri problemi, puoi risolverli e apportare eventuali modifiche necessarie 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 di configurazione dell’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, l’autenticazione tramite password è abilitata per SSH. Puoi accedere al tuo nuovo account utente tramite SSH aprendo una nuova sessione terminale e utilizzando SSH con il tuo nuovo nome utente:
- ssh sammy@your_server_ip
Dopo aver inserito la password del tuo utente normale, sarai connesso. Ricorda, se devi eseguire un comando con privilegi amministrativi, digita sudo
prima, come segue:
- sudo command_to_run
Ti verrà richiesta la password del tuo utente normale quando utilizzi sudo
per la prima volta in ogni sessione (e periodicamente in seguito).
Per migliorare la sicurezza del tuo server, dovresti configurare le chiavi SSH invece di utilizzare l’autenticazione tramite password. Segui questa guida su come configurare le chiavi SSH su Rocky Linux 9 per imparare come configurare l’autenticazione basata su chiavi.
Se l’account Root utilizza l’autenticazione tramite chiave SSH
Se hai effettuato l’accesso al tuo account root utilizzando le chiavi SSH, l’autenticazione tramite password è disabilitata per SSH. Dovrai aggiungere una copia della tua chiave pubblica al file ~/.ssh/authorized_keys
del nuovo utente per effettuare correttamente l’accesso.
Dato che la tua chiave pubblica è già presente nel file ~/.ssh/authorized_keys
dell’account root sul server, puoi copiare quel file e la struttura della directory nel tuo nuovo account utente.
Il modo più semplice per copiare i file con i permessi e la proprietà corretti è utilizzare il comando rsync
. Questo copierà la directory .ssh
dell’utente root, preservando i permessi e modificando i proprietari dei file, il tutto in un singolo comando. Assicurati di modificare le parti evidenziate del comando di seguito 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 finale rispetto a quelle senza una barra finale. Quando si utilizza rsync
di seguito, assicurarsi che la directory di origine (~/.ssh
) non includa una barra finale (verificare di non utilizzare ~/.ssh/
).
Se si aggiunge accidentalmente una barra finale al comando, rsync
copierà i contenuti della directory root dell’account ~/.ssh
nell’home directory dell’utente sudo
invece di copiare l’intera struttura della directory ~/.ssh
. I file saranno nella posizione sbagliata e SSH non sarà in grado di trovarli e utilizzarli.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Ora, torna su un nuovo terminale sulla tua macchina locale e apri una nuova sessione SSH con il tuo utente non-root:
- ssh sammy@your_server_ip
Dovresti effettuare l’accesso all’account del nuovo utente senza utilizzare una password. Ricorda, se hai bisogno di eseguire un comando con privilegi amministrativi, digita sudo
prima come segue:
- 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. Ad esempio, puoi iniziare installando il server web Nginx.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-9