Archive

Articles taggués ‘dns’

Chiffrer le trafic DNS entre votre machine et votre fournisseur

09/12/2011 6 commentaires

Il est de notoriété publique que le protocole DNS est construit sur des bases assez friables offrant ainsi des cibles faciles à de potentiels attaquants. La partie la plus faible est ce qu’OpenDNS nomme  » The Last Mile « , soit la dernière partie de l’acheminement du trafic à savoir de votre fournisseur à votre machine personnelle. Avoir son propre serveur DNS en interne permet éventuellement de renforcer un peu la sécurité en s’affranchissant des serveurs DNS de son fournisseur d’accès.

Quoi qu’il en soit OpenDNS propose maintenant une solution aux utilisateurs de ses services permettant de chiffrer le trafic DNS entre chez vous et leurs serveurs. Au travers de DNSCrypt, OpenDNS fournit un programme capable de chiffrer les requêtes DNS à la manière de l’HTTPS pour les sites WEB. L’algorithme utilisé est l’ECC (elliptical-curve cryptography ou cryptographie sur courbes elliptiques) et plus précisément le Curve25519 destiné justement à sécuriser les échanges DNS. Le seul défaut du programme, est qu’il n’est pour le moment disponible que pour MAC. Des versions pour Linux devraient bientôt être disponibles.

Utilisé conjointement avec DNSSEC voici une solution permettant de s’affranchir un peu des regards indiscrets et d’éventuelles attaques ( DNS Poisoning …. ). En ces temps de censure et de DPI voilà une initiative plus que bienvenue.

Tags: , , , , ,

Autoriser les requêtes Bind depuis un autre réseau

05/08/2010 Aucun commentaire

Voici la problématique. J’ai refondu un peu mon réseau en créant une DMZ pour héberger les serveurs de Mails et Web.
Une fois la migration terminée (je ferai un tuto sur comment créer une DMZ avec PfSense) je me suis heurté à un problème de résolution de noms pour le serveur en DMZ.
En effet mon serveur DNS basé sur Bind acceptait de répondre aux requêtes concernant les zones locales (reverse et domaine) mais rejetait les requêtes sortant sur Internet dans les logs on pouvait voir ceci :

Aug  4 21:54:26 debian named[3625]: client 192.168.0.240#56126:
 query (cache) 'api.twitter.com/A/IN' denied

On voit que Bind refuse de relayer la requête. Il la rejette car le serveur DNS n’est pas sur le même réseau que les clients.
Il va donc falloir autoriser les différents plans d’adressage présents dans notre réseau à accéder à s’adresser à Bind.

Pour cela on édite le fichier /etc/bind/named.conf.options

 vim /etc/bind/named.conf.options

On ajoute l’option allow-query avant la dernière accolade et avec le formatage suivant :

options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable
	// nameservers, you probably want to use them as forwarders.
	// Uncomment the following block, and insert the addresses replacing
	// the all-0's placeholder.

	// forwarders {
	// 	0.0.0.0;
	// };

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
Allow-query {
127.0.0.1/8;
192.168.0.0/24;
192.168.2.0/24;
}; 

};

On redémarre bind

/etc/init.d/bind9 restart
ou
rndc reload

De cette façon Bind acceptera de relayer les requêtes en provenance des réseaux 192.168.0.0, 192.168.2.0 ainsi que les demandes venant de l’interface loopback.

Tags: , , , ,

Monter son serveur DNS avec BIND9 sur Debian/Ubuntu

13/11/2009 3 commentaires

Plus par volonté d’apprendre que réelle nécessité, j’ai décidé de mettre en place un serveur DNS sur mon réseau local.
Voici donc un tutoriel sur comment mettre en place un tel serveur.
Le serveur sera capable de résoudre des noms en ip des ips en noms et ceci dans 3 zones.
Première chose télécharger et installer Bind:

sudo apt-get install bind9

Une fois ceci fait on passe à la configuration qui se fait en premier lieu dans /etc/bind/named.conf

vim /etc/bind/named.conf
zone "mon_domaine.fr" {
                type master;
                file "/etc/bind/db.mon_domaine.fr";
};

zone "0.168.192.in-addr.arpa" {
                type master;
                file "/etc/bind/db.192.168.0";
};

zone "0.0.10.in-addr.arpa" {
                type master;
                file "/etc/bind/db.10.0.0";
};

Voici donc les 3 zones créées. Quelques explications:

