Impossibile accedere ai siti in un server LAMP da altri computer

19 risposte [Ultimo contenuto]
Ritratto di FabioB
FabioB
(Junior)
Offline
Junior
Iscritto: 04/10/2015
Messaggi: 12

Buongiorno a tutti,
sono sia nuovo del forum che in particolare di Debian.
Ho voluto creare un web server web utilizzando Debian, lxde per la precisione.
Ho installato e configurato LAMP ed in locale funziona tutto a dovere il problema si pone quando cerco di accedere da un altro computer ai siti sul web server il quale non riesco a raggiungere tramite il browser, nessun browser.
Al file /ect/apache2/apache2.conf non ho apportato nessuna modifica così come a quello /ect/apache2/ports.conf insomma ho lasciato tutto come da installazione "originale".
Ho come la sensazione che ci sia qualcosa come un firewall (che non so configurare eventualmente) che blocca l'accesso.
Ho fatto molte ricerche anche in questo forum ma non ho trovato purtroppo risposte.
Qualcuno mi potrebbe dare qualche informazione? Grazie!

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2913

Dovresti fornire qualche informazione in più sulla connessione in rete del tuo server e del PC da cui tenti di accedere.

Ritratto di FabioB
FabioB
(Junior)
Offline
Junior
Iscritto: 04/10/2015
Messaggi: 12

Uhm vediamo quello che posso fare :\
Il server Debian è cablato ed ha un ip statico, è installato virtualizzato sull'hypervisor "Xen Server". Ho installato Debian 8.2 come dicevo con il desktop lxde, LAMP e null'altro. Non ho fatto nessuna modifica a nessun file, permessi o quant'altro: nessuna modifica.
Il computer da cui tento di connettermi al server ha Windows 7, configurato anch'esso con IP statico, non riesco a collegarmi né con Internet Explorer né con Firefox da cui provo utilizzando l'IP privato del server Debian.
Vorrei precisare che con CentOS riesco a creare server web senza nessun problema ed esclusivamente da shell.
Non saprei cos'altro dire, spero di aver detto tutto.

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

Come è configurata l'interfaccia di rete nella macchina virtuale sull'hypervisor? Bridge, NAT, host only, ecc.? Se è in NAT hai bisogno di "nattare" la porta 80 altrimenti non riesci ad entrare nella VM. Se è in bridge, invece, non dovresti avere problemi.

Debian. Be unique.

Ritratto di FabioB
FabioB
(Junior)
Offline
Junior
Iscritto: 04/10/2015
Messaggi: 12

Ciao e grazie per la risposta. Su Xen Server l'interfaccia LAN non è opzionabile, c'è un solo modo cui non è dato sapere come sia.
Come dicevo, il server CentOS funziona a dovere, sempre virtualizzato su Xen Server, ma ciò non sarebbe stato possibile se non avessi aperto il firewall ai servizi http e https tramite il comando "firewall-cmd", comando che, nella mia ignoranza di Debian, oserei dire non esistere su Debian anche se nelle molteplici guide che ho consultato sulla creazione di un server web con LAMP, ma anche tante altre, non si fa mai riferimento a firewall o simili.

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

Su Debian di default non c'è nessun firewall in ingresso ma alcuni servizi sono configurati per rispondere solo su localhost.

Bisogna capire se il web server è esposto su tutte le interfacce o solo su alcune e se dall'esterno dell'hypervisor c'è la possibilità di accedere.

Prova ad eseguire questo comando (da root):

netstat -tap |grep LISTEN

e postare il risultato (ci mette un po', non interromperlo). Serve per capire quali processi sono in ascolto e su quali interfacce.

Ma non accedi solo ad Apache o anche agli altri servizi? Se fai un port scan dall'esterno della VM (quindi dalla macchina dalla quale stai provando a connetterti al web server) cosa trovi?

Prova quindi (dall'esterno) ad eseguire il seguente comando (anche questo ci mette un po'):

nmap -Pn IPADDRESS

dove IPADDRESS è l'IP esterno della VM (quello lo sai solo tu) e posta il risultato.

Debian. Be unique.

Ritratto di FabioB
FabioB
(Junior)
Offline
Junior
Iscritto: 04/10/2015
Messaggi: 12

tcp        0      0 *:sunrpc                *:*                     LISTEN      480/rpcbind     
tcp        0      0 *:ssh                   *:*                     LISTEN      505/sshd        
tcp        0      0 localhost:ipp           *:*                     LISTEN      577/cupsd       
tcp        0      0 localhost:smtp          *:*                     LISTEN      1151/exim4      
tcp        0      0 *:35045                 *:*                     LISTEN      490/rpc.statd   
tcp        0      0 localhost:mysql         *:*                     LISTEN      771/mysqld      
tcp6       0      0 [::]:38956              [::]:*                  LISTEN      490/rpc.statd   
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN      480/rpcbind     
tcp6       0      0 [::]:http               [::]:*                  LISTEN      647/apache2     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      505/sshd        
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN      577/cupsd       
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN      1151/exim4

Ho appena installato Debian e solo ed esclusivamente LAMP, per ora mi servirebbe come server web, non ho configurato nessun altro servizio. Il computer da cui tento di accedere ha Windows 7, per cui il comando nmap non lo posso lanciare. Da CentOS invece nmap mi dice: 1 IP address (0 hosts up) scanned.

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2913

Non ho familiarità con Apache, né con i server web in genere, ma direi che Apache è in ascolto sulla porta 80 (http) ma solo usando l'indirizzo IPv6. Nulla sui classici indirizzi IPv4, altrimenti ci sarebbe una riga così:

tcp    0    0    *:http    *:*    LISTEN    647/apache2

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

mcortese ha scritto:

Non ho familiarità con Apache, né con i server web in genere, ma direi che Apache è in ascolto sulla porta 80 (http) ma solo usando l'indirizzo IPv6. Nulla sui classici indirizzi IPv4, altrimenti ci sarebbe una riga così:

tcp    0    0    *:http    *:*    LISTEN    647/apache2

Ormai è così sulle installazioni Debian di Apache: c'è solo l'ascolto sulla IPv6 ma i socket IPv6 sono in grado di gestire anche il protocollo IPv4 tramite un routing interno, quindi in situazioni normali funziona lo stesso.

Ma......

qui c'è un hypervisor di cui l'autore del thread non vuol dirci in che modo sono configurate le interfacce. Potrebbe darsi che sia indirizzato solo il protocollo IPv4 all'interno della VM, quindi vale la pena fare un tentativo.

Disabilita IPv6 e mettiti in ascolto solo su IPv4. La cosa si risolve facilmente modificando il file /etc/apache2/ports.conf sostituendo tutte le porte in "Listen" con "0.0.0.0:PORTA" (maggiori dettagli qui: http://httpd.apache.org/docs/2.4/bind.html#ipv6)

Es. se c'è "Listen 80" devi sostituire con "Listen 0.0.0.0:80", lo stesso fai per la 443. Poi fai ripartire il web server, ti assicuri che sia in ascolto sulla porta 80 tcp4 con il comando netstat citato prima e riprova. Esegui il comando netstat anche sulla macchina CentOS sulla quale ti funziona, giusto per capire se lì Apache è in ascolto sul protocollo IPv4 o meno.

Debian. Be unique.

Ritratto di FabioB
FabioB
(Junior)
Offline
Junior
Iscritto: 04/10/2015
Messaggi: 12

Ho risolto! O meglio ho capito il problema ma sembra che faccia come vuole: per sbaglio ho cliccato col destro sull'icona di rete vicino all'orologio ed in "Info connessione" mi da un IP diverso da quello che ho configurato staticamente ossia mi dice che l'IP è quello che gli aveva assegnato il DHCP appena installato Debian, devo cliccare "Disconnetti" sul gestore di rete e cliccare "Connetti" e allora ha l'IP che ho configurato manualmente. Il problema è che devo fare questa cosa ad ogni riavvio. Cosa sbaglio?

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

FabioB ha scritto:

Ho risolto! O meglio ho capito il problema ma sembra che faccia come vuole: per sbaglio ho cliccato col destro sull'icona di rete vicino all'orologio ed in "Info connessione" mi da un IP diverso da quello che ho configurato staticamente ossia mi dice che l'IP è quello che gli aveva assegnato il DHCP appena installato Debian, devo cliccare "Disconnetti" sul gestore di rete e cliccare "Connetti" e allora ha l'IP che ho configurato manualmente. Il problema è che devo fare questa cosa ad ogni riavvio. Cosa sbaglio?

Cioè, fammi capire: stavi puntando ad un indirizzo sbagliato per questo non riuscivi a connetterti? Vabbè, va', facciamo finta di niente...

Per quanto riguarda la configurazione della rete: sei tu che sai come l'hai configurata, noi non possiamo saperlo. O metti il DHCP o quello statico. Se metti quello statico non ti ritrovi quello dinamico a meno che tu non stia usando due gestori di rete paralleli configurati in maniera diversa.

Debian. Be unique.