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

Il server perfetto - CentOS 6.0 x86_64 [ISPConfig 2]

Il server perfetto - CentOS 6.0 x86_64 [ISPConfig 2]

Questo tutorial mostra come configurare un CentOS 6.0 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 è scritto per la versione a 64 bit di CentOS 6.0, ma dovrebbe applicarsi 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.15 con PHP 5.3.2
  • Server di database:MySQL 5.1.52
  • 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 6.0 da un mirror accanto a te (l'elenco dei mirror è disponibile qui:http://isoredirect.centos.org/centos/6/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 DVD CentOS 6.0 (DVD 1). Seleziona Installa o aggiorna un sistema esistente:

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:

Presumo che utilizzi un disco rigido collegato localmente, quindi dovresti selezionare Dispositivi di archiviazione di base qui:

Potrebbe essere visualizzato il seguente avviso - Errore durante l'elaborazione dell'unità. Se vedi questo clicca sul pulsante Reinizializza tutto per procedere:

Inserisci il nome host del server (es. server1.example.com), quindi fai clic sul pulsante Configura rete:

Vai alla scheda Wired, seleziona l'interfaccia di rete (probabilmente eth0) e fai clic su Modifica...:

Seleziona la casella di controllo Connetti automaticamente e vai alla scheda Impostazioni IPv4 e seleziona Manuale nel menu a discesa Metodo. Compila uno, due o tre nameserver (separati da virgola) nel campo Server DNS (es. 8.8.8.8,8.8.4.4), quindi clicca sul pulsante Aggiungi accanto all'area Indirizzi:

Ora dai alla tua scheda di rete un indirizzo IP statico e una maschera di rete (in questo tutorial sto usando l'indirizzo IP 192.168.0.100 e la maschera di rete 255.255.255.0 a scopo dimostrativo; se non sei sicuro dei valori corretti, http://www. subnetmask.info potrebbe aiutarti). Compila anche il tuo gateway (es. 192.168.0.1) e fai clic sul pulsante Applica...:

La configurazione di rete è ora terminata. Fare clic sul pulsante Avanti:

Il server perfetto - CentOS 6.0 x86_64 [ISPConfig 2] - Pagina 2

4 Regola /etc/hosts

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

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100   server1.example.com     server1

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5 Configura il firewall

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

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

Corri

system-config-firewall

e disabilitare il firewall.

Per verificare che il firewall sia stato davvero disabilitato, puoi eseguire

iptables -L 

dopo. L'output dovrebbe essere simile a questo:

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source              destinazione

Chain FORWARD (policy ACCEPT)
target prot opt sorgente              destinazione

CHAIN OUTPUT (policy ACCEPT)
target     prot opt source              destinazione
[[email protected] ~]#

6 Disattiva SELinux

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). Pertanto lo disabilito (questo è un must se vuoi installare ISPConfig in un secondo momento).

Modifica /etc/selinux/config e imposta SELINUX=disabled:

vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

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++ telnet flex

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 ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 alla partizione / (/dev/mapper/vg_server1-lv_root):

vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Jul 11 16:29:27 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_server1-lv_root /                       ext4    defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
UUID=6a119ddb-46eb-4054-a17c-8968ea87369f /boot                   ext4    defaults        1 2
/dev/mapper/vg_server1-lv_swap swap                    swap    defaults        0 0
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

Quindi esegui

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 /var/named/named.localhost /var/named/chroot/var/named/named.localhost
cp /var/named/named.ca /var/named/chroot/var/named/named.ca
cp /var/named/named.empty /var/named/chroot/var/named/named.empty
cp /var/named/named.loopback /var/named/chroot/var/named/named.loopback
chgrp denominato /var/named/chroot/var/named/named.localhost /var/named /chroot/var/named/named.ca /var/named/chroot/var/named/named.empty /var/named/chroot/var/named/named.loopback
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 6.0 x86_64 [ISPConfig 2] - Pagina 4

10 MySQL (5.1)

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      2044/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'

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
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = 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
         ddd $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.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/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/dovecot.conf e abilitiamo la riga protocols =imap pop3:

vi /etc/dovecot/dovecot.conf
[...]
# Protocols we want to be serving.
protocols = imap pop3
[...]

Quindi dobbiamo abilitare l'autenticazione del testo in chiaro:

vi /etc/dovecot/conf.d/10-auth.conf
[...]
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
disable_plaintext_auth = no
[...]

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

va tutto bene.

[[email protected] ssl]# telnet localhost 25
Tentativo ::1...
Connesso a localhost.
Il carattere di escape è '^]'.
220 server1. example.com ESMTP Postfix
<-- ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
<-- esci
221 2.0.0 Ciao
Connessione chiusa da host straniero.
[[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 6.0 x86_64 [ISPConfig 2] - Pagina 5

12 Apache2 con PHP, Ruby, Python, WebDAV

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

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>
  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 6.0, 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://www.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
RubyAddPath /1.8

... e riavvia Apache:

/etc/init.d/httpd restart

(Se ometti la direttiva RubyAddPath /1.8, vedrai errori come i seguenti nel registro degli errori di Apache quando chiami i file Ruby:

[Giov. 05:05 2011] [errore] mod_ruby:impossibile richiedere apache/ruby-run
[gio 26 maggio 02:05:05 2011] [errore] mod_ruby:errore in ruby

)

12.3 Installazione di mod_python

Il pacchetto mod_python è disponibile dai repository EPEL che possiamo abilitare come segue:

rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch. rpm
rpm -ivh epel-release-6-5.noarch.rpm

yum install yum-priorities

Modifica /etc/yum.repos.d/epel.repo...

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

... e aggiungi la linea priority=10 alla sezione [epel]:

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]

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

Ora possiamo installare ProFTPd dal repository EPEL come segue:

yum install proftpd  

Per motivi di sicurezza puoi anche aggiungere la seguente riga 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
[...]
IdentLookups off
[...]

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. Ora puoi installare ISPConfig su di esso, seguendo queste istruzioni:http://www.ispconfig.org/manual_installation.htm

Prima di installare ISPConfig, c'è una cosa importante che devi fare. Apri /usr/include/stdio.h e sostituisci getline con parseline nella riga 673:

vim /usr/include/stdio.h
[...]
/* Like `getdelim', but reads up to a newline.

   This function is not part of POSIX and therefore no official
   cancellation point.  But due to similarity with an POSIX interface
   or due to the implementation it is a cancellation point and
   therefore not marked with __THROW.  */
extern _IO_ssize_t parseline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;
#endif
[...]

In caso contrario, l'installazione non riuscirà a causa del seguente errore:

htpasswd.c:101:errore:tipi in conflitto per âgetlineâ
/usr/include/stdio.h:673:nota:la precedente dichiarazione di âgetlineâ era qui
make[2]:*** [htpasswd. o] Errore 1
make[2]:Uscita dalla directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Errore 1
make[1]:Uscita dalla directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Errore 2
ERRORE:Impossibile creare Apache

È possibile annullare la modifica a /usr/include/stdio.h dopo l'installazione riuscita di ISPConfig (ma non dimenticare di ripristinarla ogni volta che si desidera aggiornare ISPConfig!).

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)