Incantesimo Ubuntu per DNS dinamico cercasi

8 views
Skip to first unread message

jhl

unread,
Nov 13, 2009, 5:01:36 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Di nuovo con una richiesta non strettamente Java. Pazienza...

Sto collaudando un programmino che deve comunicare (in modo
profittevole, spero) con Paypal. Il servizio classico di PP (cioè
Website Payments Standard) usa un URL fornito dal programmino per
rispondere asincronamente lavenuto pagamento (IPN Instant Payment
Notification). Ma sto sviluppando in localhost. Potrò spostare tutto
su un server 'in rete' ma allora bye-bye al debugging.

Comunque, il problema è valido per un qualunque servizio asincrono su
Internet che richiede un URL per la risposta, non è strettamente un
problema Paypal.

Probabilmente dovuto ad un infanzia infelice, mi sono reso conto solo
di recente che posso configurare il mio PC (o più precisamente il mio
server Apache) ad essere visibile al crudele mondo di Internet,
utilizzando una combinazione di:
- IP interno statico
- Port (80) forwarding a questo IP tramite il mio router
- magia config di Apache per rispondere a questo IP
- Dynamic DNS per associare il mio IP dinamico esterno ad un nome di
dominio

Detto, ma non ancora fatto.
Qualcuno a qualche esperienza in merito (meglio se per Ubuntu), prima
che indosso guanti e maschera di nuovo?

La mia ricerca fino ad adesso ha tirato fuori questi link:
http://stackoverflow.com/questions/822902/access-xampp-localhost-from-internet
http://www.howtogeek.com/howto/ubuntu/change-ubuntu-server-from-dhcp-to-a-static-ip-address/
http://davidwinter.me.uk/articles/2007/01/27/switch-to-static-ip-on-ubuntu-server/
https://help.ubuntu.com/community/DynamicDNS
http://www.tech-faq.com/dynamic-dns.shtml
http://portforward.com/
http://www.dynadns.org/
http://www.no-ip.com/

E per i curiosi (beh, almeno ha incuriosito me):
http://www.whatsmyip.org/
http://downforeveryoneorjustme.com/
http://www.opendns.com/

TIA

John

Roberto Resoli

unread,
Nov 13, 2009, 5:33:03 AM11/13/09
to jug...@googlegroups.com
Il 13 novembre 2009 11.01, jhl <jhl.v...@gmail.com> ha scritto:
>
> Di nuovo con una richiesta non strettamente Java. Pazienza...

capita nelle migliori famiglie ;-)

> Probabilmente dovuto ad un infanzia infelice, mi sono reso conto solo
> di recente che posso configurare il mio PC (o più precisamente il mio
> server Apache) ad essere visibile al crudele mondo di Internet,
> utilizzando una combinazione di:
> - IP interno statico
> - Port (80) forwarding a questo IP tramite il mio router
> - magia config di Apache per rispondere a questo IP
> - Dynamic DNS per associare il mio IP dinamico esterno ad un nome di
> dominio
>
> Detto, ma non ancora fatto.
> Qualcuno a qualche esperienza in merito (meglio se per Ubuntu), prima
> che indosso guanti e maschera di nuovo?

si, è più o meno così che unziona il mio serverino casalingo (a parte
il fatto che ho
un ip pubblico statico, evitando il ricorso al DynDns)

Per una cosa del genere ti consiglierei comunque di mettere in piedi
una DMZ e di mettere lì il
solo apache (magari con un minimo di hardening)
con reverse-proxy (tramite mod_proxy - modrewrite, oppure mod_jk se
usi tomcat) verso il server applicativo.

In questo modo hai due punti di controllo del traffico,

1) in corrispondenza dell'interfaccia internet -> apache
2) in corrispondenza dell'interfaccia apache -> rete interna privata.

Sulla macchina in DMZ metti solo apache e nient'altro (niente DB,
niente java, ecc.)

Se non vuoi/puoi usare macchine fisiche diverse puoi fare tutto con
delle macchine virtuali,
configurando opportunamente il networking tra le varie VM.

ciao,
rob

Mario Passamani

unread,
Nov 13, 2009, 6:06:21 AM11/13/09
to jug...@googlegroups.com
L'altro giorno ho scoperto, quasi per caso, che il mio modem
supportava nativamente il Dynamic DNS: hai provato a vedere se anche
il tuo ha questa caratteristica? Magari ti risparmi un sacco di
fatica... :-)
--

