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

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 2]

Il server perfetto - CentOS 5.7 x86_64 [ISPConfig 2]

Questo tutorial mostra come configurare un CentOS 5.7 server (x86_64) che offre tutti i servizi necessari agli ISP e ai web hoster:server web Apache (compatibile con SSL), server di posta Postfix con SMTP-AUTH e TLS, server DNS BIND, server FTP Proftpd, server MySQL, Dovecot POP3/IMAP, Quota, Firewall, ecc. Questo tutorial è stato scritto per la versione a 64 bit di CentOS 5.7, ma dovrebbe essere applicato anche alla versione a 32 bit con pochissime modifiche. Alla fine dovresti avere un sistema che funzioni in modo affidabile e, se lo desideri, puoi installare il pannello di controllo del webhosting gratuito ISPConfig 2 (ovvero, ISPConfig viene eseguito immediatamente).

Userò il seguente software:

  • Server Web:Apache 2.2 con PHP 5.1.6
  • Server di database:MySQL 5.0
  • Server di posta:Postfix
  • Server DNS:BIND9 (con chroot)
  • Server FTP:Proftpd
  • Server POP3/IMAP:Dovecot
  • Webalizer per le statistiche del sito web

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

Voglio dire in primo luogo che questo non è l'unico modo per impostare un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo in cui prendo. Non garantisco che questo funzionerà per te!

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 2] - 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*

Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:

yum update

Ora installiamo alcuni pacchetti software che saranno necessari in seguito:

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils gcc gcc-c++

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 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
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /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
touch /var/named/chroot/etc/named.conf
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.).

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

10 MySQL (5.0)

Per installare MySQL, facciamo questo:

yum install mysql mysql-devel mysql-server

Quindi creiamo i collegamenti di avvio del sistema per MySQL (in modo che MySQL si avvii automaticamente ogni volta che il sistema si avvia) e avviamo il server MySQL:

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

Ora controlla che la rete sia abilitata. Corri

netstat -tap | grep mysql

Dovrebbe mostrare una linea come questa:

[[email protected] ~]# netstat -tap | grep mysql
tcp        0      0 *:mysql                     *:*                        ASCOLTA      3486/mysqld
[[email protected] ~]#

In caso contrario, modifica /etc/my.cnf e commenta l'opzione skip-networking:

vi /etc/my.cnf
[...]
#skip-networking
[...]

e riavvia il tuo server MySQL:

/etc/init.d/mysqld restart 

Imposta le password per l'account root MySQL:

mysql_secure_installation

[[email protected] ~]# 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 ~]#

11 Postfix con SMTP-AUTH e TLS

Ora installiamo Postfix e Dovecot (Dovecot sarà il nostro server POP3/IMAP):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Quindi configuriamo SMTP-AUTH e TLS:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
postconf -e 'mynetworks =127.0.0.0/8'

Dobbiamo modificare /usr/lib64/sasl2/smtpd.conf in modo che Postfix consenta gli accessi PLAIN e LOGIN. Su un Centos 5.7 a 32 bit devi invece modificare il file /usr/lib/sasl2/smtpd.conf. Dovrebbe assomigliare a questo:

vi /usr/lib64/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login

Successivamente creiamo i certificati per TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Quindi configuriamo Postfix per TLS:

postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf - e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'

Quindi impostiamo il nome host nella nostra installazione di Postfix (assicurati di sostituire server1.example.com con il tuo nome host):

postconf -e 'myhostname = server1.example.com'

Dopo questi passaggi di configurazione dovresti ora avere un /etc/postfix/main.cf simile a questo (ho rimosso tutti i commenti da esso):

cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = server1.example.com

Per impostazione predefinita, il demone Dovecot di CentOS fornisce solo servizi IMAP e IMAP. Poiché vogliamo anche POP3 e POP3, dobbiamo configurare Dovecot per farlo. Modifichiamo /etc/dovecot.conf e abilitiamo la riga protocols =imap imaps pop3 pop3s:

vi /etc/dovecot.conf
[...]
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
[...]

Ora avvia Postfix, saslauthd e Dovecot:

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

Per vedere se SMTP-AUTH e TLS funzionano correttamente ora esegui il seguente comando:

telnet localhost 25 

Dopo aver stabilito la connessione al tipo di server di posta Postfix

ehlo localhost 

Se vedi le linee

250-STARTTLS 

e

250-AUTH LOGIN PLAIN 

va tutto bene.

[[email protected] ssl]# telnet localhost 25
Tentativo 127.0.0.1...
Connesso a localhost.localdomain (127.0.0.1).
Il carattere di escape è '^]'.
220 server1.example.com Postfix ESMTP
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250- VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
chiudi
221 2.0.0 Ciao
Connessione chiusa da host esterno.
[[email protected] ssl]#

Digita

quit 

per tornare alla shell del sistema.

11.1 Maildir

Dovecot utilizza il formato Maildir (non mbox), quindi se installi ISPConfig sul server, assicurati di abilitare Maildir in Gestione -> Server -> Impostazioni -> Email. ISPConfig eseguirà quindi la configurazione necessaria.

Se non vuoi installare ISPConfig, devi configurare Postfix per inviare e-mail alla Maildir di un utente (puoi farlo anche se usi ISPConfig - non fa male;-)):

postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

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

12 Apache2 con PHP, Ruby, Python, WebDAV

