GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Il server perfetto - Ubuntu 20.04 con Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.2

Questo tutorial mostra l'installazione di un server di hosting Web Ubuntu 20.04 (Focal Fossa) con Apache 2.4, Postfix, Dovecot, Bind e PureFTPD per prepararlo all'installazione di ISPConfig 3.2. Il sistema risultante fornirà un server Web, Mail, Mailinglist, DNS e FTP.

ISPConfig è un pannello di controllo di web hosting che permette di configurare i seguenti servizi attraverso un browser web:server web Apache o Nginx, server di posta Postfix, server Courier o Dovecot IMAP/POP3, MariaDB come sostituto di MySQL, server dei nomi BIND o MyDNS, PureFTPd, SpamAssassin, ClamAV e molti altri. Questa configurazione copre l'installazione di Apache (anziché Nginx), BIND (anziché MyDNS) e Dovecot (anziché Courier).

1. Nota preliminare

In questo tutorial, utilizzo il nome host server1.example.com con l'indirizzo IP 192.168.0.100 e il gateway 192.168.0.1  Queste impostazioni potrebbero differire per te, quindi devi sostituirle ove appropriato. Prima di procedere oltre è necessario disporre di un'installazione minima di base di Ubuntu 20.04 come spiegato nel tutorial.

I comandi in questo tutorial devono essere eseguiti con i permessi di root. Per evitare di aggiungere sudo prima di ogni comando, dovrai diventare utente root eseguendo:

sudo -s

prima di procedere.

2. Modifica /etc/apt/sources.list e aggiorna la tua installazione 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. In seguito dovrebbe apparire così:

nano /etc/apt/sources.list
# Vedi http://help.ubuntu.com/community/UpgradeNotes per come aggiornare a# versioni più recenti di distribution.deb http://de.archive.ubuntu.com/ubuntu focal main limited# deb- src http://de.archive.ubuntu.com/ubuntu focal main limited## Aggiornamenti importanti per la correzione di bug prodotti dopo il rilascio finale di ## distribution.deb http://de.archive.ubuntu.com/ubuntu focal- update main limited# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main limited## N.B. il software di questo repository NON è COMPLETAMENTE SUPPORTATO dal team di Ubuntu##. Inoltre, tieni presente che il software nell'universo NON riceverà alcuna ## recensione o aggiornamento dal team di sicurezza di Ubuntu.deb http://de.archive.ubuntu.com/ubuntu focal universe# deb-src http://de.archive .ubuntu.com/ubuntu focal universedeb http://de.archive.ubuntu.com/ubuntu focal-updates universe# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe## N.B. il software di questo repository NON è COMPLETAMENTE SUPPORTATO dal team di Ubuntu## e potrebbe non essere soggetto a una licenza gratuita. Ti preghiamo di soddisfare ## i tuoi diritti di utilizzare il software. Inoltre, tieni presente che il software in## multiverse NON riceverà alcuna recensione o aggiornamento da Ubuntu## security team.deb http://de.archive.ubuntu.com/ubuntu focal multiverse# deb-src http://de .archive.ubuntu.com/ubuntu focal multiversedeb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse## NB il software di questo repository potrebbe non essere stato testato in modo completo## come quello contenuto nella versione principale, sebbene includa## versioni più recenti di alcune applicazioni che potrebbero fornire funzionalità utili.## Inoltre, tieni presente che il software nei backport NON riceverà qualsiasi recensione## o aggiornamento dal team di sicurezza di Ubuntu.deb http://de.archive.ubuntu.com/ubuntu focal-backports universo limitato principale multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main limited universe multiverse## Decommenta le due righe seguenti 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 focal partner# deb-src http://archive.canonical.com/ubuntu focal partnerdeb http://de.archive.ubuntu.com/ubuntu focal -security main limited# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main limiteddeb http:/ /de.archive.ubuntu.com/ubuntu focal-security universe# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universedeb http://de.archive.ubuntu.com/ubuntu focal- security multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Quindi esegui

apt-get update

per aggiornare il database del pacchetto apt e

apt-get upgrade

per installare gli ultimi aggiornamenti (se presenti). Se vedi che un nuovo kernel viene installato come parte degli aggiornamenti, dovresti riavviare il sistema in seguito:

