[>a2392.html>] [<a2390.html<] [^a2.html^]


Capitolo 305.   Generalità e configurazione di una rete locale

305.1   Aggiungere un host virtuale con lo stesso IP

devo aggiungere un host virtuale al server apache della mia rete locale (dominio principale www.master.com, dominio virtuale www.service.com) utilizzando lo stesso indirizzo IP.

---------

Brevemente:

Assumo che tu stia usando apache 1.3.x e che l'unico file di configurazione sia httpd.conf

In httpd.conf aggiungi:

NameVirtualHost <IP dell'host su cui hai installato il server web apache> </p>

quindi aggiungi la direttiva Virtual Host:

   ServerAdmin webmaster@tua.macchina.it
   DocumentRoot /usr/local/httpd/virtual/service/htdocs 
# Ovviamente DocumentRoot sarà il percorso effettivamente presente sul
# tuo sistema, ho fatto solo un esempio
   ServerName www.service.com     
   Aggiungici tutte le direttive che vuoi.

Affinché tutto funzioni ci deve però essere un DNS che dica alle macchine client che a www.service.com risponde l'host con IP IP_dell'host_su_cui_hai_installato_il_server_web_apache.

305.2   Domini virtuali, come impostarli

Voglio creare dei domini virtuali, in modo da poter creare sullo stesso server più siti e vorrei poter raggiungere questi digitando indirizzi come mattia, web, software, informazioni, studio, ecc. e non digitando l'indirizzo IP.

---------

Nel tuo caso sarebbe fatica sprecata configurare un name server con bind, mentre ti sarebbe sufficiente affidarti al file /etc/hosts per l'impostazione di alcuni alias.

Aggiungerai per esempio al tuo /etc/hosts:

192.168.1.1     mattia
192.168.1.1     web
192.168.1.1     informazioni

Se hai una versione recente di Apache, l'unico file di configurazione da modificare sarà httpd.conf, in fondo al quale potrai inserire le direttive per i domini virtuali.

Ecco un esempio che modificherai con i tuoi dati corretti:

NameVirtualHost 192.168.1.1

<VirtualHost 192.168.1.1>
    ServerAdmin root@localhost
    DocumentRoot /dir_che_contiene/i_files_da_servire
    ServerName mattia
    ErrorLog log/mattia-error_log
    CustomLog log/mattia-access_log common
</VirtualHost>

<VirtualHost 192.168.1.1>
    ServerAdmin root@localhost
    DocumentRoot /dir_che_contiene/i_files_da_servire
    ServerName web
    ErrorLog log/web-error_log
    CustomLog log/web-access_log common
</VirtualHost>

e così via...

A questo punto, dal navigatore ti sarà sufficiente caricare l'indirizzo http://mattia, oppure http://web per visualizzare le pagine corrispondenti.

305.3   Controllare banda e traffico

Cercavo uno strumento per console testuale in grado di visualizzarmi la banda e il traffico. Mi servirebbe che fosse in grado di calcolare il traffico sui vari servizi, tipo pop3 e smtp.

---------

Potresti utilizzare ipchains come 'contabilizzazione del traffico'. Nell'HOWTO di ipchains c'e' tutto spiegato ma se hai già familiarità ecco lo script che uso sulle mie macchine:

#!/bin/sh
# Flusho i rules
ipchains -F
# Cancello i vari chain
ipchains -X HTTP
ipchains -X IMAP
ipchains -X POP3
ipchains -X SMTP-OUT
ipchains -X SMTP-IN
#creo i vari chain
ipchains -N HTTP
ipchains -N IMAP
ipchains -N POP3
ipchains -N SMTP-OUT
ipchains -N SMTP-IN
#ridirigo il traffico verso i chain creati
ipchains -I output -j HTTP --source-port 80 -p tcp
ipchains -I output -j IMAP --source-port 143 -p tcp
ipchains -I output -j POP3 --source-port 110 -p tcp
ipchains -I output -j SMTP-OUT --source-port 25 -p tcp
ipchains -I input -j SMTP-IN --destination-port 25 -p tcp

e ora con un

# ipchains -L -n -v[Invio]

ti verrà visualizzato il traffico giorno per giorno.

Ti ricordo che per utilizzare ipchains devi avere il kernel 2.2.X configurato con:

CONFIG_FIREWALL=y
CONFIG_IP_FIREWALL=y