Ora installiamo Apache con PHP (questo è PHP 5.1.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Quindi modifica /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

e cambia DirectoryIndex in

[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
[...]

Ora configura il tuo sistema per avviare Apache all'avvio:

chkconfig --levels 235 httpd on

Avvia Apache:

/etc/init.d/httpd start

12.1 Disattiva PHP a livello globale

(Se non prevedi di installare ISPConfig su questo server, salta questa sezione!)

In ISPConfig configurerai PHP in base al sito Web, ovvero puoi specificare quale sito Web può eseguire script PHP e quale no. Questo può funzionare solo se PHP è disabilitato a livello globale perché altrimenti tutti i siti Web sarebbero in grado di eseguire script PHP, indipendentemente da ciò che specifichi in ISPConfig.

Per disabilitare PHP a livello globale, modifica /etc/httpd/conf.d/php.conf e commenta le righe AddHandler e AddType:

vi /etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  # Use of the "ZTS" build with worker is experimental, and no shared
  # modules are supported.
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .php
#AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

Successivamente riavviamo Apache:

/etc/init.d/httpd restart

12.2 Installazione di mod_ruby

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

12.3 Installazione di mod_python

Per installare mod_python, eseguiamo semplicemente...

yum install mod_python

... e riavvia Apache in seguito:

/etc/init.d/httpd restart

12.4 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

13 ProFTPd

ISPConfig ha un supporto migliore per proftpd rispetto a vsftpd, quindi rimuoviamo vsftpd:

yum remove vsftpd

Poiché CentOS non ha un pacchetto proftpd, dobbiamo compilare Proftpd manualmente:

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar .gz
cd proftpd-1.3.3e/
./configure --sysconfdir=/etc
make
make install
cd ..
rm - da proftpd-1.3.3e*

Il binario proftpd viene installato in /usr/local/sbin, ma ne abbiamo bisogno in /usr/sbin, quindi creiamo un collegamento simbolico:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Ora crea lo script init /etc/init.d/proftpd:

vi /etc/init.d/proftpd
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
#
# proftpd        This shell script takes care of starting and stopping
#                proftpd.
#
# chkconfig: - 80 30
# description: ProFTPD is an enhanced FTP server with a focus towards \
#              simplicity, security, and ease of configuration. \
#              It features a very Apache-like configuration syntax, \
#              and a highly customizable server infrastructure, \
#              including support for multiple 'virtual' FTP servers, \
#              anonymous FTP, and permission-based directory visibility.
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/sbin/proftpd ] || exit 0

RETVAL=0

prog="proftpd"

start() {
        echo -n $"Starting $prog: "
        daemon proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}

stop() {
        echo -n $"Shutting down $prog: "
        killproc proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status proftpd
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  condrestart)
        if [ -f /var/lock/subsys/proftpd ]; then
          stop
          start
        fi
        ;;
  reload)
        echo -n $"Re-reading $prog configuration: "
        killproc proftpd -HUP
        RETVAL=$?
        echo
        ;;
  *)
        echo "Usage: $prog {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $RETVAL

Quindi rendiamo eseguibile lo script init:

chmod 755 /etc/init.d/proftpd

Quindi apriamo /etc/proftpd.conf e cambiamo Gruppo in nessuno:

vi /etc/proftpd.conf
[...]
Group                           nobody
[...]

Per motivi di sicurezza puoi anche aggiungere le seguenti righe a /etc/proftpd.conf (grazie a Reinaldo Carvalho; maggiori informazioni possono essere trovate qui:http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf
[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

Per assicurarti che gli utenti FTP possano utilizzare il comando chmod, commenta la sezione :

[...]
# Bar use of SITE CHMOD by default
#<Limit SITE_CHMOD>
#  DenyAll
#</Limit>
[...]

Ora possiamo creare i collegamenti di avvio del sistema per Proftpd:

chkconfig --levels 235 proftpd on

E finalmente iniziamo Proftpd:

/etc/init.d/proftpd start

14 Webalizer

Per installare webalizer, esegui

yum install webalizer

15 Sincronizzare l'orologio di sistema

Se desideri sincronizzare l'orologio di sistema con un server NTP, procedi come segue:

yum install ntp

chkconfig --levels 235 ntpd su
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

16 Installare alcuni moduli Perl

ISPConfig viene fornito con SpamAssassin che necessita di alcuni moduli Perl per funzionare. Installiamo i moduli Perl richiesti con un solo comando:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP

17 La fine

La configurazione del server è ora terminata e, se lo desideri, puoi ora installare ISPConfig 2 su di esso.

17.1 Una nota su SuExec

Se si desidera eseguire script CGI in suExec, è necessario specificare /var/www come home directory per i siti Web creati da ISPConfig poiché suExec di CentOS è compilato con /var/www come Doc_Root. Corri

/usr/sbin/suexec -V

e l'output dovrebbe essere simile a questo:

[[email protected] ~]# /usr/sbin/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache "
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 - D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"
[[email protected] ~]#

Quindi, se vuoi usare suExec con ISPconfig, non cambiare la web root predefinita (che è /var/www) se usi la modalità esperto durante l'installazione di ISPConfig (in modalità standard non puoi comunque cambiare la web root quindi puoi sarà in grado di utilizzare suExec in ogni caso).

  • CentOS:http://www.centos.org/
  • ISPConfig 2:http://www.ispconfig.org/ispconfig-2/

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)