Le pare-feu Windows a le port 80 ouvert mais empêche Apache d'établir des connexions

11

J'ai une machine Windows 7 qui dessert très peu (mais c'est important!) De pages. J'ai une exception qui autorise tout trafic vers le port 80 *, mais Apache 2.2 ne peut toujours pas servir les pages (bien que je puisse les voir depuis la machine elle-même). Si je désactive complètement le pare-feu Windows, je peux envoyer une requête ping à la boîte et charger des pages.

Que dois-je d'autre configurer pour qu'Apache puisse faire son travail?

* En fait, la même chose se produit même si je change l'exception à "tous les ports" plutôt qu'à 80.

Charles
la source
3
1. Arrêtez d'utiliser ping comme outil de test de service. Que vous puissiez envoyer une requête ping à l'hôte ou non n'a pas d'importance si le site Web est en cours d'exécution et accessible. 2. À quel profil réseau est actif dans le pare-feu Windows et à quel profil réseau votre règle est-elle liée?
joeqwerty
@joeqwerty: Je mentionne ping uniquement pour fournir des informations supplémentaires.
Charles

Réponses:

10

Que le port 80 soit ouvert ou non sur votre pare-feu, cela ne signifie pas que le ping commencera à fonctionner si Apache fonctionne correctement. Ping utilise ICMP qui est son propre protocole qui doit être ouvert sur le pare-feu afin de recevoir des réponses ping de votre machine. Alors ne comptez pas sur ping pour vérifier si votre configuration apache / configuration de pare-feu fonctionne.

En réponse à votre règle de pare-feu pour TCP 80, accédez aux propriétés de votre règle et vérifiez si les 3 cases à cocher (Domaine, Privé, Public) sont cochées, sinon cochez-les. entrez la description de l'image ici

Voici un HOWTO avec les étapes exactes à suivre pour ouvrir le port 80 sur Windows 7: lien

Mise à jour:

Veuillez également vérifier si vous ne bloquez pas le processus apache lui-même avec le pare-feu Windows.
1. Accédez au Panneau de configuration
2. Sélectionnez Système et sécurité
3. Dans la section Pare-feu Windows, sélectionnez Autoriser un programme via le pare-feu Windows .
entrez la description de l'image ici
4. En décochant la case à gauche du nom de l'application, vous ne pouvez pas accéder aux ressources réseau, tout en la cochant, vous autorisez l'accès.
entrez la description de l'image ici
Si Apache n'est pas répertorié, vous pouvez cliquer sur le bouton Autoriser un autre programme… pour l'ajouter, puis cocher les cases sous Domicile / Travail et Public.

George Tasioulis
la source
Tous les trois sont contrôlés. Le site Web ne s'ouvrira pas dans un navigateur (sauf sur le serveur lui-même).
Charles
1
@Charles: Dans ce cas, procédez comme suit: 1. Activez la journalisation du pare-feu sur la machine Windows 7. 2. Installez un programme de capture de paquets sur la machine Windows 7. 3. Démarrez une capture. 4. Essayez de parcourir le site Web à partir d'une autre machine. 5. Arrêtez la capture et inspectez-la et le journal du pare-feu pour des indices sur ce qui se passe.
joeqwerty
Êtes-vous sûr d'avoir créé la règle Inbound Rulesdans le volet gauche?
George Tasioulis
@Charles, veuillez vérifier ma mise à jour.
George Tasioulis
1
@George: C'est ça. Autoriser "Monitor Apache Servers" (en plus de l'exception du port 80) l'a fait fonctionner.
Charles
2

Vérifiez le service "Cache de branche" et arrêtez-le s'il est en cours d'exécution.

Sergey
la source
1

Si la désactivation du pare-feu résout entièrement le problème, mais vos règles d'exception ne le font pas, alors je me risquerais à dire que vos exceptions sont défectueuses.

Selon Microsoft , la première étape du dépannage des problèmes de pare-feu consiste à vérifier le profil actif (public, privé ou domaine).

La première étape du dépannage des problèmes du pare-feu Windows consiste à vérifier quel profil est actif. Le Pare-feu Windows avec fonctions avancées de sécurité est une application compatible avec la localisation réseau. À mesure que les emplacements réseau auxquels l'ordinateur est connecté changent, le profil du pare-feu Windows change. Les profils décrivent les paramètres et les règles du pare-feu Windows qui sont appliqués en fonction du type d'emplacement réseau des connexions réseau actives.

Donc, une possibilité est que vous avez fait la bonne règle mais dans le mauvais profil.

J'espère que cela pourra aider.

Somantra
la source
Bonne pensée, +1. Ce n'est pas mon problème mais j'ai pu voir quelqu'un faire cette erreur.
Charles
0

Votre httpd.conf se limite probablement aux clients sur l'hôte local ou le sous-réseau local uniquement.

Dans votre ensemble httpd.conf:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

et peut-être aussi celui-ci:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>
djangofan
la source
Pas le problème, car si je désactive le pare-feu, le problème disparaît. (De plus, avant de passer à Win7, le même httpd.conf a bien fonctionné pendant des années.)
Charles
0

Votre pare-feu ne permet à aucune nouvelle connexion de partager des informations sans votre consentement. La seule chose à faire est de donner votre consentement à votre pare-feu.

  1. Accédez aux paramètres du pare-feu dans le Panneau de configuration
  2. Cliquez sur Paramètres avancés
  3. Cliquez sur Règles entrantes et ajoutez une nouvelle règle.
  4. Choisissez «Type de règle» à mettre en communication.
  5. Autorisez cela pour tous les programmes.
  6. Autorisez cette règle à être appliquée sur tous les profils, c'est-à-dire domaine, privé, public.
  7. Donnez un nom à cette règle.

C'est ça. Désormais, un autre PC et mobiles connectés sur le même réseau peuvent accéder aux sites locaux. Commençons le développement.

Surjeet Verma
la source