Dans EC2, le pare-feu n'est pas à l'intérieur de la machine mais devant elle, et il s'appelle groupe de sécurité. C'est une liste de règles du type « laisser entrer n'importe qui par le port 443 » ou « laisser entrer seulement cette IP par le 22 ». Tout ce qui n'est pas dans la liste n'entre pas. C'est pourquoi une machine tout juste créée peut être parfaitement allumée et que, pourtant, le site ne charge pas : personne n'a ouvert la porte.
Comprendre quatre idées sur les groupes de sécurité évite la moitié des problèmes d'EC2 et la plupart des failles de sécurité. Ce guide les explique et laisse un groupe bien configuré pour un serveur web.
Avant de commencer : ce que signifie chaque chose
- Groupe de sécurité
- Le pare-feu d'EC2 : un ensemble de règles qui dit quel trafic peut atteindre la machine. Une machine peut en avoir plusieurs et un groupe peut servir à plusieurs machines.
- Port
- La « porte » numérotée par laquelle entre chaque type de trafic : 80 pour le web non chiffré, 443 pour le web sécurisé, 22 pour SSH, 3306 pour MySQL, 3389 pour le bureau à distance de Windows.
- Règle entrante
- Ce qu'on laisse arriver jusqu'à la machine. Ce qui n'a pas de règle est bloqué.
- Règle sortante
- Ce que la machine peut envoyer vers l'extérieur. Par défaut, tout ; il n'y a presque jamais besoin d'y toucher.
- Source
- Depuis où on autorise : une IP précise, une plage, n'importe qui (0.0.0.0/0) ou un autre groupe de sécurité.
- CIDR
- La façon d'écrire des plages d'IP. 203.0.113.5/32 est une seule adresse ; 0.0.0.0/0 est tout Internet.
- Avec état (stateful)
- Si vous laissez entrer une requête, la réponse peut sortir sans règle à part. C'est pourquoi il n'y a qu'à penser à l'entrée.
Pas à pas
Regardez quel groupe a votre machine
Console EC2, Instances, sélectionnez la machine, onglet Sécurité. Vous verrez le ou les groupes attribués et, en dessous, les règles entrantes telles qu'elles s'appliquent. Si le site ne répond pas, la réponse est ici dans 90 % des cas : il manque le 443, ou la source est seulement votre IP.
Comprenez le groupe par défaut
Chaque réseau (VPC) a un groupe appelé default qui autorise tout le trafic entre les machines qui le partagent et rien depuis Internet. Il est utile pour que vos machines se parlent entre elles, mais pas pour un site public. Ne le modifiez pas pour ouvrir des ports au monde : créez vos propres groupes avec des noms qui disent à quoi ils servent.
Créez un groupe pour les serveurs web
Menu Groupes de sécurité, Créer un groupe de sécurité. Nom
web-publica, description claire, le VPC par défaut. Règles entrantes :Type Port Source Pour quoi HTTPS 443 0.0.0.0/0 et ::/0 Le web sécurisé, pour tout le monde HTTP 80 0.0.0.0/0 et ::/0 Pour rediriger vers HTTPS et renouveler les certificats SSH 22 Mon IP Administration, seulement depuis votre connexion La liste déroulante de la source propose l'option Mon IP, qui remplit votre adresse actuelle. Ajoutez une description à chaque règle (« bureau », « maison d'Anne ») : dans un an, vous serez content de savoir à qui appartenait chaque IP. Créez.
Attribuez le groupe à la machine
Revenez à l'instance, Actions, Sécurité, Modifier les groupes de sécurité. Ajoutez
web-publicaet retirez celui qu'elle avait s'il ne sert plus. Le changement est immédiat, sans redémarrer. Testez le site et le SSH.Pour une base de données : ouvrez seulement à vos machines
Si vous avez une machine ou une RDS avec une base de données, n'ouvrez pas le 3306 à Internet ni à « Mon IP ». Créez un groupe
bd-internaavec une règle entrante sur le port 3306 dont la source est le groupe de sécuritéweb-publica(dans la liste déroulante de la source, vous pouvez choisir un groupe au lieu d'une IP). Ainsi, seules les machines qui portent ce groupe peuvent se connecter, quelle que soit leur IP. C'est la bonne façon de faire, et presque personne ne la connaît.Vérifiez ceux que vous avez déjà
Dans la liste des groupes de sécurité, triez ou filtrez ceux qui ont des règles avec la source 0.0.0.0/0 sur des ports autres que 80 et 443. Un 22, un 3306 ou un 3389 ouverts à tout Internet, c'est ce que les attaquants cherchent chaque jour. Fermez-les à votre IP ou au groupe qui convient. Et supprimez les groupes qui ne sont attribués à rien : ils ne font que semer la confusion.
Ce qui peut mal tourner
J'ai fermé le 22 à « Mon IP » et je n'entre plus
Votre IP a changé (connexions domestiques). Modifiez la règle depuis la console, qui ne dépend pas de la machine, avec « Mon IP » à nouveau. Ou utilisez EC2 Instance Connect depuis la console, qui entre par le navigateur si l'image le permet.
Le site fonctionne par IP mais pas par nom de domaine
Ce n'est pas le groupe de sécurité : c'est le DNS ou la configuration du serveur web. Le groupe de sécurité ne connaît pas les noms, seulement les ports et les IP.
La machine ne sort pas sur Internet pour se mettre à jour
Vérifiez les règles sortantes : quelqu'un les a restreintes. Par défaut, elles autorisent tout. Si la machine n'a pas d'IP publique, il lui faut en plus une passerelle NAT, ce qui est une autre histoire.
J'ai des dizaines de groupes « launch-wizard-7 »
L'assistant de lancement les crée chaque fois que quelqu'un n'en choisit pas un existant. Réattribuez les machines à vos groupes nommés et supprimez ceux de l'assistant. Ceux qui sont utilisés ne pourront pas être supprimés : cela vous dit lesquels restent.
Dans Simplio
Dans Simplio, le pare-feu de chaque machine, Lightsail ou EC2, est la même liste simple : port, pour qui (tout le monde, seulement mon IP, une IP précise) et une description. Simplio marque en rouge les ports d'administration ouverts à tout Internet et vous en avertit, et chaque changement demande la double authentification et reste dans le journal d'activité avec qui l'a fait. Sans savoir ce qu'est un CIDR.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Ouvrir un port seulement à votre IP | Console EC2, Groupes de sécurité, modifier, trouver votre IP, description : 5 étapes | Règle « Seulement mon IP » dans le pare-feu de la machine : 1 clic, Simplio connaît votre IP |
| Savoir quelles machines ont quelque chose d'ouvert au monde | Vérifier groupe par groupe | Avertissement dans la liste : « port 22 ouvert à tout Internet » |
| Lightsail et EC2 | Deux consoles avec deux modèles différents | Le même pare-feu simple pour les deux |