spacer.png, 0 kB
Almaweb cerca collaboratori, chiunque è interessato mi contatti

CB Login


spacer.png, 0 kB
spacer.png, 0 kB
Installazione di un web server con pannello ISPConfig

Scritto da Marco,

Pagina vista : 741    

Pubblicato in : Networking, Linux

ISPConfig è uno dei più famosi hosting control pannel in circolazione, il fatto che è open source lo rende personalizzabile e alla portata di tutti,
per non parlare del fatto che la comunity è molto attiva ed è facile ricevere aiuto sul forum di supporto. La versione più recente al momento è la ISPConfig 2.2.19

I principali servizi gestiti da ISPConfig sono:

  • Httpd (virtual hosts, domain and IP based)

  • FTP

  • Bind (A, CNAME, MX and SPF Records)

  • POP3 Auto-Responder

  • MySQL client-databases

  • Webalizer statistics

  • Harddisk quota

  • Mail-Quota

  • Traffic limits

  • IP-addresses

  • SSL

  • SSI

  • Shell-access

  • Mailscanner (Antivirus)

  • Firewall


In questa how to verrà spiegato passo passo come si installa un server web con pannello ISPConfig, la versione ISPConfig utilizzata è la
2.2.19 e come distribuzione linux sarà utilizzata la CentOs 5.

Decidiamo l'IP della macchina della macchina e il nome host, in questo tutorial utilizzeremo 192.168.0.100 come IP e server1.example.com
come nome host. Partiamo ora con l'installazione.


1) Installazione


Scarichiamo CentOs 5 da http://isoredirect.centos.org/centos/5/isos/i386/
Facciamo boot da CD e premiamo Invio



Installazione CentOS 1
Se credete che il vostro dvd/cd sia stato masterizzato con qualche errore fate il test, altrimenti potete tranquillamente saltarlo 
Installazione CentOS 2

.
Compare la pagina di benvenuto, andiamo avanti


Installazione CentOS 3


Scegliamo la lingua

Installazione CentOS 4

Selezioniamo il tipo di tastiera

Installazione CentOS 5

