La sicurezza è una considerazione essenziale per qualsiasi server avviato in un ambiente di produzione. L'ultima versione di Rocky Linux 8 è dotata di solide funzionalità di sicurezza. Tuttavia, non tutti sono attivi o configurati correttamente per impostazione predefinita, quindi una nuova installazione è sempre vulnerabile a hack e attacchi di intrusione.
In questa guida, daremo un'occhiata ad alcune attività importanti da eseguire sul server per la configurazione iniziale e il rafforzamento del server di base.
Prerequisiti
- Un nuovo server Rocky Linux 8 sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:aggiorna il tuo server
Prima di iniziare, accedi al tuo server Rocky Linux 8 tramite SSH o la console VNC che si trova qui:https://cloud.atlantic.net/
Dopo l'accesso, dovrai installare le ultime patch di sicurezza e gli aggiornamenti sul tuo server. Esegui il comando seguente per aggiornarli.
dnf update -y
I server Atlantic.Net sono impostati come installazioni minime per evitare che pacchetti non necessari vengano installati e lasciati inutilizzati. È possibile installare alcuni pacchetti software di base eseguendo il comando seguente:
dnf install wget git curl bind-utils tree net-tools -y
Passaggio 2:modifica della password di root predefinita
Quando avvii un nuovo server, i tuoi server vengono automaticamente impostati con password sicure. Tuttavia, si consiglia di modificare la password di root ogni 60-90 giorni in seguito per garantire che rimanga sicura. Dovresti creare una password di root con un minimo di 8 caratteri, inclusi caratteri minuscoli, caratteri maiuscoli e numeri.
Puoi cambiare la password di root usando il seguente comando:
passwd root
Passaggio 3:crea un nuovo utente con privilegi sudo
Innanzitutto, crea un nuovo utente con il seguente comando:
adduser user1
Quindi, imposta la password user1 usando il seguente comando:
passwd user1
Dopo aver creato un nuovo utente, dovrai aggiungere questo utente al gruppo sudo wheel. In Rocky Linux 8, una volta aggiunti al gruppo sudo wheel, vengono assegnati automaticamente i permessi sudo/root.
Esegui il comando seguente per aggiungere l'utente al gruppo sudo wheel.
usermod -aG wheel user1
Dopo aver creato l'utente con i permessi sudo/root, accedi a user1 con il seguente comando:
su - user1
Una volta effettuato l'accesso, esegui il seguente comando utilizzando sudo:
sudo dnf update -y
Ti verrà chiesto di fornire la password utente1 per aggiornare il tuo sistema.
Ciò confermerà che il tuo utente sudo funziona come previsto.
Passaggio 4 – Disabilita l'accesso root tramite SSH
Abbiamo già creato un utente amministratore con autorizzazioni sudo/root per eseguire tutte le attività. Non è necessario mantenere l'utente root disponibile e vulnerabile tramite SSH sul server, quindi sarà necessario disabilitare l'accesso root tramite SSH.
Modifica il file di configurazione principale SSH con il seguente comando:
sudo nano /etc/ssh/sshd_config
Trova la riga seguente:
PermitRootLogin yes
Cambialo nella seguente riga:
PermitRootLogin no
Salva e chiudi il file, quindi riavvia il servizio SSH per applicare le modifiche:
systemctl restart sshd
Passaggio 5:modifica della porta predefinita SSH
Per modificare la porta SSH, modificare il file di configurazione principale SSH:
sudo nano /etc/ssh/sshd_config
Trova la riga seguente:
#Port 22
Modificalo nelle seguenti righe:
Port 2020
Salva e chiudi il file, quindi riavvia il servizio SSH per applicare le modifiche:
systemctl restart sshd
Ora puoi accedere al tuo server Atlantic da remoto tramite SSH usando il seguente comando:
ssh [email protected] -p 2020
Passaggio 6:configurare un firewall
firewall-cmd --state
Dovresti vedere che il firewall non è in esecuzione:
not running
Si consiglia di abilitare il firewall e consentire le porte necessarie per l'accesso esterno.
Innanzitutto, abilita il servizio firewalld con il seguente comando:
systemctl start firewalld systemctl enable firewalld
Quindi, consenti la porta SSH 2020 attraverso il firewall con il seguente comando:
sudo firewall-cmd --permanent --add-port=2020/tcp
Quindi, ricarica il servizio firewalld per applicare le modifiche:
sudo firewall-cmd --reload
Ora puoi verificare le porte aggiunte con il seguente comando:
sudo firewall-cmd --list-ports
Dovresti vedere il seguente output:
2020/tcp
Se sul server è installato e in esecuzione un server Web, potrebbe essere necessario consentire il servizio HTTP e HTTPS tramite il firewall per potervi accedere tramite Internet.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
Per consentire l'accesso esterno ai servizi POP3, IMAP e SMTP, esegui il comando seguente:
sudo firewall-cmd --permanent --add-service=pop3s sudo firewall-cmd --permanent --add-service=imaps sudo firewall-cmd --permanent --add-service=smtp
Passaggio 7:installazione di NTP per la sincronizzazione dell'ora
Si consiglia inoltre di installare un server NTP per sincronizzare l'ora e la data dei computer sulla rete in modo da mantenerli accurati e aggiornati.
Innanzitutto, installa il server NTP utilizzando il seguente comando:
sudo dnf install chrony -y
Una volta installato il servizio NTP, avvialo e abilitalo all'avvio al riavvio del sistema:
sudo systemctl start chronyd sudo systemctl enable chronyd
Ora, il tuo server NTP è installato e aggiornerà costantemente l'ora del server dal server NTP.
Passaggio 8:disattivare IPv6
Se non stai utilizzando IPv6, ti consigliamo di disabilitarlo per motivi di sicurezza.
Innanzitutto, controlla se IPv6 è abilitato sulla tua installazione di Rocky Linux 8 utilizzando il seguente comando:
ip a | grep inet6
Dovresti vedere le seguenti righe se IPv6 è abilitato:
inet6 ::1/128 scope host inet6 fe80::200:d8ff:fe62:817/64 scope link inet6 fe80::200:aff:fe62:817/64 scope link
Dovrai creare un nuovo file di configurazione per disabilitare IPv6:
sudo nano /etc/sysctl.d/70-ipv6.conf
Aggiungi le seguenti righe:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Salvare e chiudere il file, quindi ricaricare il file di configurazione con il seguente comando:
sudo sysctl --load /etc/sysctl.d/70-ipv6.conf
Dovresti vedere il seguente output:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Per verificare che IPv6 sia disabilitato, esegui il comando seguente:
ip a | grep inet6
Se il comando non restituisce nulla, hai confermato che IPv6 è stato disabilitato su tutte le tue interfacce di rete.
Fase 9:crea uno spazio di scambio
Uno scambio è uno spazio su un disco che viene utilizzato quando la quantità di memoria RAM fisica è piena. Quando il tuo server esaurisce la RAM, tutte le pagine inattive vengono spostate dalla RAM allo spazio di scambio.
Quando avvii una nuova istanza su Atlantic.Net, non viene creata una partizione di swap. Dovrai creare uno spazio di scambio manualmente dopo aver avviato la nuova istanza.
In genere, lo spazio di scambio dovrebbe essere la metà della RAM esistente. Se hai 1 GB di RAM effettiva, dovrai creare un file da 512 MB.
Innanzitutto, crea uno spazio di scambio (di 512 MB) con il seguente comando:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
Uscita:
524288+0 records in 524288+0 records out 536870912 bytes (537 MB, 512 MiB) copied, 10.3523 s, 51.9 MB/s
Puoi calcolare la dimensione del blocco usando la formula 1024 x 512 MB =524288.
Dopo aver creato lo spazio Swap, formattalo con il seguente comando:
sudo mkswap /swapfile
Uscita:
mkswap: /swapfile: insecure permissions 0644, 0600 suggested. Setting up swapspace version 1, size = 512 MiB (536866816 bytes) no label, UUID=8981408a-549d-47aa-a99a-72870b65212d
Quindi, imposta le autorizzazioni appropriate su /swapfile con il seguente comando:
sudo chown root:root /swapfile sudo chmod 0600 /swapfile
Quindi, attiva lo spazio di scambio usando il seguente comando:
sudo swapon /swapfile
Successivamente, verifica lo spazio di scambio utilizzando il seguente comando:
swapon -s
Uscita:
Filename Type Size Used Priority /swapfile file 524284 0 -2
Successivamente, dovrai aggiungere la voce del file Swap a /etc/fstab per renderlo attivo anche dopo un riavvio.
nano /etc/fstab
Aggiungi la seguente riga:
/swapfile swap swap defaults 0 0
Salva e chiudi il file, quindi verifica lo spazio di Swap utilizzando il seguente comando:
free -m
Dovresti vedere il seguente output:
total used free shared buff/cache available Mem: 1817 263 100 68 1452 1329 Swap: 511 0 511
Conclusione
Nella guida sopra, abbiamo spiegato alcuni passaggi di base per proteggere il tuo server Rocky Linux 8. Ora puoi procedere all'hosting di qualsiasi applicazione nell'ambiente protetto:provalo sul tuo account di hosting VPS da Atlantic.Net!