GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3]

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3]

Questo tutorial mostra come preparare un server CentOS 5.7 x86_64 per l'installazione di ISPConfig 3 e come installare ISPConfig 3. ISPConfig 3 è un pannello di controllo di webhosting che consente di configurare i seguenti servizi tramite un browser web:server web Apache, Postfix server di posta, MySQL, server dei nomi BIND, PureFTPd, SpamAssassin, ClamAV e molti altri.

Tieni presente che questa configurazione non funziona per ISPConfig 2 ! È valido solo per ISPConfig 3!

Non garantisco che questo funzionerà per te!

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

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

1 Requisiti

Per installare un tale sistema avrai bisogno di quanto segue:

  • Scarica i due DVD di CentOS 5.7 o gli otto CD di CentOS 5.7 da un mirror accanto a te (l'elenco dei mirror è disponibile qui:http://isoredirect.centos.org/centos/5/isos/x86_64/) .
  • una connessione Internet veloce.

2 Nota preliminare

In questo tutorial utilizzo l'hostname 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 dove appropriato.

3 Installa il sistema di base

Avvia dal tuo primo CD CentOS 5.7 (CD 1) o dal primo DVD CentOS 5.7. Premi al prompt di avvio:

Il test del supporto di installazione può richiedere molto tempo, quindi saltiamo questo test qui:

Viene visualizzata la schermata di benvenuto del programma di installazione di CentOS. Fare clic su Avanti:

Scegli la lingua successiva:

Seleziona il layout della tastiera:

Sto installando CentOS 5.7 su un nuovo sistema, quindi rispondo Sì alla domanda Vuoi inizializzare questa unità, cancellando TUTTI I DATI?

Ora dobbiamo selezionare uno schema di partizionamento per la nostra installazione. Per semplicità, seleziono Rimuovi partizioni Linux su unità selezionate e creo layout predefinito. Ciò si tradurrà in una piccola /boot e una grande / partizione oltre a una partizione di swap. Naturalmente, sei libero di partizionare il tuo disco rigido come preferisci. Quindi ho premuto Avanti:

Rispondi alla seguente domanda (Sei sicuro di volerlo fare?) con Sì:

Vai alle impostazioni di rete. L'impostazione predefinita qui è configurare le interfacce di rete con DHCP, ma stiamo installando un server, quindi gli indirizzi IP statici non sono una cattiva idea... Clicca sul pulsante Modifica in alto a destra.

Nella finestra che si apre deseleziona Configurazione IP dinamico (DHCP) e Abilita supporto IPv6 e dai alla tua scheda di rete un indirizzo IP statico (in questo tutorial sto usando l'indirizzo IP 192.168.0.100 a scopo dimostrativo) e una maschera di rete adeguata (es. 255.255.255.0; se non sei sicuro dei valori corretti, http://www.subnetmask.info potrebbe aiutarti):

Impostare manualmente il nome host, ad es. server1.example.com e inserisci un gateway (es. 192.168.0.1) e fino a due server DNS (es. 8.8.8.8 e 145.253.2.75):

Scegli il tuo fuso orario:

Fornisci una password di root:

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3] - Pagina 2

4 Regola /etc/hosts

Quindi modifichiamo /etc/hosts. Rendilo simile a questo:

vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.0.100           server1.example.com server1
::1             localhost6.localdomain6 localhost6

5 Configura indirizzi IP aggiuntivi

(Questa sezione è totalmente facoltativa. Mostra solo come aggiungere ulteriori indirizzi IP alla tua interfaccia di rete eth0 se hai bisogno di più di un indirizzo IP. Se stai bene con un indirizzo IP, puoi saltare questa sezione.)

Supponiamo che la nostra interfaccia di rete sia eth0. Poi c'è un file /etc/sysconfig/network-scripts/ifcfg-eth0 che contiene le impostazioni per eth0. Possiamo usarlo come esempio per la nostra nuova interfaccia di rete virtuale eth0:0:

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Ora vogliamo utilizzare l'indirizzo IP 192.168.0.101 sull'interfaccia virtuale eth0:0. Quindi apriamo il file /etc/sysconfig/network-scripts/ifcfg-eth0:0 e lo modifichiamo come segue (possiamo tralasciare la riga HWADDR in quanto è la stessa scheda di rete fisica):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

Successivamente dobbiamo riavviare la rete:

/etc/init.d/network restart

Potresti anche voler modificare /etc/hosts dopo aver aggiunto nuovi indirizzi IP, sebbene ciò non sia necessario.

Ora esegui

ifconfig

Ora dovresti vedere il tuo nuovo indirizzo IP nell'output:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.100  Bcast:192.168.0.255  Maschera:255.255. 255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         Pacchetti RX:307 errori:0 rilasciati:0 overrun:0 frame:0
         Pacchetti TX:251 errori:0 sganciati:0 :0 carrier:0
          collisions:0 txqueuelen:1000
         byte RX:29217 (28,5 KiB)  byte TX:45961 (44,8 KiB)

eth0:0    Link encap:Ethernet HWaddr 00:0C:29:89:71:35
         inet addr:192.168.0.101  Bcast:192.168.0.255  Maschera:255.255.255.0
         UP BROADCAST /> RUNNING MULTICAST 0 MTU :15
lo        Link encap:Loopback locale
          inet addr:127.0.0.1  Mask:255.0.0.0
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets: 8 :0 overrun:0 frame:0
          Pacchetti TX:8 errori:0 rilasciati:0 overrun:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

[[email protected] ~]#

6 Disattiva il firewall e SELinux

(Puoi saltare questo capitolo se hai già disabilitato il firewall e SELinux al termine dell'installazione di base del sistema (in Setup Agent).)

Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con il proprio firewall. Ecco perché ora disabilito il firewall CentOS predefinito. Naturalmente, sei libero di lasciarlo acceso e configurarlo in base alle tue esigenze (ma in seguito non dovresti utilizzare nessun altro firewall poiché molto probabilmente interferirà con il firewall CentOS).

SELinux è un'estensione di sicurezza di CentOS 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 fatto una settimana di risoluzione dei problemi perché alcuni servizi non funzionavano come previsto, e quindi scopri che era tutto ok, solo SELinux stava causando il problema). Quindi lo disabilito anch'io (questo è un must se vuoi installare ISPConfig in un secondo momento).

Corri

system-config-securitylevel

Imposta sia il livello di sicurezza che SELinux su Disabilitato e premi OK:

Successivamente dobbiamo riavviare il sistema:

reboot

7 Installa del software

Per prima cosa importiamo le chiavi GPG per i pacchetti software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Abilita i repository contrib e centosplus:

vi /etc/yum.repos.d/CentOS-Base.repo

Modifica le righe seguenti:

[base]
[...]
exclude=postfix
[...]
[updates]
[...]
exclude=postfix
[...]
[centosplus]
[...]
enabled=1
includepkgs=postfix
[...]
[contrib]
[...]
enabled=1
[...]

Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:

yum update

Ora installiamo alcuni pacchetti software che saranno necessari in seguito:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

8 Quota

(Se hai scelto uno schema di partizionamento diverso dal mio, devi modificare questo capitolo in modo che la quota si applichi alle partizioni dove ne hai bisogno.)

Per installare quota, eseguiamo questo comando:

yum install quota

Modifica /etc/fstab e aggiungi,usrquota,grpquota alla partizione / (/dev/VolGroup00/LogVol00):

vi /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Quindi esegui

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

per abilitare la quota.

9 Installa Apache, MySQL, phpMyAdmin

Per prima cosa abilitiamo il repository RPMforge sul nostro sistema CentOS poiché molti dei pacchetti che installeremo nel corso di questo tutorial non sono disponibili nei repository CentOS 5.7 ufficiali:

wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

cd /tmp
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release- 0.5.2-2.el5.rf.x86_64.rpm

(Se il link sopra non funziona più, puoi trovare la versione corrente di rpmforge-release qui:http://packages.sw.be/rpmforge-release/)

Successivamente possiamo installare i pacchetti necessari con un solo comando:

yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3] - Pagina 4

10 Installa Dovecot

C'è un pacchetto Dovecot nel repository CentOS, ma sfortunatamente non supporta MySQL. Pertanto dobbiamo rimuovere il Dovecot esistente e installare un altro pacchetto Dovecot (da ATrpms) che viene fornito con il supporto MySQL.

yum remove dovecot

Crea un nuovo file /etc/yum.repos.d/atrpms.repo...

vi /etc/yum.repos.d/atrpms.repo

... e inserisci le seguenti righe nel file:

[atrpms]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/stable
failovermethod=priority
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable
#
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms testing
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/testing
failovermethod=priority
enabled=1
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable and testing
#
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/bleeding
failovermethod=priority
enabled=0

Quindi importa la chiave gpg tge del repository atrpm...

wget http://ATrpms.net/RPM-GPG-KEY.atrpms
rpm --import RPM-GPG-KEY.atrpms

...e installa Dovecot:

yum install dovecot dovecot-sieve

Su un sistema a 64 bit, esegui anche questa operazione (non farlo su un sistema a 32 bit!):

ln -s /usr/lib64/dovecot/ /usr/lib/dovecot

Ora creiamo i link di avvio del sistema per Dovecot:

chkconfig --levels 235 dovecot su
/etc/init.d/dovecot start

Se Dovecot non si avvia con il seguente errore:

Fatal: listen(::, 143) failed: Address already in use

... apri /etc/dovecot.conf...

vi /etc/dovecot.conf 

... e aggiungi la riga listen =*:

[...]
#listen = *, [::]
listen = *
[...]

Quindi prova ad avviare nuovamente Dovecot:

/etc/init.d/dovecot start 

11 Installa Postfix con il supporto MySQL

Il pacchetto Postfix "normale" dal repository CentOS non ha MySQL, ma il pacchetto Postfix dal repository CentOS Plus sì. Quindi rimuoviamo Postfix...

yum remove postfix

... e installalo di nuovo, questa volta dal repository CentOS Plus:

yum install postfix   

Quindi disattiva Sendmail e avvia Postfix e MySQL:

chkconfig --levels 235 mysqld su
/etc/init.d/mysqld start

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix start

12 Installa Getmail

Getmail può essere installato come segue:

yum install getmail

13 Imposta password MySQL e configura phpMyAdmin

Imposta le password per l'account root MySQL:

mysql_secure_installation

[[email protected] tmp]# mysql_secure_installation




NOTA: L'ESECUZIONE DI TUTTE LE PARTI DI QUESTO SCRIPT È CONSIGLIATA PER TUTTI MySQL
      SERVER IN PRODUZIONE UTILIZZO! PER FAVORE, LEGGERE ATTENTAMENTE OGNI PASSO!


Per accedere a MySQL per proteggerlo, avremo necessità della password
corrente per l'utente root. Se hai appena installato MySQL e
non hai impostato la password root, la password sarà vuota,
quindi dovresti premere invio qui.

Invio password corrente per root (inserire per nessuno):
OK, password utilizzata con successo, in corso...

L'impostazione della password di root assicura che nessuno possa accedere alla root di MySQL
utente senza l'appropriata autorizzazione.

Impostare la password di root? [S/n] <-- ENTER
Nuova password: <-- yourrootsqlpassword
Reinserire nuova password: <-- yourrootsqlpassword
Password aggiornata con successo!
Ricaricamento tabelle privilegi. .
 ... Successo!


Per impostazione predefinita, un'installazione MySQL ha un utente anonimo, consentendo a chiunque
di accedere a MySQL senza deve avere un account utente creato per
loro. Questo è destinato solo a test e a rendere l'installazione
andare un po' più agevole. Dovresti rimuoverli prima di trasferirti in un ambiente di produzione.

Rimuovere utenti anonimi? [S/n] <-- ENTER
 ... Successo!

Normalmente, a root dovrebbe essere consentito di connettersi da 'localhost'. Questo
garantisce che qualcuno non riesca a indovinare la password root dalla rete.

Disconsentire l'accesso root da remoto? [S/n] <-- ENTER
 ... Successo!

Per impostazione predefinita, MySQL viene con un database denominato 'test' a cui chiunque può
accedere. Questo è anche destinato solo a test, e dovrebbe essere rimosso
prima di trasferirsi in un ambiente di produzione.

Rimuovere database di test e accedere ad esso? [S/n] <-- ENTER
 - Dropping database di test...
 ... Successo!
 - Rimozione privilegi sul database di test...
 ... Successo !

Ricaricare le tabelle di privilegi garantirà che tutte le modifiche apportate finora
diventeranno immediatamente effettive.

Ricaricare le tabelle privilegi adesso? [S/n] <-- ENTER
 ... Successo!

Pulizia ...



Fatto! Se hai completato tutti i passaggi precedenti, l'installazione di MySQL
dovrà essere protetta.

Grazie per aver utilizzato MySQL!


[esempio @unixlinux.online tmp]#

Ora configuriamo phpMyAdmin. Cambiamo la configurazione di Apache in modo che phpMyAdmin consenta connessioni non solo da localhost (commentando la stanza ):

vi /etc/httpd/conf.d/phpmyadmin.conf
#
#  Web application to manage MySQL
#

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Quindi cambiamo l'autenticazione in phpMyAdmin da cookie a http:

vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Quindi creiamo i collegamenti di avvio del sistema per Apache e lo avviamo:

chkconfig --levels 235 httpd su
/etc/init.d/httpd start

Ora puoi indirizzare il tuo browser a http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/ e accedere con il nome utente root e la tua nuova password MySQL di root.

14 Installa Amavisd-new, SpamAssassin e ClamAV

Per installare amavisd-new, spamassassin e clamav, eseguire il comando seguente:

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Apri /etc/sysconfig/amavisd...

vi /etc/sysconfig/amavisd

... e decommenta la riga CONFIG_FILE="/etc/amavisd.conf":

### Uncomment this if you want to use amavis with sendmail milter interface.
### See README.milter for details.
#
#MILTER_SOCKET="local:/var/amavis/amavis-milter.sock"
#MILTER_SOCKET="[email protected]"

### These are other defaults.
#AMAVIS_ACCOUNT="amavis"
CONFIG_FILE="/etc/amavisd.conf"
#MILTER_FLAGS=""

Quindi iniziamo freshclam, amavisd e clamd...

sa-update
chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/>/etc/init.d/clamd start

... e crea alcune directory necessarie:

mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
chown amavis /var/run/amavisd /var/spool/amavisd /var/ spool/amavisd/tmp /var/spool/amavisd/db
ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3] - Pagina 5

15 Installazione di Apache2 con mod_php, mod_fcgi/PHP5 e suPHP

ISPConfig 3 consente di utilizzare mod_php, mod_fcgi/PHP5, cgi/PHP5 e suPHP in base al sito Web.

mod_fcgid non è disponibile nei repository CentOS ufficiali, ma c'è un pacchetto per CentOS 5.x nel repository di test centos.karan.org. Abilitiamo il repository come segue:

cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo

Quindi apriamo /etc/yum.repos.d/kbsingh-CentOS-Extras.repo...

vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

... e imposta gpgcheck su 0 e abilitato su 1 nella sezione [kbs-CentOS-Testing]:

[...]
# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/

Successivamente possiamo installare Apache2 con mod_php5, mod_fcgid e PHP5:

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel

Quindi apriamo /etc/php.ini...

vi /etc/php.ini

... e cambia la segnalazione degli errori (in modo che gli avvisi non vengano più mostrati) e aggiungi cgi.fix_pathinfo =1 alla fine del file:

[...]
;error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE
[...]
cgi.fix_pathinfo = 1

Quindi installiamo suPHP:

cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7 .1/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable- SUPHP_USE_USERGROUP=yes
make
make install

Quindi aggiungiamo il modulo suPHP alla nostra configurazione di Apache...

vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so

... e crea il file /etc/suphp.conf come segue:

vi /etc/suphp.conf
[global]
;Path to logfile
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=false
;PATH environment variable
env_path=/bin:/usr/bin
;Umask to set, specify in octal notation
umask=0077
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi="execute:!self"

Infine riavviamo Apache:

/etc/init.d/httpd restart

15.1 Rubino

A partire dalla versione 3.0.3, ISPConfig 3 ha il supporto integrato per Ruby. Invece di usare CGI/FastCGI, ISPConfig dipende dal fatto che mod_ruby sia disponibile nell'Apache del server.

Per CentOS 5.7, non è disponibile alcun pacchetto mod_ruby, quindi dobbiamo compilarlo noi stessi. Per prima cosa installiamo alcuni prerequisiti:

yum install httpd-devel ruby ruby-devel

Quindi scarichiamo e installiamo mod_ruby come segue:

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

Infine dobbiamo aggiungere il modulo mod_ruby alla configurazione di Apache, quindi creiamo il file /etc/httpd/conf.d/ruby.conf...

vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so

... e riavvia Apache:

/etc/init.d/httpd restart

15.2 WebDAV

WebDAV dovrebbe essere già abilitato, ma per verificarlo apri /etc/httpd/conf/httpd.conf e assicurati che i seguenti tre moduli siano attivi:

vi /etc/httpd/conf/httpd.conf
[...]
LoadModule auth_digest_module modules/mod_auth_digest.so
[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
[...]

Se devi modificare /etc/httpd/conf/httpd.conf, non dimenticare di riavviare Apache in seguito:

/etc/init.d/httpd restart 

16 Installa PureFTPd

PureFTPd può essere installato con il seguente comando:

yum install pure-ftpd

Quindi crea i collegamenti di avvio del sistema e avvia PureFTPd:

chkconfig --levels 235 pure-ftpd su
/etc/init.d/pure-ftpd start

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.

OpenSSL è necessario per TLS; per installare OpenSSL, eseguiamo semplicemente:

yum install openssl

Apri /etc/pure-ftpd/pure-ftpd.conf...

vi /etc/pure-ftpd/pure-ftpd.conf

Se desideri consentire sessioni FTP e TLS, imposta TLS su 1:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.
TLS                      1
[...]

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) [GB]:<-- Inserisci il nome del tuo Paese (ad es. "DE").
Nome Stato o Provincia (nome completo) [Berkshire]:<-- Inserisci il tuo Stato o Provincia Nome.
Nome località (ad es. città) [Newbury]:<-- Inserisci la tua città.
Nome organizzazione (ad es. azienda) [My Company 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 o il nome host del tuo server) []:<-- 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

Infine riavvia PureFTPd:

 /etc/init.d/pure-ftpd restart

Questo è tutto. Ora puoi provare a connetterti usando il tuo client FTP; tuttavia, dovresti configurare il tuo client FTP per utilizzare TLS.

17 Installare un server DNS con chroot (BIND9)

Per installare un BIND9 con chroot, facciamo questo:

yum install bind-chroot

Quindi fai questo:

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/ named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/ var/named/
ln -s ../../ chroot
touch /var/named/chroot/var/named/named.local
cp /usr/share/doc/bind -9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
tocca /var/named/chroot/etc/named.conf.local
vi /var/named/chroot/etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named/chroot/var/named";
        dump-file       "/var/named/chroot/var/named/data/cache_dump.db";
        statistics-file "/var/named/chroot/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/chroot/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion no;
        allow-recursion { none; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.root";
};
include "/var/named/chroot/var/named/named.local";

chkconfig --levels 235 denominato su
/etc/init.d/named start

BIND verrà eseguito in una jail chroot sotto /var/named/chroot/var/named/. Userò ISPConfig per configurare BIND (zone, ecc.).

18 Installa Vlogger, Webalizer e AWStats

Vlogger, webalizer e AWStats possono essere installati come segue:

yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*

19 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!):

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*

