Server Configuration · 5 min read · Oct 09, 2025

Il Cluster Web Perfettamente Bilanciato e ad Alta Disponibilità con 2 Server che Eseguono Xen su Ubuntu 8.04 Hardy Heron - Pagina 3

8. Server DNS (web1, web2)

8.1 Installare il Server DNS

Esegui :

apt-get install bind9

Per motivi di sicurezza vogliamo eseguire BIND chrooted, quindi dobbiamo seguire i seguenti passaggi:

/etc/init.d/bind9 stop

Modifica il file /etc/default/bind9 in modo che il demone venga eseguito come utente non privilegiato bind, chrooted in /var/lib/named. Modifica la riga: OPTIONS=”-u bind” in modo che diventi OPTIONS=”-u bind -t /var/lib/named”:

vi /etc/default/bind9

OPTIONS="-u bind -t /var/lib/named"
# Imposta RESOLVCONF=no per non eseguire resolvconf
RESOLVCONF=yes

Crea le directory necessarie sotto /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Poi sposta la directory di configurazione da /etc a /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Crea un symlink alla nuova directory di configurazione dalla vecchia posizione (per evitare problemi quando bind verrà aggiornato in futuro):

ln -s /var/lib/named/etc/bind /etc/bind

Crea dispositivi null e random, e correggi i permessi delle directory:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Dobbiamo modificare /etc/default/syslogd in modo che possiamo comunque ricevere messaggi importanti registrati nei log di sistema. Modifica la riga: SYSLOGD=”” in modo che diventi: SYSLOGD=”-a /var/lib/named/dev/log”:

vi /etc/default/syslogd

#
# File di configurazione principale per syslogd
#
#
# La documentazione completa degli argomenti possibili si trova nella manpage
# syslogd(8).
#
#
# Per la registrazione remota UDP usa SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

Riavvia il demone di registrazione:

/etc/init.d/sysklogd restart

Avvia BIND e controlla /var/log/syslog per errori:

/etc/init.d/bind9 start

8.2 Configurare bind

Configureremo bind con 2 domini, example.com che sarà il nameserver e configureremo bind anche per yoursite.com.

Ora il file di configurazione principale in BIND è named.conf, tuttavia named.conf.local è già incluso in named.conf ed è lì per la configurazione personalizzata, quindi modificheremo named.conf.local e aggiungeremo le nostre zone, qui ho aggiunto una zona chiamata tm.local così come una zona inversa per 192.168.1.0:

vi /etc/bind/named.conf.local

#EXAMPLE.COM
zone "example.com" {
        type master;
        file "/etc/bind/zones/example.com.db";
        };
#YOURSITE.COM
zone "yoursite.com" {
        type master;
        file "/etc/bind/zones/yoursite.com.db";
        };
# Questa è la definizione della zona per DNS inverso. sostituisci 1.168.192 con il tuo indirizzo di rete in notazione inversa - ad esempio il mio indirizzo di rete è 192.168.1.X
zone "1.168.192.in-addr.arpa." {
     type master;
     file "/etc/bind/zones/rev.1.168.192.in-addr.arpa";
};

Nota : Se il tuo ISP ti sta delegando una mappa di sottoreti (diciamo ip 192.168.1.100 a 192.168.1.112) leggi questo per la zona inversa (vedi File di Zona Cliente/Utente) :

http://www.zytrax.com/books/dns/ch9/reverse.html

8.3 Configurare le zone

mkdir /etc/bind/zones
vi /etc/bind/zones/example.com.db

e fallo apparire così :

$TTL        86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2008060902       ; serial, data di oggi + numero di serie di oggi #
                        28800              ; refresh, secondi
                        7200              ; retry, secondi
                        604800              ; expire, secondi
                        86400 )            ; minimum, secondi
;
                NS      ns1.example.com.              ; Indirizzo Inet del nameserver 1
                NS      ns2.example.com.              ; Indirizzo Inet del nameserver 2
;
  MX      10 example.com.
example.com.      A        192.168.1.106
www                   A        192.168.1.106
ns1                      A        192.168.1.106
ns2                      A        192.168.1.106
dom01                 A        192.168.1.100
dom02                 A        192.168.1.101
lb1                       A        192.168.1.102
lb2                       A        192.168.1.103
web1                   A        192.168.1.104
web2                   A        192.168.1.105

example.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

Ora creeremo la zona per yoursite.com :

vi /etc/bind/zones/yoursite.com.db

Fallo apparire così :

$TTL        86400
@       IN      SOA     ns1.example.com. admin.yoursite.com. (
                        2008060902       ; serial, data di oggi + numero di serie di oggi #
                        28800              ; refresh, secondi
                        7200              ; retry, secondi
                        604800              ; expire, secondi
                        86400 )            ; minimum, secondi
