Comment créer des fonctions Lambda à l'aide de SAM – CloudSavvy IT
23 juillet 2020
Les 6 meilleurs haut-parleurs Google Assistant que vous pouvez acheter en 2020 – Review Geek
23 juillet 2020

Réseau.

Lorsque vous vous connectez à une base de données, vous devez prendre des précautions supplémentaires si elle ne s’exécute pas localement. Toutes les connexions établies sur un réseau doivent être sécurisées et vous ne devez jamais laisser la base de données ouverte à quiconque pour forcer une connexion.

La meilleure solution: exécutez votre base de données dans un sous-réseau privé

Se connecter sur Internet est risqué. Vous ne devez jamais simplement laisser votre base de données ouverte au Web, car cela ne fait qu'accroître votre surface d'attaque sans raison. Une fois les mots de passe correctement configurés, personne ne pourra vous pirater instantanément, mais il n'est généralement pas nécessaire qu'une base de données soit accessible au public.

Cela étant dit, il est souvent avantageux sur le plan architectural de faire fonctionner les bases de données sur des serveurs distincts. Séparer votre base de données de vos serveurs Web vous permet de la gérer individuellement. Si vous souhaitez faire évoluer vos serveurs Web ou ajouter des réplicas en lecture pour la base de données, il est plus facile de le faire s'il est séparé.

L'exécuter sur une machine différente signifie que vous l'exécuterez sur un réseau quelconque. La meilleure pratique pour cela consiste à exécuter la base de données dans un sous-réseau privé. La plupart des fournisseurs de cloud, comme AWS, offrent la possibilité de rendre certains serveurs privés, de sorte qu'il n'y ait pas d'adresse IP publique. Vous pouvez ensuite configurer la base de données pour écouter sur l'adresse IP privée.

De cette façon, les connexions établies à la base de données se produisent uniquement au sein de votre VPC ou cloud privé virtuel. L'utilisateur se connecte à votre serveur Web public, qui communique avec la base de données pour l'utilisateur sans qu'il ait même à connaître l'adresse du serveur de base de données.

Connexion de sous-réseau privé.

Cette configuration est assez simple à installer. La plupart des fournisseurs de cloud auront des contrôles pour créer des sous-réseaux privés, mais si vous souhaitez simplement le gérer vous-même, vous pouvez obtenir le même effet avec un pare-feu qui n'autorise que les connexions à partir d'adresses privées:

sudo ufw autorise de 172.16.0.0/12 à n'importe quel port 22

Cela bloquera toutes les requêtes adressées à votre serveur provenant d'une adresse IP publique, empêchant ainsi le monde extérieur d'accéder au serveur, bien que vous souhaitiez probablement garder SSH ouvert d'une manière ou d'une autre à des fins administratives.

Pour l'administration à distance, les adresses IP sur liste blanche

Si vous souhaitez accéder à la base de données à partir de votre propre machine, vous devez vous connecter via Internet. La solution la plus simple pour ce faire en toute sécurité consiste simplement à ajouter à la liste blanche l'adresse IP de la machine que vous utilisez pour l'administration. Cela ne remplace pas le fait d’avoir un mot de passe, mais c’est bien mieux que de laisser quiconque le deviner.

Dans ufw, le pare-feu par défaut dans Ubuntu, cela peut être fait assez facilement:

sudo ufw autorise de 123.123.123.123 à n'importe quel port 27017

Vous voudrez vous assurer que vous n’avez pas d’autres règles autorisant l’accès à ce port depuis n’importe quelle adresse IP.

Si vous ne voulez pas que du trafic passe sur Internet, le problème devient un peu plus compliqué. Vous devrez configurer un serveur VPN, comme OpenVPN, qui s'exécute sur votre réseau et fournit un accès géré aux machines dans les sous-réseaux privés. Vous pouvez vous connecter au VPN et faire en sorte que votre machine se comporte comme si elle se trouvait dans le même VPC que la base de données, ce qui vous donnera la possibilité de vous y connecter directement via une connexion sécurisée. Cela permet au serveur de base de données d'être entièrement verrouillé dans votre propre réseau, ce qui est un énorme bonus pour la sécurité.

//]]>