Se stiamo installando CentOS su una macchina nuova(cioè con l'hard disk vuoto) possiamo tranquillamente rispondere yes,
altrimenti assicuratevi che non ci siano dati importanti sull'hard disk perchè la prossima operazione che verrà eseguita da CentOS renderà difficile il recupero dei dati

Installazione CentOS 6


Ora dobbiamo selezionare lo schema di partizionamento, l'ideale è creare, oltre alle partizioni di default una abbastanza grande per /var questo perchè,
in caso di disaster recovery potrete evitare di dover formattare questa partizione, infatti ISPConfig salva tutti i dati dei vari siti(database esclusi) web in /var/www/,
e risparmierete del tempo prezioso. Inutile dire che è consigliato, mettere tutto sotto un raid 1 meglio ancora un raid 5.
In questo tutorial per semplicità lasciamo le impostazioni default, cioè una piccola partizione per /boot e il resto per /, più naturalmente lo spazio di swap.


Installazione CentOS 7

Nella configurazione di rete, deselezionate il DHCP, e impostiamo l'indirizzo a mano
Installazione CentOS 9


Installazione CentOS



Settiamo il Gateway, l'hostname e i Dns

Installazione CentOS

Scegliamo il fuso orario:

Installazione CentOS 12

Inseriamo la password di root, possibilmente di almeno 8 caratteri alpha numerici

Installazione CentOS 13



Ora selezioniamo il software da installare. Deselezioniamo tutto tranne Server, e selezioniamo customize now.


Installazione CentOS 14


Ora selezioniamo i pacchetti da installare: Editors, Text-based Internet, Development Libraries, Development Tools, DNS Name Server,
FTP Server, Mail Server, MySQL Database, Server Configuration Tools, Web Server, Administration Tools, Base, e System Tools. Andiamo Avanti

Installazione CentOS 15

CentOS controllerà le dipendenze, andiamo avanti

Installazione CentOS 16

Installer ci mostrerà i cd o i dvd di cui avremo bisogno durante l'installazione

Installazione CentOS 18

Verrà formattato l'hard disk

Installazione CentOS 19

Comincerà l'installazione, richiederà qualche minuto...

Installazione CentOS 20


Finita l'installazione rimuoviamo il cd e riavviamo il sistema

Installazione CentOS 21




Al riavvio vedrai questa schermata, selezionate Firwall Configuration e premiamo su Run Tools


Configuration CentOS 22


Ora disabilitiamo il Firewall, questo perchè il pacchetto di ISPConfig installa un propio Firewall, quindi è meglio evitare conflitti

Disabilitamo anche SELinux che è un tool di protezione di CentOs, questo perchè spesso genera problemi se mal configurato,

in questa guida non verrà spiegato come configurarlo. Terminate le modifiche premete OK


Configurazione CentOS 23

Usciamo dal Setup Agent

Configurazione CentOS 24

Loggatevi come Root e riavviate il sistema

shutdown -r now

Al riavvio del sistema editiamo il file hosts in questo modo:

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


Ora dobbiamo installare alcuni software, prima di tutto importiamo le chiavi GPG dei vari pacchetti

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

Ora Aggiorniamo il sistema

yum update

Installiamo i software mancanti

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

Passiamo alla installazione/configurazione di Quota, diamo questo comando:

yum install quota

Editiamo /etc/fstab e aggiungiamo ,usrquota,grpquota alla partizione / (/dev/VolGroup00/LogVol00), NOTA BENE:
LA SEGUENTE CONFIGURAZIONE VALE SOLTANTO SE SI E' FATTO IL PARTIZIONAMENTO DI DEFAULT DI
CENTOS, IN CASO ABBIATE FATTO DELLE MODIFICHE DURANTE L'INSTALLAZIONE DOVRETE ADATTARE LA
SEGUENTE CONFIGURAZIONE ALLE VOSTRE ESIGENZE

nano /etc/fstab


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

Ora diamo i seguenti comandi per rendere operativo Quota, accertatevi che non vi dia errori:

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


Ora installiamo e configuriamo BIND

yum install bind-chroot
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.3/sample/var/named/named.local /var/named/chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named/named.root
touch /var/named/chroot/etc/named.conf
chkconfig --levels 235 named on
/etc/init.d/named start

Ora installiamo MySql:

yum install mysql mysql-devel mysql-server

Configuriamo il sistema in modo che MySql parta all'avvio

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

Controlliamo se è on-line

netstat -tap

Questo dovrebbe essere l'output

tcp 0 0 *:mysql *:* LISTEN 2492/mysqld

Se non è così editate /etc/my.cnf e commentate l'opzione skip-networking

nano /etc/my.cnf

#skip-networking


Facciamo ripartire MySql server

/etc/init.d/mysqld restart


Impostiamo la password di root del server mysql


Installiamo e configuriamo ora Postfix e Dovecot

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot
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_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'


bisogna abilitare i login di PLAIN e LOGIN , nel file /usr/lib/sasl2/smtpd.conf , apriamo il file e editiamolo cosi :


pwcheck_method: sasl
authdmech_list: plain login

Ora creiamo il certificato per il 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

Infine configuriamo PostFix per il 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'

Ora nella configurazione di postfix dovreste avere una cosa del genere:

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


Di Default, il pacchetto Dovecot di CentOs ha abilitato soltanto IMAP e IMAPs service. Per configurare anche il POP3 e il POP3s
noi dobbiamo configurare Dovecot ne seguente modo. Apriamo /etc/dovecot.conf e abilitiamo la linea protocols = imap imaps pop3 pop3s

nano /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.
[...]

Ora facciamo partire 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


Ora controlliamo se PostFix è operativo:

telnet localhost 25
ehlo localhost

Se abbiamo un Output simile a questo PostFix dovrebbe funzionare:

250-STARTTLS

250-AUTH LOGIN PLAIN

everything is fine.

[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
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 LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.


Ora torniamo alla shell di sistema:

quit

Ora configuriamo postfix in modo che conservi le mail nella cartella Maildir di ogni utente:

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

Infine installiamo Apache2 con PHP

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

Editiamo /etc/httpd/conf/httpd.conf

nano /etc/httpd/conf/httpd.conf

E cambiamo il parametro DirectoryIndex in questo modo:

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


Ora configuriamo il sistema per far partire apache all'avvio del sistema:

hkconfig --levels 235 httpd on

Avviamo Apache:

/etc/init.d/httpd start

Visto che ISPConfig configura PHP a seconda dei permessi del sito web, ora dobbiamo disabilitare il funzionamento globale di PHP.
Per farlo dobbiamo editare
/etc/httpd/conf.d/php.conf e commentare le righe AddHandle e AddType:

nano 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


Dopo di questo facciamo ripartire apache

/etc/init.d/httpd restart

ISPConfig ha un miglior supporto di proFTPd rispetto vsftpd, quindi disistalliamolo:

yum remove vsftpd

Visto che CentOS non ha i pacchetti di proFTPd dobbiamo scaricarli e compilarli a mano:

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

I binari di proFTPd verranno installati in /usr/local/sbin ma a noi ci servono in /usr/sbin, così creiamo un
symbolic link

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

Ora creiamo uno script di avvio in /etc/init.d/proftpd

nano /etc/init.d/proftpd

Ora inserite i seguenti comandi bash nel file:

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



Ora rendiamolo eseguibile

chmod 755 /etc/init.d/proftpd

Ora apriamo /etc/proftpd.conf e cambiamo Group in Nobody

nano /etc/proftpd.conf

[...]
Group nobody
[...]

Facciamo partire ProFtp all'avvio:

chkconfig --levels 235 proftpd on

E infine Facciamolo partire

/etc/init.d/proftpd start

Installiamo WebAnalizer e dei moduli perl per SpamAssasin:

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


Sincroniziano l'orologio di sistema con un NTP Server:

yum install ntp
chkconfig --levels 235 ntpd on
ntp1.ien.it
/etc/init.d/ntpd start



Riavviamo la macchina e il server è pronto per ospitare ISPConfig




L'installazione è molto semplice, logghiamoci come root spostiamoci in /tmp e scarichiamo il pacchetto di installazione e scompattiamolo

cd /tmp
wget http://prdownloads.sourceforge.net/ispconfig/ISPConfig-2.2.21.tar.gz?download
tar xvfz ISPConfig*.tar.gz
cd
install_ispconfig

Facciamo partire l'installazione

./setup

Ci farà alcune domande voi potete accettare i valori di default o modificarli a vostro piacimento

Al 7 e 8 step durante la creazione del certificato ci chiederà se vogliamo criptare le rispettive chiavi, noi scegliamo No altrimenti ci verrà
chiesta la password ad ogni riavvio di ISPConfig, questo comporta che non si riavvierà senza interazione umana

Forniamo quando richieste tutte le informazioni, che saranno quelle di seguito:

Please enter your MySQL server: E.G. localhost
Please enter your MySQL user: E.G. root
Please enter your MySQL password: Your MySQL password
Please enter a name for the ISPConfig database: E.g. ispconfigdb
Please enter the IP address of the ISPConfig web: E.g. 192.168.0.1
Please enter the host name: E.g. www
Please enter the domain: E.g. xyz.de
Please select the protocol (http or https (SSL encryption)) to use to access the ISPConfig system: If you want to use your control panel with SSL, select 1.
You can then access it under https://www.xyz.de:81. If you want to access it under http://www.xyz.de:81, choose 2.

Se abbiamo fatto tutto correttamente possiamo considerare chiusa l'installazione di ISPConfig

Collegatevi al vostro server alla porta 81 in http o https (a seconda di cosa avete selezionato durante l'installazione) e cominciate a configurare il vostro pannello



















Ultimo aggiornamento: 10-04-2008 09:04

Tags : Hosting control pannel
User comments Quote this article in website Print Send to friend Save this to del.icio.us Related articles Read more...
Installazione di un web server con pannello ISPConfig
PDF
Martedì 15 Gennaio 2008 12:32
 
spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB