GNU/Linux >> Linux Esercitazione >  >> Debian

Il server perfetto - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

Questo tutorial mostra come preparare un server Debian Jessie (con Apache2, BIND, Dovecot) per l'installazione di ISPConfig 3 e come installare ISPConfig 3. Il pannello di controllo del webhosting 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 molti altri. Questa configurazione copre Apache (anziché nginx), BIND (anziché MyDNS) e Dovecot (anziché Courier).

1 Nota preliminare

In questo tutorial utilizzerò l'hostname 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 8. Potrebbe trattarsi di un'immagine minima di Debian dal tuo provider di hosting o 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 Jessie 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. Per prima cosa dovresti controllare il nome host in /etc/hosts e cambiarlo quando 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

Per prima cosa assicurati che il tuo /etc/apt/sources.list contenga il repository jessie/updates (questo ti assicura di ottenere sempre gli aggiornamenti di sicurezza più recenti) e che i repository contrib e non gratuiti siano abilitati (alcuni pacchetti come libapache2- mod-fastcgi non sono nel repository principale).

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main

deb http://ftp.us.debian .org/debian/ jessie main contrib non libero
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non libero

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

Corri:

apt-get update

Per aggiornare il database dei pacchetti apt

apt-get upgrade

e per installare gli ultimi aggiornamenti (se presenti).

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

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 ntpdate

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

8 Installa Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, 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
Nuova password per l'utente "root" di MariaDB:<-- yourrootsqlpassword
Ripeti password per l'utente "root" di MariaDB: <-- yourrootsqlpassword

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 le righe dove 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 MariaDB ascolti su tutte le interfacce, non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address =127.0.0.1:

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

Quindi riavviamo MySQL:

riavvio del servizio mysql

Ora controlla che la rete sia abilitata. Corri

netstat -tocca | grep mysql

L'output dovrebbe essere simile a questo:

[email protetta]:/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* ASCOLTA 27371/mysqld

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

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

10 Installa Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt possono essere installati come segue:

apt-get 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 libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5 -sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Vedrai le seguenti domande:

Server Web da riconfigurare automaticamente: <- apache2
Configurare il database per phpmyadmin con dbconfig-common? <- si
Inserisci la password dell'utente amministratore? <- yourrootmysqlpassword
Inserisci la password dell'applicazione phpmyadmin? <-  Premi semplicemente 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):

a2enmod suexec riscrivi le azioni SSL includono dav_fs dav auth_digest cgi

e abilita il modulo eseguendo:

riavvio del servizio apache2

NOTA AGGIORNATA:SuPHP non dovrebbe più essere installato, vai al passaggio 11

SuPHP non è più disponibile per Debian Jessie. La modalità suphp non dovrebbe più essere utilizzata in ISPConfig poiché sono disponibili modalità PHP migliori come php-fpm e php-fcgi. Se hai davvero bisogno di suphp per motivi legacy, segui i passaggi in questo capitolo per compilarlo manualmente:

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin /apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
fai installazione

Crea la directory di configurazione di suphp e il file suphp.conf:

mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf
[globale]
;Percorso del file di log
logfile=/var/log/suphp/suphp.log

;Loglevel
loglevel=info

;L'utente Apache è in esecuzione come
webserver_user=www-data

;Percorso tutti gli script devono essere in
docroot=/var/www

;Percorso di chroot() prima di eseguire lo script
;chroot=/mychroot

; Opzioni di sicurezza
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Verifica se lo script è all'interno di DOCUMENT_ROOT
check_vhost_docroot =true

;Invia messaggi di errore minori al browser
errors_to_browser=false

;Variabile di ambiente PATH
env_path=/bin:/usr/bin

;Umask da impostare, specificare in notazione ottale
umask=0022

; UID minimo
min_uid=100

; GID minimo
min_gid=100


[gestori]
;gestore per script php
x-httpd-suphp="php:/usr/ bin/php-cgi"

;Gestione per script CGI
x-suphp-cgi=execute:!self
umask=0022

Successivamente aggiungeremo un file di configurazione per caricare il modulo suphp in apache:

echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so"> /etc/apache2/mods-available/suphp.load

E quindi apri /etc/apache2/mods-available/suphp.conf...

nano /etc/apache2/mods-available/suphp.conf

... e aggiungi il seguente contenuto:

 AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp  suPHP_Engine on  # Per impostazione predefinita, disabilita suPHP per le applicazioni web in pacchetto debian poiché i file # sono di proprietà di root e non possono essere eseguiti da suPHP a causa di min_uid.  suPHP_Engine off # # Usa un file di configurazione php specifico (una directory che contiene un file php.ini)# suPHP_ConfigPath /etc/php5/cgi/suphp/# ​​# Dice a mod_suphp di NON gestire richieste con il tipo .# suPHP_RemoveHandler 

Abilita il modulo suphp in apache:

a2enmod suphp

Riavvia Apache in seguito:

riavvio del servizio apache2

12 XCache e PHP-FPM

XCache è un cacher di codice operativo PHP gratuito e aperto per la memorizzazione nella cache e l'ottimizzazione del codice intermedio PHP. È simile ad altri cacher di codice operativo PHP, come eAccelerator e APC. Si consiglia vivamente di averne uno installato per velocizzare la tua pagina PHP.

XCache può essere installato come segue:

apt-get install php5-xcache

Ora riavvia Apache:

riavvio del servizio apache2

12.2 PHP-FPM

A partire da ISPConfig 3.0.5, è disponibile una modalità PHP aggiuntiva che puoi selezionare per l'utilizzo con Apache:PHP-FPM.

Per usare PHP-FPM con Apache, abbiamo bisogno del modulo mod_fastcgi Apache (per favore non confonderlo con mod_fcgid - sono molto simili, ma non puoi usare PHP-FPM con mod_fcgid). Possiamo installare PHP-FPM e mod_fastcgi come segue:

apt-get install libapache2-mod-fastcgi php5-fpm

Assicurati di abilitare il modulo e riavviare Apache:

a2enmod actions fastcgi alias
service apache2 restart

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

vi /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

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

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=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# lo scambio era attivo /dev /sda5 durante l'installazione
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 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

16 Installa Vlogger, Webalizer e AWStats

Vlogger, Webalizer e AWStats possono essere installati come segue:

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-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 (importante:Jailkit deve essere installato prima di ISPConfig - non può essere installato in seguito!):

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit- 2.17
./debian/rules binario

Ora puoi installare il pacchetto Jailkit .deb come segue:

cd ..
dpkg -i jailkit_2.17-1_*.deb
rm -rf jailkit-2.17*

18 Installa fail2ban

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

[pureftpd]enabled =trueport =ftpfilter =pureftpdlogpath =/var/log/syslogmaxretry =3[dovecot-pop3imap]enabled =truefilter =dovecot-pop3imapaction =iptables-multiport[name=dovecot-pop3imap, port="pop3, pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5[postfix-sasl]enabled =trueport =smtpfilter =postfix-sasllogpath =/var/log/mail.logmaxretry =3

Quindi crea i seguenti due file di filtro:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definizione]failregex =.*pure-ftpd:\(.*@\) \[AVVISO\] Autenticazione non riuscita per l'utente.*ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definizione]failregex =(?:pop3-login|imap-login):.*(?:Authentication Failure|Accesso interrotto \(auth failed|Accesso interrotto \(tentativo di utilizzo disabilitato|Disconnesso \(auth failed| Accesso interrotto \(\d+ tentativi di autenticazione).*rip=(?P\S*),.*ignoreregex =

Quindi, per aggiungere la riga ignoreregex nel file di filtro postfix-sasl, esegui:

echo "ignoreregex =">> /etc/fail2ban/filter.d/postfix-sasl.conf

Riavvia fail2ban in seguito:

riavvio del servizio fail2ban

19 Installa squirrelmail

Per installare il client webmail di SquirrelMail, esegui

apt-get install squirrelmail

Quindi configura SquirrelMail:

configura-squirrelmail

Dobbiamo dire a SquirrelMail che stiamo usando Dovecot-IMAP/-POP3:

Configurazione di SquirrelMail : Leggi: config.php (1.4.0)
------------------------------------------- ---------------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Temi
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Lingue

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- D


Configurazione di SquirrelMail : Leggi: config.php
---------------------------------------- ------------------------------
Mentre abbiamo costruito SquirrelMail, abbiamo scoperto alcune
preferenze che funzionano meglio con alcuni server che non funzionano quindi
bene con altri. Se seleziona il server IMAP, questa opzione verrà
imposta alcune impostazioni predefinite per quel server.

Tieni presente che dovrai sempre andare attraverso e assicurarti di tutto è corretto. Questo non cambia tutto. Ci sono
solo alcune impostazioni che verranno modificate.

Seleziona il tuo server IMAP:
    bincimap    = server Bincimap    = Binc server IMAP
    courier     ==Courier server IMAP
Cyrus =Cyrus IMAP server di
dovecot =Dovecot IMAP server sicuro
scambio =server IMAP di Microsoft Exchange
hMailServer =hMailServer
macosx =Mac OS X server di posta
mercury32 =Mercury /32
    uw          = server IMAP dell'Università di Washington
    gmail       =accesso IMAP agli account di posta di Google (Gmail)

    chiudi        = Non cambiare nulla
Comando >> <-- dovecot


SquirrelMail Configuration : Leggi: config.php
----------------------- ----------------------------------
Mentre abbiamo costruito SquirrelMail, ne abbiamo scoperto alcuni
preferenze che funzionano meglio con alcuni server che non funzionano quindi
bene con altri. Se seleziona il server IMAP, questa opzione verrà
imposta alcune impostazioni predefinite per quel server.

Tieni presente che dovrai sempre andare attraverso e assicurarti di tutto è corretto. Questo non cambia tutto. Ci sono
solo alcune impostazioni che verranno modificate.

Seleziona il tuo server IMAP:
    bincimap    = server Bincimap    = Binc server IMAP
    courier     ==Courier server IMAP
Cyrus =Cyrus IMAP server di
dovecot =Dovecot IMAP server sicuro
scambio =server IMAP di Microsoft Exchange
hMailServer =hMailServer
macosx =Mac OS X server di posta
mercury32 =Mercury /32
    uw          = server IMAP dell'Università di Washington
    gmail       =accesso IMAP agli account Google mail (Gmail)

    chiudi        = Non cambiare nulla
Comando >> dovecot

imap_server_type =dovecot
default_folder_prefix =
cush_folder =cesh
sent_folder =SENT
Draft_Folder =Draft
show_prefix_option =false
default_sub_inbox = false
show_contain_subfolders_option = fa lse
           optional_delimiter = rileva
                delete_folder = false

Premi un qualsiasi tasto per continuare... <-- premi un tasto

SquirrelMail Configurazione : Leggi:config.php (1.4.0)
-------------------------------------- -------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Temi
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Lingue

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- S


Configurazione di SquirrelMail : Leggi: config.php (1.4.0)
-------- -----------------------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Temi
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Lingue

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- Q

Ora configureremo SquirrelMail in modo che tu possa usarlo dai tuoi siti web (creati tramite ISPConfig) usando gli alias /squirrelmail o /webmail. Quindi, se il tuo sito web è www.example.com, potrai accedere a SquirrelMail utilizzando www.example.com/squirrelmail o www.example.com/webmail.

La configurazione di Apache di SquirrelMail è nel file /etc/squirrelmail/apache.conf, ma questo file non è caricato da Apache perché non si trova nella directory /etc/apache2/conf.d/. Pertanto creiamo un collegamento simbolico chiamato squirrelmail.conf nella directory /etc/apache2/conf.d/ che punta a /etc/squirrelmail/apache.conf e ricarichiamo Apache in seguito:

cd /etc/apache2/conf-enabled/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
service apache2 reload

Ora apri /etc/apache2/conf-enabled/squirrelmail.conf...

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

... e aggiungi le seguenti righe al contenitore per assicurarti che mod_php venga utilizzato per accedere a SquirrelMail, indipendentemente dalla modalità PHP selezionata per il tuo sito Web in ISPConfig:

[...] Opzioni FollowSymLinks  AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_admin_flag allow_url_fopen Off php_value include_path . php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off   DirectoryIndex index.php  # l'accesso a configtest è limitato per impostazione predefinita per prevenire la perdita di informazioni 
 ordinare nega,consenti nega da tutti consenti da 127.0.0.1 [ ...]

Crea la directory /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... e renderlo di proprietà dell'utente www-data:

chown www-data /var/lib/squirrelmail/tmp

Ricarica di nuovo Apache:

ricarica del servizio apache2

Questo è già tutto - /etc/apache2/conf-enabled/squirrelmail.conf definisce un alias chiamato /squirrelmail che punta alla directory di installazione di SquirrelMail /usr/share/squirrelmail.

Ora puoi accedere a SquirrelMail dal tuo sito web come segue:

http://192.168.0.100/squirrelmail
http://www.example.com/squirrelmail

Puoi anche accedervi dal pannello di controllo di ISPConfig vhost (dopo aver installato ISPConfig, vedere il capitolo successivo) come segue (questo non richiede alcuna configurazione in ISPConfig):

