Installazione di ISPConfig 3.1 su Ubuntu Server 16.04

2 Novembre 2018 0 Di Alessandro Scamporrino

Questo tutorial mostra l’installazione di un server di hosting web Ubuntu 16.04 (Xenial Xerus) con Apache2, Postfix, Dovecot, Bind e PureFTPD per prepararlo per l’installazione di ISPConfig 3.1. Il sistema risultante fornirà un server Web, Mail, Mailinglist, DNS e FTP.

Cos’è ISPConfig

ISPConfig 3 è un pannello di controllo di 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, MySQL, BIND o server dei nomi MyDNS, PureFTPd, SpamAssassin, ClamAV e molti altri. Questa installazione riguarda l’installazione di Apache (anziché Nginx), BIND (anziché MyDNS) e Dovecot (invece di Courier).

1. Note preliminari

In questo tutorial, utilizzo l’hostname server1.esempio.com con l’indirizzo IP 192.168.1.100 e il gateway 192.168.1.1. Queste impostazioni potrebbero essere diverse per te, quindi devi sostituirle se necessario. Prima di proseguire è necessario avere un’installazione minima di base di Ubuntu 16.04 come spiegato nel tutorial.

2. Aggiornamento del sistema

Per aggiornare il sistema eseguire:

apt update

apt -y upgrade

reboot

3. Cambiare la SHELL di default

/bin/sh è un collegamento a /bin/dash, per l’installazione è necessario variarlo con /bin/bash. Per farlo eseguire:
dpkg-reconfigure dash

Alla seguente domande rispondere:

Use dash as the default system shell (/bin/sh)?  < No >

Se viene saltata questa procedura, l’installazione di ISPConfig fallirà.

4. Disabilitazione di AppArmor

AppArmor è un’estensione di sicurezza (simile a SELinux) che dovrebbe fornire una protezione estesa. A mio parere, non è necessario per configurare un sistema sicuro, e di solito causa più problemi che vantaggi (pensaci dopo aver fatto una settimana di risoluzione dei problemi perché alcuni servizi non funzionavano come previsto, quindi scoprii che tutto era a posto, solo AppArmor stava causando il problema). Pertanto, lo disabilito (questo è un must se si desidera installare ISPConfig in seguito).

Per disabilitarlo eseguire:

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

5. Installazione di NTP

È consigliabile sincronizzare l’orologio di sistema con un server NTP (network time protocol) su Internet quando si esegue un server fisico.

Per installare NTP eseguire:

apt -y install ntp ntpdate

6. Installazione di Postfix, Dovecot, MariaDB, rkhunter e binutils

Per installare postfix, dobbiamo assicurarci che sendmail non sia installato ed in esecuzione. Per interrompere e rimuovere sendmail, eseguire:

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

NOTA:  Se ricevete questo messaggio:

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

è tutto corretto poichè sendmail non è installato nel vostro sistema.

Per Installare Postfix, Dovecot, MariaDB (in sostituzione a MySQL), rkhunter e binutils eseguire:

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

Postfix:

Vi verranno mostrate le seguenti domande:

General type of mail configuration: < Sito Internet >
System mail name: < server1.esempio.com >

Importante: Utilizzare un sottodominio in “nome della posta di sistema” come server1.esempio.com o server1.tuodominio.com e non un dominio che si desidera utilizzare in seguito come dominio di posta elettronica (ad es. tuodominio.com).

Modifichiamo il file di configurazione di Postfix  per abilitare TLS/SSL e le submission ports, eseguire:

nano /etc/postfix/master.cf

Decommentare le sezioni di submission e smtps ed aggiungere la riga -o smtpd_client_restrictions = permit_sasl_authenticated, reject in entrambe le sezioni e lascia tutto quanto successivamente commentato come da esempio:

[...]
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=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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
[...]

N.B:  Gli spazi bianchi davanti alle linee “-o ….” sono importanti!. In rosso le righe da aggiungere ed in verde le righe da decommentare.

Riavviate il servizio:

service postfix restart

MariaDB:

Per far sì che MySQL ascolti tutte le interfacce, non solo su localhost, modificheremo /etc/mysql/mariadb.conf.d/50-server.cnf commentando la riga bind-address = 127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
[...]

Per configurare la password di Root per MySQL eseguire:

mysql_secure_installation

Alle seguenti domande rispondere:

Enter current password for root (enter for none): < Premere Invio >
Set root password? [Y/n] < y >
New password: < Inserire la nuova password di root MariaDB >
Re-enter new password: < Ripeti la password >
Remove anonymous users? [Y/n] < y >
Disallow root login remotely? [Y/n] < y >

Remove test database and access to it? [Y/n] < y >
Reload privilege tables now? [Y/n] < y >

Riavviare il servizio:

service mysql restart

7. Installazione di Amavisd-new, SpamAssassin e Clamav

Editare il file hosts, necessaria per l’installazione corretta di Amavisd-new:

nano /etc/hosts

esempio:

127.0.0.1 localhost
192.168.1.100 server1.esempio.com

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Per installare eseguire:

apt -y install amavisd-new spamassassin clamav clamav-daemon zoo 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

L’installazione di ISPConfig 3 usa amavisd che carica internamente la libreria di filtri SpamAssassin, così possiamo fermare SpamAssassin per liberare della RAM eseguire:

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

Aggiornare ed avviare Clamav:

freshclam
service clamav-daemon start

NOTA: Se ricevete il seguente errore:

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

L’aggiornamento è già in esecuzione automatica.

7.1 Installare Metronome XMPP Server (opzionale)

Metronome XMPP Server è un XMPP chat server. Questo passaggio è opzionale se non è ncessario avere un chat server potete saltare questa parte. Nessuna delle funzionalità di ISPConfig dipende da questo software.

Installare i seguenti pacchetti con apt.
apt -y install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks

Eseguire quindi:

luarocks install lpc

Aggiungere un user shell per Metronome.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Scaricare Metronome nella directory /opt e per compilarlo eseguire:

cd /opt; git clone https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install

Metronome è ora installato in /opt/metronome.

8. Installazione di Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear, e mcrypt

Per installare eseguire:

apt -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php-auth php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring

Alle seguenti domande rispondere:

Web server da riconfigure automaticamente: < apache2 >
Configurare il database di phpmyadmin con dbconfig-common? < Si >
Password applicativa MySQL per phpmyadmin: < Inserisci la tua password >
Conferma della password: < Renserisci la tua password >

Quindi eseguire il seguente comando per abilitare i moduli Apache suexec, riscrittura, ssl, azioni e inclusione (più dav, dav_fs e auth_digest se si desideri utilizzare WebDAV):

a2enmod suexec rewrite ssl actions include cgi dav_fs dav auth_digest headers

Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPROXY, disabilitare l’intestazione HTTP_PROXY in Apache a livello globale:

Per Creare un nuovo file di configurazione eseguire:

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

Ed inserire il seguente codice:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Salviare il file ed uscire. Abilitiare il nuovo file di configurazione :

a2enconf httpoxy

Se si desidera ospitare file Ruby con estensione .rb sui siti Web creati tramite ISPConfig, è necessario commentare application/x-ruby rb in /etc/mime.types, eseguire:

nano /etc/mime.types

E commentare come da esempio:

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

Riavviare il servizio:

service apache2 restart

8.1 PHP Opcode cache

APCu è un cacher opcode PHP gratuito per il caching e l’ottimizzazione del codice intermedio PHP. Si consiglia vivamente di installarlo per accelerare le pagine PHP.

 Per installare APCu eseguire:

apt -y install php7.0-opcache php-apcu

8.2 PHP-FPM

Per usare PHP-FPM con Apache, abbiamo bisogno del modulo Apache mod_fastcgi (da non confondere con mod_fcgid – sono molto simili, ma non puoi usare PHP-FPM con mod_fcgid). Per installare PHP-FPM e mod_fastcgi eseguire:

apt -y install libapache2-mod-fastcgi php7.0-fpm

Caricare il modulo in Apache:

a2enmod actions fastcgi alias

8.3 Additional PHP Versions

SI può avere versioni più versioni di PHP nello stesso server (selezionabile attraverso ISPConfig) che possiamo eseguire attraverso FastCGI e PHP-FPM. Per sapere come aggiungere versioni addizionali di PHP (PHP-FPM e FastCGI) e come configurare ISPConfig, visionare questo tutorial: Installare PHP 5.6 come PHP-FPM e FastCGI addizionale per ISPConfig 3.1 su Ubuntu 16.04.

8.4 Install HHVM (HipHop Virtual Machine)

In questa fase installiamo HHVM con apt. HHVM e un motore PHP sviluppato da Facebook.
apt -y install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
add-apt-repository "deb http://dl.hhvm.com/ubuntu xenial main"
apt update
apt -y install hhvm

9. Installare Let’s Encrypt

ISPConfig 3.1 ha il supporto integrato per l’Autorità di certificazione SSL gratuita Let’s Encrypt. La funzione Let’s Encrypt consente di creare certificati SSL gratuiti per il tuo sito Web in ISPConfig.

Ora aggiungeremo il supporto per Let’s Encrypt installando il client certbot.

apt install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update
apt -y remove letsencrypt
apt -y install python-certbot-apache

10. Installazione di Mailman

ISPConfig consente di gestire (creare / modificare / eliminare) mailing list di Mailman. Se si desidera utilizzare questa funzione, installare Mailman come segue:

apt -y install mailman

Alle seguenti domande rispondere:

Lingue da supportare:  < it (Italiano) >
“Site list” mancante  < Ok >

Prima di poter avviare Mailman, è necessario creare una prima mailing list chiamata mailman:

newlist mailman

Alle seguenti domande rispondere:

Inserisci l’email della persona che l’amministra: < es. listadmin@esempio.com >
Password iniziale per mailman: < password di admin per le mailman list >

Per terminare la creazione della tua lista, devi editare il tuo
file /etc/aliases (o equivalente) aggiungendovi le seguenti righe
ed eseguendo il comando `newaliases’:

Apri il file /etc/aliases:

nano /etc/aliases

Ed aggiungere il seguente codice:

[…]

## mailman mailing list

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”

Per attivare le modifiche eseguire:

newaliases

Vi verrà mostrato questo messaggio:

## lista 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… < Premere Invio >

Riavviare il servizio Postfix

service postfix restart

Abilitiamo la configurazione di Mailman su Apache:

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

Riavviamo il servizio Apache2

service apache2 restart

Definisce l’alias / cgi-bin / mailman / per tutti i vhost di Apache, il che significa che è possibile accedere all’interfaccia di amministrazione di Mailman per un elenco su http: // <vhost> / cgi-bin / mailman / admin / <listname> e la pagina Web per gli utenti di una mailing list può essere trovata all’indirizzo http: // <vhost> / cgi-bin / mailman / listinfo / <listname>.

Sotto http: // <vhost> / pipermail puoi trovare gli archivi delle mailing list.

Per concludere avviamo il demone di Mailman:

service mailman start

11. Installazione PureFTPd e Quota

Per installare PureFTPd e Quota eseguire:

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

PureFTPd:

Modifichiamo il file /etc/default/pure-ftpd-common:

nano /etc/default/pure-ftpd-common

Modificando la seguente riga da false a true:

[...]
VIRTUALCHROOT=true
[...]

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

Se vuoi abilitare le sessioni TLS, esegui:

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

Per utilizzare le sessioni TLS, dobbiamo creare un certificato SSL. Creiamolo in /etc/ssl/private/,  creando inanzi tutto la directory:

mkdir -p /etc/ssl/private/

Ed andiamo a generare il certificato:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Alle seguenti domande rispondere:

Country Name (2 letter code) [AU]: < Inserire le due lettere del codice dello stato ( es. IT ) >
State or Province Name (full name) [Some-State]: < Inserire il nome dello stato >
Locality Name (eg, city) []: < Inserire la città >
Organization Name (eg, company) [Internet Widgits Pty Ltd]: < Inserisci il nome dell’azienda o premere invio >
Organizational Unit Name (eg, section) []:
< Inserire il dipartimento della tua azienda (es. “Sede”) >
Common Name (eg, YOUR name) []:
< Inserisci Fully Qualified Domain Name o FQDN del server (es. “server1.esempio.com”) >
Email Address []:
< Inserire una Email >

Cambiamo i permessi al certificato SSL:

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

Riavviamo il servizio:
service pure-ftpd-mysql restart
Quota:

Modifichiamo il file /etc/fstab ed aggiungiamo le seguenti voci: usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0

per attivare la quota sulla partizione / eseguendo:

nano /etc/fstab

Ed aggiungere la voce come da esempio:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# /boot was on /dev/xvda1 during installation
UUID=d09c3f10-6946-43dc-8a41-8517f7c1c2e6 /boot ext2 defaults 0 2
/dev/mapper/server1--vg-swap_1 none swap sw 0 0

Attiviamo la modifica:

mount -o remount /

Ed attiviamo Quota:

quotacheck -avugm
quotaon -avug

Vi verrà mostrato il seguente messaggio:

quotacheck: Scanning /dev/mapper/server2--vg-root [/] Completato
quotacheck: Cannot stat old user quota file //quota.user: File o directory non esistente. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: File o directory non esistente. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: File o directory non esistente. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: File o directory non esistente. Usage will not be subtracted.
quotacheck: 19422 cartelle e 128053 file controllati
quotacheck: Vecchio file non trovato.
quotacheck: Vecchio file non trovato.

12. Install BIND DNS Server

Per installare BIND eseguite:

apt -y install bind9 dnsutils haveged

13. Installazione di Vlogger, Webalizer, and AWstats

Per installare Vlogger, webalizer, e AWstats eseguite:

apt -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl
Aprite il file /etc/cron.d/awstats:

nano /etc/cron.d/awstats
e commentate tutte le seguenti voci nel file:

#MAILTO=root

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

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

14. Installazione di Jailkit

Jailkit è necessario solo se volete che gli utenti SSH siano in chroot. Per installarlo eseguite i comandi qui sotto (importante: Jailkit va installato prima di ISPConfig – non può essere installato successivamente!).

Scarichiamo da apt i pacchetti per creare l’installer .deb:

apt -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils
scarichiamo il sorgente e creiamo il pacchetto .deb:

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./debian/rules binary
Ora possiamo installare il pacchetto Jailkit .deb:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

15. Installazione di fail2ban e UFW

Questa installazione è opzionale ma recommandata, perchè ISPConfig monitor cerca di mostrare i log:
apt -y install fail2ban
Per attivare fail2ban su PureFTPd e Dovecot, dobbiamo creare il file /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local
Inserendo il seguente codice:

[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

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

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

Ed ora creare i seguenti due filtri:
nano /etc/fail2ban/filter.d/pureftpd.conf

[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =

nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf

[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*
ignoreregex =

Aggiungere la voce mancante ignoreregex nel file postfix-sasl:
echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf
Riavviare fail2ban:
service fail2ban restart
Per installare UFW firewall, eseguire:
apt -y install ufw

16. Install Roundcube Webmail

Per installare Roundcube Webmail, eseguite:
apt -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce
Alle seguenti domande rispondere:

Configurare il database di roundcube con dbconfig-common? < Sì >
Password applicativa per MySQL per roundcube: < Premi invio >

Ora editiamo il file di configurazione di Apache per RoundCube.
nano /etc/apache2/conf-enabled/roundcube.conf
e remuoviamo il commento # in fronte alle prime due righe degli alias, e aggiungiamo “AddType application/x-httpd-php .php” dopola linea “<Directory /var/lib/roundcube>”:

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
Alias /roundcube /var/lib/roundcube
[...]
<Directory /var/lib/roundcube>
AddType application/x-httpd-php .php
[...]

NOTA: Nella voce Alias potete aggiungere una ulteriore linea tipo Alias /webmail /var/lib/roundcube o sostituirla a quella presente così da poter raggiungere la webmail con l’indirizzo: http://<vhost>/webmail.

Riavviare apache per attivare le modifiche:
service apache2 restart
Modifichiamo il file di configurazione config.inc.php RoundCube:
nano /etc/roundcube/config.inc.php
e cambiamo la variabile ‘default host’ inserendoci localhost:

$config['default_host'] = 'localhost';

Previene che Roundcube mostri il nome del server nel form di login.

17. Installazione di ISPConfig 3

Per installare ISPConfig 3 dall’ultima release, eseguire:
cd /tmp
wget -O ispconfig.tar.gz https://ispconfig.org/downloads/ISPConfig-3.1.13.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/
Per eseguire l’installazione lanciate il comando:
php -q install.php
L’installer configurerà tutti i servizi come Postfix, Dovecot, ecc.

Esempio delle risposte alle varie domande dell’installazione:

# php -q install.php

——————————————————————————–
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `–.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `–. \ __/ | | / _ \| ‘_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
——————————————————————————–

>> Initial configuration

Operating System: Ubuntu Server 16.04.5 (Xenial Xerus) or compatible

Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in “quit” (without the quotes) to stop the installer.

Select language (en,de) [en]: < Premere Invio >

Installation mode (standard,expert) [standard]: < Premere Invio >

Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.esempio.com]: < Premere Invio >

MySQL server hostname [localhost]: < Premere Invio >

MySQL server port [3306]: < Premere Invio >

MySQL root username [root]: < Premere Invio >

MySQL root password []: < Inserisci la password di root di MySQL >

MySQL database to create [dbispconfig]: < Premere Invio >

MySQL charset [utf8]: < Premere Invio >

Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
……………………………………………………………..++
……………………………………………………………………………………………………………………….++
writing new private key to ‘smtpd.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: < Inserire le due lettere del codice dello stato ( es. IT ) >
State or Province Name (full name) [Some-State]: < Inserire il nome dello stato >
Locality Name (eg, city) []: < Inserire la città >
Organization Name (eg, company) [Internet Widgits Pty Ltd]: < Inserisci il nome dell’azienda o premere invio >
Organizational Unit Name (eg, section) []: < Premere Invio >
Common Name (e.g. server FQDN or YOUR name) []: < Inserire l’hostname del server , in questo esempio: server1.esempio.com >
Email Address []: < Premere Invio >
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Metronome XMPP Server
writing new private key to ‘localhost.key’
—–
Country Name (2 letter code) [AU]: < Inserire le due lettere del codice dello stato ( es. IT ) >
State or Province Name (full name) [Some-State]: < Inserire il nome dello stato >
Locality Name (eg, city) []: < Inserire la città >
Organization Name (eg, company) [Internet Widgits Pty Ltd]: < Inserisci il nome dell’azienda o premere invio >
Organizational Unit Name (eg, section) []: < Premere Invio >
Common Name (e.g. server FQDN or YOUR name) []: < Inserire l’hostname del server , in questo esempio: server1.esempio.com >
Email Address []: < Premere Invio >

Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]: < Premere Invio >

Admin password [admin]: < Inserire la vostra password ( n.b: la dovrete usare per l’accesso al pannello ) o invio per mantenere la password di default >

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: < Premere Invio >

Generating RSA private key, 4096 bit long modulus
…………………..++
………………………………………………………………………………………………………………..++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: < Inserire le due lettere del codice dello stato ( es. IT ) >
State or Province Name (full name) [Some-State]: < Inserire il nome dello stato >
Locality Name (eg, city) []: < Inserire la città >
Organization Name (eg, company) [Internet Widgits Pty Ltd]: < Inserisci il nome dell’azienda o premere invio >
Organizational Unit Name (eg, section) []: < Premere Invio >
Common Name (e.g. server FQDN or YOUR name) []: < Inserire l’hostname del server , in questo esempio: server1.esempio.com >
Email Address []: < Premere Invio >

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: < Premere Invio >
An optional company name []: < Premere Invio >
writing RSA key

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services …
Installation completed.

L’installer configurerà automaticamente tutti i servizi e nessuna configurazione manuale è necessaria.

Conclusa l’installazione potrete accedere ad ISPConfig 3 all’indirizzo https://server1.esempio.com:8080/ o https://192.168.1.100:8080/. Log in con l’username admin e la password admin (che è la password di default o la password che avrete scelto se è stata cambiata):

ISPConfig Login

ISPConfig Dashboard

Il sistema è ora pronto per essere usato.

Note e Riferimenti

Guida estrapolata e tradotta dalla seguente: The Perfect Server – Ubuntu 16.04 (Xenial Xerus) with Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot and ISPConfig 3.1

Siti di riferimento di ISPConfig:

Sito: http://www.ispconfig.org/

Forum: http://www.howtoforge.com/forums/

Bugtracker: http://bugtracker.ispconfig.org/