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.6 x86_64 [ISPConfig 2]

In questa esercitazione viene illustrato come impostare un server CentOS 5.6(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.6, 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 2 (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:

  • Scarica i due DVD di CentOS 5.6 o l’otto CD di CentOS 5.6 da uno specchio accanto a voi (l’elenco dei mirror può essere trovato qui: http://isoredirect.centos.org/centos/5/isos/x86_64/).
  • una connessione Internet veloce.

 

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

Avvio dal primo CD di CentOS 5.6 (CD 1) o il primo DVD di CentOS 5.6. 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.6 su un sistema di fresco, quindi rispondere  alla domanda vuoi inizializzare questo disco, cancellando tutti i dati?

Now we must select a partitioning scheme for our installation. For simplicity’s sake I select Remove linux partitions on selected drives and create default layout. This will result in a small /boot and a large / partition as well as a swap partition. Of course, you’re free to partition your hard drive however you like it. Then I hit Next:

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 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):

Impostare il nome host manualmente, ad esempio Server1e inserire un gateway (per esempio 192.168.0.1) e fino a due server DNS (ad esempio 8.8.8.8 e 145.253.2.75):

Scegli il tuo fuso orario:

Dare radice una password:

Ora selezionare il software che vogliamo installare. Selezionare nulla ma Server (deselezionare tutto il resto). Anche non controllarepacchetti 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:

Dopo il riavvio, vedrete questa schermata. Selezionare la configurazione del Firewall e premere Esegui strumento:

Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con un proprio firewall. Ecco perché ora a disattivare il firewall di CentOS predefinito. Naturalmente, siete liberi di lasciarlo acceso e configurarlo per le vostre esigenze (ma allora non si dovrebbe usare qualsiasi altro firewall più avanti come più probabilmente interferirà con il firewall CentOS).

SELinux è un’estensione di protezione di CentOS che dovrebbe fornire la protezione estesa. A mio parere non hai bisogno di configurare un sistema sicuro, e solitamente provoca più problemi che vantaggi (si pensi di esso dopo aver fatto una settimana di Trouble-Shooting perché qualche servizio non funzionava come previsto, e poi scopri che tutto era ok solo SELinux è stato la causa del problema). Pertanto, disattivare troppo (questo è un must se si desidera installare ISPConfig più tardi). Premete OK in seguito:

Poi lasciare l’ Agent Setup scegliendo Esci:

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

reboot

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:FD:78: essere
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask: 255.255.255.0
inet6 addr: fe80::20c:29ff:fefd:78be / 64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1
RX pacchetti: 469 errori: 0:0 overruns: 0 frame: 0
TX pacchetti: 534 errori: 0:0 overruns: 0 carrier: 0
collisioni: 0 txqueuelen:1000
RX bytes: 43223 (42,2 KiB) TX bytes: 100665 (98,3 KiB)
Indirizzo: 0x1070 memoria: e8820000 di base-e8840000

eth0: 0 Link encap HWaddr 00: 0C: 29:FD:78: essere
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: 0x1070 memoria: e8820000 di base-e8840000

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
collisions: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)).

Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con un proprio firewall. Ecco perché ora a disattivare il firewall di CentOS predefinito. Naturalmente, siete liberi di lasciarlo acceso e configurarlo per le vostre esigenze (ma allora non si dovrebbe usare qualsiasi altro firewall più avanti come più probabilmente interferirà con il firewall CentOS).

SELinux è un’estensione di protezione di CentOS che dovrebbe fornire la protezione estesa. A mio parere non hai bisogno di configurare un sistema sicuro, e solitamente provoca più problemi che vantaggi (si pensi di esso dopo aver fatto una settimana di Trouble-Shooting perché qualche servizio non funzionava come previsto, e poi scopri che tutto era ok solo SELinux è stato la causa del problema). Pertanto, disattivare troppo (questo è un must se si desidera installare ISPConfig più tardi).

Correre

system-config-securitylevel

Impostare sia a Livello di sicurezza di SELinux per disabili e premere OK:

In seguito abbiamo dobbiamo riavviare il sistema:

reboot

 

7 installare alcuni Software

Innanzitutto importiamo le chiavi GPG per pacchetti software:

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

Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:

yum update

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

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils 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.6/sample/var/named/named.local /var/named/chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
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 ~] # netstat-toccare | grep mysql
TCP 0 0 *: mysql *: * LISTEN 3486/mysqld
[root@server1 ~]#

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 

Impostare le password per l’account di root di MySQL:

mysql_secure_installation

[root@server1 ~] # mysql_secure_installation

Nota: In esecuzione di tutte le parti di questo SCRIPT è consigliato per tutti MySQL
SERVER IN USO IN PRODUZIONE! SI PREGA DI LEGGERE ATTENTAMENTE OGNI PASSO!

Al fine di accedere a MySQL per fissarlo, avremo bisogno della corrente
password per l’utente root. Se hai appena installato MySQL, e
non hai impostato la password di root, ancora, la password sarà vuota,
quindi basta premere Immettere qui.

Immettere la password corrente per radice (immettere per nessuno):
OK, utilizzato con successo la password, lo spostamento…

Impostazione della password root garantisce che nessuno possa accedere a MySQL
utente root senza l’apposita autorizzazione.

Impostare la password di root? [Y/n] <-immettere
Nuova password: <-yourrootsqlpassword
Immettere nuovamente la nuova password: <-yourrootsqlpassword
Password aggiornata con successo!
Ricarico privilegio tabelle…
… Successo!

Per impostazione predefinita, un’installazione di MySQL è un utente anonimo, permettendo a chiunque
per accedere a MySQL senza dover disporre di un account utente creato per
li. Questo è destinato solo per il test e per rendere l’installazione
andare un po’ meglio. È necessario rimuoverli prima di trasferirsi in un
ambiente di produzione.

Rimuovere gli utenti anonimi? [Y/n] <-immettere
… Successo!

Normalmente, radice dovrebbe essere consentito solo per connettersi da ‘localhost’. Questo
assicura che qualcuno non può indovinare la password di root dalla rete.

Non consentire il login di root da remoto? [Y/n] <-immettere
… Successo!

Per impostazione predefinita, MySQL viene fornito con un database denominato ‘test’ che chiunque può
accesso. Questo è anche destinato solo per il test e deve essere rimosso
prima di trasferirsi in un ambiente di produzione.

Rimuovere il database di test e l’accesso ad esso? [Y/n] <-immettere
-Drop database test…
… Successo!
-Rimozione di privilegi sul database di test…
… Successo!

Ricarico le tabelle di privilegio garantirà che tutte le modifiche apportate finora
avranno effetto immediato.

Ricaricare la tabelle di privilegio in questo momento? [Y/n] <-immettere
… Successo!

Pulizia…

Tutto fatto! Se hai completato tutti i passaggi precedenti, vostro MySQL
l’installazione dovrebbe essere sicuro.

Grazie per l’utilizzo di MySQL!

[root@server1 ~]#

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.6 è 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
[...]
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
[...]

Ora 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 LOGIN PLAIN 

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

Piaciuto l'articolo? Condividilo sui social!

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