Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Il Server perfetto – CentOS 5.3 x86_64 [ISPConfig 2]

In questa esercitazione viene illustrato come impostare un serverCentOS 5.3 (x86_64) che offre tutti i servizi necessiti per gli ISP e fornitori di hosting web: Apache web server (SSL-capace), server di posta Postfix con SMTP-AUTH e TLS, server DNS BIND, Proftpd FTP server, server MySQL, Dovecot POP3/IMAP, Quota, Firewall, ecc. Questo tutorial è scritto per la versione 64-bit di CentOS 5.3, ma dovrebbe applicarsi alla versione 32-bit con pochissime modifiche pure. Alla fine si dovrebbe avere un sistema che funziona in modo affidabile, e se ti piace è possibile installare il controllo di Web hosting gratuito pannello ISPConfig (cioè, ISPConfig corre su di esso, fuori dalla scatola).

Io uso il seguente software:

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

Si prega di notare che questa configurazione non funziona per ISPConfig 3! È valido per 2 ISPConfig solo!

Voglio innanzitutto dire che questo non è l’unico modo di impostazione di un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo di che prendere. Io non rilasciano alcuna garanzia che questo funziona per voi!

 

1 requisiti

Per installare un sistema del genere, sarà necessario quanto segue:

 

2 Nota preliminare

In questo tutorial io uso il nome host Server1 con l’ indirizzo IP 192.168.0.100 e gateway 192.168.0.1Queste impostazioni potrebbero differire per te, quindi devi sostituirli ove opportuno.

 

3 installare il sistema Base

Il boot dal primo CD di CentOS 5.3 (CD 1) o il DVD di CentOS 5.3. Premere < Invio > al prompt boot:

Può richiedere molto tempo per testare il supporto di installazione quindi saltiamo questo test qui:

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

Scegli la tua lingua successiva:

Selezionare il layout di tastiera:

Io sono l’installazione CentOS 5.3 su un sistema di fresco, quindi rispondere  alla domanda vuoi inizializzare questo disco, cancellando tutti i dati?

Ora dobbiamo scegliere uno schema di partizionamento per la nostra installazione. Per semplicità selezionare rimuovere linux partizioni sulle unità selezionate e creare layout predefinitoQuesto si tradurrà in una piccola/boot e una partizione di grandi dimensioni / , nonché una partizione di swap. Naturalmente, siete liberi di partizionare il disco fisso, comunque ti piaccia. Poi mi ha colpito prossimo:

Answer the following question (Are you sure you want to do this?) with Yes:

On to the network settings. The default setting here is to configure the network interfaces with DHCP, but we are installing a server, so static IP addresses are not a bad idea… Click on the Edit button at the top right.