20 Installa fail2ban

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

yum install fail2ban

chkconfig --levels 235 fail2ban su
/etc/init.d/fail2ban start

21 Installa rkhunter

rkhunter può essere installato come segue:

yum install rkhunter

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 3] - Pagina 6

22 Installa SquirrelMail

Per installare il client webmail di SquirrelMail, esegui...

yum install squirrelmail

... e riavvia Apache:

/etc/init.d/httpd restart

Quindi configura SquirrelMail:

/usr/share/squirrelmail/config/conf.pl

Dobbiamo dire a SquirrelMail che stiamo usando Courier-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   Disattiva 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 nota che dovrai sempre andare attraverso e assicurarti
tutto è corretto. Questo non cambia tutto. Ci sono
solo alcune impostazioni che verranno modificate.

Seleziona il server IMAP:
    bincimap    =server Bincimap IMAP
    courier     ==server IMAP Courier
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury /32
    uw          = server IMAP dell'Università di Washington

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


Configurazione di SquirrelMail: Leggi: config.php
--------------------------------------- -------------------
Mentre stiamo creando SquirrelMail, abbiamo scoperto alcune
preferenze che funzionano meglio con alcuni server che non funzionano così
bene con gli altri. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. Questo non cambia tutto. There are
only a few settings that this will change.

Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury/32
    uw          = University of Washington's IMAP server

    quit        = Do not change anything
