GNU/Linux >> Linux Esercitazione >  >> Debian

Il server perfetto - Debian 9 (Stretch) con Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.1

Questo tutorial mostra come preparare un server Debian 9 (con Apache2, BIND, Dovecot) per l'installazione di ISPConfig 3.1 e come installare ISPConfig. Il pannello di controllo del web hosting ISPConfig 3 consente di configurare i seguenti servizi tramite un browser web:server web Apache o nginx, server di posta Postfix, server Courier o Dovecot IMAP/POP3, server dei nomi MySQL, BIND o MyDNS, PureFTPd, SpamAssassin, ClamAV, e tanti altri. Questa configurazione copre Apache (anziché nginx), BIND e Dovecot.

1 Nota preliminare

In questo tutorial userò il nome host server1.example.com con l'indirizzo IP 192.168.1.100 e il gateway 192.168.1.1. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato. Prima di procedere oltre, devi avere un'installazione minima di Debian 9. Potrebbe trattarsi di un'immagine minima di Debian dal tuo provider di hosting oppure usi il tutorial Minimal Debian Server per configurare il sistema di base.

2 Installa il server SSH (opzionale)

Se non hai installato il server OpenSSH durante l'installazione del sistema, puoi farlo ora:

apt-get install ssh openssh-server

D'ora in poi puoi usare un client SSH come PuTTY e connetterti dalla tua workstation al tuo server Debian 9 e seguire i passaggi rimanenti di questo tutorial.

3 Installa un editor di testo shell (opzionale)

Useremo nano editor di testo in questo tutorial. Alcuni utenti preferiscono il classico editor vi, quindi installeremo entrambi gli editor qui. Il programma vi predefinito ha uno strano comportamento su Debian e Ubuntu; per risolvere questo problema, installiamo vim-nox:

apt-get install nano vim-nox

Se vi è il tuo editor preferito, sostituisci nano con vi nei seguenti comandi per modificare i file.

4 Configura il nome host

Il nome host del tuo server dovrebbe essere un sottodominio come "server1.example.com". Non utilizzare un nome di dominio senza una parte di sottodominio come "example.com" come nome host poiché ciò causerà problemi in seguito con la configurazione della posta. Innanzitutto, dovresti controllare il nome host in /etc/hosts e modificarlo se necessario. La riga dovrebbe essere:"Indirizzo IP - spazio - nome host completo incl. dominio - spazio - parte del sottodominio". Per il nostro nome host server1.example.com, il file sarà simile al seguente:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.1.100 server1.example.com server1# Le seguenti righe sono auspicabili per host compatibili con IPv6::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6 -allrouter

Quindi modifica il file /etc/hostname:

nano /etc/nome host

Deve contenere solo la parte del sottodominio, nel nostro caso:

server1

Infine, riavvia il server per applicare la modifica:

riavvio

Accedi di nuovo e controlla se il nome host è corretto ora con questi comandi:

nome host
nome host -f

L'output sarà così:

[email protetta]:/tmp# hostname
server1
[email protetta]:/tmp# hostname -f
server1.example.com

5 Aggiorna la tua installazione Debian

Innanzitutto, assicurati che il tuo /etc/apt/sources.list contenga il repository stretch/updates (questo assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che i repository contrib e non gratuiti siano abilitati poiché alcuni pacchetti richiesti non lo sono nel repository principale.

nano /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stretch main contrib non- gratuito

deb http://security.debian.org/debian-security stretch/updates main contrib non libero
deb-src http://security.debian.org/debian- security stretch/updates main contrib non gratuito

Corri:

apt-get update

Per aggiornare il database dei pacchetti apt

apt-get upgrade

e per installare gli ultimi aggiornamenti (se presenti).

6 Cambia 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.

7 Sincronizzare l'orologio di sistema

È una buona idea sincronizzare l'orologio di sistema con un NTP (n rete t ora p rotocol) server su Internet. Esegui semplicemente

apt-get install ntp

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

8 Installa Postfix, Dovecot, MySQL, rkhunter e Binutils

Possiamo installare Postfix, Dovecot, 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 dovecot-lmtpd sudo

Quando preferisci MySQL su MariaDB, sostituisci i pacchetti "mariadb-client mariadb-server" nel comando precedente con "mysql-client mysql-server".

Ti verranno poste le seguenti domande:

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

Per proteggere l'installazione di MariaDB / MySQL e disabilitare il database di test, eseguire questo comando:

installazione_mysql_secure

Rispondi alle domande come segue:

Cambiare la password di root? [S/n] <-- y
Nuova password:<-- Immettere una nuova password di root MySQL
Reinserire la nuova password:<-- Ripetere la password di root MySQL
Rimuovi utenti anonimi ? [S/n] <-- y
Non consentire l'accesso root in remoto? [S/n] <-- y
Rimuovere il database dei test e accedervi? [S/n] <-- y
Ricaricare le tabelle dei privilegi ora? [S/n] <-- si

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

nano /etc/postfix/master.cf

Decommenta le sezioni submit e smtps come segue e aggiungi righe ove necessario in modo che questa sezione del file master.cf assomigli esattamente a quella seguente.

[...]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_restrictions=sender_mtpd_sender_restrictions br /># -o smtpd_recipient_restrictions=
# -o smtpd_relay_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_r estrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING[...]

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 e aggiungiamo la riga sql-mode="NO_ENGINE_SUBSTITUTION" :

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

sql-mode="NO_ENGINE_SUBSTITUTION"

[...]

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 read, in questo esempio la password è "howtoforge".

# 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

Per evitare l'errore 'Errore nell'accettazione:troppi file aperti ' imposteremo ora limiti di file aperti più elevati per MariaDB.

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 -p /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
service mysql restart

Ora controlla che la rete sia abilitata. Corri

netstat -tocca | grep mysql

L'output dovrebbe essere simile a questo:

[email protetta]:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 17776/mysqld
[email protected]:/home/administrator#

9 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-perl libdbd-mysql-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:

service spamassassin stop
systemctl disable spamassassin

9.1 Installazione del server Metronome XMPP (opzionale)

Questo passaggio installa il server Metronome XMPP che fornisce un server di chat compatibile con il protocollo XMPP. Questo passaggio è facoltativo, se non hai bisogno di un server di chat, puoi saltare questo passaggio. Nessun'altra funzione ISPConfig dipende da questo software.

Aggiungi il repository del pacchetto Prosody in Debian.

echo "deb http://packages.prosody.im/debian stretch main"> /etc/apt/sources.list.d/metronome.list
wget http://prosody.im/files/ prosody-debian-packages.key -O - | sudo apt-key add -

Aggiorna l'elenco dei pacchetti:

apt-get update

e installa i pacchetti con apt.

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks installa lpc

Aggiungi un utente shell per Metronome.

adduser --no-create-home --disabled-login --gecos metronomo 'Metronome'

Scarica Metronome nella directory /opt e compilalo.

cd /opt; git clone https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install

Metronome è ora installato su /opt/metronome.

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- ricodifica 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 -sapone

Vedrai le seguenti domande:

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

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

le azioni a2enmod suexec rewrite SSL includono dav_fs dav auth_digest cgi header

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

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

Incolla il seguente contenuto nel file:

 RequestHeader unset proxy in anticipo

E abilita il modulo eseguendo:

a2enconf httpoxy
servizio apache2 riavvio

10.1 Installare HHVM (HipHop Virtual Machine)

Non sono ancora disponibili pacchetti HHVM per Debian 9. HHVM è una modalità PHP opzionale, quindi il tuo server funzionerà senza di essa, semplicemente non puoi 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 il 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 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 -- solo installazione

Non sono necessari ulteriori passaggi rispetto all'installazione di LE. I certificati SSL del sito web vengono creati da ISPConfig quando si aggiungono i siti web.

12 Installa PHP-FPM

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

apt-get -y install php7.0-fpm

Assicurati di abilitare i moduli e riavviare Apache:

azioni a2enmod proxy_fcgi alias 
servizio apache2 riavvio

12.2 Installa PHP Opcode Cache (opzionale)

Opcache è un opcode cacher PHP gratuito per la memorizzazione nella cache e l'ottimizzazione del codice intermedio PHP. APCu è un modulo di compatibilità che fornisce funzioni compatibili con APC per Opcache, utilizzato da molti sistemi di memorizzazione nella cache CMS. Si consiglia di installare queste estensioni PHP per velocizzare la tua pagina PHP.

L'APCu può essere installato come segue:

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

Ora riavvia Apache:

riavvio del servizio apache2

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

Seleziona almeno una lingua, ad es.:

Lingue da supportare: <-- en (inglese)
Elenco dei siti mancanti <-- Ok

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

postino della nuova lista
[email protected]:~# newlist mailman
Inserisci l'e-mail della persona che esegue 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-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-unsu bscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Premi invio per notificare il proprietario del postino... <-- 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- rimbalza:"|/var/lib/mailman/mail/mailman rimbalza mailman"mailman-confirm:"|/var/lib/mailman/mail/mailman conferma 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 proprietario mailman"mailman-request:"|/ var/lib/mailman/mail/mailman request mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman iscriviti mailman"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman unsubscribe mailman" 

Corri:

newalias

e riavvia Postfix:

riavvio successivo al servizio

Infine, dobbiamo abilitare la configurazione di Mailman Apache:

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 un elenco su http://server1.example.com/cgi-bin/mailman/admin/ e il la pagina web per gli utenti di una mailing list è disponibile all'indirizzo http://server1.example.com/cgi-bin/mailman/listinfo/.

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

Riavvia Apache in seguito:

riavvio del servizio apache2

Quindi avvia il demone Mailman:

inizio servizio postino

14 Installa PureFTPd e Quota

PureFTPd e quota possono essere installati con il seguente comando:

apt-get install pure-ftpd-common pure-ftpd-mysql 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=autonoma[...]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ì 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 Paese (ad es. "DE").
Nome dello Stato o della Provincia (nome completo) [Stato-Stato]:<-- Inserisci il nome del tuo 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).
#
#
# / 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
# lo scambio era attivo /dev /sda5 durante l'installazione
UUID=8d3194e7-edb5-4492-937d-d066b4994baf nessuno 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, ti consigliamo vivamente di installare il demone haveged per ottenere un'entropia maggiore per la firma DNSSEC. Puoi installare haveged anche su server non virtuali, non dovrebbe far male.

apt-get install haveged

Una spiegazione sull'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 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 statico report:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

17 Installa Jailkit

Jailkit è necessario solo se si desidera eseguire il chroot degli 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 Installare fail2ban e UFW Firewall

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

apt-get install fail2ban

Per fare in modo che fail2ban controlli 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 in seguito:

riavvio del servizio fail2ban

Per installare il firewall UFW, esegui questo comando apt:

apt-get install ufw

19 Installa RoundCube

Installa RoundCube con questo comando:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

L'installatore porrà le seguenti domande:

Configurare il database per roundcube con dbconfig.common? <-- si
Password dell'applicazione MySQL per roundcube:<-- premi invio
Password dell'utente amministrativo del database:<-- inserisci qui la password di root MySQL.

Quindi modifica il file RoundCube /etc/roundcube/config.inc.php e regola alcune impostazioni:

nano /etc/roundcube/config.inc.php

Imposta default_host e smtp_server su localhost.

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

Quindi modifica il file di configurazione di Apache roundcube /etc/apache2/conf-enabled/roundcube.conf:

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

E aggiungi una riga alias per l'alias apache /webmail, puoi aggiungere la riga direttamente all'inizio del file. NOTA:non utilizzare /mail come alias o il modulo e-mail di ispconfig smetterà di funzionare!

Alias ​​/webmail /var/lib/roundcube

Quindi ricarica Apache:

ricarica del servizio apache2

Ora puoi accedere a RoundCube come segue:

http://192.168.1.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (dopo aver installato ISPConfig, vedere il capitolo successivo)

20 Scarica ISPConfig 3

Per installare ISPConfig 3 dall'ultima versione rilasciata, procedere come segue:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Se ti piace provare la pre-release di una prossima versione 3.1, scaricala con questo comando:

cd /tmp
wget -O ISPConfig-3.1-dev.tar.gz  https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ISPConfig-3.1-dev.tar.gz
cd ispconfig3-stable-3.1*
cd install

21 Installa ISPConfig

Il passaggio successivo consiste nell'eseguire il programma di installazione di ISPConfig.

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. Non è necessaria una configurazione manuale come richiesto per ISPConfig 2 (guide di configurazione perfette).

# php -q install.php

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

>> Configurazione iniziale
Sistema operativo:Debian 9.0 (Stretch) o compatibile
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

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

21.1 Manuale di ISPConfig 3

Per imparare a usare ISPConfig 3, consiglio vivamente di scaricare il Manuale di ISPConfig 3.

Su più di 300 pagine, copre il concetto alla base di ISPConfig (amministratore, rivenditori, clienti), spiega come installare e aggiornare ISPConfig 3, include un riferimento per tutti i moduli e i campi dei moduli in ISPConfig insieme a esempi di input validi e fornisce tutorial per le attività più comuni in ISPConfig 3. Descrive anche come rendere più sicuro il tuo server e include una sezione per la risoluzione dei problemi alla fine.

22 Note aggiuntive

22.1 OpenVZ

Se il server Debian che hai appena impostato in questo tutorial è un contenitore OpenVZ (macchina virtuale), dovresti farlo sul sistema host (suppongo che l'ID del contenitore OpenVZ sia 101 - sostituiscilo con il VPSID corretto sul tuo sistema):

VPSID=101
per CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
  vzctl set $VPSID --capability ${CAP}:su --save
fatto

22.2 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

Nome utente: root
Password:howtoforge

Accesso a ISPConfig

Nome utente:admin
Password: admin

Accesso MySQL

Nome utente:root
Password:howtoforge

L'IP della VM è 192.168.1.100, può essere modificato nel file /etc/network/interfaces. Si prega di modificare tutte le password di cui sopra per proteggere la macchina virtuale.

  • Debian:http://www.debian.org/
  • Configurazione ISP:http://www.ispconfig.org/

Debian
  1. Il server perfetto - Ubuntu 15.04 (Vivid Vervet) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3

  2. Il server perfetto - Ubuntu 15.10 (Wily Werewolf) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3

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

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

  5. Il server perfetto - Ubuntu 17.10 (Artful Aardvark) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

Il server perfetto - Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

Il server perfetto - Debian 9 (Nginx, BIND, Dovecot, ISPConfig 3.1)

Il server perfetto - Debian 10 (Nginx, BIND, Dovecot, ISPConfig 3.2)

Il server perfetto - Debian 10 (Buster) con Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.2

Il server perfetto - Debian Squeeze (Debian 6.0) con BIND e Dovecot [ISPConfig 3]

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