Newsgroup: it.comp.reti.locali
Titolo: Router + Firewall : problema di indirizzamento [lungo]

Mi scuso in anticipo per l'estrema lunghezza del post ma sono alle prese con
una questione che mi sta facendo non poco penare; spero che qualcuno
mi possa aiutare.
Il mio provider mi ha assegnato un pool di indirizzi ip pubblici
di classe /28. La situazione attuale della rete di ufficio è la seguente
(il router cisco è un 2610 nostro)
[INTERNET]
          |
[router cisco]
          | x.y.z.89
          |
          | x.y.z.90,91 etc.
[rete interna]
e da qualche giorno funziona tutto benissimo anche se ci sono ovvi problemi
di sicurezza. Vorrei dunque interporre tra router e rete interna un
firewall Linux, però non capisco che indirizzi assegnare alle due
schede di rete.
Il problema centrale è trovare un metodo per far comunicare il router e la
linuxbox senza sprecare indirizzi ip. Dalla rete interna deve essere
possibile la normale navigazione e alcune applicazioni server devono
essere visibili all'esterno e per quanto mi sembra di aver capito, per
questo non posso usare NAT (almeno in generale);
Premesso che al momento il numero di ip assegnatimi è sufficiente
per entrambe le funzionalita (navigazione/servizi server) e che per svariati
motivi non vorrei, se possibile, usare il NAT etc (e qundi creare una DMZ
per i servizi etc.), le mie domande sono:
1) Alle due schede eth del firewall dovrei dare indirizzi appartenenti a
subnet diverse dunque sarei costretto a subnettizzare il risicato
pool ip e perderne dunque la metà (o no ?)
Esiste un qualche metodo che mi permetta far fare a linux il
router/firewall con una configurazione come la seguente ?
[router cisco]
          | x.y.z.89
          |
          | x.y.z.90
[firewall linux]
          | x.y.z.91
          |
          | x.y.z.92,93  etc.
[rete interna]
ho provato una cosa molto simile e (come sospettavo) NON funziona
2) in alternativa: è possibile usare per la microrete router/firewall
indirizzi di rete privati  ? (sarebbe molto bello :) ovvero:
[router cisco]
          | 192.168.0.1
          |
          | 192.168.0.2
[firewall linux]
          | x.y.z.89
          |
          | x.y.z.90,91  etc.
[rete interna]
non l'ho provato ma penso che funzioni ma è una cosa corretta ?
3) l'ultima domanda: ipotizzando invece di usare il NAT e dunque
usando nella rete interna soltano indirizzi di rete privati (192.168.x.x),
posso rendere accessibili i server dall'esterno con qualche tecnica
particolare ?
Cioè mi chiedo: siccome è una situazione che può capitare di frequente
come ci si regola in questi casi ? probabilmente ho le idee un
po' confuse ma al momento non trovo una soluzione... ringrazio
in anticipo chi avrà la pazienza di rispondermi.
saluti,
Leonardo Perria

 come ci si regola in questi casi ? probabilmente ho le idee un
Soluzione ottimale (ma dipende da quello che serve, ovvero il nat potrebbe 
                    essere un problema per i client):
--[ROUTER](A)--------- (B)[FW LINUX](C)--- (D){Rete con server pubblici}
                             (E)
                              |
                              |
                    {Rete privata con client}
(A) = x.y.z.89
(B) = x.y.z.90
(C) = x.y.z.90
(D) = x.y.z.91 -- x.y.z.102 (12 ip pubblici disponibili)
(E) = 192.168.k.w  (Classe privata)
Spiegazione:
Dovresti dotare il firewall Linux di tre schede di rete e costruire
(con switch) due lan, quella pubblica e quella privata. Chiaramente
la rete pubblica (ma anche quella privata) potra` anche essere
composta da 1 solo PC. In quest'ultimo caso non ti serve lo
switch ma puoi collegare l'unico pc direttamente al firewall
con un cavo cross (cosi` restiamo in topic;) ).
Come avrai notato (B) e (C) hanno lo stesso ip. Questo porterebbe
all'impossibilita` di scegliere (da parte del kernel) quale interfaccia
usare per indirizzare un pacchetto che avesse (ad esempio) indirizzo
di destinazione x.y.z.94. In teoria tutte e due le schede potrebbero
essere la scelta giusta. Il problema si risolve configurando le due
ethernet con il proxy-arp: 
http://www.linuxdoc.org/HOWTO/Adv-Routing-HOWTO-17.html
Per la rete privata (interfaccia E) puoi scegliere la classe privata 
che ti piace di piu`. Sull'interfaccia E dovrai chiaramente fare nat.
Soluzione alternativa (senza nat):
--[ROUTER](A)--- (B)[FW LINUX](C)--- (D){Rete con server e client pubblici}
Elimini la rete privata (quindi due sole schede di rete) e usi gli ip 
pubblici (se ti bastano) per tutte le macchine.
(A) = x.y.z.89
(B) = x.y.z.90
(C) = x.y.z.90
(D) = x.y.z.91 -- x.y.z.102 (12 ip pubblici disponibili)
Chiaramente in tutti e due i casi e` *opportuno* implementare il firewall 
con iptables/ipchains (a seconda che tu abbia il kernel 2.4 o il 2.2)
P.s. evita il crosspost.
-- 
Vincenzo 
Cosa e' peggio: l'ignoranza o l'apatia?  Chi lo sa?  A chi importa?

ti ringrazio per l'esauriente risposta !
e... mi scuso per il crosspost :-|
Leonardo Perria