La première zone correspond à la résolution des noms par exemple si vous cherchez à atteindre la machine machine1 ayant pour IP 10.0.0.51 vous taperez machine1 au lieu de son IP. Le champ « type » concerne la redondance du serveur. Ici il s’agit du master.
Enfin le champ file correspond à la location du fichier de configuration de la zone, fichier dont le nom commence toujours par db.

Les deuxième et troisième zones correspondent à la résolution inverse. A savoir que si vous tapez 10.0.0.51 le serveur saura que ca correspond à la machine machine1.mon_domaine.fr
Prêtez attention au format pour les noms de zones: 0.0.10.in-addr.arpa correspond au réseau 10.0.0.0 représentant une zone.
Si votre réseau était en 172.168.0.0 vous devriez écrire 0.168.172.in-addr.arpa.

Une fois les zones créées on passe ensuite aux fichiers de configuration des zones.

vim /etc/bind/db.mon_domaine.fr

@	IN	SOA	ns.mon_domaine.fr.	julien.mon_domaine.fr. (
				2009110701
				24H
				2H
				1000H
				2D )

@	IN	NS	ns.mon_domaine.fr.

ns		        A	192.168.0.250
machine1		A	10.0.0.51
machine2		A	192.168.0.1
machine3		A	192.168.0.248
machine4		A	10.0.0.60
machine5		A	192.168.0.250

La première ligne fait référence au server DNS primaire:
@ : tient pour la zone en question ici mon_domaine.fr
IN : signifie que c’est une zone de type internet
SOA : Start Of Authority qui signifie que l’on a à faire au serveur principal
julien.technoaddict.fr. : adresse email du responsable (le . à la fin est primordial)
La parenthèse à la fin fait partie de la syntaxe.

Ensuite on trouve une série de chiffres cabalistiques !

2009110701 : est le numéro de série ici une date mettez la même chose à la date du jour où vous créez le serveur
24H : le rafraichissement du serveur
2H : la période entre 2 tentatives de rafraichissement
1000H : la valeur d’expiration
2D : la valeur time to live
On n’oublie pas la parenthèse à la fin.

@ IN NS ns.mon_domaine.fr. : est l’adresse du serveur à interroger pour la zone définie vous noterez le . à la place de @.

On liste ensuite les différentes entrées de la zone, à savoir les machines susceptibles d’être contactées.
On rentre les hostnames des machines puis une tabulation,le champ A,une tabulation et l’IP associée.
Dans le fichier la première ligne ubuntu est suivie du champ NS (Name Server) indiquant que l’on a à faire au serveur de nom.

Afin de pouvoir réaliser la résolution inverse nous créons un fichier par zone d’adresses:

vim /etc/bind/db.192.168.0
@       IN      SOA     ns.mon_domaine.fr.     julien.mon_domaine.fr. (
                                2009110701
                                24H
                                2H
                                1000H
                                2D )

@       IN      NS      ns.mon_domaine.fr.

XX	IN	PTR	ns.mon_domaine.fr.
XX	IN	PTR	machine1.mon_domaine.fr.
XX	IN	PTR	machine2.mon_domaine.fr.
XX	IN	PTR	machine3.mon_domaine.fr. 

Vous remarquerez qu’il s’agit quasiment de la même chose que le premier fichier à ceci près que nous utilisons le IN et PTR à la place de A.

La même chose pour la 2e zone:

vim /etc/bind/db.10.0.0

@       IN      SOA     ns.mon_domaine.fr.     julien.mon_domaine.fr. (
                                2009110701
                                24H
                                2H
                                1000H
                                2D )

@       IN      NS      ns.mon_domaine.fr.

XX	IN	PTR	machine1.mon_domaine.fr.
XX	IN	PTR	machine2.mon_domaine.fr.
XX	IN	PTR	machine3.mon_domaine.fr.
XX	IN	PTR	machine4.mon_domaine.fr. 

Une fois tous les fichiers de configuration écrits vous pouvez redémarrer le serveur :

/etc/init.d/bind9 restart

Ca y est votre réseau est désormais équipé avec un serveur dns ! Vous pouvez dès lors faire ssh user@machine1 plutôt que user@10.0.0.1

Tags: , , , , ,

Divers tutos sous Debian

31/03/2008 Aucun commentaire

Vous souhaitez monter un serveur DNS ou un serveur DHCP ou bien encore un FTP? et bien vous trouverez tout ce dont vous avez besoin sur ce site: dthconnex .

L’index est une liste des différents documents ou fiches. Repérez les avec le nom du fichier et suivez les instructions de l’auteur.

Tags: , , , , , , , ,
Categories: Linux et Open-Source