Command >> dovecot

              imap_server_type = dovecot
         default_folder_prefix = 
                  trash_folder = Trash
                   sent_folder = Sent
                  draft_folder = Drafts
            show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_option = false
            optional_delimiter = detect
                 delete_folder = false

Press any key to continue... <-- press a key


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--S


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--Q

One last thing we need to do is modify the file /etc/squirrelmail/config_local.php and comment out the $default_folder_prefix variable - if you don't do this, you will see the following error message in SquirrelMail after you've logged in:Query:CREATE "Sent" Reason Given:Invalid mailbox name.

vi /etc/squirrelmail/config_local.php
<?php

/**
 * Local config overrides.
 *
 * You can override the config.php settings here.
 * Don't do it unless you know what you're doing.
 * Use standard PHP syntax, see config.php for examples.
 *
 * @copyright &copy; 2002-2006 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $
 * @package squirrelmail
 * @subpackage config
 */

//$default_folder_prefix                = '';
?>

Now you can type in http://server1.example.com/webmail or http://192.168.0.100/webmail in your browser to access SquirrelMail.

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

Il prossimo passo è eseguire

php -q install.php

This will start the ISPConfig 3 installer:

[[email protected] install]# php -q install.php


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


>> Initial configuration

Operating System: CentOS 5 or compatible

    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 []: <-- yourrootsqlpas sword

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

