Server Setup · 10 min read · Jan 25, 2026
Il Server Perfetto - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1) - Pagina 2
10 Installa Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin e mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt possono essere installati come segue:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passengerVedrai le seguenti domande:
Web server da riconfigurare automaticamente: <- apache2
Configurare il database per phpmyadmin con dbconfig-common? <- sì
Inserisci la password dell'utente amministrativo? <- yourrootmysqlpassword
Inserisci la password dell'applicazione phpmyadmin? <- Premi semplicemente invioQuindi 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 headersPer 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.
sudo nano /etc/apache2/conf-available/httpoxy.confIncolla il seguente contenuto nel file:
RequestHeader unset Proxy early
E abilita il modulo eseguendo:
a2enconf httpoxy
service apache2 restart10.1 Installa HHVM (HipHop Virtual Machine)
In questo passaggio installeremo HHVM dal suo repository ufficiale Debian. Aggiungi il repository HHVM e importa la chiave.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.listAggiorna l’elenco dei pacchetti:
sudo apt-get updatee installa HHVM:
sudo apt-get install hhvm10.2 Installa SuPHP (opzionale, ma non raccomandato)
NOTA AGGIORNATA: SuPHP non dovrebbe più essere installato, procedere al passaggio 11
SuPHP non è più disponibile per Debian Jessie. La modalità suphp non dovrebbe più essere utilizzata in ISPConfig poiché ci sono modalità PHP migliori come php-fpm e php-fcgi disponibili. Se hai davvero bisogno di suphp per motivi di compatibilità, segui i passaggi in questo capitolo per compilarlo manualmente. Ma non raccomandiamo la sua installazione.
apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutilscd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 < suphp.patch
cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin/apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
make install Crea la directory di configurazione suphp e il file suphp.conf:
mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf[global]
;Percorso al file di log
logfile=/var/log/suphp/suphp.log
;Livello di log
loglevel=info
;Utente con cui Apache sta girando
webserver_user=www-data
;Percorso in cui devono trovarsi tutti gli script
docroot=/var/www
;Percorso per chroot() prima di eseguire lo script
;chroot=/mychroot
; Opzioni di sicurezza
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Controlla se lo script è all'interno di DOCUMENT_ROOT
check_vhost_docroot=true
;Invia messaggi di errore minori al browser
errors_to_browser=false
;Variabile di ambiente PATH
env_path=/bin:/usr/bin
;Umask da impostare, specificare in notazione ottale
umask=0022
; UID minimo
min_uid=100
; GID minimo
min_gid=100
[handlers]
;Handler per gli script php
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler per gli script CGI
x-suphp-cgi=execute:!self
umask=0022Successivamente aggiungeremo un file di configurazione per caricare il modulo suphp in apache:
echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so" > /etc/apache2/mods-available/suphp.loadE poi apri /etc/apache2/mods-available/suphp.conf…
nano /etc/apache2/mods-available/suphp.conf… e aggiungi il seguente contenuto:
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp
suPHP_Engine on
# Per impostazione predefinita, disabilita suPHP per le applicazioni web pacchettizzate di debian poiché i file
# sono di proprietà di root e non possono essere eseguiti da suPHP a causa di min_uid.
suPHP_Engine off
# # Usa un file di configurazione php specifico (una directory che contiene un file php.ini)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Indica a mod_suphp di NON gestire le richieste con il tipo .
# suPHP_RemoveHandler
Abilita il modulo suphp in apache:
a2enmod suphpRiavvia Apache successivamente:
service apache2 restart11 Installa Let’s Encrypt
ISPConfig 3.1 ha supporto 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 direttamente da ISPConfig.
Ora aggiungeremo supporto per Let’s Encrypt.
mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-autoOra esegui il comando certboot-auto che scaricherà e installerà il software e le sue dipendenze.
./certbot-autoIl comando ti dirà quindi che “nessun nome è stato trovato nei tuoi file di configurazione” e chiede se deve continuare, per favore scegli “no” qui poiché i certificati saranno creati da ISPConfig.

