Avanti Indietro Indice

3. Sistemazione del Mascheramento di IP

Se nella tua rete privata sono contenute informazioni di vitale importanza, considera tutti i problemi di SICUREZZA, prima di implementare il Mascheramento di IP. Se non viene specificato diversamente, IP-Masq è un PASSAGGIO (GATEWAY) sia per te che accedi a internet sia per qualcun altro che può riuscire ad entrare da internet nella tua rete interna.

Uno volta che IP Masq è in funzione, è MOLTO consigliato implementare le istruzioni di firewall con (STRONG) IPFWADM/IPCHAINS RINFORZATO. Vedi le sezioni Istruzioni per IPFWADM rinforzato e Istruzioni per IPCHAINS rinforzato.

3.1 Compilazione del Kernel con supporto per Mascheramento di IP

Se nel kernel della tua distribuzione Linux sono già state incluse tutte le caratteristiche necessarie:

e tutti i moduli legati al IP-Masq sono stati compilati (la maggior parte dei kernels modulari hanno tutti i moduli necessari già compilati), allora non c'è bisogno di ricompilare il kernel.

Se non sei sicuro che il kernel della tua distribuzione sia stato preparato per l'IP-Masq, controlla nella sezione Supporto IP_MASQ già pronto o prova a guardare in IP Masquerade Resource per maggiori chiarimenti.

Se ancora non riesci a trovare informazioni sulla tua distribuzione, conviene SUPPORRE DI NON AVERE SUPPORTO PER IP-Masq GIA' PRONTO.

In ogni caso, conviene leggere il paragrafo indicato sopra, in quanto contiene informazioni comunque molto utili.

Kernels Linux 2.0.x

Per qualunque patch o altro software, fai riferimento alla sezione Cosa serve in 2.0.x

 * Prompt for development and/or incomplete code/drivers  (CONFIG_EXPERIMENTAL)  [Y/n/?]     
       - YES: Questo ti permetterà, più avanti, di selezionare 
         la parte di codice che riguarda l'IP-Masq

 <verb>
*   Enable loadable module support  (CONFIG_MODULES)  [Y/n/?]  
     - YES: ti permette di caricare i moduli per l'IP  MASQ  
  
*   Networking support  (CONFIG_NET)  [Y/n/?]  
     - YES: Abilita il sottosistema di rete  
  
*   Network firewalls  (CONFIG_FIREWALL)  [Y/n/?]  
     - YES: Abilita le funzioni di firewall in IPFWADM
   
*   TCP/IP networking   (CONFIG_INET)  
     - YES: Abilita il protocollo TCP/IP
   
*   IP: forwarding/gatewaying   (CONFIG_IP_FORWARD)  
    -  YES: Abilita l'indirizzamento e instradamento (forwarding  and routing) 
      di pacchetto - E'controllato da IPFWADM   
   
*   IP: syn cookies  (CONFIG_SYN_COOKIES)   [Y/n/?]   
     - YES: MOLTO consigliato per una protezione di rete minima
   
*   IP: firewalling (CONFIG_IP_FIREWALL)  [Y/n/?]  
     - YES: Abilita le proprietà date dal firewall
   
*   IP: firewall packet logging  (CONFIG_IP_FIREWALL_VERBOSE)  [Y/n/?]  
       - YES:  (OPZIONALE ma MOLTO consigliato): permette di avere un resoconto dei
        contatti del firewall
   
*   IP: masquerading  (CONFIG_IP_MASQUERADE   [Y/n/?]   
   -   YES: Permette all'IP MASQ di reindirizzare specifici pacchetti TCP/IP   
       interni o esterni   
  
* IP: ipautofw masquerade support (EXPERIMENTAL) (CONFIG_IP_MASQUERADE_IPAUTOFW)   [Y/n/?]   
   - NO:  IPautofw è un metodo superato per l'indirizzamento della porta TCP/IP.   
       Anche se funziona, IPPORTFW è migliore, per cui non è consigliabile abilitare 
      IPAUTOFW.
   
* IP: ipportfw masq support (EXPERIMENTAL)   (CONFIG_IP_MASQUERADE_IPPORTFW) [Y/n/?]   
    -   YES:   Questa opzione è disponibile SOLO GRAZIE AD UNA PATCH per i kernels 2.0.x
   
Con questa, i computers esterni, in internet, possono comunicare direttamente 
con ben precisate machine interne Mascherate. Tale caratteristica è tipicamente impiegata 
per accedeea ad un server SMTP, TELNET, e WWW interno alla rete privata.     
L'indirizzamento della porta FTP necessita di una ulteriore patch, come è descritto nelle FAQ.
Altre informazioni sull'indirizzamento di porta si possono trovare nella sezione 
Forwards di questo manuale.   
 
*   IP: ICMP masquerading  (CONFIG_IP_MASQUERADE_ICMP)   [Y/n/?]   
    - YES: Abilita il supporto mer il mascheramento dei pacchetti ICMP. Anche se è 
     opzionale,molti programmi NON funzionerebbero correttamente se mancasse il supporto ICMP.   
   
* IP: Loose UDP port managing (EXPERIMENTAL) (CONFIG_IP_MASQ_LOOSE_UDP)   [Y/n/?]   
     -   YES: Questa è disponibile SOLO GRAZIE AD UNA PATCH per i kernels 2.0.x.   
   
Con questa opzione, i comoputers mascherati possono far funzionare i giochi che 
sfruttano internet basandosi su NAT. Altre info sono nella sezione FAQ.   
   
*   IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)   [Y/n/?]   
    - YES:  Questa caratteristica ottimizza le connessioni in IP-MASQ   -   MOLTO consigliata
   