;
                NS      ns1.example.com.              ; Indirizzo Inet del nameserver 1
                NS      ns2.example.com.              ; Indirizzo Inet del nameserver 2
;
  MX      10 yoursite.com.
yoursite.com.      A        192.168.1.107
www                   A        192.168.1.107

yoursite.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

Ora procediamo con la zona inversa.

vi /etc/bind/zones/rev.1.168.192.in-addr.arpa

$TTL        86400
@               IN      SOA     ns1.example.com. hostmaster.example.com. (
                                2008060901       ; serial, data di oggi + numero di serie di oggi #
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      ns1.example.com.
                        NS      ns2.example.com.
100       PTR     dom01.example.com.
101       PTR     dom02.example.com.
102       PTR     lb1.example.com.
103       PTR     lb2.example.com.
104       PTR     web1.example.com.
105       PTR     web2.example.com.
106       PTR     example.com.
107       PTR     yoursite.com.

Ora configura il server per inoltrare qualsiasi richiesta al server del tuo ISP in modo da poter risolvere gli IP esterni.

vi /etc/bind/named.conf.options

Decommenta la sezione forwarder in modo che appaia così:

[...]
forwarders {
      # Sostituisci l'indirizzo qui sotto con l'indirizzo del server DNS del tuo ISP
      123.123.123.123;
};
[...]  

8.4 Configurare il server per utilizzare se stesso come DNS

vi /etc/resolv.conf

search example.com
nameserver localhost

Dobbiamo riavviare bind :

/etc/init.d/bind9 restart

8.5 Testare il server DNS

Per prima cosa installeremo dig che è incluso nel pacchetto dnsutils :

apt-get install dnsutils

Ora vedremo se i nostri server dns ci danno le risposte corrette :

su web1

dig yoursite.com @192.168.1.105

su web2

dig yoursite.com @192.168.1.104

Su entrambi dovresti vedere un output simile a questo :

;  DiG 9.4.2-P1  yoursite.com
;; opzioni globali:  printcmd
;; Ricevuta risposta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4547
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; SEZIONE DOMANDA:
;yoursite.com.                 IN      A
;; SEZIONE RISPOSTA:
yoursite.com.          86400   IN      A       192.168.1.107
;; SEZIONE AUTORITÀ:
yoursite.com.          15090   IN      NS      ns2.example.com.
yoursite.com.          15090   IN      NS      ns1.example.com.
;; SEZIONE AGGIUNTIVA:
ns2.example.com.       162439  IN      A       192.168.1.106
ns1.example.com.       162439  IN      A       192.168.1.106
;; Tempo di query: 27 msec
;; QUANDO: Dom Set 21 19:07:17 2008
;; DIMENSIONE MSG ricevuta: 124

Ora testeremo la ricerca inversa :

su web1

dig -x 192.168.1.107 @192.168.1.105

su web2*

dig -x 192.168.1.107 @192.168.1.104

L’output dovrebbe essere simile a questo :

;  DiG 9.4.2-P1  -x 192.168.1.107
;; opzioni globali:  printcmd
;; Ricevuta risposta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22614
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; SEZIONE DOMANDA:
;107.1.168.192.in-addr.arpa.     IN      PTR
;; SEZIONE RISPOSTA:
;107.1.168.192.in-addr.arpa. 86400 IN PTR  yoursite.com.
;; SEZIONE AUTORITÀ:
;1.168.192.in-addr.arpa. 86400 IN  NS      ns2.example.com.
;1.168.192.in-addr.arpa. 86400 IN  NS      ns1.example.com.
;; SEZIONE AGGIUNTIVA:
ns1.example.com.       162147  IN      A       192.168.1.106
ns2.example.com.       162147  IN      A       192.168.1.106
;; Tempo di query: 88 msec
;; QUANDO: Dom Set 21 19:12:09 2008
;; DIMENSIONE MSG ricevuta: 172

Ulteriori informazioni su come utilizzare dig :

http://www.madboa.com/geek/dig/

9. Proftpd (web1, web2)

9.1 Installazione di Proftpd

Per installare Proftpd, esegui

apt-get install proftpd ucf

Ti verrà posta una domanda:

Esegui proftpd: <– standalone

9.2 Configurazione di Proftpd

vi /etc/proftpd/proftpd.conf

Per motivi di sicurezza aggiungi le seguenti righe a /etc/proftpd/proftpd.conf:

DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server pronto."

Poi riavvia Proftpd:

/etc/init.d/proftpd restart

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.