Server Setup · 7 min read · Sep 25, 2025
Il Server Perfetto - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD e ISPConfig 3)
Questo tutorial mostra i passaggi per installare un server Ubuntu 15.10 (Wiley Werewolf) con Nginx, PHP, MariaDB, Postfix, pure-ftpd, BIND, Dovecot e ISPConfig 3. ISPConfig 3 è un pannello di controllo per l’hosting web che consente di configurare i servizi installati tramite un browser web. Questa configurazione fornisce un server di hosting completo con servizi web, email (inclusi filtri spam e antivirus), Database, FTP e DNS.
1. Nota Preliminare
In questo tutorial, utilizzerò il nome host server1.example.com con l’indirizzo IP 192.168.1.100 e il gateway 192.168.1.1 per la configurazione di rete. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato. Prima di procedere ulteriormente, devi avere un’installazione minima di base di Ubuntu 15.10 come spiegato nel tutorial.
I passaggi in questo tutorial devono essere eseguiti come utente root, quindi non premetterò “sudo” davanti ai comandi. Accedi come utente root al tuo server prima di procedere oppure esegui:
sudo super diventare root quando sei connesso come un altro utente nella shell.
I comandi per modificare i file utilizzeranno l’editor “nano”, puoi sostituirlo con un editor a tua scelta. Nano è un editor di file facile da usare per la shell. Se ti piace usare nano e non lo hai ancora installato, esegui:
apt-get install nano2. Aggiorna la Tua Installazione di Linux
Modifica /etc/apt/sources.list. Commenta o rimuovi il CD di installazione dal file e assicurati che i repository universe e multiverse siano abilitati. Dovrebbe apparire così:
nano /etc/apt/sources.list#
# deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted
#deb cdrom:[Ubuntu-Server 15.10 _Wily Werewolf_ - Release amd64 (20151021)]/ wily main restricted
# Vedi http://help.ubuntu.com/community/UpgradeNotes per come aggiornare a
# versioni più recenti della distribuzione.
deb http://de.archive.ubuntu.com/ubuntu/ wily main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily main restricted
## Aggiornamenti di correzione di bug importanti prodotti dopo il rilascio finale della
## distribuzione.
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates main restricted
## N.B. il software di questo repository è COMPLETAMENTE NON SUPPORTATO dal team di Ubuntu
## Inoltre, si prega di notare che il software in universe NON riceverà alcuna
## revisione o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ wily universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily universe
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates universe
## N.B. il software di questo repository è COMPLETAMENTE NON SUPPORTATO dal team di Ubuntu
## e potrebbe non essere sotto una licenza libera. Ti preghiamo di soddisfare te stesso riguardo
## ai tuoi diritti di utilizzo del software. Inoltre, si prega di notare che il software in
## multiverse NON riceverà alcuna revisione o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ wily multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily multiverse
deb http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-updates multiverse
## N.B. il software di questo repository potrebbe non essere stato testato come
## ampiamente come quello contenuto nella versione principale, anche se include
## versioni più recenti di alcune applicazioni che possono fornire funzionalità utili.
## Inoltre, si prega di notare che il software in backports NON riceverà alcuna revisione
## o aggiornamenti dal team di sicurezza di Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu wily-security main restricted
deb-src http://security.ubuntu.com/ubuntu wily-security main restricted
deb http://security.ubuntu.com/ubuntu wily-security universe
deb-src http://security.ubuntu.com/ubuntu wily-security universe
deb http://security.ubuntu.com/ubuntu wily-security multiverse
deb-src http://security.ubuntu.com/ubuntu wily-security multiverse
## Decommenta le seguenti due righe per aggiungere software dal repository
## 'partner' di Canonical.
## Questo software non fa parte di Ubuntu, ma è offerto da Canonical e dai
## rispettivi fornitori come servizio agli utenti di Ubuntu.
# deb http://archive.canonical.com/ubuntu wily partner
# deb-src http://archive.canonical.com/ubuntu wily partner Poi esegui:
apt-get updateper aggiornare il database dei pacchetti apt e poi:
apt-get upgradeper installare gli ultimi aggiornamenti (se ce ne sono). Se vedi che un nuovo kernel viene installato come parte degli aggiornamenti, dovresti riavviare il sistema dopo:
reboot3. Cambia la Shell Predefinita
/bin/sh è un symlink a /bin/dash, tuttavia abbiamo bisogno di /bin/bash, non di /bin/dash. Pertanto facciamo questo:
dpkg-reconfigure dashUsare dash come shell di sistema predefinita (/bin/sh)? <– No
Se non lo fai, l’installazione di ISPConfig fallirà.
4. Disabilita AppArmor
AppArmor è un’estensione di sicurezza (simile a SELinux) che dovrebbe fornire sicurezza avanzata. Non è installato di default a partire dalla 13.10. Verificheremo se è installato. A mio avviso non ne hai bisogno per configurare un sistema sicuro, e di solito causa più problemi che vantaggi (pensa a dopo aver fatto una settimana di risoluzione dei problemi perché qualche servizio non funzionava come previsto, e poi scopri che tutto andava bene, solo AppArmor stava causando il problema). Pertanto, lo disabilito (questo è un must se vuoi installare ISPConfig in seguito).
Possiamo disabilitarlo in questo modo:
service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils5. Sincronizza l’Orologio di Sistema
È una buona idea sincronizzare l’orologio di sistema con un server NTP ( network time protocol) su Internet. Esegui semplicemente
apt-get install ntp ntpdatee il tuo orario di sistema sarà sempre sincronizzato.
6. Installa Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, Binutils
Possiamo installare Postfix, Dovecot, MariaDB (come sostituto di MySQL), rkhunter e binutils con un solo comando:
apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudoMariaDB è un fork del server di database MySQL, sviluppato dal creatore originale di MySQL Monty Widenius. Secondo i test trovati su Internet, MariaDB è più veloce di MySQL e il suo sviluppo sta procedendo a un ritmo più veloce, pertanto, la maggior parte delle distribuzioni Linux ha sostituito MySQL con MariaDB come server di database “simile a MySQL” predefinito. Nel caso in cui tu preferisca MySQL a MariaDB, sostituisci “mariadb-client mariadb-server” nel comando sopra con “mysql-client mysql-server”.
Ti verranno poste le seguenti domande:
Tipo generale di configurazione della posta: <-- Internet Site
Nome della posta di sistema: <-- server1.example.comSuccessivamente apri le porte TLS/SSL e di invio in Postfix:
nano /etc/postfix/master.cfDecommenta le sezioni di invio e smtps come segue - aggiungi la riga -o smtpd_client_restrictions=permit_sasl_authenticated,reject a entrambe le sezioni e lascia tutto il resto commentato:
[...]
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
[...] Riavvia Postfix dopo:
service postfix restartVogliamo che MariaDB/MySQL ascolti su tutte le interfacce, non solo su localhost. Pertanto modifichiamo /etc/mysql/mariadb.conf.d/mysqld.cnf (per MariaDB) o /etc/mysql/my.cnf (per MySQL) e commentiamo la riga bind-address = 127.0.0.1:
MariaDB
nano /etc/mysql/mariadb.conf.d/mysqld.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
[...] Poi riavviamo MariaDB:
service mysql restartIl nome del servizio systemd per MariaDB e MySQL è “mysql”, quindi il comando di riavvio è lo stesso per entrambi i server di database.
Ora impostiamo una password root in MariaDB. Esegui:
mysql_secure_installationTi verranno poste queste domande:
Inserisci la password attuale per root (premi invio per nessuna): <-- premi invio
Imposta la password root? [Y/n] <-- y
Nuova password: <-- Inserisci qui la nuova password root di MariaDB
Reinserisci la nuova password: <-- Ripeti la password
Rimuovi utenti anonimi? [Y/n] <-- y
Disabilita l'accesso remoto per root? [Y/n] <-- y
Ricarica le tabelle di privilegio ora? [Y/n] <-- yPoi esegui questo comando per disabilitare il plugin di autenticazione UNIX per l’utente root:
echo "update user set plugin='' where User='root';flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysqlPer consentire l’autenticazione basata su password da PHPMyAdmin.
MySQL
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
[...] Poi riavviamo MySQL:
service mysql restartIl nome del servizio systemd per MariaDB e MySQL è “mysql”, quindi il comando di riavvio è lo stesso per entrambi i server di database.
Per MySQL e MariaDB:
Ora controlla che la rete sia abilitata. Esegui:
netstat -tap | grep mysqlL’output dovrebbe apparire così:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8032/mysqld
root@server1:~#7. Installa Amavisd-new, SpamAssassin e ClamAV
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-new che carica internamente la libreria del filtro SpamAssassin, quindi possiamo fermare SpamAssassin per liberare RAM:
service spamassassin stop
update-rc.d -f spamassassin removePer aggiornare le firme antivirus di ClamAV e avviare il servizio Clamd. Il processo di aggiornamento può richiedere del tempo, non interromperlo.
freshclam
service clamav-daemon startRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.