Newsgroup: it.comp.os.linux.sys
Titolo: redirect su indirizzo IP privato mediante http e/o routing...

Avendo come tutti problemi di indirizzi IP pubblici assegnati (ne ho un
pool classico da 8), mi trovo alle prese con il solito problema: usare
quegli 8 ip pubblici per avere più di 6 macchine (considerando anche il
NETWORK e il BROADCAST).
La cosa che sto cercando di capire, dopo aver letto un bel po' di roba,
è se posso o meno far si che una macchina AS/400 che si trova dietro un
firewall con IP pubblico possa essere raggiunta senza inserirla nella
DMZ.
Attualmente dei 6 ip pubblici usabili 3 sono usati per server Web,
firewall e server POP/SMTP, che sono 3 server linux separati.
Per il momento potrei usare gli altri IP, solo che vorrei proprio
evitare di dare un IP pubblico all'AS/400, e quindi mi chiedevo... c'è
un modo per dirigere le richieste verso l'IP LAN? Ho pensato a varie
soluzioni di NAT o PAT, ma il problema è un altro. Non posso fare un
redirect delle porte perché sull'AS mi serve di aprire la porta 80 (ha
un server http) e la porta 80 è aperta anche sul firewall per i tool di
monitoring via web che uso.
Avevo pensato (stupidamente! ^_^) di poter mettere un redirect dal sito
web verso l'IP della macchina interna, col metatag html. Ma ho visto che
non può funzionare perché ovviamente quando viene fatto il redirect su
un indirizzo 10.0.0.x la connessione cerca un IP locale e non quello che
stà all'interno della rete da raggiungere.
Potete indicarmi la strada per trovare la soluzione a livello firewall
considerando che uso ipchains su un kernel 2.2.19 che non è upgradabile
al momento in quanto non posso permettermi fermi macchine.
Documentazione va benissimo, sono uno che non si fa problemi a studiare
per non far troppe domande qui :-)
--
Jarsil
Registered Linux User #271978


Ok, come non detto, ma immagino che non ci siano troppi problemi a far 
girare la cosa con ipchains :-)
Un'altra soluzione sarebbe quella di mettere in ascolto sulla porta 80 
esterna uno squid configurato come reverse proxy.
I domini risolti dall'esterno puntano tutti al proxy. Se il proxy, 
internamente, si appoggia a un dns interno, può proxare il pooll interno 
in maniera trasparente all'esterno, e avresti (dall'esterno) l'aspetto 
di un virtualhost, con i singoli virtual-server che sono in realtà 
server distinti...
Un po' incasinato da spiegare, ma semplice da fare, e funziona ... :-)
Ovviamente (vedi un vecchio thread...) questo non funziona (e non può 
funzionare) per connessioni https o altro...
Spero di aver messo qualche spicciolo...
Byez...
-- 
Emanuele "SKULL" Balla
----------------------------------------------------------------------
"How should I know if it works?  That's what beta testers are for. I 
only coded it." (Attributed to Linus Torvalds, somewhere in a posting)

 funzionare) per connessioni https o altro...
Mmmmm... reverse proxy con squid... devo andare a studiarmi la
documentazione allora. Penso sia più facile così che col routing statico
delle porte.
Ma il problema è leggermente più complesso... nel senso che il server
web cui far fare il redirect non è il firewall ma appunto, il server
web, in DMZ... suppongo che il reverse proxy dovrei impostarlo lì...
--
Jarsil


Hmmm questo non lo avevo afferrato, ma in effetti non semplifica le 
cose... nel senso... il reverse proxy ti semplifica le cose nel senso 
che ti permette di avere "più porte 80 in ascolto su una sola"... se mi 
passi la terminologia non troppo scientifica :-). Se il reverse proxy lo 
vai ad installare su una delle macchine che HA già installato il 
webserver, perdi il webserver (dato che squid risolve tramite dns o file 
hosts in maniera diversa dall'esterno _e_basta_, e quindi non hai modo 
di redirigere la porta se non con contorsioni colossali...).
Questo (così su due piedi) potrebbe ad esempio voler dire la creazione 
di una macchina "squid-only" che si SOSTITUISCA al webserver.
Ovviamente questo implica che della macchina "vecchia" non ti resta 
nessuna porta che la 80...
Però (!) se questa nuova macchina la installi con un kernel 2.4, ti 
diviene facile mettere lì SOLO il proxy, e ridirigere le porte 
necessarie agli altri servizi sulla macchina vecchia, purchè questa sia 
utilizzi la nuova come router (altrimenti non puoi snattare le 
risposte...). Insomma, avresti un firewall dietro il firewall...
Se ne desume:
1) 'sto casino non serve se offrono solo porta 80
2) non so quale delle due sia più incasinata, se il port forwarding o il 
reverse proxying.
Nota che ancora non siamo arrivati al fatto che il proxy in DMZ deve 
poter vedere la porta 80 dell'AS400 in rete interna... :-)
In bocca al lupo, se serve son qui.. (per quel poco che posso servire...)



Ho provato a inserire una regola di REDIRECT su Ipchains ma non sembra
funzionare.
Il problema è che ho trovato entrambe le sintassi e non so quale
funzioni se REDIR o REDIRECT.
Ho cambiato la porta di ascolto del server http da 80 a 82, modificato
il firewall di conseguenza, e poi inserito la regola nella catena di
ingresso
ipchains -A ext-if -p tcp --dport 80 -j REDIRECT 10.0.0.12 80
Non mi ha dato errori nel rilanciare ipchains però ho idea che non abbia
funzionato qualcosa. Accedento da un'altra rete infatti non riesco cmq a
girare alcunché verso l'altra porta...
Purtroppo non posso mettere una nuova macchina solo proxy...
Devo in qualche modo riuscire a fare un port forwarding efficiente.
nota: cambiando le porte Listen di Apache in 82, ho dovuto poi
specificare nel browser nomehost:82 per poter accedere a quei tool di
monitoring...
--
Jarsil

Jarsil wrote:

Non conosco ipchains, mi sono sempre limitato a iptables, per cui sulle 
sintassi non ti posso aiutare.
Dico solo che, a quanto mi risulta, ipchains NON ha le caratteristiche 
di statefulness di iptables, per cui, se effettui un dnat su quanto 
entra, dovresti anche effettuare uno snat su quanto esce, altrimenti le 
risposte non arriverebbero mai, perchè 
source(risposta)!=dest(richiesta)... e anche perchè normalmente i 
carrier droppano i pacchetti destinato o provenienti da ip di reti 
private. Questo da quanto ne so, ma indubbiamente qualcuno che conosca 
ipchains più di me potrebbe intervenire a smentirmi...
bye



I'm not prejudiced, I hate everyone equally.