|
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 Se credete che il vostro dvd/cd sia stato masterizzato con qualche errore fate il test, altrimenti potete tranquillamente saltarlo . Compare la pagina di benvenuto, andiamo avanti Scegliamo la lingua Selezioniamo il tipo di tastiera 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 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. Nella configurazione di rete, deselezionate il DHCP, e impostiamo l'indirizzo a mano Settiamo il Gateway, l'hostname e i Dns Scegliamo il fuso orario: Inseriamo la password di root, possibilmente di almeno 8 caratteri alpha numerici Ora selezioniamo il software da installare. Deselezioniamo tutto tranne Server, e selezioniamo customize now. 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 CentOS controllerà le dipendenze, andiamo avanti Installer ci mostrerà i cd o i dvd di cui avremo bisogno durante l'installazione Verrà formattato l'hard disk Comincerà l'installazione, richiederà qualche minuto... Finita l'installazione rimuoviamo il cd e riavviamo il sistema
Al riavvio vedrai questa schermata, selezionate Firwall Configuration e premiamo su Run Tools 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 Usciamo dal Setup Agent Loggatevi come Root e riavviate il sistema Al riavvio del sistema editiamo il file hosts in questo modo: # 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 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: 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 /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 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 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: 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 [...] # 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: 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: 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: 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 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 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 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
|