riavvio

3. Modifica la shell predefinita

/bin/sh è un collegamento simbolico a /bin/dash, tuttavia abbiamo bisogno di /bin/bash, non di /bin/dash. Pertanto, facciamo questo:

trattino di riconfigurazione dpkg

Utilizzare dash come shell di sistema predefinita (/bin/sh)? <-- No

In caso contrario, l'installazione di ISPConfig avrà esito negativo.

4. Disattiva AppArmor

AppArmor è un'estensione di sicurezza (simile a SELinux) che dovrebbe fornire una sicurezza estesa. Secondo me, non è necessario per configurare un sistema sicuro e di solito causa più problemi che vantaggi (pensaci dopo aver eseguito una settimana di risoluzione dei problemi perché alcuni servizi non funzionavano come previsto, e poi scopri fuori che era tutto ok, solo AppArmor stava causando il problema). Pertanto, lo disabilito (questo è un must se vuoi installare ISPConfig in un secondo momento).

Possiamo disabilitarlo in questo modo:

service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5. Sincronizza l'orologio di sistema

È una buona idea sincronizzare l'orologio di sistema con un NTP (n rete t ora p rotocol) su Internet quando si esegue un server fisico. Nel caso in cui tu esegua un server virtuale, dovresti saltare questo passaggio. Corri

apt-get -y install ntp

e l'ora del tuo sistema sarà sempre sincronizzata.

6. Installa Postfix, Dovecot, MariaDB, rkhunter e binutils

Per installare postfix, dobbiamo assicurarci che sendmail non sia installato e funzionante. Per interrompere e rimuovere sendmail esegui questo comando:

arresto del servizio sendmail; update-rc.d -f sendmail rimuovi

Il messaggio di errore:

Impossibile interrompere sendmail.service:unità sendmail.service non caricata.

Va bene, significa solo che sendmail non è stato installato, quindi non c'era nulla da rimuovere.

Ora possiamo installare Postfix, Dovecot, MariaDB (come sostituto di MySQL), rkhunter e binutils con un solo comando:

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo patch

Ti verranno poste le seguenti domande:

Tipo generale di configurazione della posta:<-- Sito Internet
Nome della posta di sistema:<-- server1.example.com

È importante utilizzare un sottodominio come "nome di posta di sistema" come server1.example.com o server1.tuodominio.com e non un dominio che desideri utilizzare come dominio di posta elettronica (es.tuodominio.tld) ​​in seguito.

Quindi, apri le porte TLS/SSL e di invio in Postfix:

nano /etc/postfix/master.cf

Decommenta le sezioni di invio e smtps come segue:aggiungi la riga -o smtpd_client_restrictions=permit_sasl_authenticated, rifiuta entrambe le sezioni e lascia tutto in seguito commentato:

[...]submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=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, respingere # -o milter_macro_daemon_name =ORIGINATINGsmtps inet n - y - - 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, respingere # -o milter_macro_daemon_name =ORIGINARI [...]

NOTA: Gli spazi bianchi davanti alle linee "-o .... " sono importanti!

Riavvia Postfix in seguito:

riavvio successivo al servizio

Vogliamo che MySQL sia in ascolto su tutte le interfacce, non solo su localhost. Pertanto, modifichiamo /etc/mysql/mariadb.conf.d/50-server.cnf e commentiamo la riga bind-address =127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]# Invece di saltare la rete, ora l'impostazione predefinita è ascoltare solo su# localhost che è più compatibile e non meno sicuro.# indirizzo-bind =127.0.0.1

[...]

Ora impostiamo una password di root in MariaDB. Corri:

installazione_mysql_secure

Ti verranno poste queste domande:

Inserisci la password corrente per root (inserisci per none):<-- premi invio
Imposta la password di root? [S/n] <-- y
Nuova password:<-- Immettere qui la nuova password di root MariaDB
Reinserire la nuova password:<-- Ripetere la password
Rimuovere utenti anonimi? [S/n] <-- y
Non consentire l'accesso root in remoto? [S/n] <-- y
Ricaricare le tabelle dei privilegi ora? [S/n] <-- si

Imposta il metodo di autenticazione della password in MariaDB su nativo in modo da poter utilizzare PHPMyAdmin in seguito per connetterci come utente root:

echo "update mysql.user set plugin ='mysql_native_password' where user='root';" | mysql -u root

Modifica il file /etc/mysql/debian.cnf e imposta la password di root MYSQL/MariaDB due volte nelle righe che iniziano con password.

nano /etc/mysql/debian.cnf

La password di root MySQL che deve essere aggiunta è mostrata in rosso. In questo esempio, la password è "howtoforge". Sostituisci la parola "howtoforge" con la password che hai impostato per l'utente root di MySQL con il comando mysql_secure_installation.

# Generato automaticamente per gli script Debian. NON TOCCARE!
[client]
host =localhost
utente =root
password = howtoforge
socket =/var/run/mysqld/mysqld.sock
[mysql_upgrade]
host =localhost
utente =root
password =howtoforge
socket =/var/run/mysqld/mysqld.sock
basedir =/usr

Apri il file /etc/security/limits.conf con un editor:

nano /etc/security/limits.conf

e aggiungi queste righe alla fine del file.

mysql soft nofile 65535
mysql hard nofile 65535

Quindi, crea una nuova directory /etc/systemd/system/mysql.service.d/ con il comando mkdir.

mkdir /etc/systemd/system/mysql.service.d/

e aggiungi un nuovo file all'interno:

nano /etc/systemd/system/mysql.service.d/limits.conf

incolla le seguenti righe in quel file:

[Servizio]
LimitNOFILE=infinito

Salva il file e chiudi il nano editor.

Quindi ricarichiamo systemd e riavviamo MariaDB:

systemctl daemon-reload
riavvio del servizio mariadb

Ora controlla che la rete sia abilitata. Corri

netstat -tocca | grep mysql

L'output dovrebbe essere simile a questo:

[email protetta]:~# netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      51836/mysqld
[email protected]:~#

7. Installa Amavisd-new, SpamAssassin e Clamav

Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo

apt-get -y install amavisd-new spamassassin clamav clamav-daemon 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 postgrey

La configurazione di ISPConfig 3 utilizza amavisd che carica internamente la libreria dei filtri SpamAssassin, quindi possiamo fermare SpamAssassin per liberare un po' di RAM:

servizio arresto spamassassin
update-rc.d -f rimozione spamassassin

Per avviare ClamAV usa:

freshclam
servizio clamav-daemon start

Il seguente errore può essere ignorato alla prima esecuzione di freshclam.

ERRORE:/var/log/clamav/freshclam.log è bloccato da un altro processo
ERRORE:problema con il logger interno (UpdateLogFile =/var/log/clamav/freshclam.log).

8. Installa Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear

Apache 2.4, PHP 7.4, phpMyAdmin, FCGI, suExec e Pear possono essere installati come segue:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7 .4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload -perl

Vedrai la seguente domanda:

Server Web da riconfigurare automaticamente:<-- apache2


Configura il database per phpmyadmin con dbconfig-common? <-- Sì

Password dell'applicazione MySQL per phpmyadmin:<-- Premi invio

Quindi esegui il comando seguente per abilitare i moduli Apache suexec, rewrite, ssl, actions e include (più dav, dav_fs e auth_digest se desideri utilizzare WebDAV):

a2enmod suexec riscrivi le azioni SSL includono cgi alias proxy_fcgi
intestazioni a2enmod dav_fs dav auth_digest

Per garantire che il server non possa essere attaccato tramite la vulnerabilità HTTPOXY, disabiliterò l'intestazione HTTP_PROXY in Apache a livello globale. Crea un nuovo file httpoxy.conf con nano:

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

Incolla questo contenuto nel file:

 RequestHeader unset proxy in anticipo

Abilita il file di configurazione eseguendo:

a2enconf httpoxy

Riavvia Apache in seguito:

riavvio del servizio apache2

Se vuoi ospitare file Ruby con estensione .rb sui tuoi siti web creati tramite ISPConfig, devi commentare la riga application/x-ruby rb in /etc/mime.types:

nano /etc/mime.types
[...]# applicazione/x-ruby rb[...]

(Questo è necessario solo per i file .rb; i file Ruby con estensione .rbx funzionano immediatamente.)

Riavvia Apache in seguito:

riavvio del servizio apache2

9. Installa Let's Encrypt

