Server Setup · 23 min read · Nov 03, 2025

Il Server Perfetto - Debian 10 (Buster) con Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.2

Questo tutorial mostra come preparare un server Debian 10 (con Apache2, BIND, Dovecot) per l’installazione di ISPConfig 3.2 e come installare ISPConfig. Il pannello di controllo per l’hosting web ISPConfig 3 consente di configurare i seguenti servizi tramite un browser web: server web Apache o nginx, server di posta Postfix, server IMAP/POP3 Courier o Dovecot, MySQL, server di nomi BIND o MyDNS, PureFTPd, SpamAssassin, ClamAV e molti altri. Questa configurazione copre Apache (invece di nginx), BIND e Dovecot.

1 Nota Preliminare

In questo tutorial, utilizzerò il nome host server1.example.com con l’indirizzo IP 192.168.0.100 e il gateway 192.168.0.1. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato. Prima di procedere, è necessario avere un’installazione minima di Debian 10. Questo potrebbe essere un’immagine Debian minimale fornita dal tuo provider di hosting oppure puoi utilizzare il tutorial Minimal Debian Server per impostare il sistema di base.

Tutti i comandi qui sotto vengono eseguiti come utente root. Accedi come utente root direttamente oppure accedi come tuo utente normale e poi usa il comando

su -

per diventare utente root sul tuo server prima di procedere. IMPORTANTE: Devi usare ‘su -‘ e non solo ‘su’, altrimenti la tua variabile PATH è impostata in modo errato da Debian.

2 Installa il server SSH (Opzionale)

Se non hai installato il server OpenSSH durante l’installazione del sistema, puoi farlo ora:

apt-get install ssh openssh-server

Da ora in poi puoi utilizzare un client SSH come PuTTY e connetterti dal tuo workstation al tuo server Debian 9 e seguire i restanti passaggi di questo tutorial.

3 Installa un editor di testo shell (Opzionale)

Utilizzeremo l’editor di testo nano in questo tutorial. Alcuni utenti preferiscono il classico editor vi, quindi installeremo entrambi gli editor qui. Il programma vi predefinito ha un comportamento strano su Debian e Ubuntu; per risolvere questo, installiamo vim-nox:

apt-get install nano vim-nox

Se vi è il tuo editor preferito, sostituisci nano con vi nei seguenti comandi per modificare i file.

4 Configura il Nome Host

Il nome host del tuo server dovrebbe essere un sottodominio come “server1.example.com”. Non usare un nome di dominio senza parte del sottodominio come “example.com” come nome host poiché questo causerà problemi in seguito con la configurazione della tua posta. Prima, dovresti controllare il nome host in /etc/hosts e cambiarlo quando necessario. La riga dovrebbe essere: “Indirizzo IP - spazio - nome host completo incl. dominio - spazio - parte del sottodominio”. Per il nostro nome host server1.example.com, il file dovrebbe apparire così:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.100   server1.example.com     server1

# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Poi modifica il file /etc/hostname:

nano /etc/hostname

Dovrebbe contenere solo la parte del sottodominio, nel nostro caso:

server1

Infine, riavvia il server per applicare la modifica:

systemctl reboot

Accedi di nuovo e controlla se il nome host è corretto ora con questi comandi:

hostname  
hostname -f

L’output dovrebbe essere simile a questo:

root@server1:/tmp# hostname  
server1  
root@server1:/tmp# hostname -f  
server1.example.com

5 Aggiorna la tua Installazione di Debian

Prima, assicurati che il tuo /etc/apt/sources.list contenga il repository buster/updates (questo assicura che tu riceva sempre gli aggiornamenti di sicurezza più recenti) e che i repository contrib e non-free siano abilitati poiché alcuni pacchetti richiesti non sono nel repository principale.

nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free  
deb-src http://deb.debian.org/debian/ buster main contrib non-free  
  
