Server Setup · 22 min read · Sep 11, 2025

Il Server Perfetto - Ubuntu 20.04 con Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.2

Questo tutorial mostra l’installazione di un server di hosting web Ubuntu 20.04 (Focal Fossa) con Apache 2.4, Postfix, Dovecot, Bind e PureFTPD per prepararlo all’installazione di ISPConfig 3.2. Il sistema risultante fornirà un server Web, Mail, Mailinglist, DNS e FTP.

ISPConfig è un pannello di controllo per l’hosting web che 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, MariaDB come sostituto di MySQL, nameserver BIND o MyDNS, PureFTPd, SpamAssassin, ClamAV e molti altri. Questa configurazione copre l’installazione di Apache (invece di Nginx), BIND (invece di MyDNS) e Dovecot (invece di Courier).

Ci sono due modi per installare ISPConfig. Puoi utilizzare le istruzioni di installazione manuale qui sotto, oppure puoi utilizzare il programma di installazione automatica ISPConfig, che installa ISPConfig automaticamente in pochi minuti. Ti consigliamo di utilizzare il programma di installazione automatica, che supporta anche Ubuntu 22.04. Vedi l’installazione automatica di ISPConfig per istruzioni su come installare ISPConfig automaticamente.

1. Nota Preliminare

In questo tutorial, utilizzo 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 dovrai sostituirle dove appropriato. Prima di procedere, devi avere un’installazione minima di base di Ubuntu 20.04 come spiegato nel tutorial.

I comandi in questo tutorial devono essere eseguiti con permessi di root. Per evitare di aggiungere sudo davanti a ogni comando, dovrai diventare utente root eseguendo:

sudo -s

prima di procedere.

2. Modifica /etc/apt/sources.list e Aggiorna la tua Installazione di Linux

Modifica /etc/apt/sources.list. Commenta o rimuovi il CD di installazione dal file e assicurati che i repository universe e multiverse siano abilitati. Dovrebbe apparire così dopo:

nano /etc/apt/sources.list
# Vedi http://help.ubuntu.com/community/UpgradeNotes per come aggiornare a
# versioni più recenti della distribuzione.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal main restricted

## Aggiornamenti di correzione bug importanti prodotti dopo il rilascio finale della
## distribuzione.
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main restricted

## N.B. il software di questo repository è COMPLETAMENTE NON SUPPORTATO dal team di Ubuntu.
## Inoltre, si prega di notare che il software in universe NON riceverà alcuna
## revisione o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe

## N.B. il software di questo repository è COMPLETAMENTE NON SUPPORTATO dal team di Ubuntu,
## e potrebbe non essere sotto una licenza libera. Si prega di soddisfare se stessi riguardo ai
## propri diritti di utilizzo del software. Inoltre, si prega di notare che il software in
## multiverse NON riceverà alcuna revisione o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse

## N.B. il software di questo repository potrebbe non essere stato testato come
## ampiamente come quello contenuto nella versione principale, anche se include
## versioni più recenti di alcune applicazioni che potrebbero fornire funzionalità utili.
## Inoltre, si prega di notare che il software in backports NON riceverà alcuna revisione
## o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

## Decommenta le seguenti due righe per aggiungere software dal repository
## 'partner' di Canonical.
## Questo software non fa parte di Ubuntu, ma è offerto da Canonical e dai
## rispettivi fornitori come servizio agli utenti di Ubuntu.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Poi esegui

apt-get update

per aggiornare il database dei pacchetti apt e

apt-get upgrade

per installare gli aggiornamenti più recenti (se ce ne sono). Se vedi che un nuovo kernel viene installato come parte degli aggiornamenti, dovresti riavviare il sistema dopo:

reboot

3. Cambia la Shell Predefinita

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

dpkg-reconfigure dash

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

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

4. Disabilita AppArmor

AppArmor è un’estensione di sicurezza (simile a SELinux) che dovrebbe fornire sicurezza estesa. A mio avviso, non ne hai bisogno per configurare un sistema sicuro, e di solito causa più problemi che vantaggi (pensa a questo dopo aver fatto una settimana di risoluzione dei problemi perché qualche servizio non funzionava come previsto, e poi scopri che tutto era ok, solo AppArmor stava causando il problema). Pertanto, lo disabilito (questo è un must se vuoi installare ISPConfig più tardi).

Possiamo disabilitarlo in questo modo:

service apparmor stop  
update-rc.d -f apparmor remove   
apt-get remove apparmor apparmor-utils

5. Sincronizza l’Orologio di Sistema

È una buona idea sincronizzare l’orologio di sistema con un server NTP ( network time protocol) su Internet quando esegui un server fisico. Nel caso tu stia eseguendo un server virtuale, puoi saltare questo passaggio. Esegui semplicemente

apt-get -y install ntp

e il tuo orario di sistema sarà sempre sincronizzato.

6. Installa Postfix, Dovecot, MariaDB, rkhunter e binutils

Per installare postfix, dobbiamo assicurarci che sendmail non sia installato e in esecuzione. Per fermare e rimuovere sendmail esegui questo comando:

service sendmail stop; update-rc.d -f sendmail remove

Il messaggio di errore:

Failed to stop sendmail.service: Unit sendmail.service not loaded.

Va bene, significa solo che sendmail non era installato, quindi non c’era nulla da rimuovere.

Ora possiamo installare Postfix, Dovecot, MariaDB (come sostituto di MySQL), rkhunter e binutils con un singolo 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 sudo patch

Ti verranno poste le seguenti domande:

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

È importante che tu usi un sottodominio come “nome di sistema della posta” come server1.example.com o server1.tuodominio.com e non un dominio che desideri utilizzare come dominio email (ad es. tuodominio.tld) in seguito.

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 - aggiungi la riga -o smtpd_client_restrictions=permit_sasl_authenticated,reject a entrambe le sezioni e lascia tutto il resto commentato:

[...]
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_tls_auth_only=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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
[...]

NOTA: Gli spazi bianchi davanti alle righe “-o …. “ sono importanti!

Riavvia Postfix dopo:

service postfix restart

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:

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

Ora impostiamo una password di root in MariaDB. Esegui:

mysql_secure_installation

Ti verranno poste queste domande:

Inserisci la password attuale per root (premi invio per nessuna): <-- premi invio  
Impostare la password di root? [Y/n] <-- y  
Nuova password: <-- Inserisci qui la nuova password di root di MariaDB  
Reinserisci la nuova password: <-- Ripeti la password  
Rimuovere gli utenti anonimi? [Y/n] <-- y  
Negare l'accesso remoto a root? [Y/n] <-- y  
Ricaricare le tabelle dei privilegi ora? [Y/n] <-- y

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 di root MYSQL / MariaDB lì due volte nelle righe che iniziano con password.

nano /etc/mysql/debian.cnf

La password di root di MySQL che deve essere aggiunta è mostrata in rosso. In questo esempio, la password è “howtoforge”. Sostituisci la parola “howtoforge” con la password che hai impostato per l’utente root di MySQL con il comando mysql_secure_installation.

# 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

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 /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  
service mariadb restart

Ora controlla che il networking sia abilitato. Esegui

netstat -tap | grep mysql

L’output dovrebbe apparire così:

root@server1:~# netstat -tap | grep mysql  
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      51836/mysqld  
root@server1:~#

7. Installa Amavisd-new, SpamAssassin e Clamav

Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo

apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract 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 postgrey

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

service spamassassin stop  
update-rc.d -f spamassassin remove

Per avviare ClamAV usa:

freshclam  
service clamav-daemon start

Il seguente errore può essere ignorato al primo avvio di freshclam.

ERROR: /var/log/clamav/freshclam.log is locked by another process  
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

8. Installa Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear

Apache 2.4, PHP 7.4, phpMyAdmin, FCGI, suExec e Pear possono essere installati come segue:

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

Vedrai la seguente domanda:

Web server da riconfigurare automaticamente: <-- apache2

Abilita PHPMyAdmin in Apache2


Configura il database per phpmyadmin con dbconfig-common? <-- Sì

MySQL application password for phpmyadmin: <-- Premi invio  

![Password dell'applicazione MySQL](/files/d6d79cfd-1efd-46ca-8155-f42a53d02409.png)

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

a2enmod suexec rewrite ssl actions include cgi alias proxy_fcgi

a2enmod dav_fs dav auth_digest headers


Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabiliterò l'intestazione HTTP_PROXY in Apache globalmente. Crea un nuovo file httpoxy.conf con nano:

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


Incolla questo contenuto nel file:
RequestHeader unset Proxy early

Abilita il file di configurazione eseguendo:

a2enconf httpoxy


Riavvia Apache dopo:

service apache2 restart


Se desideri ospitare file Ruby con l'estensione .rb sui tuoi siti web creati tramite ISPConfig, devi commentare la riga application/x-ruby rb in /etc/mime.types:

nano /etc/mime.types

[…] #application/x-ruby rb […]


(Questo è necessario solo per i file .rb; i file Ruby con l'estensione .rbx funzionano out of the box.)

Riavvia Apache dopo:

service apache2 restart


## 9. Installa Let's Encrypt

ISPConfig 3.2 ha supporto integrato per l'Autorità di Certificazione SSL gratuita Let's Encrypt. La funzione Let's Encrypt ti consente di creare certificati SSL gratuiti per il tuo sito web in ISPConfig.

Ora aggiungeremo supporto per Let's Encrypt.

apt-get install certbot


## 10. Installa Mailman

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

apt-get -y install mailman


Seleziona almeno una lingua, ad esempio:

Lingue da supportare: <-- en (Inglese)  
Lista di siti mancanti <-- Ok

L'errore ' *Job for mailman.service failed because the control process exited with* error *code.* ' può essere ignorato per ora.

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 file equivalente) aggiungendo le seguenti righe, e possibilmente eseguendo il programma `newaliases`:

## 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


dopo e riavvia Postfix:

service postfix restart


Infine, dobbiamo abilitare la configurazione di Mailman in Apache:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/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:///cgi-bin/mailman/admin/, e la pagina web per gli utenti di una lista di distribuzione può essere trovata su http:///cgi-bin/mailman/listinfo/.

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

Attiva la configurazione con:

a2enconf mailman


Riavvia Apache dopo:

service apache2 restart


Poi avvia il demone Mailman:

service mailman start


## 11. Installa PureFTPd e Quota

PureFTPd e quota possono essere installati con il seguente comando:

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


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 perché 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


Nome del Paese (codice di 2 lettere) [AU]: <-- Inserisci il tuo Nome del Paese (ad es., "DE").  
Nome dello Stato o della Provincia (nome completo) [Some-State]: <-- Inserisci il nome del tuo Stato o Provincia.  
Nome della Località (ad es., città) []: <-- Inserisci la tua Città.  
Nome dell'Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome della tua Organizzazione (ad es., il nome della tua azienda).  
Nome dell'Unità Organizzativa (ad es., sezione) []: <-- Inserisci il nome della tua Unità Organizzativa (ad es. "Reparto IT").  
Nome Comune (ad es., IL tuo nome) []: <-- Inserisci il Nome di Dominio Completo del sistema (ad es. "server1.example.com").  
Indirizzo Email []: <-- Inserisci il tuo Indirizzo Email.

Cambia i permessi del certificato SSL:

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


Poi riavvia PureFTPd:

service pure-ftpd-mysql restart


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

/dev/mapper/server1–vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1–vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0


Per abilitare la quota, esegui questi comandi:

mount -o remount /

quotacheck -avugm
quotaon -avug


Che mostrerà il seguente output:

root@server1:/tmp# quotacheck -avugm
quotacheck: Scanning /dev/mapper/server1–vg-root [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 13602 directories and 96597 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/tmp# quotaon -avug
/dev/mapper/server1–vg-root [/]: group quotas turned on
/dev/mapper/server1–vg-root [/]: user quotas turned on


## 12. Installa il Server DNS BIND

BIND può essere installato come segue:

apt-get -y install bind9 dnsutils haveged


Abilita e avvia il Demone haveged:

systemctl enable haveged
systemctl start haveged


## 13. Installa Vlogger, Webalizer, AWStats e GoAccess

Vlogger, Webalizer e AWStats possono essere installati come segue:

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


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 -
sudo apt-get update
sudo apt-get install goaccess


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

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


## 14. Installa Jailkit

Jailkit è utilizzato per gli utenti della shell e i cronjob in ISPConfig. Installa jailkit con apt:

apt-get -y install jailkit


## 15. Installa fail2ban e UFW

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

apt-get -y install fail2ban


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

nano /etc/fail2ban/jail.local

[pure-ftpd] enabled = true port = ftp filter = pure-ftpd logpath = /var/log/syslog maxretry = 3

[dovecot] enabled = true filter = dovecot action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] logpath = /var/log/mail.log maxretry = 5

[postfix] enabled = true port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 3


Riavvia fail2ban dopo:

service fail2ban restart


Per installare il firewall UFW, esegui questo comando apt:

apt-get install ufw


## 16. Installa Roundcube Webmail

Per installare Roundcube Webmail, esegui:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce


L'installer potrebbe chiedere le seguenti domande:

Configura il database per roundcube con dbconfig-common? <– Sì
Password dell’applicazione MySQL per roundcube: <– Premi invio


Non preoccuparti se non ricevi queste domande e un avviso riguardo allo script ucf, va bene.

L'avviso ucf che riceverai sulla shell può essere ignorato, non ha impatto negativo sull'installazione.

Poi modifica il file di configurazione apache di RoundCube.

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


e rimuovi il # davanti alla riga Alias, poi aggiungi la seconda riga Alias per /webmail e aggiungi la riga "AddType application/x-httpd-php .php" subito dopo la riga "":

Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube […]

AddType application/x-httpd-php .php [...] ``` E riavvia apache ``` service apache2 restart ``` Poi modifica il file di configurazione config.inc.php di RoundCube: ``` nano /etc/roundcube/config.inc.php ``` e cambia l'host predefinito in localhost: ``` $config['default_host'] = 'localhost'; ``` e il server SMTP in: ``` $config['smtp_server'] = 'localhost'; ``` e ``` $config['smtp_port']  = 25; ``` Questo impedisce che Roundcube mostri il campo di input del nome del server nel modulo di accesso. ## 17. Installa ISPConfig 3.2 Utilizzeremo la build stabile di ISPConfig 3.2 qui. ``` cd /tmp wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ispconfig.tar.gz cd ispconfig3*/install/ ``` Il passo successivo è eseguire ``` php -q install.php ``` Questo avvierà l'installer di ISPConfig 3. L'installer configurerà tutti i servizi come Postfix, Dovecot, ecc. per te. ``` # php -q install.php ``` ``` -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- ``` ``` >> Configurazione iniziale ``` ``` Sistema Operativo: Ubuntu 20.04.1 LTS (Focal Fossa) ``` ``` Seguiranno alcune domande per la configurazione primaria, quindi fai attenzione. I valori predefiniti sono tra [parentesi] e possono essere accettati con . Tocca "quit" (senza virgolette) per fermare l'installer. ``` ``` Seleziona lingua (en,de) [en]: <-- Premi Invio ``` ``` Modalità di installazione (standard,esperto) [standard]: <-- Premi Invio ``` ``` Nome host completamente qualificato (FQDN) del server, ad es. server1.dominio.tld [server1.canomi.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 ``` ``` Configurazione di Postgrey Configurazione di Postfix Generazione di 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 diversi campi, ma puoi lasciare alcuni vuoti Per alcuni campi ci sarà un valore predefinito, Se inserisci '.', il campo verrà lasciato vuoto. ----- Nome del Paese (codice di 2 lettere) [AU]: <-- Inserisci il codice di 2 lettere del paese Nome dello Stato o della Provincia (nome completo) [Some-State]: <-- Inserisci il nome dello stato Nome della Località (ad es., città) []: <-- Inserisci la tua città Nome dell'Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome dell'azienda o premi invio Nome dell'Unità Organizzativa (ad es., sezione) []: <-- Premi Invio Nome Comune (ad es. FQDN del server o IL TUO nome) []: <-- Inserisci il nome host del server, nel mio caso: server1.example.com Indirizzo Email []: <-- Premi Invio Configurazione di Mailman Configurazione di Dovecot Configurazione di Spamassassin Configurazione di Amavisd Configurazione di Getmail Configurazione di BIND Configurazione di Jailkit Configurazione di Pureftpd Configurazione di Apache Configurazione di vlogger Configurazione del Server XMPP Metronome scrittura della nuova chiave privata in 'localhost.key' ----- Nome del Paese (codice di 2 lettere) [AU]: <-- Inserisci il codice di 2 lettere del paese Nome della Località (ad es., città) []: <-- Inserisci la tua città Nome dell'Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome dell'azienda o premi invio Nome dell'Unità Organizzativa (ad es., sezione) []: <-- Premi Invio Nome Comune (ad es. FQDN del server o IL TUO nome) [server1.canomi.com]: <-- Inserisci il nome host del server, nel mio caso: server1.example.com Indirizzo Email []: <-- Premi Invio ``` ``` Configurazione del Firewall di Ubuntu Configurazione di Fail2ban [INFO] servizio OpenVZ non rilevato Configurazione di Apps vhost Installazione di ISPConfig Porta ISPConfig [8080]: ``` ``` Password admin [admin]: ``` ``` Vuoi una connessione sicura (SSL) all'interfaccia web di ISPConfig (y,n) [y]: <-- Premi Invio ``` ``` Generazione di una chiave privata RSA, modulo lungo 4096 bit .......................++ ................................................................................................................................++ e è 65537 (0x10001) Stai per essere chiesto di inserire informazioni che saranno incorporate nella tua richiesta di certificato. Ci sono diversi campi, ma puoi lasciare alcuni vuoti Per alcuni campi ci sarà un valore predefinito, Se inserisci '.', il campo verrà lasciato vuoto. ----- Nome del Paese (codice di 2 lettere) [AU]: <-- Inserisci il codice di 2 lettere del paese Nome dello Stato o della Provincia (nome completo) [Some-State]: <-- Inserisci il nome dello stato Nome della Località (ad es., città) []: <-- Inserisci la tua città Nome dell'Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome dell'azienda o premi invio Nome dell'Unità Organizzativa (ad es., sezione) []: <-- Premi Invio Nome Comune (ad 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' da inviare con la tua richiesta di certificato Una password di sfida []: <-- Premi Invio Un nome aziendale opzionale []: <-- Premi Invio scrittura della chiave RSA ``` ``` Symlink dei certificati SSL LE di ISPConfig a postfix? (y,n) [y]:  <-- Premi Invio ``` ``` Symlink dei certificati SSL LE di ISPConfig a pureftpd? Creare il file dhparam richiede tempo. (y,n) [y]:  <-- Premi Invio ``` ``` Generazione di parametri DH, primo sicuro lungo 2048 bit, generatore 2 Questo richiederà molto tempo .............................................................+.........................................................................................................................................................................+................... ``` ``` Configurazione del DBServer Installazione del crontab di ISPConfig nessun crontab per root nessun crontab per getmail Rilevamento degli indirizzi IP Riavvio dei 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 cosa 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 Ubuntu 18.04 LTS](/files/24a359d6-6ef5-41f5-934b-3c7d69d55dcf.png) ![Dashboard di ISPConfig 3.2](/files/0aadd86c-90dd-42d7-9206-15914f387fbb.png) Il sistema è ora pronto per essere utilizzato. ## 18. 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 Questo utente ha diritti sudo. Accesso a ISPConfig Nome utente: admin Password: howtoforge Accesso a MySQL Nome utente: root Password: howtoforge L'IP della VM è 192.168.0.100, può essere cambiato nel file */etc/netplan/01-netcfg.yaml*. Si prega di cambiare tutte le password sopra per proteggere la macchina virtuale. ## 19. Link - Ubuntu: http://www.ubuntu.com/ - ISPConfig: http://www.ispconfig.org/
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.