Altrimenti se proprio non puoi utilizzare ipchains per la contabilizzazione del traffico, potresti fare uno script che prima di ruotare i file di log ti controlla la dimensione di ogni messaggio inviato o prelevato e li somma.

305.4   Impossibilità di attivare costantemente il loopback all'avvio

Il problema è che per accedere in ftp al mio sistema facendo:

# ftp 127.0.0.1[Invio]

devo sempre dare prima il comando:

# ifup lo[Invio]

Ho provato con netcfg a dirgli di farlo partire all'avvio ma sembra che non mi voglia dare retta. Adesso netcfg dice che l'interfaccia viene attivata ad ogni avvio ma non è così... e l'ifconfig conferma.

---------

guarda cosa hai in /etc/sysconfig/network-scripts; dovresti avere un file chiamato ifcfg-lo aprilo e controlla che l'opzione ONBOOT sia =yes (se non è così, inseriscila).

305.5   Firewall e Masquerade in Red Hat 6.0

Per impostare firewall e masquerade in Suse si usava Yast e in 60 secondi tutto fatto. Come si fa con Red Hat 6.0? non ho trovato niente in Linuxconf.

Per quanto riguarda il firewall devi installare ipchains.rpm (con il comando rpm -i ipchains.rpm) poi riavvii ed avrai il tuo firewall configurato con, come politica predefinita, quella di far passare tutto. A questo punto ti devi studiare tutte le funzionalità di ipchains. Per quanto riguarda il masquerading ipchains fa tutto. Devi ricordarti di abilitare nel kernel tutte le opzioni necessarie.

305.6   Firewall & Masquerade in Debian GNU/Linux

Come imposto le funzioni di masquerade in Debian GNU/Linux?

---------

Dopo aver ricompilato il kernel con le opzioni adeguate, puoi usare il pacchetto ipmasq, che configura automaticamente ipfwadm o ipchains (a seconda del kernel usato) per il masquerading. È possibile anche aggiungere delle regole a quelle usate da ipmasq, inserendole nella directory /etc/ipmasq/rules con estensione .rul. Ipmasq è un ottimo strumento per chi non ha voglia di studiarsi ipchains e ipfwadm e vuole avere il masquerading configurato in un secondo.

305.7   Come impostare un firewall

Come si impostano i firewall?

---------

Per impostare un firewall basta seguire i seguenti passaggi:

  1. avere la scheda n.1 (supponiamo eth0) sulla rete interna (a.b.c.0)

  2. avere la scheda n.2 (supponiamo eth1) sulla rete esterna (A.B.C.0)

  3. eseguire l'instradamento come segue:

       route add -net a.b.c.0 ... dev eth0
       route add -net A.B.C.0 ... dev eth1

    (se abbiamo il kernel 2.2.x, questo succede già all'ifconfig)

  4. ovviamente il firewall deve usare il router come gateway:

    # route add default gw ip_del_tuo_gateway dev eth1[Invio]

  5. (opzionale) se sei sotto 2.2.x abiliti il forward dei pacchetti:

    # echo 1 >/proc/sys/net/ipv4/ip_forward[Invio]

    Utilizzando il kernel 2.2.13, l'opzione Always Defrag che era una #define attivabile e disattivabile in fase di compilazione, è divenuta una syscall. Dato che questa opzione è molto importante, e è disabilitata in maniera predefinita, vi consiglio di aggiungere un:

    # echo 1 > /proc/sys/net/ipv4/ip_always_defrag[Invio]

    Ricordo che questa opzione si preoccupa di riassemblare i datagrammi IP entranti prima che questi siano elaborati dal firewall o reindirizzati o altro ancora.

    Stesso discorso vale per i SYN cookies (ma ormai da un po' di tempo).

    Se per qualche ragione non vi avvalete del file system /proc, l'unico altro modo per attivare l'ALWAYS DEFRAG è quello di utilizzare la chiamata di sistema sysctl(2).

  6. Infine lo convinci ad inoltrare solo i pacchetti che vuoi con ipfwadm (2.0.x) o ipchains (2.2.x)

Ovviamente seguendo questa procedura e saltando il punto (6) non hai un firewall, perché *tutti* i pacchetti passano... ma mettere sù un firewall sicuro non è cosa da tutti i giorni. Consiglio di sperimentare e ancora sperimentare, magari con un sistema finto e non quello dell'isp.

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it

[>a2392.html>] [<a2390.html<] [^a2.html^]