Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Protéger votre réseau interne Oracle Cloud Infrastructure à l'aide d'un pare-feu DNS
Introduction
Avoir le contrôle de ce que font vos instances de machine virtuelle est essentiel pour pouvoir contrôler leur comportement. Dans la plupart des cas, les requêtes DNS (Domain Name System) sont oubliées et non contrôlées ou surveillées, laissant la possibilité à une machine compromise de se connecter à des serveurs de commande et de contrôle (C2) et de télécharger des logiciels malveillants, par exemple. Le fait de pouvoir contrôler et bloquer ces requêtes sortantes vers les serveurs C2 et d'autres types de serveurs malveillants ajoute une couche de sécurité supplémentaire à votre réseau, et vous risquez d'éviter que votre machine virtuelle et votre réseau ne soient davantage compromis.
Objectifs
- Utilisez le service DNS privé Oracle Cloud Infrastructure (OCI) pour protéger votre réseau OCI interne contre les requêtes DNS sortantes malveillantes en configurant un pare-feu DNS et en ajoutant la journalisation pour avoir un meilleur contrôle et une meilleure visibilité des requêtes DNS de vos instances.
Prérequis
-
Accès à une location OCI.
-
Connaissance de base du DNS.
-
Un réseau cloud virtuel (VCN).
Configuration : par défaut, chaque VCN est créé avec son propre résolveur DNS, et si vous faites attention à la configuration sur les machines Linux, ils sont configurés dans le fichier
/etc/resolv.conf
avec le contenu suivant (exemple pour Oracle Linux 9) :[opc@linu-lab ~]$ cat /etc/resolv.conf ... nameserver 169.254.169.254
L'adresse IP privée automatique (APIPA)
169.254.169.254
est utilisée dans le réseau OCI pour plusieurs services, dont le résolveur DNS. -
Un compte sur n'importe quel fournisseur de pare-feu DNS (facultatif).
Tâche 1 : localisation du résolveur DNS sur la console OCI
Assurez-vous que vous avez déjà créé un VCN et cliquez sur le nom du VCN. Sur la page Détails du réseau cloud virtuel, cliquez sur Résolveur DNS.
Tâche 2 : configurer une adresse de transfert
-
Sous Ressources, cliquez sur Adresses et sur Créer une adresse.
-
Sur la page Créer une adresse, entrez les informations suivantes et cliquez sur Créer une adresse.
- Nom : entrez un nom.
- Sous-réseau : sélectionnez le sous-réseau dans lequel vous souhaitez obtenir l'adresse de redirection.
- Type d'adresse : sélectionnez Transfert.
Cette opération doit prendre quelques minutes et, lorsque vous avez terminé, votre transitaire DNS est créé. Cela nous permettra de configurer une redirection de requêtes là où nous voulons, dans notre cas à un pare-feu DNS.
Le résolveur DNS suit un ordre de résolution des requêtes des instances :
Tout d'abord, il vérifie toutes les vues privées attachées, puis les règles de résolveur et, en dernier lieu, il utilise les propres résolveurs Internet publics d'Oracle pour résoudre les noms d'hôte. Pour plus d'informations, reportez-vous à la section Configuration and Resolution.
Dans l'étape suivante, nous voulons détourner toutes les requêtes qui ne sont pas locales (n'existent dans aucune vue privée) et les envoyer à un service de pare-feu DNS, ou à un autre serveur DNS géré par votre société pour contrôler les requêtes.
Vous pouvez opter en choisissant un service gratuit, comme OpenDNS, Quad9, ControlD, et bien d'autres, ou choisir un service payant avec beaucoup plus de contrôle et de fonctionnalités, comme Cisco Umbrella, ControlD, NextDNS, InfoBlox et bien d'autres.
Remarque : nous n'avons aucune connexion avec les fournisseurs DNS mentionnés dans la tâche 3. Ils sont utilisés comme exemple en raison de la simplicité, de la facilité d'utilisation et de la configuration. Il existe de nombreux autres fournisseurs fournissant des services similaires, trouvez celui qui convient le mieux à vos besoins.
Tâche 3 : créer une règle de résolveur
-
Utiliser un service de pare-feu DNS gratuit
Rappelez-vous que le résolveur évaluera les règles selon leur ordre et s'arrêtera à la première correspondance. Assurez-vous que si vous avez d'autres règles pour les domaines internes, notre règle est la dernière, afin que nous puissions rediriger toutes les autres requêtes vers notre pare-feu DNS.
Dans ce tutoriel, nous utilisons le service Quad9, c'est un service gratuit qui est très simple à utiliser sans configuration. D'autres services gratuits comme ControlD vous permettent de configurer plusieurs catégories de requêtes à bloquer.
-
Sous Ressources, cliquez sur Règles et sur Gérer les règles.
-
Sur la page Gérer les règles, entrez les informations suivantes.
-
Condition de règle : sélectionnez Aucun pour créer un client Mettre en correspondance tout, ce qui signifie que toutes les requêtes non résolues sur les vues privées ou par les règles précédentes seront détournées vers le transitaire de résolution et ne seront pas résolues par le résolveur public Internet OCI.
-
Point source : sélectionnez l'adresse de transitaire créée dans la tâche 2.
-
Adresse IP de destination : nous utilisons les serveurs DNS Quad9
9.9.9.9
.
-
-
Cliquez sur Enregistrer les modifications et attendez quelques minutes que le résolveur soit mis à jour.
Toutes les requêtes d'instance sont envoyées au service de pare-feu DNS Quad9 et bloquées si une instance tente de se connecter à une adresse IP malveillante.
Ou
-
-
Utiliser un service de pare-feu DNS payant
Si vous avez besoin de plus de contrôle, de fonctionnalités et de journalisation, alors peut-être que le service gratuit n'est pas la solution pour votre cas. Les services payants offrent beaucoup plus de contrôle et de fonctionnalités que les services gratuits et peuvent vous permettre de détecter les instances qui effectuent des requêtes suspectes sur les noms d'hôte qu'elles ne devraient pas.
Dans ce tutoriel, nous allons utiliser NextDNS, et quelques étapes supplémentaires sont nécessaires pour le faire fonctionner.
Tout d'abord, vous avez besoin d'un compte, NextDNS offre un niveau gratuit avec jusqu'à 300K requêtes par mois, ce qui devrait être plus que suffisant pour tester le service. Une fois que vous avez le compte, connectez-vous et créez un nouveau profil pour votre VCN.
-
Cliquez sur Nouveau et entrez un nom.
-
Cliquez sur Paramètres et sélectionnez la région dans laquelle les journaux seront enregistrés. Vous pouvez choisir entre les Etats-Unis, l'Europe ou la Suisse.
-
Cliquez sur Sécurité et sélectionnez le mode de filtrage et de blocage des adresses IP malveillantes, à l'aide de l'IA, à l'aide de flux et de nombreuses autres options.
-
Cliquez sur Confidentialité et ajoutez la liste des adresses IP malveillantes connues, des traqueurs, des serveurs publicitaires et bien plus encore.
-
Vous pouvez également créer des listes de refus et d'autorisation dans DenyList et AllowList.
Le meilleur élément de ce service est les fonctionnalités de journalisation et d'analyse. Cela nous a permis de trouver une extension de navigateur sur ordinateur portable faisant des dizaines de milliers de requêtes à un nom d'hôte très étrange, ce qui a entraîné la suppression de l'extension.
-
Maintenant, cliquez sur Configuration et nous pouvons voir qu'il existe différentes adresses, IPv4, IPv6, DoT (DNS via TLS) et DOH (DNS via HTTP).
-
Dans ce tutoriel, nous allons utiliser IPv4, et nous avons des adresses IP spécifiques pour leurs résolveurs, nous avons juste besoin de lier notre adresse IP, afin que NextDNS sache d'où proviennent les requêtes, afin qu'elles puissent les consigner dans votre profil.
Pour cela, nous devons nous connecter à l'une des instances avec accès à Internet (via NAT) et exécuter la commande suivante pour lier l'adresse IP au profil.
[opc@linux-lab ~]$ curl https://link-ip.nextdns.io/d34ff7/fd11c0xxxxx67cab 158.101.204.149[opc@linux-lab ~]$
Cliquez sur Afficher les options avancées, Adresse IP liée et obtenez le lien approprié pour votre profil.
Le script renvoie l'adresse IP de la passerelle NAT OCI, qui est utilisée par le résolveur DNS OCI pour effectuer toutes les requêtes.
Il suffit d'apporter une dernière modification à la règle de résolveur pour pointer vers l'adresse IP IPv4 du résolveur NextDNS.
-
Sur la page du résolveur de VCN, cliquez sur Règles et supprimez la règle que nous avons ajoutée précédemment et créez-en une nouvelle pointant vers l'adresse IP
45.90.28.43
.Une fois le résolveur DNS OCI mis à jour avec cette modification, toutes les instances internes qui effectuent des requêtes DNS sur ce VCN utiliseront le service de pare-feu NextDNS.
Créer une liste de refus
Créons une liste de refus et vérifions si elle fonctionne. Accédez à la console NextDNS, sélectionnez le profil créé et cliquez sur DenyList. Ajoutez le domaine
malicious.site
et cliquez sur Entrée.Dans l'instance interne, essayez de résoudre l'adresse IP de ce domaine.
[opc@linux-lab ~]$ dig +short A malicious.site 0.0.0.0
Comme prévu, la requête n'est résolue sur aucune adresse IP et
0.0.0.0
est renvoyé. En plus, la requête a été journalisée.L'onglet Analyse commence à afficher des informations sur toutes les requêtes effectuées sur ce profil. Désormais, toutes les requêtes effectuées par des instances internes à l'intérieur de votre VCN utiliseront la règle de résolveur pour transmettre les requêtes au pare-feu DNS.
-
Remarques :
Tous ces fournisseurs disposent de réseaux anycast et d'architectures hautement résilientes et évolutives, qui doivent supporter la défaillance des serveurs, mais si vous souhaitez augmenter la résilience de votre propre architecture, vous devez implémenter dans OCI un équilibreur de charge réseau qui sera utilisé en tant que transitaire sur la règle de résolveur et utiliser les différentes adresses IP fournies par les fournisseurs DNS en tant que back-ends d'équilibreur de charge réseau. En cas de panne de l'une des adresses IP du fournisseur DNS, ce qui serait très inhabituel, l'équilibreur de charge réseau bascule le trafic vers l'autre adresse IP.
N'oubliez pas que la liste de sécurité du sous-réseau sur lequel le transitaire d'adresse DNS privé est déployé doit permettre aux connexions sur le port UDP (User Datagram Protocol) et le port TCP 53 de recevoir des requêtes DNS.
Ce sous-réseau doit disposer d'une connectivité Internet via une passerelle NAT. Assurez-vous que les listes de sécurité et les tables de routage sont correctement configurées pour autoriser cette opération.
Liens connexes
Remerciements
- Auteur - Carlos Jorge Santos (ingénieur cloud OCI - Spécialiste du domaine de réseau)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Protect your Oracle Cloud Infrastructure Internal Network using a DNS Firewall
G16357-01
September 2024