Relay DNS (avec base MySQL)

Description

Relay DNS
=========

# Description:
Créer un serveur de relais DNS

# Principe de fonctionnement:
Ce script ouvre un socket sur le port 53 afin de créer un serveur DNS.
Les requêtes sont mémorisées dans une table MySQL sur lequel le serveur DNS se basera principalement pour toutes réponses DNS.

# En cas de bug
Vu que les adresses IP stockées n'expirent jamais, pensez à vider la table mysql après un certain temps

#Requête SQL pour vider la table
TRUNCATE TABLE `dnscache` 


# Installation:
# Télécharger et installer Pyhton
http://www.python.org/getit/

# Télécharger et installer la librairie DNSpython
http://www.dnspython.org/

# Télécharger et installer la librairie MySQL-python
http://sourceforge.net/projects/mysql-python/

# Télécharger et installer un serveur MySQL à choix
http://dev.mysql.com/downloads/
http://www.apachefriends.org/en/xampp.html

# Créer une table MySQL
CREATE TABLE IF NOT EXISTS `dnscache` (`domain` varchar(255) NOT NULL,`ip` varchar(15) NOT NULL,`banned` tinyint(1) NOT NULL, UNIQUE KEY `domain` (`domain`)) TYPE=InnoDB;


# Configurer l'adresse IP de votre DNS sur la carte réseau pour la faire pointer sur la machine qui execute relayDNS.
127.0.0.1 si vous lancer sur votre propre machine

# Configurer dans relayDNS.py les accès à la base de donnée et le serveur DNS Primaire
config_dbhost = "localhost"
config_dbuser = "root2"
config_dbpasswd = ""
config_dbname = "DNSdata"
config_dbtable = "dnscache"
config_dnsrelay = ['192.168.1.1']

# Il est possible d'indiquer plusieurs serveurs DNS Primaires
config_dnsrelay = ['192.168.1.1','192.168.0.1']

# Executer sous Windows
Placer le fichier relayDNS.py et relayDNS.bat dans le même répertoire
Lancer le serveur DNS en double-cliquant sur le fichier relayDNS.bat

# Executer sous Mac
http://docs.python.org/2/using/mac.html

# Executer sous Linux
http://docs.python.org/2/using/unix.html

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.