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-serverDa 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-noxSe 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/hosts127.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-allroutersPoi modifica il file /etc/hostname:
nano /etc/hostnameDovrebbe contenere solo la parte del sottodominio, nel nostro caso:
server1Infine, riavvia il server per applicare la modifica:
systemctl rebootAccedi di nuovo e controlla se il nome host è corretto ora con questi comandi:
hostname
hostname -fL’output dovrebbe essere simile a questo:
root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com5 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.listdeb 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-freeEsegui:
apt-get updatePer aggiornare il database dei pacchetti apt
apt-get upgradee 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 dashUsare 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 ntpe 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 curlTi 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_installationRispondi 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] <-- ySuccessivamente, apri le porte TLS/SSL e di invio in Postfix:
nano /etc/postfix/master.cfDecommenta 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 postfixVogliamo 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 rootModifica 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.cnfLa 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 = /usrPer 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.confe aggiungi queste righe alla fine del file.
mysql soft nofile 65535
mysql hard nofile 65535Successivamente, 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.confincolla le seguenti righe in quel file:
[Service]
LimitNOFILE=infinitySalva il file e chiudi l’editor nano.
Poi ricarichiamo systemd e riavviamo MariaDB:
systemctl daemon-reload
systemctl restart mariadbOra controlla che il networking sia abilitato. Esegui
netstat -tap | grep mysqlL’output dovrebbe apparire così:
root@server1:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld9 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 postgreyLa 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 spamassassin10 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-perlPoi 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 aliasPer 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.confIncolla il seguente contenuto nel file:
RequestHeader unset Proxy early
E abilita il modulo eseguendo:
a2enconf httpoxy
systemctl restart apache211 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 -s12 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 mailmanSeleziona almeno una lingua, ad esempio:
Languages to support: <-- en (English)
Missing site list <-- OkPrima di poter avviare Mailman, deve essere creata una prima lista di distribuzione chiamata mailman:
newlist mailmanroot@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:
newaliasese riavvia Postfix:
systemctl restart postfixInfine, dobbiamo abilitare la configurazione di Apache per Mailman:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confQuesto 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 apache2Poi avvia il demone Mailman:
systemctl restart mailman13 Installa PureFTPd e Quota
PureFTPd e quota possono essere installati con il seguente comando:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolCrea il file dhparam per pure-ftpd:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048Modifica 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/TLSPer 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.pemCountry 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.pemPoi riavvia PureFTPd:
systemctl restart pure-ftpd-mysqlModifica /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 -avug14 Installa il Server DNS BIND
BIND può essere installato come segue:
apt-get install bind9 dnsutilsSe 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 havegedUna 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-perlApri /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.shInstallando 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 goaccess16 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 binutilscd /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 binaryOra 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 fail2banPer far sì che fail2ban monitori PureFTPd e Dovecot, crea il file /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.localE 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 = 3Riavvia fail2ban successivamente:
systemctl restart fail2banPer installare il firewall UFW, esegui questo comando apt:
apt-get install ufw18 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.setupVai 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.gzEstrai 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-languagesCrea 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.phpApri il file di configurazione con l’editor nano:
nano /usr/share/phpmyadmin/config.inc.phpImposta 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.confIncolla 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 apache2Nel passaggio successivo, configureremo il negozio di configurazione di phpMyadmin (database).
Accedi a MariaDB come utente root:
mysql -u root -pNella 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.sqlInserisci 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.phpScorri 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.cnfPoi installa RoundCube con questo comando:
apt-get install roundcube roundcube-core roundcube-mysql roundcube-pluginsL’installer chiederà le seguenti domande:
Configurare il database per roundcube con dbconfig.common? <-- yes
Password dell'applicazione MySQL per roundcube: <-- premi invioPoi modifica il file di configurazione RoundCube /etc/roundcube/config.inc.php e regola alcune impostazioni:
nano /etc/roundcube/config.inc.phpImposta 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.confE 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/roundcubePoi ricarica Apache:
systemctl reload apache2Ora 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.phpQuesto 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 inizialeSistema Operativo: Debian 10.0 (Buster) o compatibileSeguiranno 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 InvioGenerando 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 InvioPer 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):


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
- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.