ISPConfig 3.2 ha il supporto integrato 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 in ISPConfig.

Ora aggiungeremo il supporto per Let's encrypt.

apt-get install certbot

10. Installa Mailman

ISPConfig permette di gestire (creare/modificare/cancellare) le mailing list di Mailman. Se vuoi utilizzare questa funzione, installa Mailman come segue:

apt-get -y install mailman

Seleziona almeno una lingua, ad es.:

Lingue supportate:<-- it (inglese)
Elenco siti mancanti <-- Ok

L'errore 'Job for mailman.service non è riuscito perché il processo di controllo è terminato con codice di errore. ' può essere ignorato per ora.

Prima di poter avviare Mailman, è necessario creare una prima mailing list chiamata mailman:

postino della nuova lista

[email protetta]:~# mailman newlist
Inserisci l'e-mail della persona che gestisce l'elenco: <-- indirizzo e-mail admin, ad es. [email protetta]
Password iniziale del postino: <-- password admin per l'elenco del postino
Per terminare la creazione della lista mail, devi modificare il tuo /etc/alias (o
equivalente) file tramite aggiungendo le righe seguenti ed eventualmente eseguendo il programma
`newaliases':

## mailing list di mailman
mailman:             "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounce:      "|/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 mailman... <-- ENTER

[email protetta]:~#

Apri /etc/alias in seguito...

nano /etc/alias

... e aggiungi le seguenti righe:

[...]## mailing list mailmanmailman:"|/var/lib/mailman/mail/mailman post mailman"mailman-admin:"|/var/lib/mailman/mail/mailman admin mailman "mailman-bounces:"|/var/lib/mailman/mail/mailman rimbalza mailman"mailman-confirm:"|/var/lib/mailman/mail/mailman conferma mailman"mailman-join:"|/var/lib/ mailman/mail/mailman unisciti a mailman"mailman-leave:"|/var/lib/mailman/mail/mailman leave mailman"mailman-owner:"|/var/lib/mailman/mail/mailman proprietario mailman"mailman-request:"|/var/lib/mailman/mail/mailman request mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman sottoscrivi mailman"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman cancella l'iscrizione postino" 

Corri

newalias

in seguito e riavvia Postfix:

riavvio successivo al servizio

Infine, dobbiamo abilitare la configurazione di Mailman Apache:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/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 un elenco su http:///cgi-bin/mailman/admin/, e la pagina web per gli utenti di una mailing list è disponibile all'indirizzo http:///cgi-bin/mailman/listinfo/.

Sotto http:///pipermail puoi trovare gli archivi della mailing list.

Attiva la configurazione con:

a2enconf postino

Riavvia Apache in seguito:

riavvio del servizio apache2

Quindi avvia il demone Mailman:

avvio servizio postino

11. Installa PureFTPd e Quota

PureFTPd e quota possono essere installati con il seguente comando:

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

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=autonoma [...]VIRTUALCHROOT=vero [...]

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ì l'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/

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.pem

Nome del Paese (codice di 2 lettere) [AU]:<-- Inserisci il nome del tuo Paese (ad es. "DE").
Nome Stato o Provincia (nome completo) [Stato-Stato]:<-- Inserisci il nome Stato o Provincia.
Nome località (ad es. città) []:<-- Inserisci la tua città.
Nome organizzazione (ad es. azienda) [Internet Widgits Pty Ltd]:<-- Inserisci il nome dell'organizzazione (ad es. il nome della tua azienda).
Nome dell'unità organizzativa (ad es. sezione) []:<-- Inserisci il nome dell'unità organizzativa (ad es. "Dipartimento IT").
Nome comune (ad es. il TUO nome) []:<-- Inserisci il nome di dominio completo del sistema (ad es. "server1.example.com").
Indirizzo e-mail []:<-- Inserisci il tuo indirizzo e-mail.

Modifica le autorizzazioni del certificato SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Quindi riavvia PureFTPd:

riavvio del servizio pure-ftpd-mysql

Modifica /etc/fstab. Il mio è simile a questo (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ù affidabile per denominare i dispositivi
# che funziona anche se i dischi vengono aggiunti e rimossi. Vedere fstab(5).
#
#
/dev/mapper/server1--vg- root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Per abilitare la quota, esegui questi comandi:

mount -o remount /
quotacheck -avugm
quotaon -avug

Che mostrerà il seguente output:

[email protected]:/tmp# quotacheck -avugm
quotacheck:Scansione /dev/mapper/server1--vg-root [/] completata
quotacheck:impossibile stabilire il vecchio file di quota utente // quota.user:nessun file o directory di questo tipo. L'utilizzo non verrà sottratto.
quotacheck:impossibile stabilire il vecchio file di quota del gruppo //quota.group:nessun file o directory di questo tipo. L'utilizzo non verrà sottratto.
quotacheck:impossibile stabilire il vecchio file di quota utente //quota.user:nessun file o directory di questo tipo. L'utilizzo non verrà sottratto.
quotacheck:impossibile stabilire il vecchio file di quota del gruppo //quota.group:nessun file o directory di questo tipo. L'utilizzo non verrà sottratto.
quotacheck:13602 directory e 96597 file controllati
quotacheck:vecchio file non trovato.
quotacheck:vecchio file non trovato.
[email protected]:/ tmp# quotaon -avug
/dev/mapper/server1--vg-root [/]:quote di gruppo attivate
/dev/mapper/server1--vg-root [/]:quote utente attivate il

12. Installa il server DNS BIND

BIND può essere installato come segue:

apt-get -y install bind9 dnsutils haveged

Abilita e avvia il demone haveged:

systemctl enable haveged
systemctl start haveged

13. Installa Vlogger, Webalizer, AWStats e GoAccess

Vlogger, Webalizer e AWStats possono essere installati come segue:

apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Installazione dell'ultima versione di GoAccess direttamente dal repository GoAccess:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess

Apri /etc/cron.d/awstats in seguito...

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 rapporti statici:# 10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

14. Installa Jailkit

Jailkit viene utilizzato per imprigionare utenti di shell e cronjob in ISPConfig. Installa jailkit con apt:

apt-get -y install jailkit

15. Installa fail2ban e UFW

Questo è facoltativo ma consigliato perché il monitor ISPConfig tenta di mostrare il registro:

apt-get -y install fail2ban

Per fare in modo che fail2ban controlli PureFTPd e Dovecot, crea il file /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local
[pure-ftpd]enabled =trueport =ftpfilter =pure-ftpdlogpath =/var/log/syslogmaxretry =3[dovecot]enabled =truefilter =dovecotaction =iptables-multiport[name=dovecot-pop3imap, port="pop3, pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5[postfix]enabled =trueport =smtpfilter =postfixlogpath =/var/log/mail.logmaxretry =3

Riavvia fail2ban in seguito:

riavvio del servizio fail2ban

Per installare il firewall UFW, esegui questo comando apt:

apt-get install ufw

16. Installa Roundcube Webmail

Per installare Roundcube Webmail, esegui:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

Il programma di installazione potrebbe porre le seguenti domande:

Configurare il database per roundcube con dbconfig-common? <-- Sì
Password dell'applicazione MySQL per roundcube:<-- Premi invio

Non preoccuparti se non ricevi queste domande e un avviso sullo script ucf, va bene.

L'avviso ucf che riceverai sulla shell può essere ignorato, non ha alcun impatto negativo sull'installazione.

Quindi modifica il file di configurazione di RoundCube Apache.

nano /etc/apache2/conf-enabled/roundcube.conf

e rimuovi il # davanti alla riga Alias, quindi aggiungi la seconda riga Alias ​​per /webmail e aggiungi la riga "AddType application/x-httpd-php .php" subito dopo la "" riga:

# Questi alias non funzionano correttamente con diversi host sul tuo server apache
# Togli il commento per usarli o adattarli alla tua configurazione
Alias ​​/roundcube /var/lib/roundcube
Alias ​​/webmail /var/lib/roundcube[...]Applicazione AddType/x-httpd-php .php[...]

E riavvia Apache

riavvio del servizio apache2

Quindi modifica il file di configurazione di RoundCube config.inc.php:

nano /etc/roundcube/config.inc.php

e cambia l'host predefinito in localhost:

$config['default_host'] ='localhost';

e il server SMTP a:

$config['smtp_server'] ='localhost';

e

$config['smtp_port']  =25;

Ciò impedisce che Roundcube mostri il campo di immissione del nome del server nel modulo di accesso.

17. Installa ISPConfig 3.2

Utilizzeremo qui la build stabile di ISPConfig 3.2.

cd /tmp 
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/

Il prossimo passo è eseguire

php -q install.php

Questo avvierà il programma di installazione di ISPConfig 3. L'installatore configurerà per te tutti i servizi come Postfix, Dovecot, ecc.

# php -q install.php

---------------------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
-------------------------------------- -------------------------------------------

>> Configurazione iniziale
Sistema operativo:Ubuntu 20.04.1 LTS (Focal Fossa)
Di seguito ci saranno alcune domande per la configurazione principale, quindi fai attenzione.
I valori predefiniti sono tra [parentesi] e possono essere accettati con .
Tocca "chiudi" (senza virgolette) per interrompere il programma di installazione.

Seleziona la lingua (en,de) [en]:<-- Premi Invio
Modalità di installazione (standard,esperto) [standard]: <-- Premi Invio
Nome host completo (FQDN) del server, ad es. server1.domain.tld [server1.canomi.com]: <-- Premi Invio
Nome host del server MySQL [localhost]: <-- Premi Invio
Porta del server MySQL [3306]: <-- Premi Invio
Nome utente root MySQL [root]: <-- Premi Invio
Password root MySQL []: <-- Inserisci la password root MySQL
Database MySQL da creare [dbispconfig]: <-- Premi Invio
Set di caratteri MySQL [utf8]: <-- Premi Invio
Configurazione di Postgrey
Configurazione di Postfix
Generazione di una chiave privata RSA a 4096 bit
........................ .............................................++
................................................. .................................................. .......................................++
scrittura di una nuova chiave privata in 'smtpd.key'
-----
Stai per essere chiesto di inserire le informazioni che verranno incorporate
nella tua richiesta di certificato.
Cosa stai per inserire è ciò che viene chiamato Distinguished Name o DN.
Ci sono alcuni campi ma puoi lasciarne alcuni vuoti
Per alcuni campi ci sarà un valore predefinito,
Se inserisci '. ', il campo verrà lasciato vuoto.
-----
Nome del paese (codice di 2 lettere) [AU]:<-- Inserisci il codice del paese di 2 lettere
Nome dello stato o della provincia ( nome completo) [Some-Stato]:<-- Inserisci il nome dello  stato
Nome località (ad es. città) []:<-- Inserisci la tua città
Nome organizzazione (ad es. azienda) [ int ernet Widgits Pty Ltd]:<-- Inserisci il nome dell'azienda o premi invio
Nome dell'unità organizzativa (ad es. sezione) []: <-- Premi Invio
Nome comune (ad es. server FQDN o il TUO nome) []:<-- Inserisci il nome host del server, nel mio caso:server1.example.com
Indirizzo e-mail []: <-- Premi Invio
Configurazione di Mailman
Configurazione di Dovecot
Configurazione di Spamassassin
Configurazione di Amavisd
Configurazione di Getmail
Configurazione di BIND
Configurazione di Jailkit
Configurazione di Pureftpd
Configurazione di Apache
Configurazione di vlogger
Configurazione del server Metronome XMPP
scrittura di una nuova chiave privata in 'localhost.key'
-----
Nome paese (codice a 2 lettere) [AU]: <-- Invio Prefisso internazionale a 2 lettere
Nome località (ad es. città) []: <-- Inserisci la tua città
Nome organizzazione (ad es. azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome dell'azienda o premi inserisci
Nome dell'unità organizzativa (ad es. sezione) []: <-- Premi Invio
Nome comune (ad es. FQDN del server o il TUO nome) [server1.canomi.com]: <-- Inserisci il nome host del server , nel mio caso:server1.example.com
Indirizzo email []: <-- Premi Invio
Configurazione di Ubuntu Firewall
Configurazione di Fail2ban
[INFO] servizio OpenVZ non rilevato
Configurazione app vhost
Installazione di ISPConfig
ISPConfig Port [8080]:
Password amministratore [admin]:
Vuoi una connessione sicura (SSL) all'interfaccia web di ISPConfig (y,n) [y]: <-- Premi Invio
Generazione chiave privata RSA, modulo lungo 4096 bit
............................++
..... .................................................. .................................................. .......................++
e is 65537 (0x10001)
Stai per essere chiesto di inserire le informazioni che saranno essere incorporato
nella richiesta di certificato.
Quello che stai per inserire è quello che viene chiamato Distinguished Name o DN.
Ci sono alcuni campi ma puoi lasciare alcuni campi vuoti
/>Per alcuni campi ci sarà un valore predefinito,
Se inserisci '.', il campo verrà lasciato vuoto.
-----
Nome Paese (codice a 2 lettere) [AU]: <-- Inserisci il codice paese di 2 lettere
Stato o Provincia (nome completo) [Stato-Stato]: <-- Inserisci il nome dello  Stato
Nome località (ad es. città) []: <-- Inserisci la tua città
Nome organizzazione (ad es. azienda) [Internet Widgits Pty Ltd]: <-- Inserisci il nome dell'azienda o premi invio
Nome unità organizzativa (ad es. sezione) [] : <-- Premi Invio
Nome comune (ad es. server FQDN o il TUO nome) []: <-- Inserisci il nome host del server, nel mio caso:server1.example.com
Indirizzo e-mail []: <-- Premi Invio
Inserisci i seguenti attributi "extra"
da inviare con la tua richiesta di certificato
Una password di verifica []: <-- Premi Invio
Un nome di azienda facoltativo []: <- - Premi Invio
scrivendo la chiave RSA

Symlink ISPConfig LE certificati SSL da postfissare? (y,n) [y]: <-- Premi Invio
Collega i certificati SSL ISPConfig LE a pureftpd? La creazione del file dhparam richiede alcune volte. (y,n) [y]: <-- Premi Invio
Generazione parametri DH, 2048 bit long safe prime, generatore 2
Ci vorrà molto tempo
.................... ................................................+........ .................................................. .................................................. .................................................. ...............+...................

Configurazione di DBServer
Installazione di ISPConfig crontab
no crontab per root
no crontab per getmail
Rileva indirizzi IP
Riavvio servizi ...
Installazione completata.

Il programma di installazione configura automaticamente tutti i servizi sottostanti, quindi non è necessaria alcuna configurazione manuale.

Successivamente puoi accedere a ISPConfig 3 in http(s)://server1.example.com:8080/ o http(s)://192.168.0.100:8080/ (HTTP o HTTPS dipende da cosa hai scelto durante l'installazione). Accedi con il nome utente admin e la password admin (dovresti cambiare la password predefinita dopo il primo accesso):






Il sistema è ora pronto per essere utilizzato.

18. Download dell'immagine della macchina virtuale di questo tutorial

Questo tutorial è disponibile come immagine della macchina virtuale pronta per l'uso in formato ovf/ova compatibile con VMWare e Virtualbox. L'immagine della macchina virtuale utilizza i seguenti dettagli di accesso:

Accesso SSH/Shell

Nome utente:amministratore
Password:howtoforge

Questo utente dispone dei diritti sudo.

Accesso a ISPConfig

Nome utente:admin
Password:howtoforge

Accesso MySQL

Nome utente:root
Password:howtoforge

L'IP della VM è 192.168.0.100, può essere modificato nel file /etc/netplan/01-netcfg.yaml . Si prega di modificare tutte le password di cui sopra per proteggere la macchina virtuale.

19. Collegamenti

  • Ubuntu:http://www.ubuntu.com/
  • Configurazione ISP:http://www.ispconfig.org/

Ubuntu
  1. Il server perfetto - Ubuntu 14.10 (nginx, BIND, Dovecot, ISPConfig 3)

  2. Il server perfetto - Ubuntu 15.04 (nginx, BIND, Dovecot e ISPConfig 3)

  3. Il server perfetto - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD e ISPConfig 3)

  4. Il server perfetto - Ubuntu 16.10 (Yakkety Yak) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

  5. Il server perfetto - Ubuntu 17.04 (Zesty Zapus) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

Il server perfetto CentOS 7.2 con Apache, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

Il server perfetto CentOS 7.3 con Apache, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

Il server perfetto CentOS 7.4 con Apache, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

Il server perfetto CentOS 7.6 con Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

Il server perfetto CentOS 8 con Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.2

Il server perfetto - Ubuntu 14.10 con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig