Newsgroup: it.comp.os.linux.sys
Titolo: DMZ e dual WAN (e firewall)

Salve,
per la LAN in ufficio, mi servirebbe avere un'unica DMZ, pur avendo 2 
firewall (PFsense), ognuno con la propria LAN e la propria connessione 
ad internet...
Ora sto testando una configurazione del genere (i firewall nello stesso 
stabile ma su diversi piani):
          LAN 1
           |
           |
    +------+-------+
    |              |
    |              | WAN 1
    |  Firewall 1  +------........
    |              |
    |              |
    +------+-------+
           | DMZ 1
           |
          _|
      ___/  \_
    _/        \__
   /             \
  |      DMZ      |
   \_           __/
     \__     __/
        \___/
           |
           | DMZ 2
    +------+-------+
    |              |
    |              | WAN 2
    |  Firewall 2  +------.....
    |              |
    |              |
    +------+-------+
           |
           |
          LAN 2
in cui:
DMZ: 
192.168.1.0/24
DMZ1: 
192.168.1.1/32
DMZ2: 
192.168.1.254/32
ora, nella macchine in DMZ non posso impostare un gateway di default 
(es. firewall1)... altrimenti non risponderebbero alle richieste 
provenienti da firewall2.
La soluzione attuale e' quella di fare NAT del traffico WAN->DMZ. Così 
facendo, tutto il traffico entrante nella DMZ proviene o dall'IP DMZ1 o 
dall'IP DMZ2. Questo permette, utilizzando il routing di default, di far 
funzioare il tutto...
Pero' sorgono problemi per quanto riguarda la gestione dei pacchetti.. 
Ad esempio, mi sono trovato con un open relay, perché l'SMTP nella DMZ 
era configurato per accettare le richieste provenienti dalla LAN DMZ (e 
gli IP DMZ1 e DMZ2, su cui il traffico WAN viene nattato, appartengono 
alla subnet).
Altri problemi si manifestano avendo dei DNS (con view) nella DMZ... Il 
dns era impostato per rispondere con gli IP privati alle richieste 
provenienti dalla DMZ e per risolvere ho dovuto escludere gli IP 
DMZ1/DMZ2 (con "!
192.168.1.254/32
")...
Viste quindi le complicazioni, c'e' un metodo alternativo per fare 
quello che mi serve?
Grazie per l'aiuto,
Antonio

 quello che mi serve?
Ti guardi iproute howto e fai il il setup delle macchine come dual homed.

CtRiX ha scritto:

Uhm...
ho provato, ma non penso che sia la soluzione migliore (a meno che non 
mi sfugga qualcosa), ecco perche':
- senza fare il NAT da WAN a DMZ, le macchine in DMZ riceverebbero 
richieste da IP esterni, come dual-homed mi pare che come discriminante 
posso selezionare solo l'IP di provenienza (ed in base a questo, 
inoltrare la risposta), o anche l'interfaccia di ingresso?
- facendo il NAT invece non serve il dual-homed.. il routing di default 
permette al tutto di funzionare;
e poi il dual-homed preferirei non usarlo, perche' dovrei spostare la 
logica di routing nella DMZ, e lì potrei aver bisogno di mettere altre 
macchine che non permettono un routing così "evoluto"..


semplicemente creando delle rotte statiche nei server in DMZ, oppure sul 
default gateway della DMZ.
mi spiego:
presupponendo che tu voglia far uscire tutto il traffico della DMZ dalla 
WAN 1, imposti sulle macchine 192.168.1.1 come gateway di default.
a questo punto avrai difficoltà a raggiungere la LAN2, e questo è 
normale. Basta impostare in firewall 1 una rotta statica con la 
NET_LAN_2 raggiungibile via 192.168.1.254
oppure macchina per macchina fai una route statica permanente che dice 
la stessa cosa (te lo sconsiglio perchè magari tra qualche anno ti 
dimentichi l'architettura e impazzisci).
cosa avverrà nel momento in cui DMZ cercherà un host di LAN2? Che si 
rivolgerà a Firewall1 che indicherà la rotta verso Firewall2.
Easy.

 rivolger� a Firewall1 che indicher� la rotta verso Firewall2.
ma il problema non e' raggiungere gli host della LAN.. e' quello di 
rispondere correttamente alle richieste provenienti da WAN1/WAN2/DMZ... 
se natto diventano poco "riconoscibili", infatti:
- se proviene da WAN1: SNAT con 192.168.1.1
- se proviene da WAN2: SNAT con 192.168.1.254
- se proviene da DMZ: IP sorgente 
192.168.1.0/24
  (esclusi IP .1 e .254)
per la LAN non ho problemi: LAN1 e LAN2 sono su subnet diverse (es. 
192.168.100.0/24
, 
192.168.200.0/24
)

 - se proviene da DMZ: IP sorgente 
192.168.1.0/24
 (esclusi IP .1 e .254)
la prima cosa che mi viene in mente è utilizzare il PBR (Policy Based 
Routing), però in genere sono cose che faccio a livello di firewall (non 
linux) e non a livello di server, quindi non saprei come aiutarti. 
Utilizzando il PBR è possibile scrivere delle policy di routing in base 
al source e non al destination.
...creare su tutti i server un alias con un ip su una classe differente 
ti è complesso? sono molte macchine?
perchè se ogni server avesse:
192.168.1.0/24
 gw di interfaccia: 1.1
e 
192.168.10.0/24
 gw di interfaccia: 10.1
potresti mettere FIREWALL2_DMZ sulla classe 10 e a questo punto 
risolveresti il problema perchè i server non avrebbero problemi a capire 
che la richiesta arriva da uno o dall'altro firewall...
PS: non so se sui server linux è possibile mettere un gateway di 
interfaccia (che ha priorità subito prima di un def gateway generico), 
su molti firewall commerciali basati su linux è possibile, quindi 
immagino di si.

 mi sfugga qualcosa), ecco perche':
Imposti sulla stessa macchina due IP differenti della stessa classe.
Non ti cambia nulla nelle configurazioni e ci vuole 2 minuti.
Hai una macchina dual homed e in base all'IP su cui arriva la richiesta 
puoi routare i pacchetti sul GW giusto.

CtRiX ha scritto:

sull'IP destinazione non ci avevo pensato... dovrebbe essere una cosa 
del genere (ad esempio su una macchina in DMZ con gli IP .1.10 e .1.200):
# subnet e default gw per T1
ip route add 
192.168.1.0/24
 dev eth0 src 192.168.1.10 table T1
ip route add default via 192.168.1.1 table T1
# subnet e default gw per T2
ip route add 
192.168.1.0/24
 dev eth0:0 src 192.168.1.200 table T2
ip route add default via 192.168.1.254 table T2
# subnet
ip route add 
192.168.1.0/24
 dev eth0 src 192.168.1.10
# default gw
ip route add default via 192.168.1.1
# routing
ip rule add to 192.168.1.10 table T1
ip rule add to 192.168.1.200 table T2
senza fare SNAT dovrebbe funzionare bene.. Il DNS risolverebbe con IP 
privati tutte le richieste di 
192.168.1.0/24
 e l'SMTP sbatterebbe fuori 
gli IP pubblici blacklistati (cosa che adesso, con SNAT, non posso fare...)
Pero' la cosa che mi "secca" e' che questo va fatto nelle singole 
macchine nella DMZ... e il tutto funziona a patto che sulla macchina si 
possa impostare un routing simile

 possa impostare un routing simile
Oggi è il giorno di chi preferisce avere sia la moglie ubriaca che la 
botte piena.