I watched the stars fall silent from your eyes.

jhl

unread,
Nov 13, 2009, 6:22:55 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Ciao Roberto,

E' passato del tempo dall'ultimo incontro (in mare, se mi ricordo
bene)...
Mi stai faccendo sbavare, ma anche se ho capito quello che hai detto,
non ho la più palida idea su come implementarlo...

On Nov 13, 11:33 am, Roberto Resoli <roberto.res...@gmail.com> wrote:
> Il 13 novembre 2009 11.01, jhl <jhl.ver...@gmail.com> ha scritto:
> > Di nuovo con una richiesta non strettamente Java. Pazienza...
>
> capita nelle migliori famiglie ;-)

Anche quelli inglese...

> > Probabilmente dovuto ad un infanzia infelice, mi sono reso conto solo
> > di recente che posso configurare il mio PC (o più precisamente il mio
> > server Apache) ad essere visibile al crudele mondo di Internet,
> > utilizzando una combinazione di:
> > - IP interno statico
> > - Port (80) forwarding a questo IP tramite il mio router
> > - magia config di Apache per rispondere a questo IP
> > - Dynamic DNS per associare il mio IP dinamico esterno ad un nome di
> > dominio
>
> > Detto, ma non ancora fatto.
> > Qualcuno a qualche esperienza in merito (meglio se per Ubuntu), prima
> > che indosso guanti e maschera di nuovo?
>
> si, è più o meno così che funziona il mio serverino casalingo (a parte
> il fatto che ho
> un ip pubblico statico, evitando il ricorso al DynDns)

Okaaay. Erm, come, esattamente? Sono molto ignorante in materie...
(Mi sto rendendo conto che quel ultimo riga urla "NEWBIE")

> Per una cosa del genere ti consiglierei comunque di mettere in piedi
> una DMZ e di mettere lì il
> solo apache (magari con un minimo di hardening)

Wow, sapevo che un soluzione simile mi sarebbe reso 'vulnerabile' il
mio povero innocente PC, ma devo chiamare l'ONU?
Va bene un firewall di Ubuntu? Poi sto pensando di aprire solo la
porta 80 inbound.
Poi abito nel Veneto, dove c'è l'hanno sempre duro...Ah, hardening, di
Apache, ok, scusa.

> con reverse-proxy (tramite mod_proxy - modrewrite, oppure mod_jk se
> usi tomcat) verso il server applicativo.

Scusa la mia ignoranza, perchè un reverse proxy?

> In questo modo hai due punti di controllo del traffico,
>
> 1) in corrispondenza dell'interfaccia internet -> apache
> 2) in corrispondenza dell'interfaccia apache -> rete interna privata.
>
> Sulla macchina in DMZ metti solo apache e nient'altro (niente DB,
> niente java, ecc.)

Okaaay. Il reverse-proxy ha che fare con questo, vero? Cosi il 'bad
guy' non può raggiungere il mio carte di credito tramite Apache?
Mi sembra che fino a questo punto ho solo aperto:
IPdinamico:80 -> IPstatico:80 giusto?

> Se non vuoi/puoi usare macchine fisiche diverse puoi fare tutto con
> delle macchine virtuali,
> configurando opportunamente il networking tra le varie VM.

Gulp. Okaaay. Ma speravo di fare tutto in un giorno, forse sono più
innocente del mio PC.

> ciao,
> rob

So che sei occupato a guadagnare il pane quotidiane, ma se hai tempo
puoi fare un mini-guida, (o qualche link a questi) preferibilmente
monosilabico per imbecili come me? O è meglio chiedere al lug invece
del jug?
(Comunque chiedevo perchè credevo una cosa interessante anche per
sviluppatori Java)

TIA

John

jhl

unread,
Nov 13, 2009, 6:28:06 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Ciao Mario,

On Nov 13, 12:06 pm, Mario Passamani <mario.passam...@gmail.com>
wrote:
> L'altro giorno ho scoperto, quasi per caso, che il mio modem
> supportava nativamente il Dynamic DNS: hai provato a vedere se anche
> il tuo ha questa caratteristica? Magari ti risparmi un sacco di
> fatica... :-)

Per la beppe, hai ragione. Ed io ho guardato proprio ieri per vedere
come aprire la porta 80 inbound. Senza vedere quella voce 'Dynamic
DNS'.
Ammetto però che è sotto la voce 'Advanced', e non mi sento a fatto
advanced in questo materia...

A buon rendere...

Mario Passamani

unread,
Nov 13, 2009, 6:30:04 AM11/13/09
to jug...@googlegroups.com
Il 13 novembre 2009 12.22, jhl <jhl.v...@gmail.com> ha scritto:
>
[CUT]

>
> Scusa la mia ignoranza, perchè un reverse proxy?
>
>> In questo modo hai due punti di controllo del traffico,
>>
>> 1) in corrispondenza dell'interfaccia internet -> apache
>> 2) in corrispondenza dell'interfaccia apache -> rete interna privata.
>>
>> Sulla macchina in DMZ metti solo apache e nient'altro (niente DB,
>> niente java, ecc.)
>
> Okaaay. Il reverse-proxy ha che fare con questo, vero? Cosi il 'bad
> guy' non può raggiungere il mio carte di credito tramite Apache?
> Mi sembra che fino a questo punto ho solo aperto:
> IPdinamico:80 -> IPstatico:80 giusto?
>

Reverse proxy perchè, funziona al contrario di un proxy normale: lì
consenti a molti PC di raggiungere Internet "mascherati" dal proxy che
naviga per conto loro.
Qui invece, chi vuole accedere sta fuori dalla tua rete, ma loro non
possono vedere come è fatta dentro, ma solo chiamare il tuo proxy, che
"maschera" tutti i server che ci sono dietro.

Questo perchè di solito si fa:

http://nome_pubblico/home -> home server
http://nome_pubblico/office -> office server

Così si risparmiano anche nomi di dominio...

jhl

unread,
Nov 13, 2009, 6:58:37 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Grazie ancora Mario...

On Nov 13, 12:30 pm, Mario Passamani <mario.passam...@gmail.com>
wrote:
> Il 13 novembre 2009 12.22, jhl <jhl.ver...@gmail.com> ha scritto:
> [CUT/SNIP]
>
> Reverse proxy perchè, funziona al contrario di un proxy normale: lì
> consenti a molti PC di raggiungere Internet "mascherati" dal proxy che
> naviga per conto loro.
> Qui invece, chi vuole accedere sta fuori dalla tua rete, ma loro non
> possono vedere come è fatta dentro, ma solo chiamare il tuo proxy, che
> "maschera" tutti i server che ci sono dietro.
>
> Questo perchè di solito si fa:
>
> http://nome_pubblico/home-> home server
> http://nome_pubblico/office-> office server
>
> Così si risparmiano anche nomi di dominio...

Okaaay. Ho capito. Penso che posso usare mod_proxy sullo stesso
istanza di Apache...

Spero di non rompere con le mie numerosi domande...

Io non sono multitasking. Pensavo di usare questo inbound:80 per un
applicativo alla volta.
Pensavo di usare un test.jhl.it dato che ho il dominio jhl.it, sempre
per questo esercizio.
Non voglio creare un server 'permanente', solo per la durata del
testing che spero non sarà *cosi* permanente...

So come creare un dominio 'fasullo' con Apache tipo 'dev.jhl.it'
usando /etc/hosts e un bel
127.0.0.1 dev.jhl.it
e
<VirtualHost *:80>
ServerName dev.jhl.it
#...
</VirtualHost>
(meno male che qualcosa so...)

Allora pensavo che se aggiungo un ServerAlias test.jhl.it potrei
lanciare il buon Eclipse/Netbeans su dev.jhl.it, andare alla pagina di
checkout (sempre su dev.jhl.it) poi chiamare il sandbox di Paypal, con
URL di ritorno http://test.jhl.it/IPN, settare un breakpoint nel
codice che gestisce l'URL /IPN, pagare il conto, et voilà, mes amis,
il breakpoint viene triggerato, cosi posso capire cosa diavolo fare
con i dati restituiti da Paypal...
O sto sognando? Al peggio posso creare un altro ambiente debug per
test.jhl.it ed aspettare il breakpoint li.

Completato i test, chiudo l'inbound:80 nel router fino alla prossima
volta.
Fila il discorso?

John

Roberto Resoli

unread,
Nov 13, 2009, 8:42:58 AM11/13/09
to jug...@googlegroups.com
Il 13/11/09, jhl<jhl.v...@gmail.com> ha scritto:

>
> Grazie ancora Mario...
>
> On Nov 13, 12:30 pm, Mario Passamani <mario.passam...@gmail.com>
> wrote:
> > Il 13 novembre 2009 12.22, jhl <jhl.ver...@gmail.com> ha scritto:
> > [CUT/SNIP]
>
> >
> > Reverse proxy perchè, funziona al contrario di un proxy normale: lì
> > consenti a molti PC di raggiungere Internet "mascherati" dal proxy che
> > naviga per conto loro.
> > Qui invece, chi vuole accedere sta fuori dalla tua rete, ma loro non
> > possono vedere come è fatta dentro, ma solo chiamare il tuo proxy, che
> > "maschera" tutti i server che ci sono dietro.
> >
> > Questo perchè di solito si fa:
> >
> > http://nome_pubblico/home-> home server
> > http://nome_pubblico/office-> office server
> >
> > Così si risparmiano anche nomi di dominio...
>
>
> Okaaay. Ho capito. Penso che posso usare mod_proxy sullo stesso
> istanza di Apache...
>
> Spero di non rompere con le mie numerosi domande...

non credo, mi pare interessante per qualunque applicativo (e quindi
sviluppatore) debba/voglia intergire con servizi esterni.

> Non voglio creare un server 'permanente', solo per la durata del
> testing che spero non sarà *cosi* permanente...

aaaaah, allora è diverso, fai un port forwarding direttamente verso il
tuo application server
e testi il tutto.
La risoluzione DNS verso il tuo router la gestisci con Dyndns, visto
che puoi configurare il tutto sul router stesso.

Pensavo dovessi gestire stabilmente il servizio.

ciao,
rob

Roberto Resoli

unread,
Nov 13, 2009, 8:48:31 AM11/13/09
to jug...@googlegroups.com
Il 13/11/09, jhl<jhl.v...@gmail.com> ha scritto:
...
> So che sei occupato a guadagnare il pane quotidiane,

beh, come (quasi) tutti

ma se hai tempo
> puoi fare un mini-guida, (o qualche link a questi) preferibilmente
> monosilabico per imbecili come me? O è meglio chiedere al lug invece
> del jug?

Penso se ne trovino in rete, basta googlare un po' con "mod_jk
apache2" oppure "tomcat apache2 reverse proxy".

Comunque se interessa si potrebbe fare una seratina su queste cose

> (Comunque chiedevo perchè credevo una cosa interessante anche per
> sviluppatori Java)

senza dubbio
ciao,
rob

>
> TIA
>
> John
> >
>

jhl

unread,
Nov 13, 2009, 9:30:41 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Grazie Rob,

On Nov 13, 2:42 pm, Roberto Resoli <roberto.res...@gmail.com> wrote:
> [CUT/SNIP/EDIT/Ecc]
>
>
> >  Spero di non rompere con le mie numerosi domande...
>
> non credo, mi pare interessante per qualunque applicativo (e quindi
> sviluppatore) debba/voglia intergire con servizi esterni.

Anch'io pensavo cosi...

> >  Non voglio creare un server 'permanente', solo per la durata del
> >  testing che spero non sarà *cosi* permanente...
>
> aaaaah, allora è diverso, fai un port forwarding direttamente verso il
> tuo application server
> e testi il tutto.
> La risoluzione DNS verso il tuo router la gestisci con Dyndns, visto
> che puoi configurare il tutto sul router stesso.

Meno male. Avevo già ordinato l'elmo e giubbotto anti-proiettile...

> Pensavo dovessi gestire stabilmente il servizio.
>
> ciao,
> rob

Riciao,

John

jhl

unread,
Nov 13, 2009, 9:36:17 AM11/13/09
to JUG Trentino Alto Adige Suedtirol
Ririciao,

On Nov 13, 2:48 pm, Roberto Resoli <roberto.res...@gmail.com> wrote:
> [SNIP]
> Penso se ne trovino in rete, basta googlare un po' con "mod_jk
> apache2" oppure "tomcat apache2 reverse proxy".

Io googlo, tu Alteviste, lui dogpila... Okay.

> Comunque se interessa si potrebbe fare una seratina su queste cose

Hai abboccato ;-) Si io di sicuro verrò. Cosi ti faccio vedere il
giubotto...

> senza dubbio
> ciao,
> rob
Cosi ci vediamo di nuovo,

John

Roberto Resoli

unread,
Nov 13, 2009, 12:22:52 PM11/13/09
to jug...@googlegroups.com
2009/11/13, jhl <jhl.v...@gmail.com>:

