Introduzione

Webmin è un pannello di controllo (CPANEL) basato sul web per qualsiasi macchina Linux che ti consente di gestire il tuo server attraverso una moderna interfaccia basata sul web.

In questo articolo spiegheremo come installare e configurare Webmin sul tuo server con un certificato valido utilizzando Let's Encrypt e Apache.

Se il vostro intento è installare Webmin su di un server in remoto continuate a leggere, altrimenti se volete installare Webmin sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Prerequisiti

Apache installato, la procedura di installazione la potete trovare qui: Come installare LAMP (Apache MySQL PHP) su Debian 10

Un nome di dominio completo (FQDN), con un record DNS A che punta all'indirizzo IP del server. Seguire questo tutorial: Come cambiare l'hostname su Linux Debian 10

Certbot installato e pronto all'uso. Potete seguire questo tutorial: Come installare Let's Encrypt per Apache su Debian 10

Installare Webmin

Per prima cosa, è necessario aggiungere il repository Webmin in modo da poter installare e aggiornare facilmente Webmin utilizzando il gestore di pacchetti apt.
Aggiungiamo il repository al file /etc/apt/sources.list.

Aprire il file da terminale:

sudo nano /etc/apt/sources.list


Aggiungere questa riga alla fine del file:

deb http://download.webmin.com/download/repository sarge contrib

Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

Aggiungere la chiave PGP Webmin per verificare il nuovo repository:

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Aggiorniamo la lista dei pacchetti per includere il repository di Webmin:

sudo apt update

Adesso installiamo Webmin:

sudo apt install webmin

Possiamo connetterci a Webmin dal browser utilizzando il link e la porta che visualizziamo nel terminale:

Webmin install complete. You can now login to 
https://INDIRIZZO_IP:10000 as root with your 
root password, or as any user who can use `sudo`.

Regola il firewall

Per impostazione predefinita, Webmin utilizza la porta 10000. Se il tuo server utilizza un firewall, dovrai aprire la porta Webmin.

Gli utenti UFW possono aprire la porta 10000 digitando:

sudo ufw allow 10000/tcp

Se si utilizza nftables per filtrare le connessioni al proprio sistema, aprire la porta necessaria eseguendo il comando seguente:

nft add rule inet filter input tcp dport 10000 ct state new,established counter accept

Configurare Webmin per Apache

Per accedere a Webmin, è necessario specificare la porta 10000 e assicurarsi che la porta sia aperta sul firewall.

Useremo un host virtuale Apache per le richieste proxy al server Webmin in esecuzione sulla porta 10000.

Innanzitutto, creare un nuovo file host virtuale Apache nella directory di configurazione di Apache:

sudo nano /etc/apache2/sites-available/TUO_DOMINIO.conf

Aggiungere le seguenti righe di codice, modificando l'email e il dominio:

<VirtualHost *:80>
        ServerAdmin TUA_EMAIL
        ServerName TUO_DOMINIO
        ProxyPass / http://localhost:10000/
        ProxyPassReverse / http://localhost:10000/
</VirtualHost>

Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.

In questo modo Apache effettuerà un redirect delle richieste sulla porta 10000 verso il dominio impostato.

Questa configurazione indica ad Apache di passare le richieste a http://localhost:10000.

Configuriamo Webmin per utilizzare i certificati SSL di Let's Encrypt.
Aprire il seguente file:

sudo nano /etc/webmin/miniserv.conf

Cercare e modificare il campo ssl da 1 a 0, in questo modo:

...
ssl=1
...

Salvare e chiudere il file.

Aprire il seguente file:

sudo nano /etc/webmin/config

Aggiungere la seguente riga alla fine del file:

referers=TUO_DOMINIO

Salvare e chiudere il file.

Riavviare Webmin:

sudo systemctl restart webmin

Abilitare il modulo di Apache proxy_http:

sudo a2enmod proxy_http

Abilitare il nuovo Virtual Host di Apache:

sudo a2ensite TUO_DOMINIO

Riavviare Apache:

sudo systemctl restart apache2

Installare i certificati SSL con Let's Encrypt per Webmin

Se avete seguito il tutorial per installare Certbot, presente nei prerequisiti di questo tutorial, avrete già certbot installato e pronto all'uso.

Certbot utilizza il plugin di Apache per ottenere certificati SSL.
Da terminale:

sudo certbot --apache

L'esecuzione di questo comando ti permetterà di ottenere un certificato SSL e Certbot modificherà automaticamente la configurazione di Apache.

Adesso potete connettervi a Webmin in modo sicuro.

https://TUO_DOMINIO

Conclusione

L'installazione e la configurazione di Webmin su Debian 10 Buster è terminata.