Introduzione
Apache è uno dei server Web open source più popolari oggi disponibili, che offre un robusto set di funzionalità e prestazioni elevate. In questo articolo, ti mostreremo come installare Apache su RHEL e CentOS Stream 9 e quindi proteggerlo per l'uso in produzione.
Prerequisiti
Prima di iniziare, devi avere accesso a un server che esegue RHEL e CentOS Stream 9. Dovresti anche disporre dei privilegi di root o sudo in modo da poter installare i pacchetti e apportare modifiche al sistema. Inoltre, dovrai avere una conoscenza di base dei comandi di Linux e come utilizzare un editor di testo come nano o vim.
Installare Apache
Per installare Apache, devi prima aggiungere il repository EPEL al tuo sistema. Questo può essere fatto con il seguente comando:
sudo dnf install epel-release
Successivamente, puoi installare Apache usando il seguente comando:
sudo dnf install httpd
Una volta completata l'installazione, puoi avviare Apache con il seguente comando:
sudo systemctl start httpd
Per assicurarti che Apache si avvii automaticamente all'avvio, esegui il seguente comando:
sudo systemctl enable httpd
Testare l'installazione
Per testare l'installazione, apri un browser Web e vai a http://your-server-ip. Dovresti vedere una pagina che dice "Benvenuto nel tuo server Web Apache". Ciò conferma che Apache è attivo e funzionante sul tuo sistema.
Proteggere Apache
Ora che Apache è installato, è il momento di proteggerlo per l'uso in produzione. Ecco alcuni passaggi fondamentali da seguire:
Aggiorna Apache all'ultima versione
È importante mantenere aggiornata l'installazione di Apache per sfruttare le correzioni di sicurezza e altri miglioramenti. Puoi aggiornare Apache usando il seguente comando:
sudo dnf update httpd
Disabilita l'elenco delle directory
Per impostazione predefinita, Apache visualizzerà un elenco di directory se non è presente alcun file di indice in una directory. Questo può essere un rischio per la sicurezza, quindi è meglio disabilitare l'elenco delle directory. Puoi farlo aggiungendo le seguenti righe al file di configurazione di Apache che si trova in /etc/httpd/conf/httpd.conf:
<Directory /var/www/html>
Options -Indexes
</Directory>
Configurare un firewall
Un firewall può aiutarti a proteggere il tuo server da accessi non autorizzati bloccando il traffico in entrata su determinate porte. Su RHEL e CentOS Stream 9, puoi utilizzare il servizio firewall integrato, firewalld, per controllare il traffico in entrata. Per consentire il traffico verso Apache, eseguire il seguente comando:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Abilitare la crittografia SSL/TLS
Per crittografare i dati trasmessi tra il server e i client, è necessario abilitare la crittografia SSL/TLS. Questo può essere fatto ottenendo un certificato SSL e configurando Apache per usarlo. È possibile creare un certificato autofirmato utilizzando il seguente comando:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache.key -out /etc/ssl/certs/apache.crt
Successivamente, è necessario configurare Apache per utilizzare il certificato. Questo può essere fatto aggiungendo le seguenti righe al file di configurazione di Apache che si trova in /etc/httpd/conf/httpd.conf:
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName your-server-name
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Riavvia Apache dopo aver apportato queste modifiche utilizzando il seguente comando:
sudo systemctl restart httpd
Limitare l'accesso ai file sensibili
È importante limitare l'accesso a file riservati come file di configurazione e registri. Puoi farlo aggiungendo le seguenti righe al file di configurazione di Apache che si trova in /etc/httpd/conf/httpd.conf:
<FilesMatch "\.(log|cfg)$">
Require all denied
</FilesMatch>
Conclusione
Seguendo i passaggi descritti in questo articolo, hai installato e protetto correttamente Apache su RHEL e CentOS Stream 9. Questi sono solo alcuni dei passaggi di base per proteggere l'installazione di Apache e dovresti sempre rimanere aggiornato sulla sicurezza migliore pratiche e sviluppi sul campo per garantire che il tuo server rimanga sicuro. Inoltre, è importante monitorare regolarmente i log di Apache e tenere d'occhio eventuali segni di attività dannose o incidenti di sicurezza. Con le giuste precauzioni in atto, puoi assicurarti che il tuo server Apache funzioni in modo fluido e sicuro.