>
> Ririciao,
>
> On Nov 13, 2:48 pm, Roberto Resoli <roberto.res...@gmail.com> wrote:
> > [SNIP]
>
> > Penso se ne trovino in rete, basta googlare un po' con "mod_jk
> > apache2" oppure "tomcat apache2 reverse proxy".
>
>
> Io googlo, tu Alteviste, lui dogpila... Okay.

he he, perdona la libera traduzione di "googling" ...

>
> > Comunque se interessa si potrebbe fare una seratina su queste cose
>
>
> Hai abboccato ;-)

resisto a tutto, tranne che alle tentazioni [1]

Si io di sicuro verrò. Cosi ti faccio vedere il
> giubotto...

spero sia corazzato a dovere ;.)

> > senza dubbio
> > ciao,
> > rob
> Cosi ci vediamo di nuovo,

Infatti!

ciao,
rob
[1]http://en.wikiquote.org/wiki/Oscar_Wilde#Lady_Windermere.27s_Fan_.281892.29

jhl

unread,
Nov 13, 2009, 12:49:53 PM11/13/09
to JUG Trentino Alto Adige Suedtirol
Posso dire che (almeno per oggi) il problema è risolto.
Settato /etc/host:
127.0.0.1 xxxxx.kick-ass.com
Settato Apache:
<VirtualHost *:80>
ServerName dev.sandbox
ServerAlias xxxxx.kick-ass.com

#...
</VirtualHost>
Il resto ho sistemato usando esclusivamente il router:
Services: added apache_http TCP start 80 end 80
LAN IP setup: added Address Reservation 192.168.0.2 to Big Red eth0
(see ifconfig for MAC address)
Dynamic DNS: Check Use a Dynamic DNS service
Service Provider: www.DynDNS.org
Host name: xxxxx.kick-ass.com
User name: si c'è
Password: pure questo c'è

E ho visto nel database il primo risultato da un IPN spedito (wow)
Prossima tappa sarà di vedere se posso anche debuggare...

Poi stacco il cavo, e il server non c'è più (tengo delle forbici a
portata di mano per ulteriore sicurezza).

Grazie a tutti.

John

On Nov 13, 6:22 pm, Roberto Resoli <roberto.res...@gmail.com> wrote:
> resisto a tutto, tranne che alle tentazioni [1]
>  [1]http://en.wikiquote.org/wiki/Oscar_Wilde#Lady_Windermere.27s_Fan_.281...

Ma l'ho usato primo io sai: http://groups.google.com/group/jugtaa/browse_thread/thread/e3cada24b948e6d2#

Alla prossima presentazione allora...

John

Roberto Resoli

unread,
Nov 14, 2009, 4:04:02 AM11/14/09
to jug...@googlegroups.com
Il 13/11/09, jhl<jhl.v...@gmail.com> ha scritto:
>
> Posso dire che (almeno per oggi) il problema è risolto.
> Settato /etc/host:
> 127.0.0.1 xxxxx.kick-ass.com
> Settato Apache:
> <VirtualHost *:80>
> ServerName dev.sandbox
> ServerAlias xxxxx.kick-ass.com
>
> #...
> </VirtualHost>
> Il resto ho sistemato usando esclusivamente il router:
> Services: added apache_http TCP start 80 end 80
> LAN IP setup: added Address Reservation 192.168.0.2 to Big Red eth0
> (see ifconfig for MAC address)
> Dynamic DNS: Check Use a Dynamic DNS service
> Service Provider: www.DynDNS.org
> Host name: xxxxx.kick-ass.com
> User name: si c'è
> Password: pure questo c'è
>
> E ho visto nel database il primo risultato da un IPN spedito (wow)
> Prossima tappa sarà di vedere se posso anche debuggare...

benone.

> Poi stacco il cavo, e il server non c'è più (tengo delle forbici a
> portata di mano per ulteriore sicurezza).

:-)

> Grazie a tutti.
>
> John
>
>
> On Nov 13, 6:22 pm, Roberto Resoli <roberto.res...@gmail.com> wrote:
> > resisto a tutto, tranne che alle tentazioni [1]
>
> > [1]http://en.wikiquote.org/wiki/Oscar_Wilde#Lady_Windermere.27s_Fan_.281...
>
> Ma l'ho usato primo io sai: http://groups.google.com/group/jugtaa/browse_thread/thread/e3cada24b948e6d2#

ecco dove l'avevo letto!

> Alla prossima presentazione allora...

se ci sono altri reverse-proxy maniaci in giro, certo!

ciao,
rob

Reply all
Reply to author
Forward
0 new messages