deb http://security.debian.org/debian-security buster/updates main contrib non-free  
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

Esegui:

apt-get update

Per aggiornare il database dei pacchetti apt

apt-get upgrade

e per installare gli aggiornamenti più recenti (se ce ne sono).

6. Cambia la Shell Predefinita

/bin/sh è un collegamento a /bin/dash, tuttavia abbiamo bisogno di /bin/bash, non di /bin/dash. Pertanto, facciamo questo:

dpkg-reconfigure dash

Usare dash come shell di sistema predefinita (/bin/sh)? <– No

Se non lo fai, l’installazione di ISPConfig fallirà.

7 Sincronizza l’Orologio di Sistema

È una buona idea sincronizzare l’orologio di sistema con un server NTP ( network time protocol) su Internet. Basta eseguire

apt-get -y install ntp

e il tuo tempo di sistema sarà sempre sincronizzato.

8 Installa Postfix, Dovecot, MariaDB, rkhunter e Binutils

Possiamo installare Postfix, Dovecot, MariaDB come alternativa a MySQL, rkhunter e Binutils con un solo comando:

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo curl

Ti verranno poste le seguenti domande:

Tipo generale di configurazione della posta: <– Internet Site
Nome del sistema di posta: <– server1.example.com

Per garantire la sicurezza dell’installazione di MariaDB e disabilitare il database di test, esegui questo comando:

mysql_secure_installation

Rispondi alle domande come segue:

Cambiare la password root? [Y/n] <-- y  
Nuova password: <-- Inserisci una nuova password root di MariaDB  
Reinserisci la nuova password: <-- Ripeti la password root di MariaDB  
Rimuovere utenti anonimi? [Y/n] <-- y  
Disabilitare il login root da remoto? [Y/n] <-- y  
Rimuovere il database di test e l'accesso ad esso? [Y/n] <-- y  
Ricaricare ora le tabelle dei privilegi? [Y/n] <-- y

Successivamente, apri le porte TLS/SSL e di invio in Postfix:

nano /etc/postfix/master.cf

Decommenta le sezioni di invio e smtps come segue e aggiungi righe dove necessario affinché questa sezione del file master.cf appaia esattamente come quella qui sotto. IMPORTANTE: Rimuovi il # davanti alle righe che iniziano con smtps e invio e non solo dalle righe -o dopo queste righe!

[...]
submission inet n - - - - smtpd  
 -o syslog_name=postfix/submission  
 -o smtpd_tls_security_level=encrypt  
 -o smtpd_sasl_auth_enable=yes  
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
# -o smtpd_reject_unlisted_recipient=no  
# -o smtpd_client_restrictions=$mua_client_restrictions  
# -o smtpd_helo_restrictions=$mua_helo_restrictions  
# -o smtpd_sender_restrictions=$mua_sender_restrictions  
# -o smtpd_recipient_restrictions=  
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject  
# -o milter_macro_daemon_name=ORIGINATING  
smtps inet n - - - - smtpd  
 -o syslog_name=postfix/smtps  
 -o smtpd_tls_wrappermode=yes  
 -o smtpd_sasl_auth_enable=yes  
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
# -o smtpd_reject_unlisted_recipient=no  
# -o smtpd_client_restrictions=$mua_client_restrictions  
# -o smtpd_helo_restrictions=$mua_helo_restrictions  
# -o smtpd_sender_restrictions=$mua_sender_restrictions  
# -o smtpd_recipient_restrictions=  
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject  
# -o milter_macro_daemon_name=ORIGINATING
[...]

Riavvia Postfix successivamente:

systemctl restart postfix

Vogliamo che MySQL ascolti su tutte le interfacce, non solo su localhost. Pertanto, modifichiamo /etc/mysql/mariadb.conf.d/50-server.cnf e commentiamo la riga bind-address = 127.0.0.1 aggiungendo un # davanti ad essa.

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Invece di skip-networking, il predefinito ora è ascoltare solo su
# localhost, che è più compatibile e non è meno sicuro.
#bind-address           = 127.0.0.1  
[...]