In the window that pops up uncheck Use dynamic IP configuration (DHCP) and Enable IPv6 support and give your network card a static IP address (in this tutorial I’m using the IP address 192.168.0.100 for demonstration purposes) and a suitable netmask (e.g. 255.255.255.0; if you are not sure about the right values, http://www.subnetmask.info might help you):

Set the hostname manually, e.g. server1.example.com, and enter a gateway (e.g. 192.168.0.1) and up to two DNS servers (e.g. 213.191.92.86 and 145.253.2.75):

Choose your time zone:

Give root a password:

Ora selezionare il software che vogliamo installare. Selezionare nulla ma Server (deselezionare tutto il resto). Anche non controllare pacchetti da CentOS extraQuindi controllare Personalizza orae fare clic su prossimo:

Ora dobbiamo selezionare i gruppi di pacchetti che vogliamo installare. Selezionare editoriInternet basati su testolibrerie di sviluppostrumenti di sviluppoServer dei nomi DNSFTP ServerMail ServerDatabase MySQL, Server Strumenti di configurazioneWeb ServerStrumenti di amministrazioneBase e Strumenti di sistema (deselezionare tutti gli altri gruppi di pacchetto) e fare clic su prossimo:

Il programma di installazione controlla le dipendenze dei pacchetti selezionati:

Fare clic su Avanti per avviare l’installazione:

Il disco rigido viene formattato:

L’installazione ha inizio. Ci vorranno pochi minuti:

Infine, l’installazione è completa, ed è possibile rimuovere il CD o il DVD dal computer e riavviarlo:

After the reboot, you will see this screen. Select Firewall configuration and hit Run Tool:

I want to install ISPConfig at the end of this tutorial which comes with its own firewall. That’s why I disable the default CentOS firewall now. Of course, you are free to leave it on and configure it to your needs (but then you shouldn’t use any other firewall later on as it will most probably interfere with the CentOS firewall).

SELinux is a security extension of CentOS that should provide extended security. In my opinion you don’t need it to configure a secure system, and it usually causes more problems than advantages (think of it after you have done a week of trouble-shooting because some service wasn’t working as expected, and then you find out that everything was ok, only SELinux was causing the problem). Therefore I disable it, too (this is a must if you want to install ISPConfig later on). Hit OK afterwards:

Then leave the Setup Agent by selecting Exit:

Poi il login come root e riavviare il sistema affinché le modifiche possono essere applicate:

reboot

Ora, per la configurazione…

4 regolare/etc/hosts

Successivamente abbiamo modificare/etc/hostsRenderlo simile a questa:

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 configurare indirizzi IP aggiuntivi

(Questa sezione è completamente facoltativa. Essa mostra solo come aggiungere indirizzi IP aggiuntivi a vostra interfaccia di rete eth0 , se avete bisogno di più di un indirizzo IP. Se stai bene con un indirizzo IP, è possibile ignorare questa sezione.)

Si supponga che è la nostra interfaccia di rete eth0Poi c’è un file /etc/sysconfig/network-scripts/ifcfg-eth0 che contiene le impostazioni per eth0Possiamo usare questo come un esempio per la nostra nuova rete virtuale interfaccia 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 interfaccia virtuale eth0: 0Quindi aprire il file /etc/sysconfig/network-scripts/ifcfg-eth0-eth0: 0 e modificarlo come segue (possiamo lasciare la riga HWADDRcome è 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

In seguito dobbiamo riavviare la rete:

/etc/init.d/network restart

È inoltre possibile regolare/etc/hosts dopo aver aggiunto nuovi indirizzi IP, anche se questo non è necessario.

Ora eseguire

ifconfig

Ora dovreste vedere il vostro nuovo indirizzo IP in uscita:

[root@server1 ~] # ifconfig
eth0 Link encap HWaddr 00: 0C: 29:C2:29:7E
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask: 255.255.255.0
inet6 addr: fe80::20c:29ff:fec2:297e / 64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1
RX pacchetti: 281 errori: 0:0 overruns: 0 frame: 0
TX pacchetti: 311 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:1000
RX bytes: 26449 (25,8 KiB) TX bytes: 60343 (58,9 KiB)
Indirizzo: 0x1400 Base di interrupt: 177

eth0: 0 Link encap HWaddr 00: 0C: 29:C2:29:7E
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask: 255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1
Indirizzo: 0x1400 Base di interrupt: 177

lo Link encap Loopback
inet addr:127.0.0.1 Mask: 255.0.0.0
inet6 addr::: 1/128 Scope: Host
UP LOOPBACK RUNNING 16436 Metric: 1
RX pacchetti: 8 errori: 0:0 overruns: 0 frame: 0
TX pacchetti: 8 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:0
RX bytes: 560 (560.0 b) TX bytes: 560 (560.0 b)

[root@server1 ~]#

 

6 disattivare il Firewall e SELinux

(Puoi saltare questo capitolo se hai già disattivato il firewall e SELinux alla fine dell’installazione del sistema base (nell’Agent Setup)).

I want to install ISPConfig at the end of this tutorial which comes with its own firewall. That’s why I disable the default CentOS firewall now. Of course, you are free to leave it on and configure it to your needs (but then you shouldn’t use any other firewall later on as it will most probably interfere with the CentOS firewall).

SELinux is a security extension of CentOS that should provide extended security. In my opinion you don’t need it to configure a secure system, and it usually causes more problems than advantages (think of it after you have done a week of trouble-shooting because some service wasn’t working as expected, and then you find out that everything was ok, only SELinux was causing the problem). Therefore I disable it, too (this is a must if you want to install ISPConfig later on).

Run

system-config-securitylevel

Set both Security Level and SELinux to Disabled and hit OK:

Afterwards we must reboot the system:

reboot

 

7 Install Some Software

First we import the GPG keys for software packages:

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

Then we update our existing packages on the system:

yum update

Ora installare alcuni pacchetti di software che sono necessari più tardi:

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

8 quota

(Se avete scelto un diverso schema di partizionamento che ho fatto, è necessario regolare questo capitolo quindi tale quota si applica per le partizioni dove ne avete bisogno.)

Per installare il contingente, dobbiamo eseguire questo comando:

yum install quota

Modificare/etc/fstab e aggiungere la partizione di / (/dev/VolGroup00/LogVol00 , usrquota, grpquota):

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 eseguire

tocco /aquota.user /aquota.group
chmod 600 /aquota.*
Mount remount -o /
quotacheck – avugm
quotaon – avug

per abilitare il contingente.

 

9 installare un Server DNS di chroot (BIND9)

Per installare un chroot BIND9, facciamo questo:

yum install bind-chroot

Quindi procedere come segue:

chmod 755/var/nome /
chmod 775/var/named/chroot /
chmod 775/var/nome/chroot/var /
chmod 775/var/nome/chroot/var/named /
chmod 775/var/nome/chroot/var/run /
chmod 777/var/nome/chroot/var/run/nome /
/var/named/chroot/var/named CD /
ln -s… /.. / chroot
cp /usr/share/doc/bind-9.3.4/sample/var/named/named.local /var/named/chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.4/sample/var/named/named.root /var/named/chroot/var/named/named.root
tocco /var/named/chroot/etc/named.conf
chkconfig – livelli 235 denominati il
/etc/init.d/named inizio

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

 

10 MySQL (5.0)

Per installare MySQL, facciamo questo:

yum install mysql mysql-devel mysql-server

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

chkconfig – livelli 235 mysqld su
/etc/init.d/mysqld inizio

Ora verifica che la rete è abilitata. Correre

netstat -tap | grep mysql

Dovrebbe mostrare una riga come questa:

[root@server1 denominato] # netstat-toccare | grep mysql
TCP 0 0 *: mysql *: * LISTEN 2497/mysqld
[root@server1 denominato] #

Se così non fosse, modificare /etc/my.cnf e commentare l’ opzione skip-networking:

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

e riavviare il server MySQL:

/etc/init.d/mysqld restart 

Correre

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h Server1 -u root password yourrootsqlpassword

per impostare una password per l’utente root (altrimenti chiunque può accedere al database MySQL!).

11 postfix con SMTP-AUTH e TLS

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

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

Successivamente abbiamo configurare 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’

Noi dobbiamo modificare /usr/lib64/sasl2/smtpd.conf in modo che Postfix consente accessi pianura ed effettuare il LOGIN . Su un 32 Bit Centos 5.3 è necessario modificare il file /usr/lib/sasl2/smtpd.conf invece. 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 – fuori smtpd.key 1024

chmod 600 smtpd.key
openssl req-new – key smtpd.key-fuori 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 – x 509 – estensioni v3_ca – keyout cakey. pem-out cacert. pem-giorni 3650

Successivamente abbiamo configurare 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 ‘

Poi impostiamo il nome host nella nostra installazione di Postfix (assicurarsi di sostituire con il proprio nome host Server1 ):

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

Dopo questi passaggi di configurazione che si dovrebbe ora avere un /etc/postfix/main.cf che assomiglia 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 degli CentOS fornisce solo IMAP e IMAPs servizi. Perché vogliamo anche POP3 e POP3s dobbiamo configurare Dovecot per farlo. Modificare /etc/dovecot.conf e attivare la linea protocolli = imap imaps pop3 pop3s:

vi /etc/dovecot.conf
[...]
# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

# 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

# IP or host address where to listen in for connections. It's not currently
# possible to specify multiple addresses. "*" listens in all IPv4 interfaces.
# "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4
# interfaces depending on the operating system.
[...]

Ora avviare Postfix, saslauthd e Dovecot:

chkconfig – livelli 235 sendmail off
chkconfig – livelli 235 postfix su
chkconfig – livelli 235 saslauthd su
chkconfig – dovecot livelli 235 su
/etc/init.d/sendmail stop
/etc/init.d/postfix inizio
/etc/init.d/saslauthd inizio
/etc/init.d/dovecot inizio

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

telnet localhost 25 

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

ehlo localhost 

Se vedete le linee

250-STARTTLS 

e

250-AUTH PLAIN LOGIN 

tutto è andato bene.

[root@server1 ssl] # telnet localhost 25
Cercando 127.0.0.1…
Collegato a localhost (127.0.0.1).
Carattere di escape è ‘ ^]’.
Server1 220 ESMTP Postfix
EHLO localhost
250-Server1
IL PIPELINING 250
DIMENSIONI DI 250 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH = LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
DSN 250
uscire da
221 2.0.0 bye
Connessione chiusa dall’host stranieri.
[root@server1 ssl] #

Tipo

quit 

per tornare alla shell del sistema.

 

11.1 Maildir

Dovecot utilizza formato Maildir (non mbox), quindi se si installa ISPConfig sul server, assicurarsi che si attiva Maildir sotto Gestione -> Server -> Impostazioni -> EmailISPConfig farà quindi la configurazione necessaria.

Se non si desidera installare ISPConfig, quindi è necessario configurare Postfix per inviare email ad Maildir di un utente (si può anche fare questo se si utilizza ISPConfig – non fa male ;-)):

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

