Avanti Indietro Indice

5. Preparazione del sistema Linux

5.1 Compilazione del kernel

Si inizi con un'installazione pulita della propria distribuzione Linux (io ho utilizzato RedHat 3.0.3 e gli esempi qui riportati si basano su questa distribuzione). Meno software è stato installato, meno buchi, porte di servizio ("backdoor") e/o bachi ci saranno in grado di introdurre problemi di sicurezza nel proprio sistema; pertanto si installi solamente un insieme minimo di applicazioni.

Si prenda un kernel stabile. Io ho utilizzato il kernel Linux 2.0.14 per il mio sistema. Pertanto, questa documentazione si basa sulle sue impostazioni.

È necessario ricompilare il kernel Linux con le opzioni appropriate. A questo punto, sarebbe utile dare un'occhiata al Kernel HOWTO, all'Ethernet HOWTO, e il NET-2 HOWTO se non lo si ha ancora fatto.

Di seguito sono riportate le releative impostazioni di rete, che so funzionanti nel 'make config';

  1. Sotto "General setup"
    1. Abilitare il "Networking Support"
  2. Sotto "Networking Options"
    1. Abilitare "Network firewalls"
    2. Abilitare "TCP/IP Networking"
    3. Disabilitare "IP forwarding/gatewaying" (A MENO CHE non si voglia usare il filtraggio IP)
    4. Abilitare "IP Firewalling"
    5. Abilitare "IP firewall packet loggin" (ciò non è strettamente necessario ma è comunque una buona idea)
    6. Disabilitare "IP: masquerading" (non trattero questa cosa qui.)
    7. Abilitare "IP: accounting"
    8. Disbilitare "IP: tunneling"
    9. Disbilitare "IP: aliasing"
    10. Dibilitare "IP: PC/TCP compatibility mode"
    11. Disabilitare "IP: Reverse ARP"
    12. Abilitare "Drop source routed frames"
  3. Sotto "Network device support"
    1. Abilitare "Network device support"
    2. Abilitare "Dummy net driver support"
    3. Abilitare "Ethernet (10 or 100Mbit)"
    4. Selezionare la propria scheda di rete

Ora è possibile ricompilare, reinstallare il kernel e riavviare il sistema. La propria scheda (o schede) di rete dovrebbe essere mostrata nella sequenza di avvio. Se questo non accade, consultare nuovamente gli altri HOWTO finché non funziona.

5.2 Configurazione di due schede di rete

Se il proprio computer possiede due schede di rete, molto probabilmente ci sarà bisogno di inserire un'istruzione "append" nel proprio file /etc/lilo.conf per descrivere l'IRQ e l'indirizzo di entrambe le schede. L'istruzione che io uso per lilo è:

        append="ether=12,0x300,eth0 ether=15,0x340,eth1"

5.3 Configurazione degli indirizzi di rete

Questa è una parte molto interessante. Devono essere prese alcune decisioni. Dal momento che non desideriamo che Intenet abbia accesso ad alcuna parte della rete privata, non abbiamo bisogno di utilizzare degli indirizzi reali. Esistono molti indirizzi internet messi da parte per le reti private. Dal momento che ognuno ha bisogno di più indirizzi e questi indirizzi non possono attraversare Internet, si tratta di una buona scelta.

Tra quelli messi da parte c'è 192.168.2.xxx che utilizzeremo nei nostri esempi.

Il proprio proxy firewall sarà un membro di entrambe le reti, pertanto sarà in grado di passare i dati da e verso la rete privata.

            199.1.2.10   __________    192.168.2.1
      _  __  _        \ |          | /           _______________
     | \/  \/ |        \| Firewall |/           |               |
    / Internet \--------|  System  |------------| Workstation/s |
    \_/\_/\_/\_/        |__________|            |_______________|

Se si ha intenzione di utilizzare un firewall filtrante, è ancora possibile utilizzare questi numeri. Però affinché ciò sia possibile si deve usare il mascheramento IP. Con questo processo il firewall inoltrerà i pacchetti e li tradurrà in indirizzi IP "REALI" per viaggiare su Internet.

È necessario assegnare alla scheda di rete l'indirizzo IP reale sul lato Internet, ed assegnare 192.168.2.1 alla scheda Ethernet sul lato interno. Questo sarà il proprio indirizzo IP proxy/gateway. È possibile assegnare a tutte le altre macchine nella rete protetta dei numeri all'interno del range 192.168.2.xxx (da 192.168.2.2 a 192.168.2.254).

Dal momento che utilizzo Linux RedHat per configurare la rete all'avvio del sistema, ho aggiunto un file 'ifcfg-eth1' nella directory /etc/sysconfig/network-scripts. Questo file viene letto durante il processo di boot per impostare la rete e le tabelle di instradamento.

Il mio file ifcfg-eth1 è una cosa del genere:

    #!/bin/sh
    #>>>Tipo di dispositivo: ethernet
    #>>>Dichiarazioni delle variabili:
    DEVICE=eth1
    IPADDR=192.168.2.1
    NETMASK=255.255.255.0
    NETWORK=192.168.2.0
    BROADCAST=192.168.2.255
    GATEWAY=199.1.2.10 
    ONBOOT=yes
    #>>>Fine delle dichiarazioni delle variabili

È anche possibile utilizzare questi script per connettersi automaticamente via modem al proprio provider. Si dia un'occhiata allo script ipup-ppp.

Se si ha intenzione di utilizzare un modem per le proprie connessioni Internet, il proprio indirizzo IP esterno verrà assegnato dal provider al momento della connessione.

5.4 Verifica del funzionamento della rete

Si inizi controllando con ifconfig e route. Se si possiedono due schede di rete l'output di ifconfig dovrebbe assomigliare a:

  #ifconfig
  lo        Link encap:Local Loopback
            inet addr:127.0.0.0  Bcast:127.255.255.255  Mask:255.0.0.0
            UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
            RX packets:1620 errors:0 dropped:0 overruns:0
            TX packets:1620 errors:0 dropped:0 overruns:0

  eth0      Link encap:10Mbps Ethernet  HWaddr 00:00:09:85:AC:55
            inet addr:199.1.2.10 Bcast:199.1.2.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0
            TX packets:0 errors:0 dropped:0 overruns:0
            Interrupt:12 Base address:0x310    

  eth1      Link encap:10Mbps Ethernet  HWaddr 00:00:09:80:1E:D7
            inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0
            TX packets:0 errors:0 dropped:0 overruns:0
            Interrupt:15 Base address:0x350

e la propria tabella di instradamento dovrebbe essere:

  #route -n
  Kernel routing table
  Destination     Gateway         Genmask         Flags MSS    Window Use Iface
  199.1.2.0       *               255.255.255.0   U     1500   0       15 eth0
  192.168.2.0     *               255.255.255.0   U     1500   0        0 eth1
  127.0.0.0       *               255.0.0.0       U     3584   0        2 lo
  default         199.1.2.10      *               UG    1500   0       72 eth0

Nota: 199.1.2.0 è il lato Internet di questo firewall e 192.168.2.0 è il lato privato.

Ora si provi a fare ping ad internet dal firewall. Io di solito utilizzo nic.ddn.mil come sito per il test. Si tratta ancora di un buon test, tuttavia è stato dimostrato che è meno affidabile di quanto sperassi. Se non funziona immediatamente, si tenti di eseguire il ping ad un paio di altri siti non connessi alla propria LAN. Se non funziona, significa che il proprio PPP non è impostato correttamente. Si rilegga il NET-2 HOWTO, e si ritenti.

A questo punto, tentare il ping ad un host all'interno della rete protetta dal firewall. Tutti i computer dovrebbero essere in grado di eseguire il ping l'uno con l'altro. Se questo non accade, leggere nuovamente il NET-2 HOWTO e lavorare ancora un po' sulla rete.

Ora si provi a fare ping all'indirizzo esterno del firewall dall'interno della rete protetta (NOTA: questo non è nessuno dei numeri IP 192.168.2.xxx). Se è stato possibile, non è stato disabilitato l'IP Forwarding. Assicurarsi che ciò sia quello che si desidera. Se lo si lascia abilitato sarà necessario leggere anche il paragrafo relativo al filtraggio IP all'interno di questo documento.

Adesso, tentare di eseguire il ping ad Internet dall'interno del proprio firewall. Utilizzare lo stesso indirizzo che prima funzionava (ossia, nic.ddn.mil). Ancora una volta, se l'IP Forwarding è disabilitato, questo tentativo non dovrebbe funzionare. Ma se è abilitato, dovrebbe farlo.

Se è abilitato l'IP Forwarding e si sta utilizzando un indirizzo IP "REALE" (non 192.168.2.*) per la propria rete privata, e non si riesce ad eseguire il ping ad Internet sebbene lo si riesca a fare al lato Internet del proprio firewall, controllare se il router successivo stia in effetti instradando pacchetti per il proprio indirizzo privato (potrebbe accadere che il proprio provider lo debba fare per noi).

Se si è assegnata la propria rete protetta a 192.168.2.*, nessun pacchetto può essere instradato ad essa. Se si è abilitato il mascheramento IP, questa verifica dovrebbe funzionare.

Ora il vostro sistema di base è impostato.

5.5 Sicurezza del Firewall

Un firewall non è di nessuna utilità se lasciato aperto agli attacchi effettuabili attraverso un servizio non utilizzato. Un 'cattivone' potrebbe ottenere l'accesso al firewall e modificarlo secondo le proprie esigenze.

Si inizi disabilitando di tutti i servizi non necessari. Si dia un'occhiata al file /etc/inetd.conf. Questo file controlla quello ciò viene detto un "super server". Controlla una grande quantità di demoni del server e li avvia quando richiesto.

Si disabiliti una volta per tutte netstat, systat, tftp, bootp e finger. Per disabilitare un servizio, mettere un # come primo carattere della linea del servizio. Una volta fatto, inviare un SIG-HUP al processo digitando il comando "kill -HUP <pid>", dove <pid> è il numero di processo di inetd. Ciò farà sì che inetd rilegga il suo file di configurazione (inetd.conf) e si riavvii.

Verificare l'impostazione eseguendo un telnet alla porta 15 sul firewall, la porta netstat. Se si ottiene l'output di netstat, non è stato riavviato correttamente inetd.


Avanti Indietro Indice