Server Virtuali · 11 min read · Dec 17, 2025
Ambiente Multiserver Virtuale Con Server Web & MySQL, Email & DNS Dedicati Su Debian Squeeze Con ISPConfig 3 - Pagina 2
5 Creazione Dei Server Virtuali
Ora utilizzeremo il Pannello Web OVZ per creare i nostri server virtuali. Accedi al pannello e aggiungi i tuoi IP sotto Indirizzi IP. Quindi, fai clic su localhost e Modelli OS.
Ora dobbiamo scaricare un modello per i nostri server virtuali. Lo facciamo facendo clic su Installa Nuovo Modello OS -> Contribuito e selezioniamo debian-6.0-amd64-minimal.
Ora torna a localhost e fai clic su Crea server virtuale. Compila i campi come di seguito:
- ID Server (VEID): un numero (sceglierei l’ultima parte del tuo IP, quindi 2 per il primo)
- Modello OS: già selezionato quello giusto
- Modello Server: illimitato
- Indirizzo IP: 192.168.1.2
- Nome Host: web.example.tld
- Server DNS: 8.8.4.4 8.8.8.8 (che sono i DNS di Google)
- lascia il resto com’è e assegna Spazio Disco, RAM e CPU come vuoi…
Ripeti questo passaggio per tutti i tuoi server virtuali (finalmente 4 volte: Web, Mail, 2x DNS).
5.1 Preparazione Dei Server Virtuali
Ora dovresti accedere a ogni singolo server virtuale ed eseguire questi comandi:
apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate
che li aggiornerà all’ultima versione e installerà alcuni pacchetti mancanti.
6 Installazione Dei Server Dedicati
6.1 Installazione Del Server Web/DB
Modifica il file hosts e aggiungi gli indirizzi IP e i nomi host per tutti i server. I nomi host e gli indirizzi IP devono essere adattati per corrispondere alla tua configurazione.
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 ns2.example.tld
# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsImposta il nome host del server:
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Installa il server MySQL. Un’istanza del server MySQL è necessaria su ogni server poiché ISPConfig lo utilizza per sincronizzare la configurazione tra i server.
apt-get -y install mysql-client mysql-server
Inserisci la nuova password per MySQL quando richiesta dall’installatore.
Vogliamo che MySQL ascolti su tutte le interfacce sul server master, non solo localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf
[...]
# Invece di skip-networking il predefinito ora è ascoltare solo su
# localhost che è più compatibile e non è meno sicuro.
#bind-address = 127.0.0.1
[...] Quindi riavvia MySQL:
/etc/init.d/mysql restart
Ora 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-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 libopenssl-ruby libapache2-mod-ruby sudo zip wget
Vedrai la seguente domanda:
Server web da riconfigurare automaticamente: <– apache2
Quindi esegui il seguente comando per abilitare i moduli Apache suexec, rewrite, ssl, actions, headers, expires e include:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest headers expires
PureFTPd può essere installato con il seguente comando:
apt-get -y install pure-ftpd-common pure-ftpd-mysql
Modifica il file /etc/default/pure-ftpd-common…
vi /etc/default/pure-ftpd-common
… e assicurati che virtualchroot sia impostato su VIRTUALCHROOT=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 vengono trasferiti in chiaro. Utilizzando TLS, l’intera comunicazione può essere crittografata, rendendo così FTP molto più sicuro.
Se vuoi 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 Nome del tuo 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. “Dipartimento IT”).
Nome Comune (ad es., IL TUO nome) []: <– Inserisci il Nome di Dominio Completo del sistema (ad es. “web.example.tld”).
Indirizzo Email []: <– Inserisci il tuo Indirizzo Email.
Cambia i permessi del certificato SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Installa vlogger, webalizer e awstats:
apt-get -y install vlogger webalizer awstats
Apri /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 ] && /usr/share/awstats/tools/buildstatic.shInstalla Jailkit: Jailkit è necessario solo se vuoi 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 bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit2.14-1.deb
rm -rf jailkit-2.14
Installa fail2ban: Questo è facoltativo ma raccomandato, perché il monitor di ISPConfig cerca di mostrare il log:
apt-get install fail2ban
Per far sì che fail2ban monitori PureFTPd, crea il file /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3Quindi crea il seguente file di filtro:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex = Riavvia fail2ban dopo:
/etc/init.d/fail2ban restart
Successivamente installeremo ISPConfig 3. Per ottenere l’URL di download dell’ultima versione stabile di ISPConfig 3, visita il sito web di ISPConfig: http://www.ispconfig.org/ispconfig-3/download/
Questo server è il server master nella nostra configurazione che esegue l’interfaccia del pannello di controllo ISPConfig. Per consentire agli altri server MySQL di connettersi al database MySQL su questo nodo durante l’installazione, dobbiamo aggiungere i record dell’utente root di MySQL nel database master per ogni nome host e indirizzo IP del server slave. Il modo più semplice per farlo è utilizzare lo strumento di amministrazione basato sul web phpmyadmin che abbiamo già installato. Apri l’URL http://192.168.1.2/phpmyadmin in un browser web, accedi come utente root di MySQL ed esegui queste query MySQL:
CREATE USER ‘root’@’192.168.1.3’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.3’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.1.4’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.4’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.1.5’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.5’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Nei comandi sql sopra, sostituisci gli indirizzi IP (192.168.1.3 - 192.168.1.5) con gli indirizzi IP dei tuoi server e sostituisci mail.example.tld, ns1.example.tld e ns2.example.tld con i nomi host dei tuoi server e myrootpassword con la password root desiderata.
Fai clic sul pulsante ricarica permessi o riavvia MySQL. Quindi chiudi phpmyadmin.
Torna alla shell di web.example.tld e scarica l’ultima versione stabile di ISPConfig 3:
cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
Quindi avvia lo script di installazione:
php -q install.php
Seleziona lingua (en,de) [en]: <– en
Modalità di installazione (standard, esperto) [standard]: <– esperto
Nome host completamente qualificato (FQDN) del server, ad es. server2.domain.tld [web.example.tld]: <– web.example.tld
Nome host del server MySQL [localhost]: <– localhost
Nome utente root MySQL [root]: <– root
Password root MySQL []: <– Inserisci qui la tua password root MySQL
Database MySQL da creare [dbispconfig]: <– dbispconfig
Charset MySQL [utf8]: <– utf8
Questo server deve unirsi a una configurazione multiserver ISPConfig esistente (y,n) [n]: <– n
Configura Mail (y,n) [y]: <– n
Configura Jailkit (y,n) [y]: <– y
Configura Server FTP (y,n) [y]: <– y
Configura Server DNS (y,n) [y]: <– n
Configura Server Apache (y,n) [y]: <– y
Configura Server Firewall (y,n) [y]: <–n
Installa Interfaccia Web ISPConfig (y,n) [y]: <–y
Porta ISPConfig [8080]: <– 8080
Abilita SSL per l’interfaccia web ISPConfig (y,n) [y]: <– y
Nome del Paese (codice di 2 lettere) [AU]: <– ENTER
Nome dello Stato o della Provincia (nome completo) [Some-State]: <– ENTER
Nome della Località (ad es., città) []: <– ENTER
Nome dell’Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <– ENTER
Nome dell’Unità Organizzativa (ad es., sezione) []: <– ENTER
Nome Comune (ad es., IL TUO nome) []: <– ENTER
Indirizzo Email []: <– ENTER
Una password di sfida []: <– ENTER
Un nome di azienda opzionale []: <– ENTER
Pulisci le directory di installazione:
cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
6.2 Installazione Del Server Mail
Modifica il file hosts e aggiungi gli indirizzi IP e i nomi host per tutti i server. I nomi host e gli indirizzi IP devono essere adattati per corrispondere alla tua configurazione.
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 ns2.example.tld
# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsImposta il nome host del server:
echo mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start
Installa postfix, dovecot e MySQL con un solo comando:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d
Inserisci la nuova password per mysql quando richiesta dall’installatore e rispondi alle prossime domande come descritto di seguito:
Tipo generale di configurazione? <– Sito Internet
Nome Mail? <– mail.example.tld
Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo:
apt-get -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
Se vuoi utilizzare mailinglist sul tuo server, allora installa mailman. Questo passaggio è facoltativo. mailman richiede un server web apache, quindi se non vuoi eseguire un’istanza apache sul tuo server di posta, allora non installare mailman.
apt-get -y install mailman
L’installer apt per mailman ti chiederà quindi di selezionare le lingue per la mailing list. Abilita tutte le lingue che desideri utilizzare per mailman. Successivamente crea la mailing list “mailman”.
newlist mailman
e inserisci l’indirizzo email e la nuova password per l’amministratore della mailing list. Questo è l’ultimo passaggio dell’installazione di mailman. Il comando successivo per installare php deve essere eseguito su ogni server, indipendentemente dal fatto che tu abbia installato mailman o meno.
Quindi installa la versione da riga di comando di PHP per poter eseguire script shell basati su PHP per ISPConfig:
apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt
Installa fail2ban: Questo è facoltativo ma raccomandato, 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:
vi /etc/fail2ban/jail.local
[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 = 5Quindi crea il seguente file di filtro:
vi /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 = Riavvia fail2ban dopo:
/etc/init.d/fail2ban restart
Ora installerò ISPConfig 3 su questo server. Per ottenere l’URL di download dell’ultima versione stabile di ISPConfig 3, visita il sito web di ISPConfig: http://www.ispconfig.org/ispconfig-3/download/
Scarica l’ultima versione stabile di ISPConfig 3:
cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
Quindi avvia lo script di installazione:
php -q install.php
Seleziona lingua (en,de) [en]: <– en
Modalità di installazione (standard, esperto) [standard]: <– esperto
Nome host completamente qualificato (FQDN) del server, ad es. server1.domain.tld [mail.example.tld]: <– mail.example.tld
Nome host del server MySQL [localhost]: <– localhost
Nome utente root MySQL [root]: <– root
Password root MySQL []: <– Inserisci qui la tua password root MySQL
Database MySQL da creare [dbispconfig]: <– dbispconfig
Charset MySQL [utf8]: <– utf8
Questo server deve unirsi a una configurazione multiserver ISPConfig esistente (y,n) [n]: <– y
Nome host del server master MySQL []: <– web.example.tld
Nome utente root del server master MySQL [root]: <– root
Password root del server master MySQL []: <– Inserisci qui la password root del server master
Nome del database del server master MySQL [dbispconfig]: <– dbispconfig
Configura Mail (y,n) [y]: <– y
Nome del Paese (codice di 2 lettere) [AU]: <– DE (Inserisci qui il codice ISO del paese in cui vivi)
Nome dello Stato o della Provincia (nome completo) [Some-State]: <– Niedersachsen (Inserisci qui lo stato in cui vivi)
Nome della Località (ad es., città) []: <– Lueneburg (Inserisci qui la città)
Nome dell’Organizzazione (ad es., azienda) [Internet Widgits Pty Ltd]: <– ENTER
Nome dell’Unità Organizzativa (ad es., sezione) []: <– ENTER
Nome Comune (ad es., IL TUO nome) []: <– ENTER
Indirizzo Email []: <– ENTER
Configura Jailkit (y,n) [y]: <– n
Configura Server FTP (y,n) [y]: <– n
Configura Server DNS (y,n) [y]: <– n
Configura Server Apache (y,n) [y]: <– n
Configura Server Firewall (y,n) [y]: <–n
Installa Interfaccia Web ISPConfig (y,n) [y]: <–n
Esegui…
rm -f /var/www/ispconfig
… per rimuovere il link dell’interfaccia ISPConfig nella directory /var/www.
Pulisci le directory di installazione:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.