Est-il possible de configurer BIND en tant que serveur DNS sur mon réseau local et de faire exécuter des scripts lorsqu'il obtient une recherche?
Je voudrais exécuter un script Python ou Bash, basé sur la recherche DNS entrante, comment puis-je résoudre ce problème?
Si possible dans Bind, dites-moi comment, et sinon, dites-moi si c'est possible dans d'autres implémentations de serveur DNS, qui fonctionnent sur Ubuntu.
Merci beaucoup.
Réponses:
Je peux penser à deux options supplémentaires qui ne nécessitent pas d'analyser les journaux BIND ou d'interférer avec BIND du tout.
1) Mise en miroir des ports - dupliquez les paquets et envoyez-les à un port séparé où une application écoute, analyse les requêtes DNS et prend des mesures.
dpkt
ouscapy
des bibliothèques de création de paquets similaires vous aideront à analyser les demandes brutes.2) Utilisez un certain type de bibliothèque de reniflage de paquets pour surveiller passivement les demandes. Voici un exemple d'utilisation
scapy
:De toute évidence, ce n'est qu'un exemple primitif. Il n'imprime que le nom du domaine qui a été interrogé, mais vous pouvez bien sûr ajouter beaucoup de logique. Si vous faites référence à la documentation de Scapy, vous constaterez que tous les champs de la demande DNS sont facilement disponibles.
la source
Vous pouvez le faire en surveillant le journal du serveur de liaison (la journalisation des requêtes doit être activée). Bonne chance...
la source
/dev/shm
.swatch
ou OSSEC sur les journaux pour appeler votre script. pas une très bonne idée à long terme, de toute façon.Aucun événement tel que les événements n'est implémenté dans bind, il n'en a pas besoin.
Vous pouvez regarder autour des pare-feu applicatifs, qui sont utilisés dans certaines organisations pour restreindre l'accès à certains utilisateurs. Là, vous auriez plus de chances d'atteindre ce que vous voulez.
La configuration de routes semble également une bonne idée, à la fin ce que vous voulez réaliser avec une liaison et une exécution de script déclenchée sera également inefficace: vous devez:
La configuration de nombreuses routes n'est pas un problème et n'affectera pas les performances de manière notable. Selon vous, combien de routes les routeurs d'entreprise ont-ils? des centaines? pas tout à fait ... Et ils n'ont pas nécessairement une configuration matérielle sophistiquée. Sérieusement, vous allez bien, les systèmes d'exploitation sérieux sont spécialement conçus pour gérer de nombreux itinéraires et optimiser la recherche.
Outre ce que vous vouliez faire en premier lieu, vous utilisez une base de données au-dessus de la table de routage, qui serait un autre type de base de données. Rester simple. Sur les serveurs BGP, de nombreux itinéraires sont réellement sélectionnés / préférés pour des raisons politiques / financières, chaque FAI / organisation peut le faire et ils ajoutent tous des itinéraires spécifiques à cet effet. Le coût du transit ou d'une décision de justice est souvent à l'origine de telles mesures.
la source