Skip to main content

Groupe de sécurité

Le groupe de sécurité est le pare-feu qui va protéger les instances en gérant les autorisations d'accès au réseau.

Le groupe de sécurité - security group - par défaut autorise toutes les communications sortantes mais aucune communication entrante. Les règles de groupe ne sont pas figées et peuvent donc être modifiées à tout moment : soit en supprimant, soit en ajoutant de nouvelles règles.

Les groupes de securités peuvent être utilisés séparément ou de manière cumulée.

Les groupes​

Groupes disponibles​

Vous pouvez lister les groupes existants dans le projet avec openstack security group list.

openstack security group list
+--------------------------------------+-----------------+------------------------+----------------------------------+------+
| ID | Name | Description | Project | Tags |
+--------------------------------------+-----------------+------------------------+----------------------------------+------+
| 2d9d1210-78f9-47e4-87a5-68851cc9f5ec | nbgrader | | 88ddbfbb9b7f4fe981ce214be524d401 | [] |
| ea78016d-725c-4e7a-9a80-8f9ab3dd0db2 | default | Default security group | 88ddbfbb9b7f4fe981ce214be524d401 | [] |
| ee67a987-6e4e-4228-baac-0c5541e62631 | jupyterhub-test | | 88ddbfbb9b7f4fe981ce214be524d401 | [] |
+--------------------------------------+-----------------+------------------------+----------------------------------+------+

Il est également possible de voir en détail les règles définies dans un groupe de sécurité avec la commande openstack security group rule list <groupname>.

openstack security group rule list my-security-group
+--------------------------------------+-------------+-----------+------------+-----------------------+
| ID | IP Protocol | IP Range | Port Range | Remote Security Group |
+--------------------------------------+-------------+-----------+------------+-----------------------+
| 01e07f78-264d-478c-b100-fed022cc72ed | None | None | | None |
| 22d0ff13-360b-4fbb-8a3a-82d3235cfe34 | tcp | 0.0.0.0/0 | 22:22 | None |
| 45d6f8d3-ebca-485b-973f-62586c6859fc | None | None | | None |
| ac5211e7-62c3-4e6c-af02-d09a60878f99 | tcp | 0.0.0.0/0 | 80:80 | None |
| fd0fc114-421a-4686-8ae2-2ca44fcdfdfd | tcp | 0.0.0.0/0 | 443:443 | None |
+--------------------------------------+-------------+-----------+------------+-----------------------+

Création d'un nouveau groupe​

Vous pouvez créer un nouveau groupe de sécurité avec openstack security group create <groupname>.

Par exemple : on crée un nouveau groupe appelé my-security-group.

openstack security group create my-security-group

À sa création, le nouveau groupe n'a pas de règles de filtrage particulières, il faut donc les ajouter en fonction des besoins d'accès à l'instance.

Les règles de filtrage​

Ajout de règle​

Pour lister les règles d'un groupe de sécurité, utilisez la commande openstack security group rule list <groupname>. Les nouveaux filtres sont ajoutés avec openstack security group rule create.

Par exemple, on souhaite ajouter un filtre pour pouvoir se connecter en ssh à la machine. Dans un premier cas, on autorise seulement une plage d'adresses ip donnée

openstack security group rule create my-security-group \
--remote-ip 152.77.223.66/32 \
--ingress \
--dst-port 22 \
--protocol tcp

Dans le deuxième cas, on autorise l'accès à partir d'adresses ip provenant d'un autre groupe de sécurité appelé other-security-group.

openstack security group rule create my-security-group \
--protocol tcp \
--dst-port 22 \
--remote-group other-security-group

Grace aux règles de filtrage, on choisit quels protocoles sont autorisés et quels ports sont ouverts et disponibles : on limite ainsi la visibilité des instances au reste du monde.

Exemples de filtres​

Dans cette partie on donne quelques exemples de protocoles et de ports à ouvrir pour autoriser différentes connexions. Les filtres sont appliqués à toutes les adresses ip du sous-réseau: 0.0.0.0/0.

Règles pour le protocole TCP​

Accès en ssh - port 22​

Afin de pouvoir se connecter en ssh à une instance, il faut que le groupe de securité autorise le protole TCP avec le port 22 ouvert.

openstack security group rule create my-security-group \
--protocol tcp \
--dst-port 22 \
--remote-ip 0.0.0.0/0
Accès en HTTP - port 80​

La communication en HTTP n'est possible qu'en autorisant le protocole TCP et en ouvrant le port 80.

openstack security group rule create my-security-group \
--protocol tcp \
--dst-port 80 \
--remote-ip 0.0.0.0/0
Accès en HTTPS - port 443​

La version securisée de HTTP communique elle aussi via le protocole TCP et en utilisant le port 443.

openstack security group rule create my-security-group \
--protocol tcp \
--dst-port 443 \
--remote-ip 0.0.0.0/0
Ouverture d'une plage de ports​

Il est également possible d'ouvrir une plage de ports. Par exemple, pour NetBIOS, on ouvre les ports 137 à 139.

openstack security group rule create my-security-group \
--protocol tcp \
--dst-port 137:139 \
--remote-ip 0.0.0.0/0

Pour d'autre type de connexion TCP : voir la liste complète des ports TCP.

Règles pour le protocole ICMP​

Pour autoriser un ping des instances, il faut permettre l'accès au trafic ICMP :

openstack security group rule create my-security-group \
--protocol icmp \

Suppression de règle​

openstack security group rule delete RULE_ID