12 Apache2 con PHP, Ruby, Python

Ora installare 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 modificare /etc/httpd/conf/httpd.conf.:

vi /etc/httpd/conf/httpd.conf

e cambiare DirectoryIndex a

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

Ora configurare il sistema per avviare Apache al momento del boot:

chkconfig --levels 235 httpd on

Avviare Apache:

/etc/init.d/httpd start

 

12.1 disattivare PHP globale

(Se non si intende installare ISPConfig su questo server, saltare questa sezione!)

In ISPConfig si configurerà PHP su base per-sito, cioè è possibile specificare quale sito può eseguire script PHP e che uno non può. Questo può funzionare solo se PHP è disattivato a livello globale, perché altrimenti sarebbe in grado di eseguire script PHP, non importa di quello specificato in ISPConfig tutti i siti Web.

Per disattivare globalmente PHP, editiamo /etc/httpd/conf.d/php.conf. e commentare 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.
#

LoadModule php5_module modules/libphp5.so

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

In seguito abbiamo riavviare Apache:

/etc/init.d/httpd restart

 

12.2 installazione mod_ruby

Per CentOS 5.3, non c’è nessun pacchetto di mod_ruby disponibili, quindi dobbiamo compilarlo noi stessi. Prima installiamo alcuni prerequisiti:

