• User

    APACHE2 con IP pubblici e virtual host

    Dist debian 3 sarge
    Apache2
    ip pubblici

    Cosa vorrei fare, utilizzare i domini che puntano al mio ip pubblico come terzo livello utilizzandoli però senza uscire dalla rete privata quando sono ovviamente collegato alla stessa.
    Il mio server è dietro un firewall che effettua un nat completo verso un ip privato, appunto quello del server, ovviamente quanto chiamo il dominio da risolvere il dns a bordo dello stesso server risolve con l'ip pubblico e mi obbliga a visualizzare facendo traffico su rete pubblica. io invece vorrei che quando chiamo lo stesso dominio e sono all'interno della rete (privata) mi risponda senza uscire fuori in modo da avere il massimo delle prestazionii ovviamente.
    Ho provato ad inserire nel dns due domini di terzo livello con nomi diversi ed ip unoo privato e l'altro pubblico ma poi apache si comporta stranamente.

    Grazie


  • Super User

    Il problema, tralasciando la conf dei vhost che presumo sia funzionante, è da reputare alla configurazione del server DNS che non arriva a gestire IP vs nomi imho.

    Hai installato e configurato te il DNS o parli dei DNS inseriti in /etc/resolv.conf ?

    Se parli del secondo allora per la tua LAN dovresti far partire per esempio bind come server DNS per la risoluzione del tuo problema.

    Un link utile:
    http://forum.alproject.org/viewtopic.php?t=238

    Facci sapere chi vincerà... te o il DNS 😄
    PS:> Ho provato ad inserire nel dns due domini di terzo livello con nomi diversi ed ip unoo privato e l'altro pubblico ma poi apache si comporta stranamente.
    In che senso "stranamente"?

    :ciauz:


  • User

    Ti ringrazio per le sempre pronte risposte.
    Il DNS l'ho fatto io con bind. Ti spiego un po meglio il problema.
    Ho creato dei virtual host su apache2. (per esempio su uno stavo provando una webmail. Funzionano) Poi mi sono detto "Perchè buttare un sacco di tempo chiamandoli da "fuori" quando posso chiamarli con un indirizzo locale ed essere molto piu veloce?" cosi volevo sapere come poter creare una sorta di discriminante. Del tipo

    dal mio pc digito sito1.micasa.es mi risponde 192.168.0.2
    da un altro pc sito1.micasa.es mi risponde 80.xxx.xxx.xxx

    oppure dare due nomi differenti pero che fanno capo ad uno stesso percorso.
    Ho provato a configurare i virtual host in qualcosa del tipo

    NameVirtualHost 192.168.0.2

    <VirtualHost 192.168.0.2>
    ServerName sito1.micasa.es
    ServerAdmin
    DocumentRoot /sito1.casamia.it/
    ....
    </VirtualHost>

    <VirtualHost 80.xxx.xxx.xxx>
    ServerName sito.micasa.es
    ServerAdmin
    DocumentRoot /sito1.micasa.es/
    </VirtualHost>

    come questo ne ho fatti altri. il problema è che per esempio se io commetto un errore "chiamo il nome di un virtual host che prevede come indirizzo l'ip interno, quando sto fuori.... mi risponde un altro virtual host. esempio

    da ip 80.xxx.xxx.xxx chiamo sito1.micasa.es invece di sito.micasa.es mi risponde sito3.micasa.es!!!

    Questo è il comportamento strano cui mi riferivo.

    Ho anche provato a mettere due zone nel DNS per differenziare direttamente i virtual host. Ma, se inserisco un altra zona e configuro il secondo file, quando faccio il riavvio di bind, questo non mi si avvia.se cancello da named.conf l'indicazione della nuova zona, tutto funziona nuovamente.

    Non so se il mio obiettivo si è chiarito un tantino.
    ovviamente vorrei che i virtual fossero chiamabili anche dall'esterno.


  • Super User

    Comincio passo passo con quotature, descrizione e relativa descrizione 😉

    Tu dici:

    Del tipo

    dal mio pc digito sito1.micasa.es mi risponde 192.168.0.2
    da un altro pc sito1.micasa.es mi risponde 80.xxx.xxx.xxx

    Caso 1:

    • Sei all' interno della tua LAN col tuo pc ed il tuo server (web/DNS);
    • chiami il tuo VHost e ti risponderà passando prima per il server DNS che hai settato tu e quindi, risolendo il nome ti rimanda all' IP (LAN) del server ed alla sotto dir indicata nella configurazione di Apache che hai settato precedentemente;

    Caso 2:

    • chiami il tuo VHost dall' esterno quindi dovrai avere già delle caratteristiche fisse già implementate ovvero:
    • i DNS sparsi per il mondo devono essere già a conoscenza del fatto che tu hai un IP pubblico in cui dietro potrebbe esserci qualche server e questo a quanto mi dici c'è OK
    • le porte del tuo router, come minimo la 80, deve essere aperta "al pubblico" 😉 (OK|NO) Verifica 😉

    In tutti e due i casi però implica che cmq Apache debba essere configurato ad doc per la fruizione dei VHost, chiamati dall' interno o dall'esterno che sia, mentre il server DNS ha solo la funzione di servire la tua LAN (a meno che tu non sia un ISP e voglia fornire il servizio di DNS anche all'esterno ma non mi sembra il tuo caso ora :2: o meglio i pc che ci lavorano all' interno che quindi dovranno avere settato per la navigazione come primo DNS l' IP del tuo server.

    Nel named.conf ci dovrebbe essere uno spezzone di codice che recita +o- cosi:

        allow-transfer {
            127.0.0.1;
            192.168.0.0/24;
        };
        allow-query {
            127.0.0.1;
            192.168.0.0/24;
        };
    
    

    Dove gli si dice a Bind di fornire il servizio agli IP della tua LAN in questo caso di Classe C (192.168.0.x).

    NOTA: controlla e tieni d'occhio sempre i log per capire dove sta l'inghippo 😄

    Detto questo, con il link che ti ho passato al precedente post e con un buon attacco di debugging passo passo dovresti capire e risalire al tuo problema 😉

    Facci sapere 🙂


  • Super User

    Faccio un up per non sporcare il post precedente.

    Noto cmq che nella direttiva del secondo Vhost che hai configurato hai messo l'IP pubblico? Why? metti l' IP del tuo server, non importa se è uguale all' IP del primo VHost settato perchè sarà già il server DNS che si arrangerà all' interno della tua LAN di fornirti o uno o l'altro VHost come ti acennavo al post precedente 😉

    :ciauz:


  • User

    eccomi!mi metto subito all'opera ma credo sia importante darti qualche altra informazione!

    Iniziamo con le verifiche, il mio firewall/router è OK, le porte che servono sono ben configurate.

    Setto gli indirizzi di risoluzione nel dns con gli ip di classe c. e specifico la direttiva "allow" nel mio named.conf.

    Poi sostituisco l'ip pubblico dal nome dei virtual host con quello privato.

    La cosa che mi preoccupa è questa:

    "In tutti e due i casi però implica che cmq Apache debba essere configurato ad doc per la fruizione dei VHost, chiamati dall' interno o dall'esterno che sia, mentre il server DNS ha solo la funzione di servire la tua LAN (a meno che tu non sia un ISP e voglia fornire il servizio di DNS anche all'esterno ma non mi sembra il tuo caso ora ) o meglio i pc che ci lavorano all' interno che quindi dovranno avere settato per la navigazione come primo DNS l' IP del tuo server."

    Il mio DNS di fatto è pubblico. è allacciato come NS in un dns ufficiale per il mio dominio e di conseguenza io sono autoritativo per mia zona.

    Per questo all'interno del dns e nei virtual avevo un indirizzo pubblico. Pensavo che, utilizzando all'interno del dns una risoluzione del tipo

    server A 192.168.0.2
    sito1 CNAME server
    sito2 CNAME server

    non sarebbe stato possibile utilizzare i siti dall'esterno.

    difatto ho un virtual sul firewall con l'indirizzo pubblico che redirige le richieste al mio indirizzo di rete privato.

    quindi, pensavo fosse necessario una qualche differenziazione tra i due indirizzi. Se qualcuno chiamasse il mio dominio passando per il mio dns riesce ad aprire il sito anche se la risoluzione data dal dns è un indirizzo privato???

    non so se sono stato chiaro, comunque ora mi metto subito all'opera e vi informero sui risultati.

    Grazie tante!!!

    P.S.: mi sa che mi compro un altro pc cosi mi incasino di meno :PpPp


  • Super User

    @odhinn said:

    quindi, pensavo fosse necessario una qualche differenziazione tra i due indirizzi. Se qualcuno chiamasse il mio dominio passando per il mio dns riesce ad aprire il sito anche se la risoluzione data dal dns è un indirizzo privato???

    E' proprio questo il punto che volevo farti capire nel mio precedente post ovvero SE dall' esterno arriva una chiamata al tuo primoVhost.ext o al secondoVhost.ext e SE il tuo router ha la porta 80 (o quella dichiarata nel httpd.conf) aperta e SE apache è configurato per benino per gestire i VHost ALLORA l' utente da internet vedrà o il primo o il secondo VHost che hai settati sul server avendo settato l' IP di classe C che riachiama il tuo server.

    Il server DNS ti permette solo di visualizzare dall' INTERNO della tua LAN quando digiti un www.primoVhost.ext perchè SE NO la chiamata dal tuo browser uscirebbe su internet e tenterebbe di rientrare dal router e ti darebbe la probabile schermata di login del tuo router appunto.
    IMHO

    @odhinn said:

    non so se sono stato chiaro, comunque ora mi metto subito all'opera e vi informero sui risultati.

    Grazie tante!!!

    P.S.: mi sa che mi compro un altro pc cosi mi incasino di meno :PpPp
    Se ti compri un altro pc siamo sempre sul medesimo piano, non cambia alcunchè a differenza di usare più corrente elettrica, aumento della rumorosità delle ventole e calore = aumento dell' entropia della tua stanza :lol: ma per quanto riguarda il lato "risoluzione nomi vs IP" e chiamate da shell o da browser potresti farlo benissimo sia da shell in locale sia con altri espedienti sempre dallo stessso pc che hai ora 😉

    :ciauz:


  • User

    Grazie mille!!

    Avevo bisogno di qualche lucidatina teorica!:) l'entropia della mia stanza immagino sia alle stelle... le ventole???ihhihii hai prese le ventole in ghisa da 12????ecco... ne ho una carrettata ormai sono assuefatto :PpPp

    Comunque, ora il dns è settato come si deve. infatti mi risponde sia dall'interno che dall'esterno!!!Xo, mi resta un problemino su apache2 immagino. Io provo ad approfittare ancora un po della disponibilita 😛

    Adesso chiamando i miei virtual mi rispondono tutti, tranne uno!!!o meglio, il balordo si nasconde :PpPp!!!!Nel senso... ti accennavo alla webmail, se chiamo l'indirizzo della webmail mi risponde il virtual di postfixadmin.... 😕

    Volevo sapere come potevo impedire ad apache2 di mischiarsi le idee... cioè se nel virtual la documentroot è impostata su una directory, per quale motivo lui se ne va a passeggio in un altra????

    E poi, la DocumentRoot in apache2 dove sta???nel file httpd.conf non c'è praticamente nulla, in apache2.conf la voce non esiste e aggiungendola io non ho ottenuto nessun risultato, ho modificato anche il virtual di default ma nessun risutlato!Che sia soltanto quella indicata dentro i virtual?

    E poi, senza che sto qui a darvi troppo fastidio se puoi consigliarmi una guida, un howto un qualunque cosa mi spieghi come poter gestire bene i virtual del tipo, richiesta di autenticazione, accettare solo determinati indirizzi... tutte queste cosette. Mi piacerebbe imparare.

    La cosa che mi fa piu stranire è quella del cambio di directory... assolutamente arbitrario... sicuramente sbaglio io, pero come posso diagnosticare perche mi cambia la dir???

    Mi scuso ancora e vi ringrazio :DDD


  • Super User

    @odhinn said:

    1. Adesso chiamando i miei virtual mi rispondono tutti, tranne uno!!!o meglio, il balordo si nasconde :PpPp!!!!Nel senso... ti accennavo alla webmail, se chiamo l'indirizzo della webmail mi risponde il virtual di postfixadmin.... 😕

    2. Volevo sapere come potevo impedire ad apache2 di mischiarsi le idee... cioè se nel virtual la documentroot è impostata su una directory, per quale motivo lui se ne va a passeggio in un altra????

    3. E poi, la DocumentRoot in apache2 dove sta???nel file httpd.conf non c'è praticamente nulla, in apache2.conf la voce non esiste e aggiungendola io non ho ottenuto nessun risultato, ho modificato anche il virtual di default ma nessun risutlato!Che sia soltanto quella indicata dentro i virtual?

    4. E poi, senza che sto qui a darvi troppo fastidio se puoi consigliarmi una guida, un howto un qualunque cosa mi spieghi come poter gestire bene i virtual del tipo, richiesta di autenticazione, accettare solo determinati indirizzi... tutte queste cosette. Mi piacerebbe imparare.

    5. La cosa che mi fa piu stranire è quella del cambio di directory... assolutamente arbitrario... sicuramente sbaglio io, pero come posso diagnosticare perche mi cambia la dir???

    Mi scuso ancora e vi ringrazio :DDD
    Non devi scusarti, siamo qui per condividere 😉

    1. Secondo me c'è ancora qualcosa che va in conflitto nelle direttive dei VHost sulla conf di Apache.

    2. Imho vedi risposta 1;

    3. Io nel mio httpd.conf ho qualcosa di simile:

    # DocumentRoot: The directory out of which you will serve your
    DocumentRoot "/usr/local/apache2/htdocs"
    
    1. La guida ufficiale di Apache (sapere un po di inglese non guasta mai8 ;)):
      http://httpd.apache.org/docs/

    2. vedi risp numero 1....

    Scusa le risposte ma imho sono un attimo di fretta...magari prox approfondisco i tui dubbi 😉
    :ciauz:


  • User

    Ancora molte grazie!!!

    Cosi ad occhio, i virtual sembrano fatti benino... quanto meno, sono piuttosto "base"!Se ne faccio uno, funziona, faccio il secondo, ok... faccio il terzo... il quarto... e comincia a fare confusione... ho aggiuto anche

    ServerPath

    per la compatibilita con vecchi browser (mi pare) per specificare meglio quale fosse la sua dir... ma qualcosa mi sfugge.

    comincio ad avere il sospetto che ora sia colpa di sugar... adesso quello che chiamo chiamo me risponde lui!non vorrei che non possa girare su virtualhost... anche se ne ignoro la ragione...

    uhmmm.... vi saluto e intanto studio 😄


  • Super User

    @odhinn said:

    omincio ad avere il sospetto che ora sia colpa di sugar... adesso quello che chiamo chiamo me risponde lui!non vorrei che non possa girare su virtualhost... anche se ne ignoro la ragione...

    sugar chi era costui?
    E' uno script? CMS?

    Beh dipende da che mi rispondi ma in linea di massima non ci dovrebbe esser problema a far girare script vari sotto VH.

    Buon lavoro e studio 😉
    :ciauz:


  • User

    rieccomi, finalmente trovo una cosetta di cui poterti informare io :PpPp
    è un programma, open source, per la gestione di impegni, calendario, cose da fare... ecc!

    Comunque, ti dico cosi perchè ho letto da qualche parte che altri software del genere non girano coi Name based. pero non ho trovato nessuna indicazione di sorta riguardo sugar.

    Ti dispiacerebbe mostrarmi una buona config per un virtual host?trovo sempre le due cosette che gia conosco. perche poi so proprio due. non riesco a capire perche mi cambia dir....

    :((((((((((((((


  • Super User

    Una configurazione funzionante la trovi a questo post:
    http://www.giorgiotave.it/forum/linux-e-open-source/15938-sottodomini-con-apache2.html#post127377

    La sto usando non solo con 2 VH ma sono arrivato ad averne una 20 sul mio serverino di casa e del tutto funzionante.

    Per sugar misembra moooolto strano che non ti giri su un VH che cmq è come se avessi un server web dedicato a quel cms/sito stesso.

    Mi son letto per te la documentazione scricapbile qui:
    http://www.sugarforge.org/frs/download.php/1870/SugarOpenSource_InstallGuide_4.5.pdf

    Uppi i file nel tuo spazio web;
    Dai i giusti permessi;
    Apri l'URL per innescare il wizard di installazione con un browser e segui passo passo.

    Nulla di piu semplice.

    Nessun problema di VH o meno.

    Provare per credere.
    :ciauz:


  • User

    Rieccomi!!!
    Allora, Adesso tutto sembra funzionare... 🙂 spero ke continui a farlo 😄
    Dunque... per la configurazione del dns ho utilizzato quella che avevo gia fatto io e ho aggiunto le righe che tu mi hai suggerito in named.conf.

    Ho riconfigurato da capo i virtual host con quella configurazione che mihai linkato e io in effetti non avevo insertito la direttiva <Directorty> </Directory>

    Per quel software, ti ringrazio ma lo utilizzavo già 🙂 funzionava e l'unico inconveniente era che si era impadronito degli altri virtual. al momento è spento. prevedo di accenderlo appena ho un attimo e vedo se tutto continua a funzionare.

    Personalmente, ho scoperto una cosa, o meglio, ho fatto caso ad una cosa che magari è gia nota a tutti 🙂 nella creazione del file dei virtual, usando vi se una riga è tanto lunga da arrivare all'ultima colonna consentita e il cursorino lampeggiante va a capo da se, è necessario dare invio, il cursorino fa una tabulazione sullo stesso rigo e poi con un altro invio si va a capo e si continua con le direttive. altrimenti dando semplicemente tabulazione quando il cursorino scende, apache si incarta. o almeno a me si incarta. mi è capitato in due file, non capivo e ho notato che in pratica la riga non terminava...

    faccio un esempio:

    <VirtualHost ip:port>
    ServerAdmin
    ServerName
    ServerAlias
    DocumentRoot /una_qualunque_cartella/la_sua_sottocartella/dominio
    [] <---- cursore lampeggiante <Directorty>
    ......
    ......
    </Directory>

    </VirtualHost>

    se non si da invio quando il cursore scende da solo, è come se lui tenesse tutto su una riga... credo... non vorrei dire bagianate. ma ne sono discretamente convinto...

    Vorrei chiedere una cosuccia... posso impedire che la risoluzione dei nomi dei virtual restituiscano l'indirizzo ip?

    nslookup sito1.casamia.ex
    Name:
    Address: 192.168.0.3

    è possibile?sicuramente si ma io non so come :DDD mentre mi studacchio un po apache, vi ringrazio e vi saluto 😄


  • User Newbie

    Ciao a tutti 😄
    Sono un nuovo iscritto.
    Volevo chiedervi se è possibile impostare sulla stessa document root (/web) la gestione degli accessi dall'interno e dall'esterno di una rete.
    Mi spiego meglio: Ho inserito all'interno della /web un file .htaccess per la gestione di username e password e vorrei che venisse fuori solamente quando si fa un accesso dall'esterno.
    Tutti gli ip del range 10.1.8.n non devono inserire la password.
    Utilizzo opensuse 10.2.

    Grazie a tutti