Server Setup · 7 min read · Dec 18, 2025

Il Server Perfetto - Debian 9 (Stretch) con Apache, BIND, Dovecot, PureFTPD e 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 -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 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 memcached libapache2-mod-passenger php7.0-soap

Vedrai le seguenti domande:

Web server da riconfigurare automaticamente: <- apache2  
 Configurare il database per phpmyadmin con dbconfig-common? <- yes  
Inserisci la password dell'applicazione phpmyadmin? <-  Premi semplicemente invio  

Quindi 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

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

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

Incolla il seguente contenuto nel file:


    RequestHeader unset Proxy early

E abilita il modulo eseguendo:

a2enconf httpoxy  
service apache2 restart

10.1 Installa HHVM (HipHop Virtual Machine)

Non ci sono pacchetti HHVM disponibili per Debian 9. HHVM è una modalità PHP opzionale, quindi il tuo server funzionerà senza di essa, non puoi semplicemente utilizzare la modalità PHP HHVM per i siti web.

10.2 SuPHP

SuPHP non è più disponibile per Debian 9, le funzioni SuPHP sono obsolete e verranno rimosse anche da ISPConfig. Usa le modalità PHP disponibili PHP-FPM o PHP-FCGI insieme a suexec invece di SuPHP.

11 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 il supporto per Let’s Encrypt.

cd /usr/local/bin  
wget https://dl.eff.org/certbot-auto  
chmod a+x certbot-auto  
./certbot-auto --install-only

Non sono necessari ulteriori passaggi oltre all’installazione di LE. I certificati SSL del sito web vengono creati da ISPConfig quando aggiungi i siti web.

12 Installa PHP-FPM

Per utilizzare PHP-FPM con Apache, abbiamo bisogno del modulo mod_proxy_fcgi di Apache, che è installato per impostazione predefinita e deve solo essere abilitato. Possiamo installare PHP-FPM come segue:

apt-get -y install php7.0-fpm

Assicurati di abilitare i moduli e riavviare Apache:

a2enmod actions proxy_fcgi alias  
service apache2 restart

12.2 Installa PHP Opcode Cache (opzionale)

Opcache è un cache opcode PHP gratuito per memorizzare nella cache e ottimizzare il codice intermedio PHP. APCu è un modulo di compatibilità che fornisce funzioni compatibili con APC per Opcache, utilizzato da molti sistemi di caching CMS. È consigliato avere queste estensioni PHP installate per velocizzare la tua pagina PHP.

APCu può essere installato come segue:

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

Ora riavvia Apache:

service apache2 restart

13 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 mailman

Seleziona almeno una lingua, ad esempio:

Languages to support: <-- it (Italian)  
 Missing site list <-- Ok

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

newlist mailman
root@server1:~# newlist mailman  
Inserisci l'email della persona che gestisce la lista: <-- indirizzo email dell'amministratore, ad esempio [email protected]  
Password iniziale di mailman: <-- password dell'amministratore per la lista mailman  
Per completare la creazione della tua lista di distribuzione, devi modificare il tuo file /etc/aliases (o 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... <-- ENTER  
   
root@server1:~#

Apri /etc/aliases dopo…

nano /etc/aliases

… e aggiungi le seguenti righe:

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

Esegui:

newaliases

e riavvia Postfix:

service postfix restart

Infine, dobbiamo abilitare la configurazione di Apache di Mailman:

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

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

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

Riavvia Apache dopo:

service apache2 restart

Quindi avvia il demone Mailman:

service mailman start

14 Installa PureFTPd e Quota

PureFTPd e quota possono essere installati con il seguente comando:

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

Crea il file dhparam per pure-ftpd:

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

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

nano /etc/default/pure-ftpd-common

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

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

Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro 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
Country 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, "Reparto IT").  
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.pem

Quindi 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
# /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=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap era su /dev/sda5 durante l'installazione  
UUID=8d3194e7-edb5-4492-937d-d066b4994baf none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Per abilitare la quota, esegui questi comandi:

mount -o remount /
quotacheck -avugm  
quotaon -avug

15 Installa il Server DNS BIND

BIND può essere installato come segue:

apt-get install bind9 dnsutils

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

apt-get install haveged

Un’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-perl

Apri /etc/cron.d/awstats dopo…

nano /etc/cron.d/awstats

… e commenta tutto in quel file:

#MAILTO=root

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

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

17 Installa Jailkit

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

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

Ora puoi installare il pacchetto Jailkit.deb come segue:

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

18 Installa fail2ban e UFW Firewall

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

apt-get install fail2ban

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

nano /etc/fail2ban/jail.local

E aggiungi la seguente configurazione:

[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-sasl  
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
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.