Newsgroup: it.comp.os.linux.sys
Titolo: Firewall/Forwarding

Ciao a tutti :)
Ci riprovo.. e' un po' urgente...
Spero mi sappiate dare una mano...
Vi spiego la situazione:
Ho un vecchio 486 con 16Mb di ram che vorrei diventasse il firewall (in
masqerading) tra la mia rete locale (LAN) ed una rete geografica (WAN)
su cui ho un IP fisso. Inoltre vorrei che le richieste proveniente dalla
WAN sull'ip fisso venissero reindirizzate su un server della LAN
(forwarding).
Gli ip sono: eth0: 192.168.0.1 (LAN)
             eth1: 26.1.1.1 (WAN)
Ho installato la RedHat 6.1, aggiornando il kernel alla 2.2.14 e
configurato lo stesso per supportare il firewalling/masquerading, cosi'
come descritto negli appositi HowTo's. Il firewall funziona
perfettamente.
Ecco cio' che mi restituisce ipchains -l
Chain input (policy REJECT):
target     prot opt     source               destination         ports
ACCEPT     all  ------  
192.168.0.0/24
       anywhere             n/a
REJECT     all  ----l-  
192.168.0.0/24
       anywhere             n/a
ACCEPT     all  ------  anywhere             26.1.1.1             n/a
ACCEPT     all  ------  anywhere             anywhere             n/a
REJECT     all  ----l-  anywhere             anywhere             n/a
Chain forward (policy DENY):
target     prot opt     source               destination          ports
MASQ       all  ------  
192.168.0.0/24
       anywhere             n/a
REJECT     all  ----l-  anywhere             anywhere             n/a
Chain output (policy REJECT):
target     prot opt     source               destination          ports
ACCEPT     all  ------  anywhere             
192.168.0.0/24
       n/a
REJECT     all  ----l-  anywhere             
192.168.0.0/24
       n/a
REJECT     all  ----l-  
192.168.0.0/24
       anywhere             n/a
ACCEPT     all  ------  26.1.1.1             anywhere             n/a
ACCEPT     all  ------  anywhere             anywhere             n/a
REJECT     all  ----l-  anywhere             anywhere             n/a
Ho quindi compilato la "ipmasqadm-0.4.2.tar.gz", installata senza
problemi ed ho aggiunto la seguente riga al file rc.firewall
/usr/sbin/ipmasqadm portfw -f
/usr/sbin/ipmasqadm portfw -a -P tcp -L 26.1.1.1 80 -R 192.168.0.200 80
e questo e' l'output
prot localaddr          rediraddr         lport    rport  pcnt  pref
TCP  26.20.128.254      192.168.0.200     www      www    10    10
Ma il tutto non funziona...
Vi prego datemi una mano... Dove sbaglio?
Grazie in anticipo.
--
                 vvv
           Q*u*a(O-O)s*a*r
+----------.oOO--(_)--OOo.----------+
|  Per rispondere rimuovere OKKIO   |
+-----------------------------------+


E' veramente incredibile, hai dato un comando e hai un output diverso!!!

Ciao!
Innanzitutto grazie per la risposta...
Allora.. Se io setto tutte le regole ad ACCEPT (giusto per provare) il
forwarding dovrebbe funzionare giusto?
Ed invece a me non va...
Il comando e'
/usr/sbin/ipmasqadm portfw -f
/usr/sbin/ipmasqadm portfw -a -P tcp -L 26.1.1.1 80 -R 192.168.0.200 80
e questo e' l'output
prot localaddr          rediraddr         lport    rport  pcnt  pref
TCP  26.1.1.1      192.168.0.200     www      www    10    10
In teoria dovrebbe funzionare... :( In teoria.. Qualcuno l'ha realizzato con
successo? Avete idea del perche' non funzioni?
Grazie
Quasar - Togliere OKKIO per rispondere via mail.

 perfettamente.
A me sembra, IMHO, che sia pieno zeppo di errori. In realtà di solito  è
più difficile testare un firewall che scrivere delle buone rules.
Ti do un consiglio: prima di tutto testa il meccanismo della port
redirection con un semplice masquerade. Semplicemente:
ipchains -F
ipchains -P input ACCEPT
ipchains -P forward REJECT
ipchains -P output ACCEPT
ipchains -A forward -s 
192.168.0.0/24
 -j MASQ
In questa situazione usa ipmasqadm per far passare la porta 80. Quella
riga di comando mi sembra corretta. Il kernel lo hai ricompilato con le
opzioni giuste, suppongo...
Poi quando funziona allora puoi eventualmente configurare un vero
firewall. Tutte e 2 le cose insieme non mi sembra pratico.
Giusto perchè saltano all'occhio, non ti incazz... ma:
ricordati che le rules vengono interpretate in catena, e la prima che
corrisponde fa uscire dalla catena. Per esempio in input, lo sai che sei
tutto aperto ? e in più quei REJECT sono proprio non-sense. In forward
visto che la policy è DENY il REJECT non serve. Anche in output le prime
due REJECT sono inutili (anzi la seconda probabilmente fa danni),
l'ultima ACCEPT fa in modo che neanche per caso si possa bloccare
qualcosa, e qualsiasi rule ci metti dopo non sarà mai eseguita... 
ciao.

 qualcosa, e qualsiasi rule ci metti dopo non sarà mai eseguita...
Grazie per i consigli.. e non mi incazzo di certo se qualcuno mi aiuta come
hai fatto tu.. Le rules le avevo copiate pari pari dall'howto sull
firewalling non sapevo che erano sballate.. :)
Grazie ancora :)


Non per dire, ma a me funziona, io ho tre macchine che fanno redir, una sul web,
una sul pop un'altra a prte divere su telent di macchine diverse....
Il discorso del redi è il pià semplice, dovresti cntrollare le rules...parti da
quelle più semplici.
Accetta tutto, usa solo il masquerding in uscita dalla rete privata, e
sopratutto non fare prove sul firewall, coem descritto sull'how to lì non
funziona.
ciao

 ne sarei veramente grato...
Non è che stai facendo le prove loggato sul firewall, vero?
Probabilmente lo sai già, ma se sei sul firewall e ti spedisci un
pacchetto alla porta n, non lo redirigi, va proprio sulla stessa
macchina. Devi spedire i pacchetti da una macchina sulla 26.a.b.c.
Puoi avere dei problemi a far girare correttamente alcuni servizi al
primo colpo, ma non dovresti avere una gran difficoltà a redirigere una
porta.
Da una macchina sulla 26.  (oppure esterna, a monte di un router...) fai
delle prove ad esempio col finger. Il finger normalmente va estirpato :)
dal firewall ovviamente, ma per le prove è ottimo. Anzi, puoi anche
tenerlo disabilitato ma spostarlo lo stesso (79 TCP), se non ti dà un
errore, tipo Connection refused, vuol dire che è passato dietro. Fai
portfw -f e riprova, ti dà l'errore... OK, almeno vuol dire che redirige
la porta. Oppure puoi dirigerla verso un indirizzo irragiungibile
192.168.20.1, e se ti dà l'errore è OK.
Vedrai che ne vieni fuori, ciao.

 Vedrai che ne vieni fuori, ciao.
Infatti.. Grazie mille veramente.. mi avete dato una grossa mano.. Avanzate
una birra! :))
Quasar - Togliere Okkio per rispondere via mail