MySQL charset [utf8]: <-- ENTER

Generating a 2048 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) [GB]: <-- ENTER
State or Province Name (full name) [Berkshire]: <-- ENTER
Locality Name (eg, city) [Newbury]: <-- ENTER
Organization Name (eg, company) [My Company Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, your name or your server's hostname) []: <-- ENTER
Email Addre ss []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]
Stopping saslauthd:                                        [FAILED]
Starting saslauthd:                                        [  OK  ]
Shutting down Mail Virus Scanner (amavisd):                [  OK  ]
Starting Mail Virus Scanner (amavisd):                     [  OK  ]
Stopping Clam AntiVirus Daemon:                            [  OK  ]
Starting Clam AntiVirus Daemon:Bytecode:Security mode set to "TrustSigned".
                                                           [  OK  ]
Stopping Dovecot Imap:                                     [  OK  ]
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
Fatal: listen(::, 143) failed: Address already in use
Starting Dovecot Imap:                                     [FAILED]
Stopping httpd:                                            [  OK  ]
[Mon Sep 26 13:29:58 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
Starting httpd:                                            [  OK  ]
Stopping pure-ftpd:                                        [  OK  ]
Starting pure-ftpd:                                        [  OK  ]
Installation completed.
[[email protected] install]#

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

If Dovecot fails to start with the following error:

Fatal: listen(::, 143) failed: Address already in use

... open /etc/dovecot.conf...

vi /etc/dovecot.conf 

... and add the line listen =*:

[...]
#listen = *, [::]
listen = *
[...]

Then try to start Dovecot again:

/etc/init.d/dovecot start

Successivamente puoi accedere a ISPConfig 3 da http://server1.example.com:8080/ o http://192.168.0.100:8080/. Accedi con il nome utente admin e la password admin (dovresti cambiare la password predefinita dopo il primo accesso):

The system is now ready to be used.

23.1 ISPConfig 3 Manual

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

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

  • CentOS:http://www.centos.org/
  • Configurazione ISP:http://www.ispconfig.org/

Panels
  1. Il server perfetto - Fedora 15 x86_64 [ISPConfig 2]

  2. Il server perfetto - Fedora 15 x86_64 [ISPConfig 3]

  3. Il server perfetto - Ubuntu 11.04 [ISPConfig 3]

  4. Il server perfetto - CentOS 5.6 x86_64 [ISPConfig 2]

  5. Il server perfetto - CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

Il server perfetto - CentOS 6.1 x86_64 con nginx [ISPConfig 3]

Il server perfetto - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 6.3 x86_64 (nginx, Courier, ISPConfig 3)

Il server perfetto - CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

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

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