Imposta il metodo di autenticazione della password in MariaDB su nativo in modo da poter utilizzare PHPMyAdmin in seguito per connetterti come utente root:

echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

Modifica il file /etc/mysql/debian.cnf e imposta la password root di MYSQL / MariaDB lì due volte nelle righe che iniziano con la parola password.

nano /etc/mysql/debian.cnf

La password root di MySQL che deve essere aggiunta è mostrata in rosso. In questo esempio, la password è “howtoforge”.

# Generato automaticamente per gli script Debian. NON TOCCARE!  
[client]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
[mysql_upgrade]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
basedir = /usr

Per prevenire l’errore ‘ Errore in accept: Troppi file aperti ‘ imposteremo ora limiti di file aperti più elevati per MariaDB.

Apri il file /etc/security/limits.conf con un editor:

nano /etc/security/limits.conf

e aggiungi queste righe alla fine del file.

mysql soft nofile 65535  
mysql hard nofile 65535

Successivamente, crea una nuova directory /etc/systemd/system/mysql.service.d/ con il comando mkdir.

mkdir -p /etc/systemd/system/mysql.service.d/

e aggiungi un nuovo file all’interno:

nano /etc/systemd/system/mysql.service.d/limits.conf

incolla le seguenti righe in quel file:

[Service]  
LimitNOFILE=infinity

Salva il file e chiudi l’editor nano.

Poi ricarichiamo systemd e riavviamo MariaDB:

systemctl daemon-reload  
systemctl restart mariadb

Ora controlla che il networking sia abilitato. Esegui

netstat -tap | grep mysql

L’output dovrebbe apparire così:

root@server1:/home/administrator# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld

9 Installa Amavisd-new, SpamAssassin e ClamAV

Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo

apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl libdbd-mysql-perl postgrey

La configurazione di ISPConfig 3 utilizza amavisd che carica internamente la libreria filtro di SpamAssassin, quindi possiamo fermare SpamAssassin per liberare un po’ di RAM:

systemctl stop spamassassin  
systemctl disable spamassassin

10 Installa il Server Web Apache e PHP

Apache2, PHP, FCGI, suExec, Pear e mcrypt possono essere installati come segue:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perl

Poi esegui il seguente comando per abilitare i moduli Apache suexec, rewrite, ssl, actions e include (più dav, dav_fs e auth_digest se desideri utilizzare WebDAV):

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias

Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabiliteremo l’intestazione HTTP_PROXY in apache globalmente aggiungendo il file di configurazione /etc/apache2/conf-available/httpoxy.conf.

*Nota: La vulnerabilità è chiamata httpoxy (senza ‘r’) e quindi il file in cui aggiungiamo la configurazione per prevenirla è chiamato httpoxy.conf e non httproxy.conf, quindi non c’è ‘r’ mancante nel nome del file.*

nano /etc/apache2/conf-available/httpoxy.conf

Incolla il seguente contenuto nel file:


    RequestHeader unset Proxy early

E abilita il modulo eseguendo:

a2enconf httpoxy  
systemctl restart apache2

11 Installa Let’s Encrypt

ISPConfig utilizza acme.sh ora come client Let’s Encrypt. Installa acme.sh utilizzando il seguente comando:

curl https://get.acme.sh | sh -s

12 Installa Mailman

ISPConfig ti consente di gestire (creare/modificare/eliminare) liste di distribuzione Mailman. Se desideri utilizzare questa funzionalità, installa Mailman come segue:

apt-get install mailman

Seleziona almeno una lingua, ad esempio:

Languages to support: <-- en (English)  
Missing site list <-- Ok

Prima di poter avviare Mailman, deve essere creata una prima lista di distribuzione chiamata mailman:

