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

Il server perfetto - Fedora 15 x86_64 [ISPConfig 2]

Il server perfetto - Fedora 15 x86_64 [ISPConfig 2]

Questa è una descrizione dettagliata su come configurare un Fedora 15 server che offre tutti i servizi necessari agli ISP e agli hoster:server web Apache (compatibile con SSL) con PHP5/Ruby/Python, 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 Fedora 15, 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 (ovvero, ISPConfig viene eseguito immediatamente).

Userò il seguente software:

  • Server Web:Apache 2.2.17
  • PHP 5.3.6
  • Rubino
  • Pitone
  • Server di database:MySQL 5.5.12
  • 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 l'immagine ISO del DVD di Fedora 15 da un mirror vicino a te (l'elenco dei mirror può essere trovato qui:http://mirrors.fedoraproject.org/publiclist/Fedora/15/), ad es. http://ftp.tu-chemnitz.de/pub/linux/fedora/linux/releases/15/Fedora/x86_64/iso/Fedora-15-x86_64-DVD.iso
  • una connessione Internet...

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.

Assicurati che il sistema che desideri aggiornare abbia più di 600 MB di RAM, altrimenti il ​​sistema potrebbe bloccarsi quando tenta di avviarsi con il seguente messaggio:

Trying to unpack rootfs image as initramfs...

3 Installa il sistema di base

Avvia dal tuo DVD Fedora 15. Seleziona Installa un nuovo sistema o aggiorna un sistema esistente:

Il test del supporto di installazione può richiedere molto tempo, quindi saltiamo questo test qui:

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:

Poiché desideriamo una nuova installazione di Fedora, fai clic sul pulsante Sì, elimina qualsiasi dato successivo:

Inserisci il nome host del server:

Scegli il tuo fuso orario:

Fornisci una password di root:

Quindi eseguiamo il partizionamento. Seleziona Sostituisci i sistemi Linux esistenti. Questo ti darà una piccola partizione /boot e una grande / partizione che va bene per i nostri scopi:

Seleziona Scrivi modifiche su disco:

È in corso la formattazione del disco rigido:

Ora selezioniamo il software che vogliamo installare. Deseleziona Desktop grafico e seleziona Server Web. Quindi seleziona Personalizza ora. Successivamente, seleziona i repository aggiuntivi Fedora 15 - x86_64 e Fedora 15 - x86_64 - Aggiornamenti (se sei su un sistema i686, i nomi sono probabilmente Fedora 15 - i686 e Fedora 15 - i686 - Aggiornamenti):

Poiché gli ultimi due repository richiedono una connessione Internet, viene visualizzata una nuova finestra in cui è necessario configurare la scheda di rete. Seleziona la tua scheda di rete e fai clic su OK:

Vai alla scheda Wired, seleziona l'interfaccia di rete (tieni presente che Fedora 15 utilizza i nomi del BIOS per i dispositivi, ecco perché la tua scheda di rete ha il nome p3p1 invece di eth0 - la cambieremo in seguito; puoi trovare maggiori informazioni su questo su http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming) e fare 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 clicca sul pulsante Salva...:

Quindi fare clic su Chiudi nella finestra Connessioni di rete:

Il server perfetto - Fedora 15 x86_64 [ISPConfig 2] - Pagina 2

4 Cambia il nome della tua NIC in ethx

Ora dobbiamo configurare Fedora per non usare più i nomi dei dispositivi BIOS per la nostra interfaccia di rete. Invece di p3p1, abbiamo bisogno del nostro buon vecchio eth0 (perché altrimenti il ​​firewall di ISPConfig impazzirà e bloccherà tutto perché si aspetta eth0 invece di p3p1). Apri /etc/grub.conf...

vi /etc/grub.conf

... e aggiungi biosdevname=0 alla riga del kernel:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.38.6-27.fc15.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.38.6-27.fc15.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=de rhgb quiet biosdevname=0
        initrd /initramfs-2.6.38.6-27.fc15.x86_64.img

Quindi riavvia il sistema:

reboot

Dopo il riavvio, la tua NIC dovrebbe essere denominata eth0. Corri...

ifconfig

... per verificare:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:15:60:FA
          inet addr:192.168.0.100  Bcast:192.168.0.255  Maschera:255.255. 255.0
         inet6 addr: fe80::20c:29ff:fe15:60fa/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
          RX pacchetti:48 errori:0 0 overrun:0 frame:0
         TX pacchetti:58 errori:0 rilasciato:0 overrun:0 carrier:0
          collisions:0 txqueuelen:1000
         byte RX:5226 (5.1 KiB)  TX bytes:9682 (9.4 KiB)

lo        Link encap:Loopback locale
          inet addr:127.0.0.1  Maschera:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Pacchetti RX:2 errori:0 rilasciati:0 overrun:0 frame:0
          Pacchetti TX:2 errori:0 rilasciato:0 overrun:0 carrier:0
          collisioni:0 txqueuelen:0
          Byte RX:100 (100.0 b)  byte TX:100 (100.0 b)
[[email protected] ~]#

5 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

È importante aggiungere una riga per server1.example.com e rimuovere server1.example.com e server1 dalla riga 127.0.0.1.

6 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 Fedora predefinito. Naturalmente, sei libero di lasciarlo acceso e configurarlo secondo le tue esigenze (ma in seguito non dovresti usare nessun altro firewall in quanto molto probabilmente interferirà con il firewall Fedora).

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

7 Disattiva SELinux

SELinux è un'estensione di sicurezza di Fedora 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

8 Installa del software

Per prima cosa importiamo le chiavi GPG per i pacchetti software:

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

Successivamente 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 ncftp gcc gcc-c++

9 quota su journal

(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 Wed May 25 15:57:24 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=366ba6a7-7e68-4ec9-9743-4b02dd105180 /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.

10 Installare un server DNS con chroot (BIND9)

Per installare un BIND9 con chroot, facciamo questo:

yum install bind-chroot

Successivamente, cambiamo alcune autorizzazioni:

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

Quindi apriamo /etc/sysconfig/named e ci assicuriamo che abbia la seguente riga per dire a BIND che è in esecuzione chroot in /var/named/chroot:

vi /etc/sysconfig/named
[...]
ROOTDIR=/var/named/chroot

Quindi apri /etc/rsyslog.conf...

vi /etc/rsyslog.conf

... e aggiungi la riga $AddUnixListenSocket /var/named/chroot/dev/log ad essa:

[...]
$AddUnixListenSocket /var/named/chroot/dev/log

Riavvia rsyslog:

/etc/init.d/rsyslog restart

Quindi creiamo i collegamenti di avvio del sistema per BIND:

chkconfig --levels 235 named on

Non avviamo BIND ora perché fallirà a causa di /var/named/chroot/etc/named.conf mancante. Questo verrà creato in seguito da ISPConfig (se usi DNS Manager di ISPConfig, cioè).

Il server perfetto - Fedora 15 x86_64 [ISPConfig 2] - Pagina 4

11 MySQL 5

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 qualcosa del genere:

[[email protected] ~]# netstat -tap | grep mysql
tcp        0      0 *:mysql                     *:*                        ASCOLTA      1151/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 

Corri

 mysql_secure_installation 

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

[[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 la radice (inserire per nessuno): <-- INVIO
OK, password utilizzata con successo, andare avanti...

L'impostazione della password di radice garantisce che nessuno possa accedere a MySQL
utente root senza l'autorizzazione appropriata.

Impostare la password 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 ~]#

12 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

Ora 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 [::1]/128'

Dobbiamo modificare /usr/lib64/sasl2/smtpd.conf in modo che Postfix consenta login PLAIN e LOGIN (su sistemi a 32 bit, questo file è in /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
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.8.3/samples
readme_directory = /usr/share/doc/postfix-2.8.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 [::1]/128
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

Ora avvia Postfix e saslauthd:

chkconfig 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

Prima di avviare Dovecot, dobbiamo abilitare l'autenticazione in chiaro. Apri /etc/dovecot/conf.d/10-auth.conf...

vi /etc/dovecot/conf.d/10-auth.conf

... e aggiungi la riga disable_plaintext_auth =no:

[...]
# 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 = yes
disable_plaintext_auth = no
[...]

Quindi avvia Dovecot:

  /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 ::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 LOGIN PLAIN
250-AUTH=LOGIN PLAIN
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.

12.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 - Fedora 15 x86_64 [ISPConfig 2] - Pagina 5

13 Apache2 Con PHP, Ruby, Python, WebDAV

Ora installiamo Apache con PHP5 (questo è PHP 5.3.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy 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

13.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, modifichiamo /etc/httpd/conf.d/php.conf e commentiamo 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

13.2 Rubino

A partire dalla versione 2.2.20, ISPConfig ha il supporto integrato per Ruby. Invece di usare CGI/FastCGI, ISPConfig dipende dal fatto che mod_ruby sia disponibile nell'Apache del server.

Per Fedora 15, 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
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

)

Puoi trovare maggiori dettagli su mod_ruby in questo articolo.

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

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

14 ProFTPd

ISPConfig ha un supporto migliore per proftpd rispetto a vsftpd, quindi rimuoviamo vsftpd e installiamo proftpd:

yum remove vsftpd
yum install proftpd

Ora possiamo creare i collegamenti di avvio del sistema per Proftpd e avviarlo:

chkconfig --levels 235 proftpd su
/etc/init.d/proftpd start

15 Webalizer

Per installare webalizer, esegui

yum install webalizer

16 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

17 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-ExtUtils-AutoInstall perl-NetAddr-IP perl-Archive-Tar

18 Configurazione ISP

La configurazione del server è ora terminata. You can now install ISPConfig on it, following these instructions:http://www.ispconfig.org/manual_installation.htm

Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 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
[...]

If you don't do this, the installation will fail because of the following error:

htpasswd.c:101:error:conflicting types for âgetlineâ
/usr/include/stdio.h:653:note:previous declaration of âgetlineâ was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache

You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).

18.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the web root for websites created by ISPConfig as Fedora's suExec is compiled with /var/www as Doc_Root. Corri

/usr/sbin/suexec -V

and the output should look like this:

[[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] ~]#

So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).

  • Fedora:http://fedoraproject.org/
  • Network Device Naming:http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming
  • ISPConfig:http://www.ispconfig.org/

Panels
  1. Il server perfetto - Fedora 15 x86_64 [ISPConfig 3]

  2. Il server perfetto - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

  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.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 6.2 x86_64 con nginx [ISPConfig 3]

Il server perfetto - CentOS 6.2 x86_64 con Apache2 [ISPConfig 3]

Il server perfetto - CentOS 6.1 x86_64 con nginx [ISPConfig 3]

Il server perfetto - OpenSUSE 12.2 x86_64 (nginx, Dovecot, ISPConfig 3)

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)