yum install httpd-devel ruby ruby-devel

Next we download and install mod_ruby as follows:

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

Finally we must add the mod_ruby module to the Apache configuration, so we create the file /etc/httpd/conf.d/ruby.conf

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

… and restart Apache:

/etc/init.d/httpd restart

 

12.3 Installing mod_python

To install mod_python, we simply run…

yum install mod_python

… and restart Apache afterwards:

/etc/init.d/httpd restart

 

13 ProFTPd

ISPConfig has better support for proftpd than vsftpd, so let’s remove vsftpd:

yum remove vsftpd

Because CentOS has no proftpd package, we have to compile Proftpd manually:

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

The proftpd binary gets installed in /usr/local/sbin, but we need it in /usr/sbin, so we create a symlink:

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

Now create the init script /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

Then we make the init script executable:

chmod 755 /etc/init.d/proftpd

Next we open /etc/proftpd.conf and change Group to nobody:

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

For security reasons you can also add the following lines to /etc/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here: http://proftpd.org/localsite/Userguide/linked/userguide.html):

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

To make sure that FTP users can use the chmod command, comment out the <Limit SITE_CHMOD> section:

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

Now we can create the system startup links for Proftpd:

chkconfig --levels 235 proftpd on

E finalmente abbiamo cominciato Proftpd:

/etc/init.d/proftpd start

14 webalizer

Per installare webalizer, basta eseguire

yum install webalizer

 

15 sincronizzare l’orologio di sistema

Se si desidera avere l’orologio di sistema sincronizzato con un server NTP, effettuare le seguenti operazioni:

yum install ntp

chkconfig – livelli 235 ntpd su
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd inizio

 

16 installare alcuni moduli Perl

ISPConfig è dotato di SpamAssassin che ha bisogno di alcuni moduli Perl per lavorare. Installiamo i moduli Perl necessari con un singolo comando:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1

 

17 la fine

La configurazione del server è ora finito, e se lo si desidera che è ora possibile installare ISPConfig su di esso.

 

17.1. una nota su SuExec

Se si desidera eseguire script CGI sotto suExec, è necessario specificare /var/www come la home directory per i siti Web creati da ISPConfig come suExec degli CentOS è compilato con /var/www come Doc_RootCorrere

/usr/sbin/suexec -V

e l’output dovrebbe assomigliare a questo:

[root@server1 ~] # /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”
[root@server1 ~]#

Quindi se si desidera utilizzare suExec con ISPconfig, non cambiano la radice web predefinito (che è /var/www) se si utilizza la modalità esperto durante l’installazione di ISPConfig (in modalità standard non è possibile modificare la radice web comunque così sarete in grado di utilizzare in ogni caso suExec).

 

 

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp