Apache et les virtualhost (ou un autre problème?)

Bonjour à tous;

Je viens à vous car j’ai un drôle de problème.
Sur mon serveur, avec adresse ip fixe j’ai un serveur apache qui tourne, même bien sur lequel j’ai des hôtes virtuels. Ca marche depuis les machines de mon réseau interne, et depuis l’extérieur.
Mais j’ai voulu ajouter un autre site personnel, donc j’ai “recopié” la configuration d’un des hôtes virtuels qui fonctionne, changé les répertoires bien sur, relancé apache après avoir utilisé a2ensite, inclus un nom dans mon dns aussi, et même, le site est joignable depuis le réseau interne de la maison.
Je me suis dit “ok, ça marche” jusqu’à ce que j’ai des écho de personnes se plaignant de ne pas avoir accès au site depuis internet!
Je prend mon téléphone portable, je test, et oui: injoignable depuis le Net!!!
J’ai cherché une cause à tout ça, pas de trace dans les log d’apache, sauf celle des accès par le réseau local, je suis même allé jusqu’à tracer ce qui arrive sur l’interface réseau avec tshark!! Et oui, j’ai bien une requête dns pour le site, mais après plus rien!!!
Comment je peux faire pour trouver d’où vient le problème? Un soucis “d’articulation” entre le dns et apache? mais comment le mettre en évidence?
J’avoue ma grande incompétence, la (las?) …!

Si quelqu’un a une idée, je suis preneur!!!

Rémi.

Le plus simple serait de nous fournir ton fichier vhost.
Ensuite c’est ton site de départ qui fonctionner correctement sur le net qui n’est plus accessible , ou le 2ème qui n’est pas accessible depuis internet ? :angry:

Sinon ton fichier Vhost doit ressembler à un truc comme :
<VirtualHost *:80>
ServerName site1.tondomaine.com
DocumentRoot /var/www/site1
/var/www/site1>
Options Indexes FollowSymLinks MultiViews
Allow Override All
Allow from All

<VirtualHost *:80>
ServerName site2.tondomaine.com
DocumentRoot /var/www/site2
<Directory /var/www/site2>
Options Indexes FollowSymLinks MultiViews
Allow Override All
Allow from All

Après sur ton hébergeur de domaine tu fais des redirections de sous-domaine (site1.tondomaine.com ; site2.tondomaine.com) vers l’ip de ta machine host.

Si ton fichier vhost ressemble à ca… le problème viens surement pas de lui.

T’avais déjà des vhosts avant ? Ou c’est en essayant de mettre 2 site sur le même serveur que t’as eu le pb ?

Salut,

Les indiens non ?

Ces vhosts sont donc joignables depuis la toile!

[quote]
Mais j’ai voulu ajouter un autre site personnel, donc j’ai “recopié” la configuration d’un des hôtes virtuels[/quote]

Ce vhost est il réellement conforme en tout point au répertoire /var/www/recopié ?

Un copier/coller que l’on modifie, un oubli, :think: gros comme une poutre dans l’œil … :083

Un ping du ndd fait et ok je présume!

dig ? nslookup ?

/etc/hosts ?

Si je comprends bien, le serveur est sur un réseau local ? Connecté à internet comment ? Il a une adresse publique propre ou est accessible via une redirection NAT ?

Que contient la réponse à cette requête DNS (faite depuis, l’extérieur, on est d’accord) ?

oui, j’aurais pu mettre la config d’apache, je suis c… aussi.

le site de départ, pour le domaine:

NameVirtualHost 81.56.179.119:80
<VirtualHost *:80>
	ServerAdmin remi@suinot.org
	
        DocumentRoot /var/www/suinot.org/
	<Directory />
		Options FollowSymLinks
		AllowOverride All 
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All 
		Order allow,deny
		allow from all
		# This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
		RedirectMatch ^/$ /suinot.org/
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>
	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn
	ErrorLog /var/log/apache2/error.log
	CustomLog /var/log/apache2/access.log combined
	ServerSignature On
