Introduzione
Il server Web Apache HTTP è uno dei server Web ampiamente utilizzati, in particolare sulle distribuzioni Linux, che è una piattaforma multipiattaforma gratuita utilizzata da un vasto numero di siti Web su Internet. Il server web Apache utilizza HTTP per elaborare la richiesta e intrattenere le informazioni web. Apache ha tantissime funzioni utili e le sue funzionalità possono essere migliorate con moduli extra. Consente inoltre ai programmatori di pubblicare il proprio lavoro su Internet.
Quindi, in questo articolo, discuteremo dell'installazione del server Web Apache e di come proteggerlo dopo l'installazione su Debian 11.
Requisiti
Prima dell'installazione, devi essere loggato nel sistema Debian con accesso a tutti i privilegi sudo. Si consiglia inoltre di completare la configurazione iniziale del server sui sistemi Debian 11 appena installati.
Installare Apache su Debian
L'ultima versione dei pacchetti Apache è disponibile nel repository Debian 11 predefinito. Quindi possiamo installarlo direttamente usando il gestore dei pacchetti.
Dopo il login, apri il terminale e aggiorna apt cache con il comando indicato di seguito:
sudo apt update
Dopo aver aggiornato la cache di apt, ora installa Apache2 sul tuo Debian 11 Bullseye con il comando:
sudo apt install apache2
Premere "y" per qualsiasi conferma richiesta dall'installatore.
Una volta completato il processo di installazione. Verifica la versione di Apache installata eseguendo il comando seguente:
apache2 -v
Server version: Apache/2.4.48 (Debian)
Server built: 2021-08-12T11:51:47
Un altro modo per verificare l'installazione di Apache è accedere alla pagina predefinita di Apache2 utilizzando l'indirizzo IP o l'hostname del server. Se non conosci il tuo hostname, esegui prima il comando indicato di seguito:
hostname -I
Inserisci l'hostname o l'indirizzo IP del tuo server nella barra degli URL del browser e premi Invio, la pagina predefinita di Apache2 Debian si aprirà.
Gestire il servizio Apache
Al termine dell'installazione, il servizio Apache può essere gestito utilizzando i comandi "systemctl", eseguire il comando indicato di seguito per verificare lo stato del server:
sudo systemctl status apache2.service
Premere "q" per uscire. Pochi comandi per gestire il servizio Apache in Debian 11 sono:
Per avviare il server utilizzare il comando:
sudo systemctl start apache2.service
Allo stesso modo, per interrompere il servizio, sostituire start con uno stop nel comando precedente:
sudo systemctl stop apache2.service
Il servizio può essere riavviato utilizzando:
sudo systemctl restart apache2.service
Configurare le impostazioni del firewall
Se il tuo sistema dispone di un firewall, dovrai autorizzare l'accesso a determinate porte Web in modo che gli utenti esterni possano utilizzarle. Eseguire il comando indicato di seguito per consentire la porta 80 (HTTP) e 443 (HTTPS) nel terminale Debian:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Ora verifica controllando lo stato:
sudo ufw status
Se non è attivo, per abilitarlo all'utilizzo:
sudo ufw enable
Creare un host virtuale in Apache
In Apache, gli host virtuali consentono di gestire numerosi siti Web su un singolo server. Nel server web Apache, creeremo un host virtuale. Per farlo, creeremo prima un sito Web chiamato sample.com con il blocco server fornito di serie con Apache.
Iniziamo configurando il primo host virtuale del tuo server Apache. Utilizzeremo il dominio di esempio come "sample.com", ma puoi denominarlo in base alle tue preferenze:
sudo mkdir -p /var/www/sample.com
Ora cambia le autorizzazioni e il proprietario con il comando indicato di seguito:
sudo chown -R www-data:www-data /var/www/sample.com
sudo chmod -R 755 /var/www/sample.com
Eseguendo il comando indicato di seguito, per testare il nostro sito testdomain.info, ora costruiremo una pagina di indice di esempio. Per farlo, utilizzeremo l'editor nano per generare un file HTML simile a questo:
sudo nano /var/www/sample.com/index.html
Inserisci il contenuto indicato di seguito nella pagina dell'indice e premi Ctrl+O per salvare il file e Ctrl+X per uscire dal file e tornare al terminale:
<html>
<head>
<title>Welcome to the page sample.com!</title>
</head>
<body>
<h1>Congratulations! Your sample.com server succeeded!</h1>
</body>
</html>
Eseguendo il comando indicato di seguito in un terminale, creeremo un file host virtuale, che servirà il contenuto del server:
sudo nano /etc/apache2/sites-available/sample.com.conf
Verrà aperto un file di testo, inserire il seguente contenuto:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName sample.com
ServerAlias www.sampe.com
DocumentRoot /var/www/sample.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Premi Ctrl+O per salvare il file e Ctrl+X per uscire dal file e tornare al terminale.
Abilitare la configurazione del dominio
Eseguire il comando seguente per attivare il file dell'host virtuale:
sudo a2ensite sample.com.conf
Disabilita la configurazione Apache predefinita eseguendo il comando indicato di seguito:
sudo a2dissite 000-default.conf
Le nuove modifiche ad Apache vengono rese applicabili eseguendo il comando indicato di seguito:
sudo systemctl restart apache2
Risolvere l'errore dell'hostname
Ora, dobbiamo controllare la nostra configurazione per eventuali errori di sintassi, per testare la configurazione eseguire il comando indicato di seguito:
sudo apache2ctl configtest
Ciò causerà un errore, ma non preoccuparti, lo risolveremo. Crea una nuova configurazione "servername.conf" e modifica in un editor di testo:
sudo nano /etc/apache2/conf-avaialable/servername.conf
Ora inserisci il seguente contenuto nel file:
ServerName sample.com
Premi Ctrl+O per salvare il file e Ctrl+X per uscire dal file. Assicurati di cambiare "sample.com" con il tuo nome di dominio effettivo. Ora per abilitare il nome del server conf, esegui il comando indicato di seguito:
sudo a2enconf servername
Ora esegui di nuovo il comando precedente per testare la configurazione:
sudo apache2ctl configtest
Vedrai che l'errore del nome host è stato risolto ora.
Come proteggere Apache2 su Debian 11
Per proteggere il server Apache, modifica il file "security.conf" , esegui il comando indicato di seguito per aprire il file:
sudo nano /etc/apache2/conf-enabled/security.conf
Inserisci o aggiorna il contenuto seguente nel file:
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Header always append X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection: "1; mode=block"
Header always set X-Content-Type-Options: "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Salva il file e chiudilo.
Imposta il protocollo SSLCipherSuite e SSL a livello di server per utilizzare cifrari sicuri per servire il sito Web modificando il file ssl.conf
:
sudo nano /etc/apache2/mods-enabled/ssl.conf
Ora inserisci il contenuto scritto di seguito nel file e premi Ctrl+O per salvare il file e Ctrl+X per uscire dal file:
SSLProtocol -all +TLSv1.2
SSLCipherSuite HIGH:!aNULL:!MD5
Ora esegui il comando reload di Apache per salvare la configurazione:
sudo systemctl restart apache2.service
Questo è tutto. Hai installato e protetto con successo il server Apache.
Conclusione
Apache Web Server è un server open source utilizzato da molti siti Web su Internet e consente agli sviluppatori di pubblicare il proprio lavoro su Internet. Questo server è disponibile su tutti i sistemi operativi, ma in questo articolo discutiamo della sua installazione sull'ultima versione di Debian (sistema operativo Linux) e spieghiamo anche come testarlo e proteggerlo dopo la corretta installazione. Sarai in grado di installare con successo Apache2 su Debian 11 Bullseye e configurare il server dopo aver seguito questa guida.