Installazione Server · 12 min read · Sep 30, 2025
Installazione di un cluster Web, Email e MySQL Database su Debian 6.0 con ISPConfig 3 - Pagina 2
I passaggi successivi devono essere eseguiti sul server 1 e sul server 2.
Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo:
apt-get 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-perlLa configurazione di ISPConfig 3 utilizza amavisd che carica internamente la libreria del filtro SpamAssassin, quindi possiamo fermare SpamAssassin per liberare un po’ di RAM:
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
Quindi installa Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt come segue:
apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl 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 libapache2-mod-suphp libruby libapache2-mod-ruby php5-xcache libapache2-mod-perl2 sudo zip wgetVedrai la seguente domanda:
Server web da riconfigurare automaticamente: <– apache2
Configurare il database per phpmyadmin con dbconfig-common? <– No
Quindi esegui il seguente comando per abilitare i moduli Apache suexec, rewrite, ssl, actions e include:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digestPureFTPd e quota possono essere installati con il seguente comando:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatoolModifica il file /etc/default/pure-ftpd-common…
vi /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
[...]Modifica il file /etc/inetd.conf per impedire a inetd di provare a avviare ftp:
vi /etc/inetd.confSe c’è una riga che inizia con ftp stream tcp, commentala (se non c’è tale file, va bene, e non devi modificare /etc/inetd.conf):
[...]
#:STANDARD: Questi sono servizi standard.
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]Se hai dovuto modificare /etc/inetd.conf, riavvia inetd ora:
/etc/init.d/openbsd-inetd restartOra 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/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.pemNome del Paese (codice di 2 lettere) [AU]: <– Inserisci il tuo Nome del Paese (ad es., “IT”).
Nome dello Stato o della Provincia (nome completo) [Some-State]: <– Inserisci il tuo Nome dello Stato o della Provincia.
Nome della Località (ad es., città) []: <– Inserisci la tua Città.
Nome dell’Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <– Inserisci il tuo Nome dell’Organizzazione (ad es., il nome della tua azienda).
Nome dell’Unità Organizzativa (ad es., sezione) []: <– Inserisci il tuo Nome dell’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.pemQuindi riavvia PureFTPd:
/etc/init.d/pure-ftpd-mysql restartModifica /etc/fstab. Il mio appare così (ho aggiunto, usrjquota=aquota.user, grpjquota=aquota.group, jqfmt=vfsv0 alla partizione con il punto di montaggio /):
vi /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).
#
#
proc /proc proc defaults 0 0
# / era su /dev/sda1 durante l'installazione
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
# swap era su /dev/sda5 durante l'installazione
UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 Per abilitare la quota, esegui questi comandi:
mount -o remount /quotacheck -avugm
quotaon -avug
Installa il server DNS BIND:
apt-get -y install bind9 dnsutilsInstalla vlogger, webalizer e awstats:
apt-get -y install vlogger webalizer awstats geoip-databaseApri /etc/cron.d/awstats dopo…
vi /etc/cron.d/awstats… e commenta entrambi i cron job in quel file:
#*/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 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 dopo!):
apt-get -y install build-essential autoconf automake1.9 libtool flex bisoncd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*
Installa fail2ban: 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:
vi /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
Quindi crea i seguenti due file di filtro:
vi /etc/fail2ban/filter.d/pureftpd.conf[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Autenticazione fallita per l'utente.*
ignoreregex = vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Autenticazione fallita|Login abortito \(autenticazione fallita|Login abortito \(tentato di usare disabilitato|Disconnesso \(autenticazione fallita|Login abortito \(\d+ tentativi di autenticazione).*rip=(?P\S*),.*
ignoreregex = Riavvia fail2ban dopo:
/etc/init.d/fail2ban restartPer installare il client webmail SquirrelMail, esegui:
apt-get install squirrelmailQuindi crea il seguente symlink…
ln -s /usr/share/squirrelmail/ /var/www/webmail… e configura SquirrelMail:
squirrelmail-configureDobbiamo dire a SquirrelMail che stiamo usando Dovecot-IMAP/-POP3:
Configurazione di SquirrelMail : Leggi: config.php (1.4.0)
Menu Principale –
- Preferenze Organizzazione
- Impostazioni Server
- Impostazioni Cartella
- Opzioni Generali
- Temi
- Rubriche
- Messaggio del Giorno (MOTD)
- Plugin
- Database
- Lingue
D. Imposta impostazioni predefinite per server IMAP specifici
C Attiva colore
S Salva dati
Q Esci
Comando >> <– D
Configurazione di SquirrelMail : Leggi: config.php
Mentre stavamo costruendo SquirrelMail, abbiamo scoperto alcune
preferenze che funzionano meglio con alcuni server che
non funzionano così bene con altri. Se selezioni il tuo
server IMAP, questa opzione imposterà alcune
impostazioni predefinite per quel server.
Si prega di notare che dovrai comunque
verificare che tutto sia corretto. Questo
non cambia tutto. Ci sono
solo alcune impostazioni che questo
cambierà.
Si prega di selezionare il proprio server IMAP:
bincimap = Server IMAP Binc
courier = Server IMAP Courier
cyrus = Server IMAP Cyrus
dovecot = Server IMAP Sicuro Dovecot
exchange = Server IMAP Microsoft Exchange
hmailserver = hMailServer
macosx = Server di posta Mac OS X
mercury32 = Mercury/32
uw = Server IMAP dell’Università di Washington
gmail = Accesso IMAP agli account di posta Google (Gmail)
quit = Non cambiare nulla
Comando >> <– dovecot
Configurazione di SquirrelMail : Leggi: config.php
Mentre stavamo costruendo SquirrelMail, abbiamo scoperto alcune
preferenze che funzionano meglio con alcuni server che
non funzionano così bene con altri. Se selezioni il tuo
server IMAP, questa opzione imposterà alcune
impostazioni predefinite per quel server.
Si prega di notare che dovrai comunque
verificare che tutto sia corretto. Questo
non cambia tutto. Ci sono
solo alcune impostazioni che questo
cambierà.
Si prega di selezionare il proprio server IMAP:
bincimap = Server IMAP Binc
courier = Server IMAP Courier
cyrus = Server IMAP Cyrus
dovecot = Server IMAP Sicuro Dovecot
exchange = Server IMAP Microsoft Exchange
hmailserver = hMailServer
macosx = Server di posta Mac OS X
mercury32 = Mercury/32
uw = Server IMAP dell’Università di Washington
gmail = Accesso IMAP agli account di posta Google (Gmail)
quit = Non cambiare nulla
Comando >> dovecot
imap_server_type = dovecot
default_folder_prefix =
trash_folder = Cestino
sent_folder = Inviati
draft_folder = Bozze
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false
Premi invio per continuare… <– premi ENTER
Configurazione di SquirrelMail : Leggi: config.php (1.4.0)
Menu Principale –
- Preferenze Organizzazione
- Impostazioni Server
- Impostazioni Cartella
- Opzioni Generali
- Temi
- Rubriche
- Messaggio del Giorno (MOTD)
- Plugin
- Database
- Lingue
D. Imposta impostazioni predefinite per server IMAP specifici
C Attiva colore
S Salva dati
Q Esci
Comando >> <– S
Configurazione di SquirrelMail : Leggi: config.php (1.4.0)
Menu Principale –
- Preferenze Organizzazione
- Impostazioni Server
- Impostazioni Cartella
- Opzioni Generali
- Temi
- Rubriche
- Messaggio del Giorno (MOTD)
- Plugin
- Database
- Lingue
D. Imposta impostazioni predefinite per server IMAP specifici
C Attiva colore
S Salva dati
Q Esci
Comando >> <– Q
Successivamente abilitiamo un Alias globale /webmail per Squirrelmail:
cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 reload
Ora apri /etc/apache2/conf.d/squirrelmail.conf…
vi /etc/apache2/conf.d/squirrelmail.conf… e aggiungi le seguenti righe al contenitore
[...]
Alias /webmail /usr/share/squirrelmail
Options FollowSymLinks
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp
php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname
php_flag register_globals off
DirectoryIndex index.php
# l'accesso a configtest è limitato per impostazione predefinita per prevenire perdite di informazioni
order deny,allow
deny from all
allow from 127.0.0.1
[...]Crea la directory /var/lib/squirrelmail/tmp…
mkdir /var/lib/squirrelmail/tmp… e rendila di proprietà dell’utente www-data:
chown www-data /var/lib/squirrelmail/tmpRicarica Apache di nuovo:
/etc/init.d/apache2 reloadQuesto è già tutto - /etc/apache2/conf.d/squirrelmail.conf definisce un alias chiamato /squirrelmail che punta alla directory di installazione di SquirrelMail /usr/share/squirrelmail.
Ora puoi accedere a SquirrelMail dal tuo sito web come segue:
http://www.example.com/squirrelmailPuoi anche accedervi dal pannello di controllo ISPConfig vhost come segue (questo non richiede alcuna configurazione in ISPConfig):
http://server1.example.com:8080/squirrelmailSuccessivamente installiamo Unison. Unison viene utilizzato per sincronizzare le directory /var/www e /var/vmail tra master e slave
apt-get install unisonOra installiamo un file di configurazione unison sul primo server.
Sul server 1:
Crea un nuovo file /root/.unison/default.prf sul server1…
mkdir /root/.unison
vi /root/.unison/default.prf
… e aggiungi il seguente contenuto:
# Radici della sincronizzazione
root = /var
root = ssh://192.168.0.106//var/
# Percorsi da sincronizzare
path = www
path = vmail
# Alcuni regex che specificano nomi e percorsi da ignorare
#ignore = Path stats ## ignora /var/www/stats
#ignore = Path stats/* ## ignora /var/www/stats/*
#ignore = Path */stats ## ignora /var/www/somedir/stats, ma non /var/www/a/b/c/stats
#ignore = Name *stats ## ignora tutti i file/directory che terminano con "stats"
#ignore = Name stats* ## ignora tutti i file/directory che iniziano con "stats"
#ignore = Name *.tmp ## ignora tutti i file con l'estensione .tmp
# Quando impostato su true, questo flag causa l'interfaccia utente a saltare
# la richiesta di conferme su modifiche non conflittuali. (Più
# precisamente, quando l'interfaccia utente ha finito di impostare la
# direzione di propagazione per un'entrata e sta per passare alla
# successiva, salterà tutte le voci non conflittuali e andrà
# direttamente al prossimo conflitto.)
auto=true
# Quando questo è impostato su true, l'interfaccia utente non farà domande
# affatto. Le modifiche non conflittuali verranno propagate;
# i conflitti verranno saltati.
batch=true
# !Quando questo è impostato su true, Unison richiederà un'ulteriore
# conferma se sembra che l'intero replica sia stata
# eliminata, prima di propagare la modifica. Se il flag batch è
# impostato, la sincronizzazione verrà interrotta. Quando il percorso
# preferito è utilizzato, la stessa conferma verrà richiesta per
# i percorsi di primo livello. (Al momento, questo flag influisce solo
# sull'interfaccia utente testuale.) Vedi anche la preferenza
# mountpoint.
confirmbigdel=true
# Quando questa preferenza è impostata su true, Unison utilizzerà il
# tempo di modifica e la lunghezza di un file come un `numero di inode
# pseudo' quando scansiona le repliche per aggiornamenti, invece di leggere
# i contenuti completi di ogni file. Sotto Windows, questo può causare
# a Unison di perdere la propagazione di un aggiornamento se il tempo di
# modifica e la lunghezza del file non sono stati modificati dall'aggiornamento.
# Tuttavia, Unison non sovrascriverà mai tale aggiornamento con una
# modifica dall'altra replica, poiché esegue sempre un controllo sicuro
# per aggiornamenti appena prima di propagare una modifica. Pertanto, è
# ragionevole utilizzare questo switch sotto Windows la maggior parte del tempo
# e occasionalmente eseguire Unison una volta con fastcheck impostato su false,
# se sei preoccupato che Unison possa aver trascurato un aggiornamento.
# Il valore predefinito della preferenza è auto, che causa
# Unison di utilizzare controlli rapidi su repliche Unix (dove è sicuro)
# e controlli lenti su repliche Windows. Per compatibilità
# retroattiva, yes, no e default possono essere utilizzati al posto di
# true, false e auto. Vedi la sezione "Controllo Veloce" per ulteriori
# informazioni.
fastcheck=true
# Quando questo flag è impostato su true, gli attributi di gruppo dei
# file vengono sincronizzati. Se i nomi dei gruppi o gli identificatori di gruppo
# vengono sincronizzati dipende dalla preferenza numerids.
group=true
# Quando questo flag è impostato su true, gli attributi di proprietario dei
# file vengono sincronizzati. Se i nomi dei proprietari o gli identificatori dei
# proprietari vengono sincronizzati dipende dalla preferenza
# extttnumerids.
owner=true
# Includere la preferenza -prefer root causa Unison sempre a
# risolvere i conflitti a favore di root, piuttosto che chiedere
# indicazioni all'utente. (La sintassi di root è la stessa di
# quella della preferenza root, più i valori speciali newer e older.)
# Questa preferenza è sovrascritta dalla preferenza preferpartial.
# Questa preferenza dovrebbe essere utilizzata solo se sei sicuro di sapere
# cosa stai facendo!
prefer=newer
# Quando questa preferenza è impostata su true, l'interfaccia utente
# testuale non stamperà nulla, tranne nel caso di errori.
# Impostare silent su true imposta automaticamente la preferenza batch
# su true.
silent=true
# Quando questo flag è impostato su true, i tempi di modifica dei file
# (ma non i modtimes delle directory) vengono propagati.
times=trueVogliamo automatizzare la sincronizzazione, ecco perché creiamo un cron job per essa su server1.example.tld:
crontab -e*/5 * * * * /usr/bin/unison &> /dev/nullRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.