</VirtualHost>

en premier, le vhost qui marche:

<VirtualHost remi.suinot.org:80>
	ServerName remi.suinot.org
        ServerAdmin remi@suinot.org
        DocumentRoot /home/remi/public_html/
	ServerAlias remi.suinot.org

        <Directory />
                Options FollowSymLinks
                AllowOverride All 
        </Directory>

        <Directory /home/remi/public_html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn
        ErrorLog /var/log/apache2/remi.error.log
        CustomLog /var/log/apache2/remi.acces.log combined
</VirtualHost>

le vhost qui marche pas:

<VirtualHost eleonore.suinot.org:80>
        ServerName eleonore.suinot.org
        ServerAdmin eleonore@suinot.org
	ServerAlias eleonore.suinot.org
        DocumentRoot /home/eleonore/public_html/

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/eleonore/public_html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>


	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel debug
        ErrorLog /var/log/apache2/eleonore.error.log
        CustomLog /var/log/apache2/eleonore.acces.log combined
</VirtualHost>

voici un “schema” de mon réseau:

 [eth0 (ip fixe via freebox) ] <-+->pc avec bind9 + apache + postfix + mysql 
                                 |
 [eth1 (vers le réseau local)] <-+ 

sur eth1 est connecté une fonera pour un réseau wifi.

correction/édition: bon, ben en fait, mes deux vhost ne sont plus atteignable depuis que j’ai fait mes modifications… j’en ai marre…

D’après quelques tests, la gestion DNS de ton domaine est méchamment en vrac.

  • incohérence entre l’enregistrement NS du secondaire dans la délégation (ns6.gandi.net) et dans la zone sur les deux serveurs DNS faisant autorité (custom2.gandi.net qui n’existe pas d’après Gandi)
  • ton DNS primaire ne répond pas en UDP
  • les numéros de série des SOA sur le primaire et le secondaire ne correspondent pas, à mon avis il y a eu une erreur sur le nouveau numéro de série sur le primaire…

En résumé, le secondaire n’est pas à jour et ne connaît pas le nouveau site, et le primaire ne répond pas en UDP. Pas pour rien que je demandais ce que ton DNS répondait, visiblement.

[quote=“PascalHambourg”]D’après quelques tests, la gestion DNS de ton domaine est méchamment en vrac.

  • incohérence entre l’enregistrement NS du secondaire dans la délégation (ns6.gandi.net) et dans la zone sur les deux serveurs DNS faisant autorité (custom2.gandi.net qui n’existe pas d’après Gandi)
  • ton DNS primaire ne répond pas en UDP
  • les numéros de série des SOA sur le primaire et le secondaire ne correspondent pas, à mon avis il y a eu une erreur sur le nouveau numéro de série sur le primaire…

En résumé, le secondaire n’est pas à jour et ne connaît pas le nouveau site, et le primaire ne répond pas en UDP. Pas pour rien que je demandais ce que ton DNS répondait, visiblement.[/quote]

Merci, je vais donc vois par là, déjà!
Je vais tous reprendre à zéro pour le dns.

Pour pouvoir faire des tests de mon côté, comment as tu fait tes tests, s’il te plait?

[code]$ dig +trace ns suinot.org

suinot.org. 86400 IN NS ns6.gandi.net.
suinot.org. 86400 IN NS master.suinot.org.
;; Received 92 bytes from 2001:500:48::1#53(b2.org.afilias-nst.org) in 71 ms

suinot.org. 86400 IN NS master.suinot.org.
suinot.org. 86400 IN NS custom2.gandi.net.
;; Received 96 bytes from 217.70.177.40#53(ns6.gandi.net) in 70 ms[/code]
L’avant-dernière réponse affiche les DNS définis dans la délégation de la zone parente .org, et la dernière réponse affiche les DNS définis dans ta zone.

$ host custom2.gandi.net. Host custom2.gandi.net. not found: 3(NXDOMAIN)
Sans commentaire.

$ host -t soa suinot.org. ns6.gandi.net. ... suinot.org has SOA record master.suinot.org. admin.suinot.org. 2011101901 10800 3600 604800 38400
Le numéro de série de la zone sur le serveur secondaire de Gandi est 2011101901.

[code]$ host -t soa suinot.org. master.suinot.org.
;; connection timed out; no servers could be reached

$ host -Tt soa suinot.org. master.suinot.org.

suinot.org has SOA record master.suinot.org. admin.suinot.org. 201211901 10800 3600 604800 38400[/code]
Pas de réponse de ton serveur primaire en UDP. En TCP, le numéro de série de la zone est 201211901. Visiblement, il manque un chiffre, ce qui fait qu’il est inférieur à celui sur le serveur secondaire qui ne peut donc se mettre à jour.

[code]$ host -T eleonore.suinot.org. master.suinot.org.

eleonore.suinot.org has address 81.56.179.119

$ host eleonore.suinot.org. ns6.gandi.net.

Host eleonore.suinot.org. not found: 3(NXDOMAIN)[/code]
Ton primaire connaît le nouveau nom de domaine eleonore mais pas le secondaire, qui est prévisible puisque la zone ne s’est pas mise à jour.

Résultat des courses : le serveur primaire à jour ne répond pas en UDP alors que ces requêtes sont normalement faites en UDP, et le serveur secondaire pas à jour ne connaît pas ce nom de domaine. Aucune chance que ce site soit accessible. Accessoirement, l’absence de réponse en UDP peut empêcher le serveur DNS secondaire de se mettre à jour.
Première chose à faire : trouver pourquoi le primaire ne répond pas en UDP, depuis l’extérieur je suppose puisqu’a priori ça marche depuis le réseau local. Donc probablement un problème de filtrage ou redirection sur la machine qui fait routeur.
Ensuite, corriger le numéro de série du SOA et le NS secondaire dans la zone sur le serveur primaire et la recharger.

Et je n’en ferai aucun… :079

Voila, j’ai corrigé effectivement pas mal d’erreur, celle que tu me donne et quelques erreurs par rapport à la doc trouvé ici: http://wiki.debian.org/fr/Bind9.
Pour l’UDP, ma première réaction a été de vérifier sur le serveur si j’avais bien named sur le port 53:

# netstat -pan | grep named
tcp        0      0 192.168.3.1:53          0.0.0.0:*               LISTEN      1346/named      
tcp        0      0 81.56.179.119:53        0.0.0.0:*               LISTEN      1346/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1346/named      
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1346/named      
udp        0      0 192.168.3.1:53          0.0.0.0:*                           1346/named      
udp        0      0 81.56.179.119:53        0.0.0.0:*                           1346/named      
udp        0      0 127.0.0.1:53            0.0.0.0:*                           1346/named      
unix  2      [ ]         DGRAM                    4119     1346/named          

Mais c’est toujours le même problème: le test est fait à l’intérieur du réseau, et si le problème vient d’iptables je ne le vois pas par ce test!!! Reste à revoir mes règles iptables.

Je te remercie beaucoup pour ton analyse!

Rémi.

Edit: Et je passe donc en résolu!!! Car cela fonctionne tout de suite beaucoup mieux!

Salut,

As tu essayé de passer tous tes vhost en *:80 et donc de supprimer la directive VirtualHostName tonIP:80 car c’est un peu le bazars d’un coté tu met un VirtualHostName avec une IP public alors que ton serveur ( et ta carte réseau ) est sur une IP privée. C’est une hypothèse.
J’ai toujours utilisé des *:80 pour mes vhost sans jamais avoir de problème par contre si tu veux faire du ssl avec plusieurs certificat différent tu es obligé d’utiliser VirtualHostName tonIP:80
Si tu utilises plusieurs adresse ip sur le même serveur tu peux toujours utiliser monIP:80 dans tes vhosts

Tiens nous au courant.
Max

Oups résolu, j’arrive après la guerre :075