*   IP: optimize as router not  host   (CONFIG_IP_ROUTER)   [Y/n/?]   
     - YES: Questa ottimizza il kernel per il sottosistema di rete   
   
*   IP: Drop source routed frames   (CONFIG_IP_NOSR)   [Y/n/?]   
     -   YES: MOLTO Consigliata per una protezione di rete minima
   
*   Dummy   net   driver  support  (CONFIG_DUMMY)  [M/n/y/?]  
    -   YES: Anche se OPZIONALE, questa opzione è molto utile per scovare i punti problematici 
     (debugging) del sistema
   
*   /proc  filesystem  support  (CONFIG_PROC_FS)  [Y/n/?]  
   - YES: Necessaria per abilitare l'intero sistema di indirizzamento in rete dui Linux
   
 

NOTA: Quelle elecate sopra sono solamente le componenenti strettamente necessarie per un sistema di IP-Masq funzionante. Per le specifiche caratteristiche dell'hardware e della tua rete locale, puoi selezionare qualunque altra opzione ti possa servire.

.

Kernels Linux 2.2.x

Per qualunque patch o altro software, fai riferimento alla sezione Cosa serve in 2.2.x

 * Prompt for development and/or incomplete code/drivers  (CONFIG_EXPERIMENTAL)  [Y/n/?]     
    -   YES: Anche se non necessario per l'IP-Masq, questo permetterà al kernel di creare i moduli 
         per IP-Masq e di abilitare l'opzione per l'inidirizzamento di porta
  
--- saltate altre opzioni che non riguardano il Mascherameno IP ----- 
 
* Enable  loadable  module support (CONFIG_MODULES)  [Y/n/?]  
     -   YES:   ti permette di caricare i moduli per l'IP  MASQ  
 
--- saltate altre opzioni che non riguardano il Mascherameno IP ----- 
   
*   Networking  support  (CONFIG_NET)  [Y/n/?]  
     -   YES:  Abilita il sottosistema di rete  
 
--- saltate altre opzioni che non riguardano il Mascherameno IP ----- 
* Sysctl support (CONFIG_SYSCTL) [Y/n/?]  
    - YES:  Permette di abilitare/disabilitare opzioni come il forwarding, 
      dynamic IPs, LooseUDP, etc. 
 
--- saltate altre opzioni che non riguardano il Mascherameno IP -----  
*   Packet socket  (CONFIG_PACKET)   [Y/m/n/?]   
   -   YES: Anche se OPZIONALE, questa caratteristica è consigliata, in quanto ti permette 
       di usare TCPDUMP per scovare i problemi che incontri con IP-MASQ  (debug)
   
*   Kernel/User  netlink  socket   (CONFIG_NETLINK)   [Y/n/?]   
     -   YES: Anche se OPZIONALE, ti permette di registrare i contatti del firewall
   
*   Routing  messages (CONFIG_RTNETLINK)  [Y/n/?]  
     -   NO:   Non ha niente a che vedere con il firewall
 
--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
*   Network  firewalls (CONFIG_FIREWALL)  [Y/n/?]  
      -   YES:  Abilita le funzioni di firewall in IPCHAINS
* Socket Filtering (CONFIG_FILTER) [Y/n/?] 
    - OPTIONAL:  Anche se non ha niente a che fare con IP-Masq, puoi averne bisogno, se pensi di
       implementare un server DHCP nella rete interna
 
* Unix domain sockets (CONFIG_UNIX) [Y/m/n/?] 
    - YES:  Abilita il meccanismo dei sockets UNIX TCP/IP
 
* TCP/IP networking (CONFIG_INET) [Y/n/?] 
    - YES: Abilita i protocollo TCP/IP

--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
   
*   IP: advanced router  (CONFIG_IP_ADVANCED_ROUTER)   [Y/n/?]   
      - YES: permetterà, più avanti, di configurare caratteristiche più avanzate del Mascheramento   

* IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) [N/y/?] 
    - NO: Non necessaria per IP_Masq, anche se potrebbe servire per chi desidera caratteristiche 
         avanzate, come l'instradamento basato sull'indirizzo TCP/IP di origine o capace di TOS
 
* IP: equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH) [N/y/?] 
    - NO: Non necessaria per le normali funzionalità di IP_Masq 
 
* IP: use TOS value as routing key (CONFIG_IP_ROUTE_TOS) [N/y/?]  
    - NO: Non necessaria per le normali funzionalità di IP_Masq 
 
* IP:  verbose route monitoring  (CONFIG_IP_ROUTE_VERBOSE)   [Y/n/?]   
      -   YES: Utile se usi il codice di instradamento per eliminare i pacchetti di spoofing 
       (cosa molto consigliata) e desideri una registrazione del processo.
   
* IP: large routing tables (CONFIG_IP_ROUTE_LARGE_TABLES) [N/y/?] 
    - NO:  Non necessaria per le normali funzionalità di IP_Masq  
 
*   IP: kernel level autoconfiguration (CONFIG_IP_PNP) [N/y/?] ? 
    - NO:  Non necessaria per le normali funzionalità di IP_Masq  
  
*   IP: firewalling  (CONFIG_IP_FIREWALL)   [Y/n/?]   
     -   YES: Abilita le caratteristiche del firewall
   
*  IP: firewall packet netlink device  (CONFIG_IP_FIREWALL_NETLINK)  [Y/n/?]  
   -   YES: Anche se OPZIONALE, incrementa la registrazione dei contatti del firewall

*   IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY) [N/y/?] 
    - NO:  Non necessaria per le normali funzionalità di IP_Masq  
    
*   IP:   masquerading   (CONFIG_IP_MASQUERADE)   [Y/n/?]   
     - YES: Permette al sistema di IP-MASQ di re-indirizzare verso l'esterno 
          determinati pacchetti TCP/IP
   
*   IP:   ICMP masquerading  (CONFIG_IP_MASQUERADE_ICMP)   [Y/n/?]   
     -   YES: Abilita il supporto per il mascheramento dei pacchetti ICMP di ping   
           (i codici di errore ICMP vengono Mascherati comunque).    
           Questa proprietà è importante per riparare le connessioni.   
   
*  IP: masquerading special modules support  (CONFIG_IP_MASQUERADE_MOD)   [Y/n/?]   
      -   YES: Anche se OPZIONALE, permette di abilitare, più avanti, una opzione con la quale 
          il sistema di indirizzamento di porta TCP/IP   permette a computers esterni di connettersi 
         direttamente a ben determinate macchine Mascherate.
   
* IP: ipautofw masq support (EXPERIMENTAL)   (CONFIG_IP_MASQUERADE_IPAUTOFW)   [N/y/m/?]   
     -   NO: IPautofw è un metodo superato di indirizzamento di porta. Tale funzione è 
         molto meglio gestita da moduli distinti per protocollo NON consigliata.
   
*  IP: ipportfw masq support  (EXPERIMENTAL)   (CONFIG_IP_MASQUERADE_IPPORTFW)   [Y/m/n/?]   
      -   YES:   Abilita IPPORTFW.   
   
       Con questa, i computers esterni, in internet, possono comunicare direttamente 
       con ben precisate machine interne Mascherate. Tale caratteristica è tipicamente impiegata 
       per accedere a ad un server SMTP,   TELNET,   e WWW   interno alla rete privata.      
       L'indirizzamento della porta FTP necessita di una ulteriore patch, come è descritto 
       nelle FAQ.
       Altre informazioni sull'indirizzamento di porta si possono trovare nella sezione Forwards 
       di questo manuale.   
  
*   IP:   ip fwmark masq-forwarding support   (EXPERIMENTAL)   (CONFIG_IP_MASQUERADE_MFW)  [Y/m/n/?]   
       -   NO:   Permette l'indirizzamento diretto di IP da IPCHAINS. 
     Al momento, questo codice  è SPERIMENTALE. Il metodo consigliato è IPMASQADM e IPPORTFW.  
  
*   IP:   optimize  as  router  not  host  (CONFIG_IP_ROUTER)  [Y/n/?]  
       -   YES:   Ottimizza il kernel per il sottosistema della rete, anche se non è chiaro se produce 
            un miglioramento effettivo.   
*  IP: tunneling (CONFIG_NET_IPIP) [N/y/m/?] 
    - NO: Questa parte opzionale serve per il tunnel IPIP attraverso IP-Masq.  Se hai bisogno 
           della funzionalità di tunneling/VPN. è meglio usare GRE oppure il IPSEC tunnel. 

*   IP: GRE  tunnels  over  IP  (CONFIG_NET_IPGRE)  [N/y/m/?]   
       -   NO: E' OPZIONALE. Abilita il passaggio per tunnel di PPTP   e GRE attraverso 
            una macchina Mascherata

--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
   
*   IP: TCP syncookie support  (not enabled per default)   (CONFIG_SYN_COOKIES)   [Y/n/?]   
     -  YES:   MOLTO consigliato per una protezione della rete minima  

--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
*  IP: Allow large windows (not recommended if <16Mb of memory) * (CONFIG_SKB_LARGE) [Y/n/?] 
    - YES:  E' cosigliabile, per ottimizzare la finestra TCP di Linux 
 

--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
  
*   Network   device  support  (CONFIG_NETDEVICES)  [Y/n/?]  
      -   YES:   Abilita il sottostrato di rete Linux  
  
*   Dummy   net  driver  support  (CONFIG_DUMMY)  [M/n/y/?]  
     -   YES:  Anche se OPZIONALE, aiuta a scovare i problemi (debug)

== non dimenticare di compilare anche il supporto per la scheda di rete !! ===

--- saltate altre opzioni che non riguardano il Mascherameno IP -----

== non dimenticare di compilare anche il supporto per PPP/SLIP se usi un modem seriale o se usi un modem DSL PPPoE !! ===

--- saltate altre opzioni che non riguardano il Mascherameno IP -----   
  
*   /proc  filesystem support (CONFIG_PROC_FS) [Y/n/?]   
     -   YES:  Necessario per abilitare il sistema di indirizzamento di rete

NOTA: Quelle elecate sopra sono solamente le componenenti strettamente necessarie 
per un sistema di IP-Masq funzionante. Per le specifiche caratteristiche dell'hardware 
e della tua rete locale, puoi selezionare qualunque altra opzione ti possa servire.

.

Kernels Linux 2.3.x / 2.4.x

I Kernels 2.3.x / 2.4.x non sono ancora trattati. Vedi la sezione Cosa serve per il kernel 2.3.x/2.4.x per i riferimenti, finchè tale argomento verrà incluso in questo manuale o ne verrà preparato uno nuovo.

3.2 Assegnazione degli indirizzi IP di rete privata ad una LAN interna

Dato che NESSUNA delle macchine Mascherate Internamente deve avere un indirizzo internet ufficialmente assegnato, deve esistere un modo per attribuire degli indirizzi IP senza entrare in conflitto con l'indirizzo degli utenti in internet.

Da una FAQ sul Mascheramento IP:

RFC 1918 è il documento ufficiale che stabilisce quali indirizzi IP si possono usare su una rete non-connessa o 'privata'. Ci sono tre blocchi di numeri, predisposti a questo scopo:

     
Sezione 3: Spazio di indirizzi privati  
  
La Internet Assigned Numbers Authority (IANA) ha riservato i seguenti tre  
blocchi    di indirizzi    IP    per le reti private:  
  
 10.0.0.0              -       10.255.255.255  
 172.16.0.0            -       172.31.255.255  
 192.168.0.0           -      192.168.255.255   
   
Ci riferiremo al primo blocco come "blocco a 24-bit",   al secondo come   
al "blocco a 20-bit"    e al terzo come al "blocco a 16-bit".     
Nota che il primo blocco non è altro che un singolo numero di rete di classe A,   
mente il secondo blocco è un insieme di 16 numeri di rete contigui di classe B e
il terzo blocco è un insieme di 255 numeri di rete contigui di classe C

L'autore usa solitamente la rete 192.168.0.0 con una mask 255.255.255.0 per sottorete di classe C; gli esempi in questo manuale rifletteranno perciò questa preferenza. Tutte le reti private indicate sopra sono però ugualmente utilizzabili, purchè si usi la corretta mask di sottorete.

Adottando una rete di classe C, le macchine abilitate al protocollo TCP/IP saranno numerate con 192.168.0.1, 192.168.0.2, 192.168.0.3, ..., 192.168.0.x

192.168.0.1 è di solito la macchina per l'uscita dalla rete (gateway) ovvero la workstation Linux che opera il Mascheramento di IP, prima di uscire dalla rete interna.. Nota che 192.168.0.0 e 192.168.0.255 sono rispettivamente gli indirizzi di Rete e di Broadcast e sono RISERVATI. Non usare questi due indirizzi, altrimenti la rete non funzionerà correttamente.

3.3 Configurazione delle Politiche di Indirizzamento IP

A questo punto dovresti avere installato il kernel e tutte le altre applicazioni che ti servono. Anche l'indirizzo di rete, di gateway e del DNS dovrebbero essere configurati sul server Linux di IP-Masq.

Se hai difficoltà a configurare la scheda di rete, sarà utile consultare i manuali HOWTO consigliati in . Cosa serve in 2.0.x o in Cosa serve in 2.2.x.

L'unica cosa che resta da sistemare sono la funzioni di firewall di IP per INDIRIZZARE e MASCHERARE i pacchetti relativamente alle rispettive macchine.

** Questo si può otterenere in diversi modi. I suggerimenti che seguono hanno funzionato bene nel mio caso, ma tu potresti avere altre necessità e inventare soluzioni nuove: ** Questa sezione fornisce SOLO il minimo di istruzioni richieste per il firewall in modo che funzioni il Masheramento IP. Dopo aver verificato il corretto comportamento di IP-Masq (come verrà indicato più avanti), fai uso delle sezioni Istruzioni per IPFWADM robusto e Istruzioni per IPCHAINS robusto per rendere più sicuro il firewall.

Per maggiori dettagli, leggi le pagine del manuale per IPFWADM (2.0.x) e IPCHAINS(2.2.x).

Kernels 2.0.x

Crea il file /etc/rc.d/rc.firewall con le seguenti SEMPLICI istruzioni iniziali:

     
#!/bin/sh   
#   
# rc.firewall   -   Sistemazione iniziale del Mascheramento IP SEMPLICE 
# per i kernels  2.0.x  usando  IPFWADM  
#   
# Carica tutti i moduli richiesti per IP-Masq   
#   
# NOTA: Carica solamente i moduli IP-Masq che ti servono. Tutti i moduli che sono al 
# momento diponibili sono mostrati qui di seguito, ma commentati, per escluderli dal caricamento.
#
# Necessario per caricare i moduli
#   
/sbin/depmod -a   
   
# Supporto per un corretto Mascheramento del trasferimento di file via FTP con il metodo FORT   
#   
/sbin/modprobe ip_masq_ftp   
   
# Supporto per il Mascheramento IP di RealAudio in UDP.Senza questo modulo, RealAudio FUNZIONA
# ugualmente, ma in modo TCP.Cio' può essere causa di una riduzione delle qualità del suono
#   
# /sbin/modprobe ip_masq_raudio   
   
# Supporto del Mascheramento IP del trasferimento files in IRC   DCC
#   
# /sbin/modprobe ip_masq_irc   
   
# Supporto del Mascheramento IP di Quake e QuakeWorld per default.     Questi moduli sono 
# per più utenti dietro un IP-Masq server. Se intendi giocare con Quake I, II, e III,   
# usa il secondo esempio
# NOTA: se ricevi il messaggio ERROR nel caricare ilmodulo per Quake, significa che 
#      stai lavorando con kernel vecchio, che ha un difetto (bug).
#      Conviene fare un aggiornamento ad un kernel piu' recente
#   
# Quake I/QuakeWorld (porte 26000 e 27000)  
# /sbin/modprobe   ip_masq_quake   
#   
# Quake I/II/III/QuakeWorld (porte 26000, 27000, 27910, 27960)   
# /sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960   
   
   
# Supporto per Mascheramento IP del programma per videoconferenza the CuSeeme
#   
#/sbin/modprobe ip_masq_cuseeme   
   
# Supporto del Mascheramento IP del programma per videoconferenza VDO-live
#   
#/sbin/modprobe ip_masq_vdolive   
   
   
# ESSENZIALE:  Abilita l'indirizzamento IP, che è disabilitato per default
#   
#             Utenti Redhat: potete provare a cambiare l'opzione in /etc/sysconfig/network  da:
#   
#                            FORWARD_IPV4=false   
#                         a   
#                            FORWARD_IPV4=true   
#   
echo "1" > /proc/sys/net/ipv4/ip_forward  
  
# ESSENZIALE: abilita la deframmentazione automatica di IP, che e' disabilitata per default 
#            Una volta era una opzione durante la compilazione del kernel, ma le cose sono 
#             cambiate in 2.2.12    
echo "1" > /proc/sys/net/ipv4/ip_always_defrag 

#   Utenti con IP dinamico:   
#   
# Se l'indirizzo IP ti viene assegnato dinamicamente via SLIP, PPP, o DHCP, abilita la seguente 
# opzione. Ciò permetterà l'aggiustamento dell'indirizzo dinamico in IP-Masq, rendendo più facile
# il lavoro dei programmi DialD, PPPd e simili.
# 
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr   
   
   
#   MASQ   timeouts   
#   
#      timeout di 2 ore per le sessioni   TCP
#      timeout di 10 sec che segue il ricevimento del pacchetto   TCP/IP  "FIN"  
#      timeout di 160 sec per il traffico UDP (rilevante per gli utenti ICQ Mascherati)
#   
/sbin/ipfwadm -M -s 7200  10  160  
  
  
# DHCP: Per chi riceve l'indirizzo IP esterno da DHCP e BOOTP, come nel caso dei modem 
# via cavo o degli utenti in ADSL, è necessario dare questa istruzione, prima del comendo 
# deny. La stringa "bootp_client_net_if_name" deve essere sostituita con il nome della 
# connessione su cui il server DHCP/BOOTP mette l'indirizzo.
# Sara' qualcosa del tipo "eth0", "eth1", etc.   
#   
# Questo esempio è commentato, per il momento.   
# /sbin/ipfwadm -I -a accept -S 0/0 67  -D 0/0 68 -W bootp_clients_net_if_name -P udp
.
# Abilita il Mascheramento e indirizzamento di IP semplice 
#   
# NOTA: Il seguente è un esempio per un indirizzo interno della LAN nella rete   192.168.0.x   
# con mask di sottorete 255.255.255.0   o "a 24   bit".   
# Cambia il numero di rete e della mask di sottorete a seconda di come è sistemata la tua
# rete interna (LAN).
#   
/sbin/ipfwadm   -F   -p   deny   
/sbin/ipfwadm   -F   -a   m   -S   192.168.0.0/24   -D   0.0.0.0/0   
   

Dopo di che, rendi eseguibile il file /etc/rc.d/rc.firewall, battendo il comando "chmod 700 /etc/rc.d/rc.firewall"

Adesso che la regola per il firewall è pronta, devi fare in modo che parta ad ogni reboot. Puoi fare questa operazione a mano ogni volta (un po' scomodo) oppure aggiungerla in uno script di boot. Qui di sseguito presentiamo i due metodi:


      echo "Caricamento delle regole rc.firewall..."
 <code>
/etc/rc.d/rc.firewall
 

al fondo del file /etc/rc.d/rc.local ed è fatta. Il problema è che, se la lanci delle regole firewaal FORTI, il firewall non verrà eseguito fino all'ultimo stadio del boot. E' preferibile attivare firewall appena dopo che è stato caricato il sottosistema di rete.

Per il momento ilmanuale tratta solo il modo con /etc/rc.d/rc.local. Se vuoi un sistema più forte, ti consiglio di vedere la sezione 10 del TrinityOS, il cui link si trova in fondo a questo manuale.

Note su come gli utilizzatori potrebbero modificare la regola per il firewall, data sopra.

Anzichè abilitare il Mascheramento IP per la intera rete TCP/IP, è possibile permettere il Mascheramento ad una determinata selezione di macchine. Se, ad esemipo, volessi concedere l'accesso alle sole macchine 192.168.0.2 e 192.168.0.8, dovrei cambiare la sezione "Enable simple IP forwarding and Masquerading" section (sopra) nelle istruzioni in /etc/rc.d/rc.firewall.

# Abilita l'indirizzamento di IP semplice ed il Mascheramento
#   
# NOTA: Questo e' un esempio  per permettere il Mascheramento IP solo per le macchine 192.168.0.2  
# e 192.168.0.8 con maschera di sottorete 255.255.255.0  ovvero  "a 24 bit"
#   
# Usa queste direttive IN AGGIUNTA alle regole date sopra per la specifica rete Mascherata.
# Accorda i numeri di rete e maschere di sottorete con quelle della tua rete interna.
# 
#   
/sbin/ipfwadm   -F   -p   deny  
/sbin/ipfwadm   -F   -a   m  -S  192.168.0.2/32   -D   0.0.0.0/0   
/sbin/ipfwadm   -F   -a   m   -S   192.168.0.8/32   -D   0.0.0.0/0   
<bf>Errori comuni

Un errore che sembra essere comune a tutti i nuovi utenti di IP-Masq è quello di dare il comando:

ipfwadm   -F   -p   masquerade     

Non applicare mai la politica di assegnare il Mascheramento per tutti, in assenza di istruzioni contrarie (cioè per default). altrimenti qualcuno capace di modificare la propria routing table potrebbe entrare nella rete locale, passando per tunnel attraverso il tuo gateway, usando le istruzioni di Mascheramento per mascherare la propria identità!.

Aggiungi le righe sopra in /etc/rc.d/rc.firewall oppure dai quei comandi manualmente, ogni volta ch hai bisogno del Mascheramento di IP.

Vedi le sezioni Istruzioni per IPFWADM robusto e Istruzioni per IPCHAINS robusto una guida dettagliata con esempi per le istruzioni di IPFWADM e IPFWADM forte.

Kernels 2.2.x

Attenzione che per i kernel 2.1.x e 2.2.x IPFWADM non è più una funzione di firewall per manipolare le regole di Mascheramento IP. I nuovi kernels utilizzano le funzioni IPCHAINS. Per capire le ragioni di questo cambiamento vedi la sezione FAQs..

Crea il file /etc/rc.d/rc.firewall con le seguenti SEMPLICI istruzioni iniziali:

     
#!/bin/sh   
#   
# rc.firewall  - Sistemazione iniziale del Mascheramento IP SEMPLICE 
# per i kernels 2.1.x  e 2.2.x usando IPCHAINS  
#   
# Carica tutti i moduli richiesti per IP-Masq   
#   
#   NOTA: Carica solamente i moduli IP-Masq che ti servono. Tutti i moduli che sono al 
# momento diponibili sono mostrati qui di seguito, ma commentati, per escluderli dal caricamento.
#
# Necessario per caricare i moduli
#   
/sbin/depmod -a   
   
# Supporto per un corretto Mascheramento del trasferimento di file via FTP con il metodo FORT   
#   
/sbin/modprobe ip_masq_ftp   
   
# Supporto per il Mascheramento IP di RealAudio in UDP. Senza questo modulo, RealAudio FUNZIONA
# ugualmente, ma in modo TCP. Cio' può essere causa di una riduzione delle qualità del suono
#   
# /sbin/modprobe ip_masq_raudio   
  
# Supporto del Mascheramento IP del trasferimento files in IRC DCC
#   
# /sbin/modprobe ip_masq_irc  
  
# Supporto del Mascheramento IP di Quake e QuakeWorld per default. Questi moduli sono 
# per più utenti dietro un IP-Masq  server.Se intendi giocare con Quake I,II, e III,  
# usa il secondo esempio
#   
# Quake I / QuakeWorld (porte 26000 e 27000)  
# /sbin/modprobe ip_masq_quake   
#   
# Quake  I/II/III / QuakeWorld (porte 26000, 27000, 27910, 27960)  
# /sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960   
   
# Supporto per Mascheramento IP del programma per videoconferenza the CuSeeme
#   
# /sbin/modprobe ip_masq_cuseeme   
   
# Supporto del Mascheramento IP del programma per videoconferenza VDO-live
#   
#/sbin/modprobe ip_masq_vdolive   

# ESSENZIALE: Abilita l'indirizzamento IP, che è disabilitato per default
#   
# Utenti Redhat: potete provare a cambiare l'opzione in /etc/sysconfig/network da:
#  
#         FORWARD_IPV4=false   
#                     a   
#         FORWARD_IPV4=true   
#   
echo "1" > /proc/sys/net/ipv4/ip_forward   

# ESSENZIALE: abilita la deframmentazione automatica di IP, che e' disabilitata per default 
#           Una volta era una opzione durante la compilazione del kernel, ma le cose sono 
#           cambiate in 2.2.12    
echo "1" > /proc/sys/net/ipv4/ip_always_defrag 
#
# Utenti con IP dinamico:   
#   
# Se l'indirizzo IP ti viene assegnato dinamicamente via SLIP,PPP o DHCP, abilita la seguente 
# opzione. Ciò permetterà l'aggiustamento dell'indirizzo dinamico in IP-Masq, rendendo più facile
# il lavoro dei programmi DialD,PPPd e simili.
# 
#
# echo "1" > /proc/sys/net/ipv4/ip_dynaddr  
  
# MASQ timeouts   
#   
# timeout di 2 ore per le sessioni TCP
# timeout di 10 sec che segue il ricevimento del pacchetto TCP/IP "FIN"  
# timeout di 160 sec per il traffico UDP (rilevante per gli utenti ICQ Mascherati)
#   
/sbin/ipfwadm -M -s 7200  10  160  
  
  
# DHCP: Per chi riceve l'indirizzo IP esterno da DHCP o BOOTP, come nel caso dei modem 
# via cavo o degli utenti in ADSL, è necessario dare questa istruzione, prima del comendo 
# deny. La stringa "bootp_client_net_if_name" deve essere sostituita con il nome della 
# connessione su cui il server DHCP/BOOTP mette l'indirizzo.
# Sara' qualcosa del tipo "eth0", "eth1", etc. 
#   
# Questo esempio è commentato, per il momento. 
# /sbin/ipchains -A input -j ACCEPT -i bootp_clients_net_if_name -s 0/0 67 -d 0/0 68 -p udp      
   
# Abilita il Mascheramento e indirizzamento di IP semplice 
#   
# NOTA: Il seguente è un esempio per un indirizzo interno della LAN nella rete 192.168.0.x   
#    con mask di sottorete 255.255.255.0   o "a 24 bit"   
#    Cambia il numero di rete e della mask di sottorete a seconda di come è sistemata la tua
#   rete interna (LAN).
#   
/sbin/ipchains  -P  forward  DENY   
/sbin/ipchains  -A  forward -s  192.168.0.0/24 -j  MASQ   
   
  

Dopo di che, rendi eseguibile il file /etc/rc.d/rc.firewall, battendo il comando "chmod 700 /etc/rc.d/rc.firewall"

Adesso che la regola per il firewall è pronta, devi fare in modo che parta ad ogni reboot. Puoi fare questa operazione a mano ogni volta (un po' scomodo) oppure aggiungerla in uno script di boot. Qui di sseguito presentiamo i due metodi:


      echo "Caricamento delle regole rc.firewall..."
 <code>
/etc/rc.d/rc.firewall
 

al fondo del file /etc/rc.d/rc.local ed è fatta. Il problema è che, se la lanci delle regole firewaal FORTI, il firewall non verrà eseguito fino all'ultimo stadio del boot. E' preferibile attivare firewall appena dopo che è stato caricato il sottosistema di rete.

Per il momento ilmanuale tratta solo il modo con /etc/rc.d/rc.local. Se vuoi un sistema più forte, ti consiglio di vedere la sezione 10 del TrinityOS, il cui link si trova in fondo a questo manuale.

Note su come gli utilizzatori potrebbero modificare la regola per il firewall, data sopra.

Anzichè abilitare il Mascheramento IP per la intera rete TCP/IP, è possibile permettere il Mascheramento ad una determinata selezione di macchine. Se, ad esemipo, volessi concedere l'accesso alle sole macchine 192.168.0.2 e 192.168.0.8, dovrei cambiare la sezione "Enable simple IP forwarding and Masquerading" section (sopra) nelle istruzioni in /etc/rc.d/rc.firewall.

# Abilita l'indirizzamento di IP semplice ed il Mascheramento
#   
# NOTA: Questo e' un esempio  per permettere il Mascheramento IP solo per le macchine 192.168.0.2  
# e 192.168.0.8 con maschera di sottorete 255.255.255.0  ovvero  "a 24 bit"
#   
# Usa queste direttive IN AGGIUNTA alle regole date sopra per la specifica rete Mascherata.
# Accorda i numeri di rete e maschere di sottorete con quelle della tua rete interna.
# 
#   
#   
/sbin/ipchains  -P forward  DENY  
/sbin/ipchains  -A forward  -s  192.168.0.2/32  -j  MASQ  
/sbin/ipchains  -A forward  -s  192.168.0.8/32  -j  MASQ  
   
<bf>Errori comuni

Un errore che sembra essere comune a tutti i nuovi utenti di IP-Masq è quello di dare il comando:

Un errore che sembra essere comune a tutti i nuovi utenti di IP-Masq è quello di dare il comando:

/sbin/ipchains -P forward masquerade      

Non applicare mai la politica di assegnare il Mascheramento per tutti, in assenza di istruzioni contrarie (cioè per default). altrimenti qualcuno capace di modificare la propria routing table potrebbe entrare nella rete locale, passando per tunnel attraverso il tuo gateway, usando le istruzioni di Mascheramento per mascherare la propria identità!.

Aggiungi le righe sopra in /etc/rc.d/rc.firewall oppure dai quei comandi manualment, ogni volta ch hai bisogno del Mascheramento di IP.

Vedi le sezioni Istruzioni per IPFWADM robusto e Istruzioni per IPCHAINS robusto una guida dettagliata con esempi per le istruzioni di IPCHAINS e IPCHAINS forte..

Per altre informazioni sull'uso di IPCHAINS vai ai siti principali : http://netfilter.filewatcher.org/ipchains/ e il Linux IP CHAINS HOWTO Backup: http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html.


Avanti Indietro Indice