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
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).
18 link
- CentOS:http://www.centos.org/
- ISPConfig 2:http://www.ispconfig.org/ispconfig-2/