newlist mailman
root@server1:~# newlist mailman  
Inserisci l'email della persona che gestisce la lista: <-- indirizzo email dell'amministratore, ad esempio [email protected]  
Password iniziale di mailman: <-- password dell'amministratore per la lista mailman  
Per completare la creazione della tua lista di distribuzione, devi modificare il tuo /etc/aliases (o  
fine equivalente) file aggiungendo le seguenti righe, e possibilmente eseguendo il  
`newaliases' programma:  
  
## lista di distribuzione mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"  
  
Premi invio per notificare il proprietario di mailman... <-- INVIO  
  
root@server1:~#

Apri /etc/aliases dopo…

nano /etc/aliases

… e aggiungi le seguenti righe:

[...]  
## lista di distribuzione mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Esegui:

newaliases

e riavvia Postfix:

systemctl restart postfix

Infine, dobbiamo abilitare la configurazione di Apache per Mailman:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Questo definisce l’alias /cgi-bin/mailman/ per tutti i vhost Apache, il che significa che puoi accedere all’interfaccia di amministrazione di Mailman per una lista su http://server1.example.com/cgi-bin/mailman/admin/, e la pagina web per gli utenti di una lista di distribuzione può essere trovata su http://server1.example.com/cgi-bin/mailman/listinfo/.

Sotto http://server1.example.com/pipermail puoi trovare gli archivi delle liste di distribuzione.

Riavvia Apache successivamente:

systemctl restart apache2

Poi avvia il demone Mailman:

systemctl restart mailman

13 Installa PureFTPd e Quota

PureFTPd e quota possono essere installati con il seguente comando:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Crea il file dhparam per pure-ftpd:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

Modifica il file /etc/default/pure-ftpd-common…

nano /etc/default/pure-ftpd-common

… e assicurati che la modalità di avvio sia impostata su standalone e imposta VIRTUALCHROOT=true:

[...]  
STANDALONE_OR_INETD=standalone  
[...]  
VIRTUALCHROOT=true  
[...]  

Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro poiché tutte le password e tutti i dati vengono trasferiti in chiaro. Utilizzando TLS, l’intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.

Se desideri consentire sessioni FTP e TLS, esegui

echo 1 > /etc/pure-ftpd/conf/TLS

Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creo in /etc/ssl/private/, quindi creo prima quella directory:

mkdir -p /etc/ssl/private/

Dopo, possiamo generare il certificato SSL come segue:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [AU]: <-- Inserisci il tuo Nome Paese (ad es., "DE").  
State or Province Name (full name) [Some-State]: <-- Inserisci il tuo Nome Stato o Provincia.  
Locality Name (eg, city) []: <-- Inserisci la tua Città.  
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Inserisci il tuo Nome Organizzazione (ad es., il nome della tua azienda).  
Organizational Unit Name (eg, section) []: <-- Inserisci il tuo Nome Unità Organizzativa (ad es. "IT Department").  
Common Name (eg, YOUR name) []: <-- Inserisci il Nome di Dominio Completo del sistema (ad es. "server1.example.com").  
Email Address []: <-- Inserisci il tuo Indirizzo Email.

Cambia i permessi del certificato SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Poi riavvia PureFTPd:

systemctl restart pure-ftpd-mysql

Modifica /etc/fstab. Il mio appare così (ho aggiunto,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 alla partizione con il punto di montaggio /):

nano /etc/fstab
# /etc/fstab: informazioni statiche sul file system.  
#  
# Usa 'blkid' per stampare l'identificatore univoco universale per un  
# dispositivo; questo può essere usato con UUID= come un modo più robusto per nominare dispositivi  
# che funziona anche se i dischi vengono aggiunti e rimossi. Vedi fstab(5).  
#  
#        
# / era su /dev/sda1 durante l'installazione  
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap era su /dev/sda5 durante l'installazione  
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Per abilitare la quota, esegui questi comandi:

mount -o remount /
quotacheck -avugm  
quotaon -avug

14 Installa il Server DNS BIND

BIND può essere installato come segue:

apt-get install bind9 dnsutils

Se il tuo server è una macchina virtuale, è altamente consigliato installare il demone haveged per ottenere una maggiore entropia per la firma DNSSEC. Puoi installare haveged anche su server non virtuali, non dovrebbe fare male.

apt-get install haveged

Una spiegazione su questo argomento può essere trovata qui.

15 Installa Webalizer, AWStats e GoAccess

Webalizer e AWStats possono essere installati come segue:

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Apri /etc/cron.d/awstats dopo…

nano /etc/cron.d/awstats

… e commenta tutto in quel file:

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Genera report statici:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Installando l’ultima versione di GoAccess direttamente dal repository di GoAccess:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list  
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -  
apt-get update  
apt-get install goaccess

16 Installa Jailkit

Jailkit è necessario solo se desideri chrootare gli utenti SSH. Può essere installato come segue:

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz  
tar xvfz jailkit-2.20.tar.gz  
cd jailkit-2.20  
echo 5 > debian/compat  
./debian/rules binary

Ora puoi installare il pacchetto Jailkit.deb come segue:

cd ..  
dpkg -i jailkit_2.20-1_*.deb  
rm -rf jailkit-2.20*

17 Installa fail2ban e UFW Firewall

Questo è opzionale ma raccomandato, perché il monitor di ISPConfig cerca di mostrare il log:

apt-get install fail2ban

Per far sì che fail2ban monitori PureFTPd e Dovecot, crea il file /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local

E aggiungi la seguente configurazione ad esso.

[pure-ftpd]  
enabled = true  
port = ftp  
filter = pure-ftpd  
logpath = /var/log/syslog  
maxretry = 3  
  
[dovecot]  
enabled = true  
filter = dovecot  
logpath = /var/log/mail.log  
maxretry = 5  
  
[postfix-sasl]  
enabled = true  
port = smtp  
filter = postfix[mode=auth]  
logpath = /var/log/mail.log  
maxretry = 3

Riavvia fail2ban successivamente:

systemctl restart fail2ban

Per installare il firewall UFW, esegui questo comando apt:

apt-get install ufw

18 Installa lo Strumento di Amministrazione del Database PHPMyAdmin

Dalla Debian 10, PHPMyAdmin non è più disponibile come pacchetto .deb. Pertanto lo installeremo da sorgente.

Crea le cartelle per PHPMyadmin:

mkdir /usr/share/phpmyadmin  
mkdir /etc/phpmyadmin  
mkdir -p /var/lib/phpmyadmin/tmp  
chown -R www-data:www-data /var/lib/phpmyadmin  
touch /etc/phpmyadmin/htpasswd.setup

Vai nella directory /tmp e scarica i sorgenti di PHPMyAdmin:

cd /tmp  
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Estrai il file di archivio scaricato e sposta i file nella cartella /usr/share/phpmyadmin e pulisci la directory /tmp.

tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz  
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/  
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz  
rm -rf phpMyAdmin-4.9.0.1-all-languages

Crea un nuovo file di configurazione per PHPMyaAdmin basato sul file di esempio fornito:

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Apri il file di configurazione con l’editor nano:

nano /usr/share/phpmyadmin/config.inc.php

Imposta una password sicura (blowfish secret) che deve essere lunga 32 caratteri:

$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* DEVI COMPILARE QUESTO PER L'AUTENTICAZIONE COOKIE! */

Non usare il mio esempio di blowfish secret, imposta il tuo!

Poi aggiungi una riga per impostare la directory che PHPMyAdmin utilizzerà per memorizzare i file temporanei:

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Successivamente, creiamo il file di configurazione di Apache per PHPMyAdmin aprendo un nuovo file nell’editor nano:

nano /etc/apache2/conf-available/phpmyadmin.conf

Incolla la seguente configurazione nel file e salvala.

# configurazione predefinita di Apache per phpMyAdmin  
  
Alias /phpmyadmin /usr/share/phpmyadmin  
  
  
 Options FollowSymLinks  
 DirectoryIndex index.php  
  
   
 AddType application/x-httpd-php .php  
  
 php_flag magic_quotes_gpc Off  
 php_flag track_vars On  
 php_flag register_globals Off  
 php_value include_path .  
   
  
  
  
# Autorizza per la configurazione  
  
   
 AuthType Basic  
 AuthName "phpMyAdmin Setup"  
 AuthUserFile /etc/phpmyadmin/htpasswd.setup  
   
 Require valid-user  
  
  
# Negare l'accesso web a directory che non ne hanno bisogno  
  
 Order Deny,Allow  
 Deny from All  
  
  
 Order Deny,Allow  
 Deny from All  

Attiva la configurazione e riavvia Apache.

a2enconf phpmyadmin  
systemctl restart apache2

Nel passaggio successivo, configureremo il negozio di configurazione di phpMyadmin (database).

Accedi a MariaDB come utente root:

mysql -u root -p

Nella shell di MariaDB, crea un nuovo database per PHPMyAdmin:

MariaDB [(none)]> CREATE DATABASE phpmyadmin;

Poi crea un nuovo utente:

MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';

Sostituisci la parola mypassword con una password sicura a tua scelta nei comandi sopra e sotto, usa la stessa password entrambe le volte. Poi concedi all’utente accesso a questo database e ricarica i permessi del database.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  
MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

Infine, carica le tabelle SQL nel database:

mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql

Inserisci la password root di MariaDB quando richiesto.

Tutto ciò che dobbiamo fare ora è impostare i dettagli dell’utente phpmyadmin nel file di configurazione. Apri di nuovo il file nell’editor nano:

nano /usr/share/phpmyadmin/config.inc.php

Scorri verso il basso fino a vedere le righe qui sotto e modificale:

/* Utente utilizzato per manipolare con lo storage */  
$cfg['Servers'][$i]['controlhost'] = 'localhost';  
$cfg['Servers'][$i]['controlport'] = '';  
$cfg['Servers'][$i]['controluser'] = 'pma';  
$cfg['Servers'][$i]['controlpass'] = 'mypassword';  
  
/* Database e tabelle di storage */  
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';  
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';  
$cfg['Servers'][$i]['relation'] = 'pma__relation';  
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';  
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';  
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';  
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';  
$cfg['Servers'][$i]['history'] = 'pma__history';  
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';  
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';  
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';  
$cfg['Servers'][$i]['recent'] = 'pma__recent';  
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';  
$cfg['Servers'][$i]['users'] = 'pma__users';  
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';  
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';  
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';  
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';  
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';  
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Ho evidenziato le righe in rosso che ho modificato. Sostituisci mypassword con la password che hai scelto per l’utente phpmyadmin. Nota che gli // davanti alle righe sono stati rimossi anche!

19 Installa RoundCube Webmail (opzionale)

In questo capitolo, installeremo il client webmail RoundCube. Prima, dobbiamo creare manualmente il database per Roundcube poiché attualmente c’è un problema nell’installer Debian di RoundCube che causa il fallimento nella creazione automatica del database. Esegui questo comando per creare il database:

echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf

Poi installa RoundCube con questo comando:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

L’installer chiederà le seguenti domande:

Configurare il database per roundcube con dbconfig.common? <-- yes  
Password dell'applicazione MySQL per roundcube: <-- premi invio

Poi modifica il file di configurazione RoundCube /etc/roundcube/config.inc.php e regola alcune impostazioni:

nano /etc/roundcube/config.inc.php

Imposta il default_host su localhost e il smtp_server.

$config['default_host'] = 'localhost';  
$config['smtp_server'] = 'localhost';  
$config['smtp_port']  = 25;

Poi modifica il file di configurazione Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

E aggiungi una riga alias per l’apache /webmail alias e una per /roundcube, puoi aggiungere la riga proprio all’inizio del file. NOTA: Non usare /mail come alias o il modulo email di ispconfig smetterà di funzionare!

Alias /roundcube /var/lib/roundcube  
Alias /webmail /var/lib/roundcube

Poi ricarica Apache:

systemctl reload apache2

Ora puoi accedere a RoundCube come segue:

http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (dopo aver installato ISPConfig, vedere il capitolo successivo)

Esistono alcuni plugin per integrare RoundCube Webmail con ISPConfig, dai un’occhiata qui per le istruzioni di installazione del plugin ISPConfig RoundCube.

20 Scarica ISPConfig 3

20 Scarica la versione stabile di ISPConfig (raccomandato)

Per installare ISPConfig 3 dall’ultima versione rilasciata, fai così:

cd /tmp  
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz  
tar xfz ISPConfig-3-stable.tar.gz  
cd ispconfig3_install/install/

21 Installa ISPConfig

Il passaggio successivo è eseguire l’installer di ISPConfig.

php -q install.php

Questo avvierà l’installer di ISPConfig 3. L’installer configurerà tutti i servizi come Postfix, Dovecot, ecc. per te. Una configurazione manuale come richiesta per ISPConfig 2 (guide di configurazione perfette) non è necessaria.

# php -q install.php
  
--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_|
  
>> Configurazione iniziale
Sistema Operativo: Debian 10.0 (Buster) o compatibile

Seguiranno alcune domande per la configurazione primaria, quindi fai attenzione.
I valori predefiniti sono tra [parentesi] e possono essere accettati con .
Tappa “quit” (senza virgolette) per fermare l’installer.

Seleziona lingua (en,de) [en]: <– Premi Invio

Modalità di installazione (standard,expert) [standard]: <– Premi Invio

Nome host completamente qualificato (FQDN) del server, ad es. server1.domain.tld [server1.example.com]: <– Premi Invio

Nome host del server MySQL [localhost]: <– Premi Invio

Porta del server MySQL [3306]: <– Premi Invio

Nome utente root di MySQL [root]: <– Premi Invio

Password root di MySQL []: <– Inserisci la tua password root di MySQL

Database MySQL da creare [dbispconfig]: <– Premi Invio

Charset MySQL [utf8]: <– Premi Invio


Configurando Postgrey  
Configurando Postfix  
Generando una chiave privata RSA a 4096 bit  
.......................................................................++  
........................................................................................................................................++  
scrittura della nuova chiave privata in 'smtpd.key'  
-----  
Stai per essere chiesto di inserire informazioni che saranno incorporate  
nel tuo certificato di richiesta.  
Ci sono molti campi, ma puoi lasciare alcuni vuoti  
Per alcuni campi ci sarà un valore predefinito,  
Se inserisci '.', il campo sarà lasciato vuoto.  
-----  
Nome del Paese (codice a 2 lettere) [AU]: <-- Inserisci il codice del tuo paese a 2 lettere  
Nome dello Stato o della Provincia (nome completo) [Some-State]: <-- Inserisci il nome dello stato  
Nome della Località (es. città) []: <-- Inserisci la tua città  
Nome dell'Organizzazione (es. azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome della tua azienda o premi invio  
Nome dell'Unità Organizzativa (es. sezione) []: <-- Premi Invio  
Nome Comune (es. FQDN del server o IL TUO nome) []: <-- Inserisci il nome host del server, nel mio caso: server1.example.com  
Indirizzo Email []: <-- Premi Invio  
Configurando Mailman  
Configurando Dovecot  
Configurando Spamassassin  
Configurando Amavisd  
Configurando Getmail  
Configurando BIND  
Configurando Jailkit  
Configurando Pureftpd  
Configurando Apache  
Configurando vlogger  
[INFO] servizio Metronome XMPP Server non rilevato  
Configurando il Firewall di Ubuntu  
Configurando Fail2ban  
[INFO] servizio OpenVZ non rilevato  
Configurando vhost Apps  
Installando ISPConfig  
Porta ISPConfig [8080]:
Password admin [admin]:
Vuoi una connessione sicura (SSL) all'interfaccia web di ISPConfig (y,n) [y]: <-- Premi Invio
Generando chiave privata RSA, modulo lungo 4096 bit  
.......................++  
................................................................................................................................++  
e è 65537 (0x10001)  
Stai per essere chiesto di inserire informazioni che saranno incorporate  
nel tuo certificato di richiesta.  
Ci sono molti campi, ma puoi lasciare alcuni vuoti  
Per alcuni campi ci sarà un valore predefinito,  
Se inserisci '.', il campo sarà lasciato vuoto.  
-----  
Nome del Paese (codice a 2 lettere) [AU]: <-- Inserisci il codice del tuo paese a 2 lettere  
Nome dello Stato o della Provincia (nome completo) [Some-State]: <-- Inserisci il nome dello stato  
Nome della Località (es. città) []: <-- Inserisci la tua città  
Nome dell'Organizzazione (es. azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome della tua azienda o premi invio  
Nome dell'Unità Organizzativa (es. sezione) []: <-- Premi Invio  
Nome Comune (es. FQDN del server o IL TUO nome) []: <-- Inserisci il nome host del server, nel mio caso: server1.example.com  
Indirizzo Email []: <-- Premi Invio
Per favore inserisci i seguenti attributi 'extra'  
che saranno inviati con la tua richiesta di certificato  
Una password di sfida []: <-- Premi Invio  
Un nome di azienda opzionale []: <-- Premi Invio  
scrittura della chiave RSA
  
Configurando DBServer  
Installando crontab di ISPConfig  
nessun crontab per root  
nessun crontab per getmail  
Rilevamento degli indirizzi IP  
Riavviando i servizi ...  
Installazione completata.

L’installer configura automaticamente tutti i servizi sottostanti, quindi non è necessaria alcuna configurazione manuale.

Dopo puoi accedere a ISPConfig 3 su http(s)://server1.example.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da ciò che hai scelto durante l’installazione). Accedi con il nome utente admin e la password admin (dovresti cambiare la password predefinita dopo il tuo primo accesso):

Accesso a ISPConfig su Debian 10

Dashboard di ISPConfig su Debian 10

Il sistema è ora pronto per essere utilizzato.

21.1 Manuale di ISPConfig 3

Per imparare a utilizzare ISPConfig 3, ti consiglio vivamente di scaricare il Manuale di ISPConfig 3.

In più di 300 pagine, copre il concetto dietro ISPConfig (amministratore, rivenditori, clienti), spiega come installare e aggiornare ISPConfig 3, include un riferimento per tutti i moduli e i campi del modulo in ISPConfig insieme a esempi di input validi e fornisce tutorial per i compiti più comuni in ISPConfig 3. Illustra anche come rendere il tuo server più sicuro e include una sezione di risoluzione dei problemi alla fine.

22 Download dell’Immagine della Macchina Virtuale di questo Tutorial

Questo tutorial è disponibile come immagine di macchina virtuale pronta all’uso in formato ovf/ova compatibile con VMWare e Virtualbox. L’immagine della macchina virtuale utilizza i seguenti dettagli di accesso:

Accesso SSH / Shell

Nome utente: administrator
Password: howtoforge

Nome utente: root
Password: howtoforge

Accesso ISPConfig

Nome utente: admin
Password: admin

Accesso MySQL

Nome utente: root
Password: howtoforge

L’IP della VM è 192.168.0.100, può essere cambiato nel file /etc/network/interfaces. Si prega di cambiare tutte le password sopra per garantire la sicurezza della macchina virtuale.

23 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.