http://server1.example.com:8080/squirrelmail

Se desideri utilizzare l'alias /webmail invece di /squirrelmail, apri semplicemente /etc/apache2/conf-enabled/squirrelmail.conf

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

... e aggiungi la riga Alias ​​/webmail /usr/share/squirrelmail:

Alias ​​/squirrelmail /usr/share/squirrelmailAlias ​​/webmail /usr/share/squirrelmail[...]

Quindi ricarica Apache:

ricarica del servizio apache2

Ora puoi accedere a Squirrelmail 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)

Se desideri definire un vhost come webmail.example.com in cui i tuoi utenti possono accedere a SquirrelMail, devi aggiungere la seguente configurazione vhost a /etc/apache2/conf-enabled/squirrelmail.conf:

vi /etc/apache2/conf-enabled/squirrelmail.conf

[...] DocumentRoot /usr/share/squirrelmail ServerName webmail.example.com

Of course, there must be a DNS record for webmail.example.com that points to the IP address that you use in the vhost configuration. Also make sure that the vhost webmail.example.com does not exist in ISPConfig (otherwise both vhosts will interfere with each other!).

Now reload Apache...

/etc/init.d/apache2 reload

... and you can access SquirrelMail under http://webmail.example.com!

20 Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

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

The next step is to run

php -q install.php

This will start the ISPConfig 3 installer. The installer will configure all services like Postfix, Dovecot, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary.

NOTE:Do not be alarmed that the ISPConfig 3 installer identifies Debian Jessie as unknown version. This does not interfere with any functionality and will be fixed with the next ISPConfig update.

[email protected]:/tmp/ispconfig3_install/install# php -q install.php
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0


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


>> Initial configuration

Operating System: Debian or compatible, unknown version.

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with .
    Tap in "quit" (without the quotes) to stop the installer.


Select language (en,de) [en]: <-- ENTER

Installation mode (standard,expert) [standard]: <-- ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- ENTER

MySQL server hostname [localhost]: <-- ENTER

MySQL root username [root]: <-- ENTER

MySQL root password [ ]: <-- yourrootsqlpassword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

Generating a 4096 bit RSA private key
.............................................................++
.........................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, comp any) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- ENTER

Generating RSA private key, 4096 bit long modulus
.................................................................................................++
........++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER
An optional company name []: <-- ENTER
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Restarting IMAP/POP3 mail server: dovecot.
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
Restarting web server: apache2 ... waiting .
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -D -u 1000 -A -E -b -8 UTF-8 -B
Installation completed.
[email protected]:/tmp/ispconfig3_install/install#

The installer automatically configures all underlying services, so no manual configuration is needed.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel, so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ ( http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password after your first login):

The system is now ready to be used.

20.1 ISPConfig 3 Manual

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.

20.2 ISPConfig Monitor App For Android

Con l'app ISPConfig Monitor, puoi controllare lo stato del tuo server e scoprire se tutti i servizi funzionano come previsto. Puoi controllare le porte TCP e UDP ed eseguire il ping dei tuoi server. Inoltre, puoi utilizzare questa app per richiedere dettagli dai server su cui è installato ISPConfig (tieni presente che la versione minima di ISPConfig 3 installata con supporto per l'app ISPConfig Monitor è 3.0.3.3! ); questi dettagli includono tutto ciò che sai dal modulo Monitor nel pannello di controllo di ISPConfig (ad es. servizi, posta e registri di sistema, coda di posta, informazioni su CPU e memoria, utilizzo del disco, quota, dettagli del sistema operativo, registro RKHunter, ecc.) e ovviamente , poiché ISPConfig è compatibile con più server, puoi controllare tutti i server controllati dal tuo server principale ISPConfig.

Per le istruzioni di download e utilizzo, visitare http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

21 Additional Notes

21.1 OpenVZ

If the Debian server that you've just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system (I'm assuming that the ID of the OpenVZ container is 101 - replace it with the correct VPSID on your system):

VPSID=101
for 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}:on --save
done

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

Debian
  1. Il server perfetto – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

  2. Il server perfetto - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  3. Il server perfetto – CentOS 7.1 con Apache2, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3

  4. Il server perfetto - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

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

Il server perfetto - Ubuntu 12.10 (Apache2, BIND, Dovecot, ISPConfig 3)

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

Il server perfetto - Debian Wheezy (nginx, BIND, Dovecot, ISPConfig 3)

Il server perfetto - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)

Il server perfetto - Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)