12 Installa PHP-FPM e XCache
XCache è un cache opcode PHP gratuito e open source per la memorizzazione nella cache e l’ottimizzazione del codice intermedio PHP. È simile ad altri cache opcode PHP, come eAccelerator e APC. È fortemente raccomandato avere uno di questi installato per velocizzare la tua pagina PHP.
12.1 PHP-FPM (raccomandato)
A partire da ISPConfig 3.0.5, c’è una modalità PHP aggiuntiva che puoi selezionare per l’uso con Apache: PHP-FPM.
Per utilizzare PHP-FPM con Apache, abbiamo bisogno del modulo mod_fastcgi di Apache (per favore non confonderlo con mod_fcgid - sono molto simili, ma non puoi usare PHP-FPM con mod_fcgid). Possiamo installare PHP-FPM e mod_fastcgi come segue:
apt-get install libapache2-mod-fastcgi php5-fpmAssicurati di abilitare il modulo e riavviare Apache:
a2enmod actions fastcgi alias
service apache2 restart12.2 Installa XCache
XCache può essere installato come segue:
apt-get install php5-xcacheOra riavvia Apache:
service apache2 restart13 Installa Mailman
ISPConfig ti consente di gestire (creare/modificare/eliminare) le liste di distribuzione Mailman. Se desideri utilizzare questa funzione, 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 file /etc/aliases (o
equivalente) aggiungendo le seguenti righe, e possibilmente eseguendo il
`newaliases' programma:
## 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"
Premi invio per notificare il proprietario di mailman... <-- INVIO
root@server1:~#Apri /etc/aliases successivamente…
nano /etc/aliases… e aggiungi le seguenti righe:
[...]
## 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"Esegui:
newaliasese riavvia Postfix:
service postfix restartInfine, 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:
service apache2 restartQuindi avvia il demone Mailman:
service mailman start14 Installa PureFTPd e Quota
PureFTPd e quota possono essere installati con il seguente comando:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolModifica 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/Successivamente, 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 nome del tuo paese (ad esempio, "IT").
State or Province Name (full name) [Some-State]: <-- Inserisci il nome del tuo stato o provincia.
Locality Name (eg, city) []: <-- Inserisci la tua città.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Inserisci il nome della tua organizzazione (ad esempio, il nome della tua azienda).
Organizational Unit Name (eg, section) []: <-- Inserisci il nome della tua unità organizzativa (ad esempio, "IT Department").
Common Name (eg, YOUR name) []: <-- Inserisci il nome di dominio completamente qualificato del sistema (ad esempio, "server1.example.com").
Email Address []: <-- Inserisci il tuo indirizzo email.Cambia i permessi del certificato SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pemQuindi riavvia PureFTPd:
service pure-ftpd-mysql restartModifica /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 utilizzato con UUID= come un modo più robusto per nominare i dispositivi
# che funziona anche se i dischi vengono aggiunti e rimossi. Vedi fstab(5).
#
#
# / era su /dev/sda1 durante l'installazione
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap era su /dev/sda5 durante l'installazione
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 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 -avug15 Installa il Server DNS BIND
BIND può essere installato come segue:
apt-get install bind9 dnsutilsSe il tuo server è una macchina virtuale, è altamente raccomandato 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 havegedUn’ulteriore spiegazione su questo argomento può essere trovata qui.
16 Installa Webalizer e AWStats
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 successivamente…
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.sh17 Installa Jailkit
Jailkit è necessario solo se desideri chrootare gli utenti SSH. Può essere installato come segue (importante: Jailkit deve essere installato prima di ISPConfig - non può essere installato successivamente!):
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /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 binaryOra puoi installare il pacchetto Jailkit.deb come segue:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*18 Installa fail2ban e UFW Firewall
Questo è facoltativo 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.local[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 = 3Quindi crea i seguenti due file di filtro:
nano /etc/fail2ban/filter.d/pureftpd.conf[Definition]
failregex = .*pure-ftpd: \(.*@\) \[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\S*),.*
ignoreregex = Quindi, per aggiungere la riga ignoreregex nel file di filtro postfix-sasl, esegui:
echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.confRiavvia fail2ban successivamente:
service fail2ban restartPer installare il firewall UFW, esegui questo comando apt:
apt-get install ufwRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.