7 votes

Port 80 non accessible Amazon ec2

J'ai démarré une instance Amazon EC2 (Linux Redhat)... Et Apache également.

Mais quand j'essaie :

http://MyPublicHostName

Je n'obtiens aucune réponse.

Je me suis assuré que mon groupe de sécurité autorise l'accès au port 80.
Je peux atteindre le port 22 avec certitude, car je suis connecté à l'instance via ssh.
Dans l'Instance Amazon EC2 Linux, quand je le fais :
$ wget http://localhost
Je reçois une réponse. Cela confirme qu'Apache et le port 80 fonctionnent bien.

Puisque Amazon démarre les instances dans le VPC, dois-je faire quelque chose à cet endroit ? En fait, je ne peux même pas faire un ping à l'instance, bien que je puisse y accéder par ssh !

Des conseils ?

EDITAR :
Notez que j'avais déjà modifié le fichier /etc/hosts pour que l'installation de 389-ds (ldap) fonctionne.

Mon fichier /etc/hosts ressemble à ceci (les adresses IP sont indiquées comme w.x.y.z )
127.0.0.1 localhost.localdomain localhost
w.x.y.z ip-w-x-y-z.us-west-1.compute.internal
w.x.y.z ip-w-x-y-z.localdomain

0 votes

Si vous changez le port Apache du port 80, cela fonctionne-t-il ? Un wget sur localhost va bien sûr fonctionner, car il s'agit de localhost, ce qui prouve simplement que le service est configuré sur 127.0.0.1.

0 votes

J'ai modifié httpd.conf pour qu'apache fonctionne sur le port 8080 (Listen 0.0.0.0:8080), redémarré apache, mis à jour le groupe de sécurité amazone ec2 pour autoriser le port 8080. Mais encore une fois, cela ne fonctionne pas via le navigateur sur mon bureau. (mais wget localhost:8080 travaux)

0 votes

Avez-vous fait en sorte qu'Apache soit visible sur autre chose que 127.0.0.1 ? Il semble que non, puisque vous avez confirmé que ce n'est pas un problème de port. Avez-vous déjà configuré une installation Apache ?

3voto

filype Points 143

Par défaut, le pare-feu RedHat bloque certains ports, dont le port 80. Ceci s'ajoute au pare-feu configuré sur Amazon AWS via le groupe de sécurité.

Vous pouvez personnaliser le pare-feu pour qu'il autorise votre trafic HTTP.

$ sudo system-config-firewall-tui

firewallhttpconfigforredhat

Une autre option consiste à désactiver complètement le pare-feu interne. Cependant, assurez-vous de savoir ce que vous faites.

0 votes

Cela ressemble à quelque chose qu'on ne devrait pas faire. On pourrait tout aussi bien ouvrir les ports nécessaires à la place, en donnant une sécurité en couches.

0 votes

Vous avez raison, à partir du menu, vous pouvez facilement personnaliser le système pour n'autoriser que votre trafic HTTP.

1voto

preetam Points 53

Si vous n'avez pas touché aux paramètres du groupe de sécurité auparavant, ils sont fermés.

  • Tout d'abord, vous devez trouver à quel groupe de sécurité votre serveur est assigné.
  • Dans la liste des instances, cliquez sur le serveur, puis vous voyez la description de l'instance ci-dessous
  • Dans la colonne de droite, il y a le nom du groupe de sécurité. Sous le lien View rules vous voyez quels ports sont ouverts. Par défaut, seul le port 22 est ouvert. S'il n'y a pas de port 80, vous devez l'ajouter.
  • Ensuite, vous devez ajouter une règle pour le port 80. Ouvrez Groupes de sécurité dans le menu de gauche et cliquez sur votre groupe de sécurité.
  • Ci-dessous, vous trouverez des détails sur le groupe.
  • Cliquez sur l'onglet Inbound et sélectionnez HTTP dans le menu (ou ajoutez un port personnalisé). Laissez la source telle qu'elle est 0.0.0.0/0 si vous avez besoin d'un accès public.
  • Cliquez sur Ajouter une règle. NB ! Vous devez également cliquer sur Appliquer les modifications de la règle, bien que la règle soit déjà apparue dans la liste après le premier clic. Les modifications en attente d'application sont indiquées par un astérisque dans l'en-tête de l'onglet.
  • Il n'est pas nécessaire d'ajouter les sorties, car elles sont ouvertes par défaut (vous pouvez vérifier s'il existe une règle ALL 0.0.0.0/0).

C'est tout.

1voto

amit singh Points 167

Vérifiez si votre iptables ont une règle activée ou non.

iptables -L

S'il y a des règles sur le serveur, vous pouvez les purger.

iptables -F

0voto

Alexey Gopachenko Points 2440

Il y a plusieurs choses que vous pouvez faire pour résoudre le problème.

1) Comme vous ne pouvez pas faire pointer les domaines de base vers un CNAME, vous devez faire pointer www.mypublichostname.com vers le ec2-w-x-y-z.us-west1.blah. Une autre solution (et probablement une meilleure idée) consiste à attacher une IP élastique à la machine et à faire pointer l'enregistrement A et tous les autres enregistrements vers cette adresse IP.

2) Vous mentionnez que vous exécutez cette instance dans un VPC. Avec les groupes de sécurité VPC, vous devez définir des autorisations de sécurité entrantes et sortantes. Vous devez vous assurer que les ports 80 et 8080 sont ouverts en entrée et en sortie vers 0.0.0.0/0 (tout le monde) ou votre IP spécifique, votre sous-réseau, etc.

3) Le routage VPC peut être un peu plus complexe selon la façon dont vous le gérez. Si vous utilisez une jump box, ou une proxy box pour une sécurité accrue, vous devez la configurer comme une passerelle pour le trafic sortant. L'attribution d'une IP élastique à cette instance atténue ce problème.

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X