Accesso a server web in lan tamite ip pubblico

Tutto ciò che ha a che fare con la configurazione di apparati Cisco (e non rientra nelle altre categorie)

Moderatore: Federico.Lagni

Rispondi
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Ciao a tutti,
volevo accedere da un pc in lan al web server:

http://80.80.80.80/webserver anzichè http://192.168.200.200/webserver (192.168.200.200 è l'ip privato assegnato al server)

Tramite questa regola di nat il webserver diventa raggiungibile dal'esterno:

Codice: Seleziona tutto

ip nat inside source static tcp 192.168.200.200 80 80.80.80.80 80 extendable
Bene, fatto questo dall'esterno il webserver ovviamente diventa raggiungibile ma risulta cmq impossibile raggiungerlo dalla lan interna tramite il suo ip pubblico esterno.

Allora ho messo su questa configurazione:

Codice: Seleziona tutto

access-list 101 permit tcp 192.168.0.0 0.0.0.255 host 80.80.80.80 eq www

route-map FWD2WEBSITE permit 10 
        match ip address 101 
        set ip next-hop 192.168.200.200 ! (l'ip lan del webserver) 

interface vlan1 
! (interfaccia dove ho l'ip nat inside e ip 192.168.0.1)
ip policy route-map FWD2WEBSITE 

ip nat inside source route-map FWD2WEBSITE interface vlan1
poi ho analizzato con debug ip policy
quando dal browser lancio una richiesta per http://80.80.80.80/webserver viene interpellata sia l'access-list 101 che la route-map ma alla fine la pagina web non viene visualizzata.

Qualcuno ha esperienza in merito?

Ciao e grazie!
Rizio
Messianic Network master
Messaggi: 1158
Iscritto il: ven 12 ott , 2007 2:48 pm
Contatta:

micky ha scritto:quando dal browser lancio una richiesta per http://80.80.80.80/webserver viene interpellata sia l'access-list 101 che la route-map ma alla fine la pagina web non viene visualizzata.

Qualcuno ha esperienza in merito?
Nessuna esperienza pratica ma imho trovo giusto che succeda così perchè il server risponde all'ip pubblico mentre tu gli arrivi dall'ip privato. Il tuo router butta fuori i pacchetti ACK e di risposta che il server invia ai client della lan.

Non so se tu riesca a risolvere con un reverse nat ma è l'unica cosa che mi viene in mente.

Rizio
Si vis pacem para bellum
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Il fatto è che non è un vero e proprio webserver, si comporta come tale ma gestisce solo delle chiamate http get response.
Di fatto legge dei valori su un dispositivo elettronico e te li restituisce come http response. Il dispositivo però fa delle chiamate interne e dei redirect.
Per poterlo utilizzare dall'esterno il redirect ovviamente deve puntare all'ip pubblico e quindi devo usare quello anche sul lato lan.

Mi spiego meglio, tu chiami la pagina http://80.80.80.80/statoSitema e lui ti restiuisce i valori, poi se vuoi fare una modifica ad un valore devi lanciare la pagina http://80.80.80.80/setStato1/on e poi lui ti rilancia a http://80.80.80.80/statoSitema e lì vedi il valore aggiornato.

Di fatto sono pagine concatenate e a lui dei vide dove fare il redirect. Quindi puoi usare o solo ip pubblico o solo l'ip privato. Quindi scegliendo per il primo da fuori tutto ok, ma da dentro la lan devo necessariamente raggiungerlo con l'ip pubblico perchè è quello cu cui poi lui mi darà la risposta.

Spero di essermi spiegato..

Ciao!
Emiliano ha scritto:Da che io sappia non si interroga mai un server (o comunque una risorsa) posto nella stessa LAN del chiamante via IP Pubblico, scusa la curiosità ma per quale motivo dall'interno vuoi raggiungere il server utilizzando l'ip pubblico anziché quello privato?
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Fammi per favore un esempio di reverse nat applicato al mio caso..
Rizio ha scritto:
Non so se tu riesca a risolvere con un reverse nat ma è l'unica cosa che mi viene in mente.

Rizio
Rizio
Messianic Network master
Messaggi: 1158
Iscritto il: ven 12 ott , 2007 2:48 pm
Contatta:

micky ha scritto:Fammi per favore un esempio di reverse nat applicato al mio caso..
Posso provare ma non avendo alcuna esperienza come ti dicevo prima èun'esperimento di concetto.
Fondamentalmente invertire il nat che fai già e lo applicherei all'interfaccia esterna cosicchè, quando si vede arrivare delle risposte dall'ip pubblico le ritrasformi verso l'ip privato:

Codice: Seleziona tutto

ip nat outside source static tcp 1.2.3.y 80 192.168.0.x 80 
O qualcosa del genere....

Se riesco in giornata simulo una prova e in caso ti confermo o meno l'idea altrimenti aspetto che mi dia conferma (o smentita) tu.
Rizio
Si vis pacem para bellum
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Sì emiliano, concordo perfettamente con te..

Quella dei dns è una buona idea ma in questa sede non ho un server dns, se no l'avrei anch'io risolta così come hai fatto tu..

io pensavo che con una route-map come ho fatto dando come next-hop l'ip privato del webserver risolvessi il tutto.

Di fatto se ci pensi la cosa dovrebbe funzionare:
- sulla vlan1 su cui ho il nat inside e l'interfaccia lan arriva un pacchetto che richiede l'80.80.80.80 ma trova anche la policy route-map
- la route-map interpella l'access list che riconosce il pacchetto, lo da per buono
- lo passa al next-hop 192.168.200.200

Di fatto non dovrebbe avvenire nessun nat, il pacchetto è "intercettato" prima che esca (diciamo che venga nattato verso internet)

Bahh.. nn capisco perchè nn mi funzioni la conf che ho postato!

Fate un po' di prove anche voi dai..

Grazie!!

Emiliano ha scritto:Scusa Rizio, ma così facendo non indichi semplicemente al router che deve nattare un ip "esterno" con un ip interno quando transita dall'interfaccia outside verso l'interfaccia inside?
Se è così non dovrebbe risolvere il problema in quanto si tratta comunque di dover attivare un nat da inside verso inside, comunque sono diventato curioso come una scimmia e appena ho modo faccio i test pure io ;) Il primo che arriva avvisa gli altri?
Emiliano
Rizio
Messianic Network master
Messaggi: 1158
Iscritto il: ven 12 ott , 2007 2:48 pm
Contatta:

Riguardo alla regola che ho scritto era più che altro un'idea ma non sono assolutamente certo che sia corretta, anzi.
Sono però abbastanza sicuro del problema perchè se l'host è configurato per rispondere con l'ip esterno su quello va e con quello ti risponde.

Io, oltre all'idea di Emiliano di gestire il file host dei singoli client proverei a gestire l'host in una sorta di DMZ a cui accedi dall'esterno e dall'interno in 2 modi diversi perciò crei 2 nat: uno per l'interfaccia interna e uno per l'interfaccia esterna e non dovrebbero creare casini così (la stessa logica che di solito si usa sugli asa).

Altrimenti che voi sappiate attivando il forward del dns dei cisco è possibile forzare un'entry? Perchè quello sarebbe il modo per modificare una voce dall'interno senza andare a toccare ogni singolo client.

Rizio
Si vis pacem para bellum
paolomat75
Messianic Network master
Messaggi: 2965
Iscritto il: ven 29 gen , 2010 10:25 am
Località: Prov di GE

Rizio mi ha dattuto sul tempo.
Pensavo di aver postato ma non trovo il messaggio perché probabilmente non mi sono accorto che ci sono stati aggiornamenti mentre scrivevo.

Attivare DNS sul router e mettere host con ip privato. Dall'esterno va perché ci sono i DNS autoritativi, dal interno il router :-D
Non cade foglia che l'inconscio non voglia (S.B.)
paolomat75
Messianic Network master
Messaggi: 2965
Iscritto il: ven 29 gen , 2010 10:25 am
Località: Prov di GE

In questo post stiamo scrivendo tutti assieme ;-).
Era tanto che non mi succedeva...
Non cade foglia che l'inconscio non voglia (S.B.)
paolomat75
Messianic Network master
Messaggi: 2965
Iscritto il: ven 29 gen , 2010 10:25 am
Località: Prov di GE

Ora vado a memoria
I comandi da dare sono:

Codice: Seleziona tutto

ip dns server
ip host pincopallo.gino.it 192.168.1.102
Dovrebbe bastare. Naturalmente il DHCP deve fornire il router come DNS server.

Paolo
Non cade foglia che l'inconscio non voglia (S.B.)
paolomat75
Messianic Network master
Messaggi: 2965
Iscritto il: ven 29 gen , 2010 10:25 am
Località: Prov di GE

Grazie :-D
Non cade foglia che l'inconscio non voglia (S.B.)
Rizio
Messianic Network master
Messaggi: 1158
Iscritto il: ven 12 ott , 2007 2:48 pm
Contatta:

paolomat75 ha scritto:In questo post stiamo scrivendo tutti assieme ;-).
Era tanto che non mi succedeva...
Si, adesso aspettiamo solo che ci dia l'esito dei suggerimenti Micky e vediamo come siamo messi che 'sta cosa stà prendendo la curiosità di tutti direi :D

Rizio
Si vis pacem para bellum
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Ciao Emiliano,
innanzitutto grazie per tutte le risposte che hai/avete dato.

Purtroppo quello che suggerisci tu e poi oggetto di altri post è un mero problema di dns.
Andrebbe benissimo se io volessi raggiungere un http://miosito/blablabla e dovessi farmelo risolvere o in http://80.80.80.80/blablabla o in http://192.168.200.200/blablabla

insomma, il problema qui è un altro, è quando un pacchetto interno con destinazione 80.80.80.80 arriva all'interfaccia vlan1 prima che venga nattato verso internet (in uscita) deve essere reindirizzato al 192.168.200.200

qui i dns nemmeno intervengono, perchè io comunque ho scritto nel browser http://80.80.80.80/blablabla e non http://miosito/blablabla che richiederebbe l'intervento di un dns.

Bisogna concentrarsi su route-map e next-hop, è lì la soluzione di questo arcano. ;-)
Emiliano ha scritto:Con la route-map tu intercetti il pacchetto e lo giri all'interfaccia di uscita giusta, ma trattandosi sempre di interfacce inside inside il pacchetto di ritorno dal server non viene mai nattato in 80.80.x.y, dunque il pc che si aspetta una risposta dall'ip pubblico aspetta aspetta ma non riceve nulla, potrebbe essere????
Dalle prove che sto facendo con il reverse-nat non ho comunque ottenuto nulla...
La soluzione non è delle più eleganti, non so quanti pc sono ma se non sono troppi potresti modificare il file host dei pc con un entry tipo

Codice: Seleziona tutto

ilmioserver.it     192.168.x.ipdelserver
così facendo i pc risolvono autonomamente il nome con l'ip interno, ti ripeto non è la cosa più bella del mondo ma funziona...
Avatar utente
micky
Cisco fan
Messaggi: 38
Iscritto il: mer 30 apr , 2008 5:37 pm
Località: La Spezia
Contatta:

Effettivamente la DMZ sarebbe la soluzione di tutti i problemi ma con un 877 non si può fare, le 4 interfacce ethernet in realtà sono solo un piccolo switch e non è possibile assegnare ip differenti alle interfacce, si possono solo fare più vlan ma ti incasini ancora di più separando ancora di più ciò che io vorrei unire (esterno-interno o forward interno di pacchetti)

Per fare una DMZ su una porta dovrei mettere la lan e sull'altra un ip pubblico (che ne avrei anche da dargli sia all'interfaccia che al webserver!!)

Magari potessi fare una DMZ sarebbe la cosa più semplice, cmq grazie del suggerimento!

Rizio ha scritto:Riguardo alla regola che ho scritto era più che altro un'idea ma non sono assolutamente certo che sia corretta, anzi.
Sono però abbastanza sicuro del problema perchè se l'host è configurato per rispondere con l'ip esterno su quello va e con quello ti risponde.

Io, oltre all'idea di Emiliano di gestire il file host dei singoli client proverei a gestire l'host in una sorta di DMZ a cui accedi dall'esterno e dall'interno in 2 modi diversi perciò crei 2 nat: uno per l'interfaccia interna e uno per l'interfaccia esterna e non dovrebbero creare casini così (la stessa logica che di solito si usa sugli asa).

Altrimenti che voi sappiate attivando il forward del dns dei cisco è possibile forzare un'entry? Perchè quello sarebbe il modo per modificare una voce dall'interno senza andare a toccare ogni singolo client.

Rizio
Rizio
Messianic Network master
Messaggi: 1158
Iscritto il: ven 12 ott , 2007 2:48 pm
Contatta:

micky ha scritto:Effettivamente la DMZ sarebbe la soluzione di tutti i problemi ma con un 877 non si può fare
Se non vuoi lavorare con vlan e indirizzi di loopback direi che abbiamo finito le idee.
Per quanto riguarda l'idea del dns dovresti semplicemente gestire l'indirizzo checarichi nel browser con il nome invece che con l'ip, però non sò se è fattibile.

In ultimo, se proprio non puoi fare quando detto sopra io penseri all'acquisto di un piccolo ASA 5505, magari usato e intesti i server lì.
Imho la spesa non dovrebbe essere molto alta e magari il gioco vale la candela.

Rizio
Si vis pacem para bellum
Rispondi