Jump to content

Recommended Posts

Salve a tutti, ho riscontrato un piccolo problema durante l'installazione di alcuni servizi web come apache.

Installando il tutto in una vps con le config di rete già impostate, creo i virtualhosts di apache con l'ip pubblico e tutta va a meraviglia.

Ho fatto ciò con il mio ip pubblico di casa, sul mio bel pc in locale e i virtualhost non andavano, mentre se provavo ad inserire l'ip di rete nei virtualhost ecco che tutto funzionava alla perfezione. Allora ho creato un'interfaccia di rete virtuale del tip eth0:1 con ip pubblico. Se accedo ai siti web da locale o da un pc collegato alla rete di casa, tutto va perfetto, i siti sono finalmente visibili. Mentre chi prova ad accedere dall'esterno non vede assolutamente nulla. Se rimetto nei virtualhosts sto benedetto ip di rete invece, anche dall'esterno tutto va perfetto.

Ho assolutamente bisogno però di farlo funzionare con l'ip pubblico, è possibile? come? quali configurazioni mi mancano?

Share this post


Link to post
Share on other sites

riepilogando, tu hai dei virtualhost configurati in locale su un server a casa e vuoi che vengano raggiunti dall'esterno, esatto?

questo pc che fa da "server" com'è collegato ad internet? sei dietro un NAT?

le richieste sulla porta 80 vengono correttamente instradate verso questo pc nella rete locale che fa da server?

 

come fai dall'esterno a risolvere i nomi dei virtualhost? hai configurato un dns che punta i nomi a questo tuo ip pubblico?

 

Davide

Share this post


Link to post
Share on other sites

Certamente... ti ringrazio per il tuo interesse.

Il server che ho a casa, che utilizzo per i vari test, è collegato ad un router netgear provvisto di firewall. E' tutto instradato correttamente.

Spiego meglio il mio problema:

Se dall'esterno accedo al mio server, ovvero tramite un nome a dominio configurato correttamente come virtualhost associato all'ip locale del pc, la pagina mi viene caricata correttamente, con benevenuto su nomedominio.com! Mentre se nel virtualhost gli configuro l'ip pubblico, mi viene visualizzato apache2-default!! Non è pertanto un problema di raggiungibilità.

Ho pensato pertanto che volesse un'interfaccia di rete virtuale con ip pubblico configurata. Allora ho configurato il mio ip pubblico nelle interfacce di rete!!! Finalmente lo vedo funzionare... dico ok!!! bene!!! (Avevo solo provato ad accedere tramite un altro pc collegato alla rete, ma inserendo ovviamente nel browser il nome a dominio associato al server)... Problema!!! Dall'esterno viene visto sempre apache2-default!!!

Mi incaXXXXo, e penso manca qualcosina!! Ma cosa?

I dns sono configurati correttamente, ma non mi sto appoggiando comunque ai miei dns, ho solo creato un record A nel pannello DNS del provider del dominio! Con un record A e mio IP pubblico dovrebbe funzionare comunque e non devo obbligatoriamente utilizzare i miei dns per il dominio, perchè altrove funziona alla perfezione!

 

Anticipatamente ringrazio!!!

Share this post


Link to post
Share on other sites

se sei dietro il NAT, devi usare VirtualHost * (o *:80, o IP_PRIVATO o IP_PRIVATO:80), non devi usare l'IP pubblico né tantomeno aggiungerlo come alias dell'interfaccia.

 

per quanto riguarda poi la raggiungibilità da fuori accederai con http://www.dominio.com (che deve puntare all'IP pubblico), e da dentro generalmente devi usare per forza l'IP privato (forza l'associazione di http://www.dominio.com sull'IP privato via hosts o con un server DNS interno ad hoc), tranne in alcuni casi come router Zyxel e "ip loopback on" che permette di raggiungere l'IP pubblico anche dalla LAN spedendo la richiesta al server in DMZ / all'IP del port forwarding.

 

 

ciao

Share this post


Link to post
Share on other sites

Ok, ti ringrazio... sicuramente o non ci capiamo, o non hai mai affrontato questo problema!!! Scusami tanto, tu come faresti ad associare 2 ip pubblici all'interno dello stesso server con una sola scheda di rete?? E pertanto poi gestire alcuni virtualhost con un ip pubblico ed altri con un altro ip pubblico??

Se il problema sta nel router, mi configuro il mio bel cisco, anche se credo che il problema non sta lì, non vorrei stare a perdere tempo con quel bel routerino che mi guarderò più avanti con calma!!! Comunque per tua informazione, se io non configuravo l'ip pubblico come alias, non vedevo nessun virtualhost nemmeno da pc della stessa rete!!!

Certamente so che tutto funziona con l'ip privato anche perchè avevo già detto che tutto funzionava!!! A me interessa metter l'ip pubblico come virtualhost dato che vedo che servizi professionali di dedicati ecc sono configurati per funzionare con l'ip pubblico nel virtualhost.

Se mi dici che è strettamente necessario montare su un buon router, metto il cisco!!

Share this post


Link to post
Share on other sites

Dimenticavo, il mio router mi consente di inviare le richieste a server DMZ!!! Non l'ho abilitato in quanto ho fatto un forwarding di tutte le porte che mi interessavano all'ip privato del server!

Nelle istruzioni del manuale del router, mi dice che qualora non voglia perder tempo reindirizzando le connessioni alle porte scelte verso l'ip privato, posso utilizzare server DMZ! Poi su questo non mi sono mai documentato, quindi non saprei...

Share this post


Link to post
Share on other sites

avevo capito che possedevi un solo IP pubblico, in quel caso se eri dietro un router dovevi usare per forza IP privato, oppure metterlo in bridge e poi condividere la connessione (eventualmente) per gli altri computer.

 

dovresti spiegarci la tua topologia di rete (NAT attivo o no, in pratica utilizzo di IP privati o pubblici nella scheda di rete..).

 

se hai subnet, diciamo di 8 IP e quindi ad esempio 1.2.3.8/29 la situazione sarà la seguente:

 

- 1.2.3.8 indirizzo del network;

- da 1.2.3.9 a 1.2.3.14 indirizzi IP pubblici usabili (uno, generalmente il primo, va associato al router);

- 1.2.3.15 broadcast;

 

è sufficente quindi disattivare il NAT dal router, così potrai associare a tutti i PC in rete un (o più) IP e relativo gateway (1.2.3.9) con netmask 255.255.255.248.

 

così potrai usare lo stesso indirizzo IP, sia per la rete che per internet, visto che gli indirizzi saranno raggiungibili da entrambi i lati.

 

il problema è poi per le condivisioni di files e stampanti: dovrai filtrare gli IP da cui saranno raggiungibili, tramite firewall.

 

Ciao

Share this post


Link to post
Share on other sites

Scusami tanto, ma se dall'esterno, apache è raggiungibile, ovvero compare apache2-default, perchè non viene visualizzato il virtualhost? e perchè dall'interno l'ip pubblico funziona correttamente? Cioè io non riesco bene a capire il motivo! Ti ringrazio che stai rispondendo, ma capisci me, se non capisco che cosa vuoi dirmi, ovvero perchè devo agire in questo modo, me ne faccio nulla delle tue risposte... Ho necessità di imparare e capire... Ti ringrazio nuovamente!

Comunque io IP ne ho solo uno!! Facevo un esempio per cercare di farti capire qual era la mia domanda!

 

Allora, io ho il firewall attivo, però ho forwardato le richieste all'ip privato del server! Le impostazioni dell'ip pubblico sono associate al router, che poi sarebbe il gateway 192.168.0.1, mentre il server 192.168.0.46.

 

Il server è visibile dall'esterno!!!!!

 

Ora, hai presente le configurazioni che vengono fatte su una vps con virtuozzo? dove ti configurano gli ip pubblici come interfacce di rete virtuali? Lì funzionano i virtualhost con ip pubblico!!!

Share this post


Link to post
Share on other sites

1 IP pubblico e più PC collegati al router per accedere al router significa NAT.

 

Questo significa che il server avrà un indirizzo IP privato, come ha già ora.

 

Sebbene sia raggiungibile dall'IP pubblico, perchè c'è stato un forward della porta 80/tcp, Apache "vede" la richiesta arrivare verso 192.168.0.46 e non verso l'indirizzo IP pubblico a causa del NAT, e quindi se metti il VirtualHost con IP pubblico non corrisponderà mai e vedrai sempre apache2-default.

 

ci sono diversi tipi di soluzioni:

 

- imposti * come VirtualHost se non vuoi far vedere l'IP privato (ma si vedrebbe da ifconfig);

 

- configuri il router in bridge e lo fai funzionare come modem; l'IP pubblico verrà assegnato direttamente alla macchina e potrai, di conseguenza, usare VirtualHost con l'IP pubblico. In questo caso per permettere ancora agli altri (eventuali) PC collegati devi condividere la connessione (ICS su Windows, iptables su Linux);

 

- come sopra ma usando un modem (preferibilmente ethernet);

 

- se il server è Linux c'è una sysctl da modificare per far "bindare" i servizi anche su IP non esistenti: in questo caso però probabilmente NON funzionerà perchè il NAT riscrive l'indirizzo di destinazione in 192.168.0.46;

 

- forse ci si può ingegnare e con qualche barbatrucco assegnare l'IP pubblico sia al server che al modem, riscrivendo il pacchetto in locale con iptables DNAT/REDIRECT; quest'ultima soluzione al momento è al di sopra delle mie conoscenze, ma quando ho tempo sono curioso di vedere se può funzionare.

 

Ciao

Share this post


Link to post
Share on other sites

credo che nel tuo caso la soluzione più veloce sia quella di editare il file di configurazione di Apache e, come ti suggeriva anche niko, modificare l'attributo del virtualhost come segue:

 

<VirtualHost *:80>

etc....

</VirtualHost>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×