15 semplici suggerimenti per la protezione di un server cPanel
Pubblicato: 2017-06-27
La sicurezza dei server è un argomento complesso e sfaccettato che può richiedere anni per comprendere e padroneggiare appieno.
La maggior parte degli amministratori deve sviluppare e implementare diligentemente una vasta gamma di misure di sicurezza sui propri server per prevenire attacchi e violazioni.
Le misure di sicurezza in questione possono essere semplici come richiedere password più sicure e complesse come implementare protocolli di crittografia aggiornati per i dati archiviati.
Fortunatamente, tuttavia, la sicurezza del server cPanel cade più verso l'estremità "semplice" dello spettro di sicurezza del server.
Ecco 15 semplici modi per migliorare significativamente la sicurezza del tuo server in pochi minuti.
1. Protezione di SSH
Sebbene SSH sia un protocollo crittografato, non è impermeabile. Ciò significa che, in qualità di amministratore, è necessario esercitare la due diligence durante la configurazione.
Ecco tre semplici passaggi per aumentare la sicurezza del tuo SSH.
1.Cambia la porta SSH
Mantenere SSH sulla porta predefinita 22 lo rende vulnerabile agli attacchi di forza bruta. Per prevenire questi attacchi dovresti selezionare una porta casuale per SSH per rendere più difficile per i potenziali aggressori discernere la sua posizione.
Ecco i passaggi per modificare la porta SSH.
- Accedi al tuo server tramite SSH.
- Modifica il file di configurazione SSH che si trova in /etc/ssh/sshd_config eseguendo il comando seguente:
nano /etc/ssh/sshd_config - Impostare una porta casuale per la connessione SSH alla seguente riga.Originale: Porta 22
Nuova linea: Porta 2468 - Ora, riavvia il servizio SSH eseguendo il comando seguente:
riavvio del servizio sshd
2.Disabilita accesso root
Per aggiungere un ulteriore livello di sicurezza e rafforzare ulteriormente il tuo SSH, puoi disabilitare l'utente root e creare un utente separato per accedere al server.
Ecco come:
- Accedi al tuo server tramite SSH. Prima di disabilitare il login di root, creeremo un utente per accedere al server:
adduser new_username_name
passwd nuovo_nome_utente_nome - Ti verrà chiesto di impostare una password per questo nuovo utente. Assicurati che la password sia il più forte possibile (almeno 10 caratteri con diversi numeri e simboli) e quindi aggiungi il nuovo utente in un gruppo di ruote assegnandogli l'accesso al server utilizzando la seguente riga di codice.
# usermod -aG wheel new_username_name - Ora, disabilita l'utente root. Modifica il file di configurazione SSH che si trova in /etc/ssh/sshd_config .
nano /etc/ssh/sshd_config - Modificare la riga: "PermitRootLogin sì" in "PermitRootLogin no"
- Ora riavvia il servizio SSH eseguendo il comando seguente.
riavvio del servizio sshd
3.Disabilitare SSH V1
Con l'inizio di SSHv2 che rende il suo predecessore SSHv1 quasi obsoleto, si consiglia vivamente di disabilitare l'SSH meno sicuro e obsoleto per migliorare la sicurezza del server.
- Accedi al tuo server tramite SSH e modifica il file di configurazione SSH che si trova in /etc/ssh/sshd_config .
- Decommenta la riga seguente.
Protocollo 2,1 - E cambialo in:
Protocollo 2 - Ora, riavvia il servizio SSH eseguendo il comando seguente:
# riavvio del servizio sshd
2. Abilitazione della protezione cPHulk
Un attacco di forza bruta è un metodo di hacking che si basa su un sistema automatizzato per indovinare la password del tuo server web.
cPHulk è un servizio facile da usare che proteggerà il tuo server dalla maggior parte degli attacchi di forza bruta.
Per abilitare cPHulk, accedi a WHM→ Security Center → cPHulk Brute Force Protection e fai clic su Enable .
Ora puoi impostare regole personalizzate in base al nome utente cPanel, all'indirizzo IP e ad altri parametri.
Una volta raggiunto un determinato numero di tentativi di accesso non riusciti, cPHulk bloccherà qualsiasi ulteriore tentativo dall'indirizzo IP utilizzato.
Nota: se disponi di un IP statico, ti consigliamo vivamente di aggiungerlo a Whitelist Management in modo da non bloccarti fuori dal tuo server.
3. Imposta ConfigServer Firewall (CSF)
CSF (ConfigServer Security and Firewall) è uno dei firewall più popolari per i server cPanel.
Non solo funge da firewall eseguendo la scansione di vari file di registro di autenticazione, ma esegue anche la scansione del server su base regolare e fornisce consigli personalizzati per migliorare la sicurezza del server.
Oltre alle sue funzionalità principali, CSF ti dà anche accesso a una serie di utili funzionalità come "Visualizza registri di sistema", registri IPTable, statistiche IFD e molto altro.
Installazione di ConfigServer Firewall
È abbastanza facile installare CSF nel tuo server con cPanel. Fare riferimento alla nostra guida passo passo su Come installare ConfigServer Firewall su cPanel/WHM?
Dopo aver seguito le indicazioni della nostra guida sopra citata, puoi gestire il CSF direttamente da WHM.
Per farlo, accedi al tuo WHM, vai su Plugin → ConfigServer Security & Firewall.
Qui ti verranno presentate una serie di opzioni e misure che puoi utilizzare per rafforzare ulteriormente la tua sicurezza.
4. Imposta ClamAV Antivirus
Sebbene i server Linux abbiano una resilienza più "naturale" ai virus rispetto alle loro controparti basate su Windows, è comunque considerato saggio installare un'applicazione antivirus aggiuntiva.
ClamAV, che è facile da installare come plug-in sul server, è uno dei plug-in antivirus open source più popolari per i server cPanel e consente ai singoli utenti di scansionare la propria home directory e le e-mail alla ricerca di file potenzialmente dannosi.
Ancora una volta, per brevità, fare riferimento alla nostra guida passo passo Come installare il plug-in ClamAV da WHM .
Una volta installato ClamAV, puoi scansionare qualsiasi account cPanel particolare con accesso a livello di utente cPanel. Ecco la nostra guida su Come eseguire la scansione antivirus ClamAV da cPanel .
5. Passa a CloudLinux
CloudLinux, un sostituto a pagamento per CentOS gratuito è considerato uno dei sistemi operativi più sicuri per i server cPanel.
Con CloudLinux, puoi aumentare la densità e la stabilità del server mantenendo gli account cPanel isolati l'uno dall'altro.
Compie questa impresa utilizzando LVE (Lightweight Virtualized Environment) che limita le risorse del server come elaborazione, memoria e connessioni per ciascun utente, garantendo così che un singolo utente non possa mettere a rischio la stabilità del server e causare il rallentamento di tutti i siti.
Il sistema operativo "ingabbia" gli utenti gli uni dagli altri per evitare violazioni della sicurezza. Qualsiasi script o malware instabile o compromesso non può essere diffuso sul server da alcun account compromesso.
Di seguito sono elencate le principali funzionalità di sicurezza del sistema operativo CloudLinux:
- CageFS
- InduritoPHP
- SecureLink
CageFS
CageFS incapsula ogni utente, impedendo agli utenti di vedersi e leggere informazioni sensibili. Previene inoltre un gran numero di attacchi, inclusa la maggior parte degli attacchi di escalation dei privilegi e di divulgazione di informazioni.
→ Con CageFS gli utenti avranno accesso solo ai file sicuri.
→ Gli utenti non possono vedere i file di configurazione del server come i file di configurazione di Apache.
→ Gli utenti non possono visualizzare altri utenti e non hanno modo di rilevare la presenza di altri utenti.
→ Gli utenti non possono vedere i processi di altri utenti.
InduritoPHP
La vecchia versione di PHP 5.2, 5.3, 5.4, sebbene ampiamente utilizzata, presenta vulnerabilità che non sono state corrette dalla comunità di PHP.net.
HardenedPHP in CloudLinux risolve queste vulnerabilità e protegge le versioni precedenti e non supportate.
→ Garantisce che l'applicazione e il server siano protetti applicando patch a tutte le versioni di PHP.
→ Fornisce sicurezza e flessibilità a tutti gli utenti.
→ Aumenta la fidelizzazione dei clienti non forzando gli aggiornamenti a una versione PHP più recente
→ Offre la selezione della versione PHP da più versioni installate sullo stesso server Web con l'opzione del selettore PHP
SecureLink
SecureLinks è una tecnologia a livello di kernel che rafforza il server impedendo tutti gli attacchi di collegamento simbolico (collegamento simbolico) noti e contemporaneamente impedendo agli utenti malintenzionati di creare file di collegamento simbolico.
→ Con SecureLinks, puoi prevenire gli attacchi impedendo agli utenti malintenzionati di creare collegamenti simbolici e hardlink a file di cui non sono proprietari.
→ Impedisce agli utenti malintenzionati di creare file di collegamento simbolico.
→ Migliora il livello di sicurezza del server dagli attacchi di collegamento simbolico.
6. Disabilita la richiesta di ping
Un ping è una richiesta ICMP (Internet Control Message Protocol) e dovrebbe essere disabilitato per evitare attacchi "Ping of Death" e "Ping Flood".
Ping della morte
Ping of Death è un attacco Denial of Service causato da un utente malintenzionato che invia deliberatamente un pacchetto IP più grande di quanto consentito dal protocollo IP.
Di conseguenza, molti sistemi operativi non sanno cosa fare quando ricevono pacchetti di grandi dimensioni, la macchina verrà bloccata, arrestata in modo anomalo o riavviata.
Ping Flood
Ping Flood è un semplice attacco denial-of-service in cui l'attaccante travolge la vittima con i pacchetti ICMP nella speranza che la vittima risponda con una risposta ICMP impacchettata, consumando così la larghezza di banda in entrata e in uscita.
Se la macchina di destinazione è più lenta, è possibile consumare i suoi cicli della CPU creando un notevole rallentamento nelle capacità di elaborazione del sistema.
Per disabilitare la risposta al ping, esegui il seguente comando come utente root:
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
Per disabilitare la risposta al ping utilizzando il firewall IPtables, eseguire il comando seguente come utente root:
iptables -A INPUT -p icmp -j DROP
7. Configurare il controllo di accesso dell'host
In alcuni casi potresti voler consentire servizi specifici a un solo IP. Per raggiungere questo obiettivo, tutto ciò che devi fare è configurare correttamente il tuo Host Access Control, che ti consente di creare regole che approvano o negano l'accesso al server in base all'indirizzo IP dell'utente.
Negare tutte le connessioni e consentire solo le connessioni che desideri procedere è la pratica più sicura per aumentare la sicurezza del tuo server contro attacchi di forza bruta su porte specifiche.
Per configurare una regola con Host Access Control, avrai bisogno di tre cose.
- Il servizio per il quale si desidera creare una regola
- L'indirizzo IP per il quale si desidera consentire o negare i privilegi
- E l'azione che vuoi intraprendere (es. Consenti o Nega)
Per impostare le regole in Host Access Control, accedi al tuo WHM, vai a Security Center → Host Access Control .
Di seguito è riportato un esempio di blocco del servizio SSH:
Demone | Lista di accesso | Azione | Commento |
ssh | 192.168.3.152 | permettere | Consenti l'accesso SSH locale |
ssh | 1xx.6x.2xx.2xx | permettere | Consenti SSH dal mio IP specifico |
ssh | TUTTO | negare | Nega l'accesso da tutti gli altri IP |
Nota: le regole hanno un ordine di precedenza. Dovrai mettere le regole "consenti" prima delle regole "nega" se scegli di usare il permesso da pochi, quindi negare da tutte le tecniche.
8. Imposta Mod_Security
Nel 2017, oltre il 70% di tutti gli attacchi ai server dannosi viene eseguito a livello di applicazione web.
Al fine di mitigare il rischio associato al server specifico, è una best practice del settore distribuire un WAF o un firewall per applicazioni Web per aumentare la sicurezza esterna e rilevare/prevenire gli attacchi prima che raggiungano le applicazioni Web.
ModSecurity è uno dei firewall di applicazioni Web più vecchi e popolari in circolazione ed è progettato per prevenire:
- SQL Injection
- Attacchi iFrame
- Rilevamento webshell/backdoor
- Rilevamento di attacchi botnet
- Attacchi HTTP Denial of Service (DoS).
L'installazione di mod_security può essere eseguita in pochi minuti con poche modifiche all'infrastruttura esistente.
Puoi abilitarlo dalla configurazione di Easy Apache.
Per creare le regole Mod_Security, vai su ModSeurity Tools e fai clic su Elenco regole.
Nelle nuove finestre verranno visualizzate tutte le regole. Puoi fare clic su Aggiungi regola per creare nuove regole. Tieni presente che dovrai riavviare Apache per distribuire nuove regole.
Per saperne di più su ModSecurity Tools clicca qui.
9. Scansiona il tuo sistema con RootKit Hunter
Rootkit Hunter o rkhunter è uno strumento basato su UNIX che esegue la scansione di rootkit, backdoor e possibili exploit locali.
Confronta gli hash SHA-1 di file importanti con i file che si trovano nei database online per garantire l'integrità dei file.
Cerca anche directory rootkit predefinite, permessi eccessivi, file nascosti, stringhe sospette nei moduli del kernel e una miriade di altre cose che possono potenzialmente compromettere la sicurezza del tuo server.
Installazione di RootKit Hunter
Modificare la directory di lavoro corrente nella directory di installazione desiderata.
cd /usr/local/src
Scarica il pacchetto rkhunter usando il comando wget.
wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.4.2.tar.gz
Decomprimi l'archivio rkhunter scaricato.
tar -zxvf rkhunter-1.4.2.tar.gz
Cambia la directory di lavoro corrente nella directory di rkhunter. Assicurati di sostituire il nome della directory con il nome della directory effettivo. Nel nostro caso, è "rkhunter-1.4.2" che può essere modificato quando vengono rilasciati nuovi aggiornamenti.
cd rkhunter-1.4.2
Installa il pacchetto rkhunter eseguendo lo script di installazione.
./installer.sh –layout default –install
Questo installerà lo strumento rkhuter nel server.
Configurazione di rkhunter
Puoi trovare il file di configurazione di rkhunter nel percorso /etc/rkhunter.conf . Modificando i valori dei parametri in questo file, possiamo modificare le proprietà di rkhunter per proteggere il server. Per consentire l'accesso come root tramite SSH
ALLOW_SSH_ROOT_USER = sì
directory di installazione di rkhunter
INSTALLDIR=/percorso/di/installazione/directory
Directory del database di rkhunter
DBDIR=/var/lib/rkhunter/db
directory degli script di rkhunter
SCRIPTDIR=/usr/local/lib64/rkhunter/scripts
directory temporanea di rkhunter
TMPDIR=/var/lib/rkhunter/tmp
Scansione manuale con rkhunter
Per eseguire una scansione manuale con rkhunter esegui il comando sotto.
/usr/local/bin/rkhunter -c
Per impostazione predefinita, rkhunter viene eseguito in modalità interattiva. rkhunter esegue una serie di scansioni e dopo ogni serie di scansioni, dovrai premere Invio per continuare la scansione.
Per saltare la modalità interattiva, esegui e scansiona tutto il set usa il comando seguente. Si noti che -c serve per controllare il sistema locale e –sk per saltare la pressione dei tasti.
/usr/local/bin/rkhunter -c -sk
Per eseguire la scansione dell'intero file system, eseguire il comando seguente.
rkhunter – controlla
Pianificazione delle scansioni automatiche con Rkhunter
Per creare una scansione automatica pianificata, crea uno script che esegua la scansione di rkhunter e invii via e-mail i risultati della scansione.
Se desideri eseguire la scansione di rkhunter ogni giorno, carica lo script nella directory /etc/cron.daily e in /etc/cron.weekly per le scansioni settimanali.
Apri un file in un editor e scrivi lo script seguente per programmarlo quotidianamente.
vi /etc/cron.daily/rkhunter.sh
Script per programmare la scansione giornaliera
#!/bin/sh
(
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob --report-warnings-only
) | /bin/mail -s 'rkhunter Daily Run (HostnameOfServer)' youremail@address
Nota: assicurati di modificare HostnameOfServer e yourremail@address con il nome host del server effettivo e l'indirizzo e-mail a cui devono essere inviate le notifiche nello script.
Aggiornamento e opzioni di rkhunter
Per controllare la versione corrente di rkhunter.
/usr/local/bin/rkhunter –versioncheck
Per aggiornare la versione di rkhunter.
/usr/local/bin/rkhunter –aggiornamento
Se i file di database sono aggiornati, per controllare e salvare i valori e le proprietà aggiornati.
/usr/local/bin/rkhunter –propupd
I registri di rkhunter memorizzano tutte le attività eseguite e gli errori riscontrati dall'applicazione. Per controllare i log di rkhunter.
/var/log/rkhunter.log
Puoi fare riferimento alle altre opzioni di rkhunter con.
/usr/local/bin/rkhunter –help
10. Scansiona il tuo sistema con Maldet
Maldet, noto anche come Linux Malware Detect (LMD) è uno scanner di malware per sistemi Linux progettato per rilevare efficacemente backdoor php, darkmailer e una serie di altri file dannosi che potrebbero essere presenti su siti Web compromessi.
Installazione di Maldet
- SSH sul server e scarica il file tar.
wget href="http://www.rfxn.com/downloads/maldetect-current.tar.gz"> - Estrarre il file.
tar -xzf maldetect-current.tar.gz - Vai alla cartella maldet.
cd maldetect-* - Per installare maldet, esegui il comando seguente.
sh ./install.sh
Usa Maldet nel server Linux
Dovresti sempre aprire una nuova sessione dello schermo ed eseguire la scansione poiché potrebbero essere necessarie ore per la scansione a seconda dell'utilizzo dello spazio su disco del tuo sistema. Per eseguire una scansione, utilizzare il comando seguente.
maldet -a /percorso/di/scansione OPPURE
maldet –scan-all/percorso/di/scansione
Puoi anche semplicemente eseguire il comando seguente per scansionare l'intero sistema
maldet -a /
Una volta completata la scansione del server, alla fine otterrai SCAN ID. Per visualizzare il rapporto scansionato, utilizzare il comando seguente. Tieni presente che dovrai sostituire SCAN ID con l'ID effettivo.
maldet – report SCAN ID
Es: maldet – rapporto 062617-2220.1771
Per mettere in quarantena tutti i malware risultanti da una scansione precedente, esegui il comando seguente.
maldet -q ID SCANSIONE
Ex. maldet -quarantena 062617-2220.1771
Automatizza Maldet
Puoi modificare il file di configurazione di maldet conf.maldet per automatizzare i processi come,
- Imposta email_alert su 1 per inviare rapporti all'account di posta elettronica configurato.
- In email_addr , imposta l'account e-mail su cui desideri ricevere i rapporti di scansione.
- Modifica quar_hits su 1 in modo che qualsiasi malware trovato venga spostato nella directory ' /usr/local/maldetect/quarantine ' e ricevi una notifica sull'indirizzo e-mail configurato.
- cambia quar_susp in 1 , Ciò consentirà la sospensione dell'account degli utenti di cPanel o imposterà l'accesso alla shell su ' /bin/false ' per gli utenti non cPanel.
11. Imposta Cron Job per eseguire ClamAV ogni giorno
Poiché le azioni di aggiunta, aggiornamento ed eliminazione si verificano rapidamente con i file che risiedono sul server, è di fondamentale importanza garantire che tutte le nuove modifiche siano sicure e scansionate correttamente con un'applicazione antivirus.
È possibile utilizzare il lavoro cron dello scanner ClamAV per eseguire scansioni settimanali che verranno avviate automaticamente durante le "ore di riposo".
Utilizzare il comando seguente per eseguire questo cron.
for i in awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
; do /usr/local/cpanel/3rdparty/bin/clamscan -i -r /home/$i 2>>/dev/null; fatto >> /root/infezioni&
Questo comando ricerca ricorsivamente la home directory per spam e file infetti.
12. Disabilita le informazioni sull'intestazione di Apache
Poiché la firma del tuo server contiene informazioni come le versioni di Apache e del sistema operativo, è importante nascondere queste informazioni da occhi indiscreti del pubblico utilizzando WHM Login.
- Una volta effettuato l'accesso a WHM. Passare a Configurazione del servizio → Configurazione Apache → Configurazione globale .
- Impostare i seguenti valori.
Firma del server = disattivata
Token server = solo prodotto
13. Nascondi le informazioni sulla versione PHP
Come le intestazioni di Apache, non dovresti esporre anche le informazioni sulla versione di PHP. Ecco i passaggi per nascondere queste informazioni.
- Una volta effettuato l'accesso a WHM. Passare a Configurazione del servizio → Editor di configurazione PHP .
- Impostare i seguenti valori.
esporre_php= “spento”
14. Disabilita FTP e usa invece SFTP
Anche se non lo indovineresti dai loro nomi, i protocolli FTP e SFTP non potrebbero essere più diversi l'uno dall'altro.
Con l'FTP standard, tutti i dati trasmessi tra il client e il server sono in testo normale. Ciò consente a un intercettatore di recuperare le tue informazioni riservate, comprese le credenziali di accesso e altri messaggi "Privati".
A differenza dell'FTP standard, SFTP (SSH File Transfer Protocol) crittografa sia i comandi che i dati, impedendo la trasmissione di password e informazioni sensibili in testo normale sulla rete.
Fare clic qui per i passaggi per generare la chiave SSH e connettersi al server tramite client SFTP.
Se desideri solo consentire la connessione SFTP e disabilitare il piano FTP, segui i passaggi seguenti in WHM/cPanel.
- Accedi al tuo WHM/cPanel come utente root.
- Passare a Configurazione server FTP . In TLS Encryption Support cambialo in Richiesto (comando) e fai clic sul pulsante Salva .
15. Protezione del cPanel e dell'accesso a WHM
Forza l'URL HTTPS per accedere a cPanel/WHM
Per salvaguardare il tuo accesso cPanel o WHM con una crittografia basata su SSL, segui questi due semplici passaggi.
- Accedi a WHM e vai a Home → Configurazione del server → Impostazioni di modifica.
- Scorri il lato destro fino alla scheda di reindirizzamento e utilizza le impostazioni mostrate nell'immagine sottostante.
Disabilitazione dell'accesso cPanel-ID
Un server cPanel consente due tipi di login.
Il primo è il nome utente e la password di accesso predefiniti/standard e il secondo è quello di accedere al server con un ID cPanel.
Un ID cPanel consente agli utenti di distribuire un unico nome utente e password per accedere a un'ampia varietà di servizi cPanel.
Sebbene questo metodo sia più che adatto per l'organizzazione che gestisce un data center di grandi dimensioni e assume frequentemente nuovi tecnici, se si dispone di un solo server, è necessario disabilitarlo seguendo i passaggi seguenti.
- Accedi a WHM e vai a Home → Centro sicurezza → Gestisci autenticazione esterna .
- Modifica l'accesso cPanel-ID per disabilitare come mostrato nell'immagine sottostante.
Conclusione
Implementando questi 15 semplici suggerimenti sul tuo VPS o server dedicato, ridurrai immediatamente la tua vulnerabilità agli attacchi sia interni che esterni e aumenterai la sicurezza del tuo sistema nel giro di poche ore.
E mentre questi suggerimenti ridurranno il numero di minacce al tuo server, non sono una cura per tutti.
Per ottimizzare la sicurezza del tuo sistema, devi fare la tua due diligence e aggiornarti regolarmente sugli avvenimenti più recenti nel mondo della sicurezza dei server.
Tuttavia, con solo poche ore di ricerca al mese, puoi rimanere all'avanguardia nella sicurezza di cPanel e assicurarti che tu e la tua azienda rimarrete al sicuro per gli anni a venire.
Hai domande sui 15 suggerimenti sopra elencati? Hai trovato nuove funzionalità di sicurezza dei server cPanel che desideri condividere? Fateci sapere nei commenti qui sotto.