Pédants Principes PPP | ||
---|---|---|
Précédent |
Bien que gérer une hiérarchie du service de noms de domaines (“Domain Name Service” - DNS) puisse être une tâche diabolique, il est tout à fait faisable d'installer un mini-serveur DNS sur le système FreeBSD qui vous sert aussi de passerelle vers votre fournisseur d'accès.
A partir des fichiers existants dans /etc/namedb après installation de FreeBSD, il est possible de définir un serveur DNS qui ait autorité sur le réseau de notre exemple et serve d'interface avec l'architecture DNS de l'Internet.
Pour cette configuration minimale, il suffit de trois fichiers:
/etc/namedb/named.boot
/etc/namedb/named.root
/etc/namedb/mydomain.db
Le fichier /etc/namedb/named.root est automatiquement initialisé à l'installation de FreeBSD, les deux autres fichiers doivent être renseignés manuellement.
Le fichier /etc/namedb/named.boot décrit la configuration initiale du serveur DNS. Essentiellement, il indique au serveur de noms:
Où sont les fichiers de configuration,
De quels “noms de domaines” il a la responsabilité,
Où trouver les autres serveurs DNS.
Avec l'éditeur ee, créez un fichier /etc/namedb/named.boot comme suit:
; fichier de démarrage pour un mini-serveur de noms de domaines directory /etc/namedb ; type domain source machine/fichier fichier de sauvegarde cache . named.root primary my.domain. mydomain.db
Les lignes qui commencent par un point-virgule sont des commentaires. Voici la signification des autres lignes:
directory /etc/namedb
Dit au serveur de noms où trouver les fichiers de configuration référencés dans la suite du fichier /etc/namedb/named.boot.
cache . named.root
Dit au serveur de noms que la liste des serveurs de la racine (“Root Servers”) se trouve dans le fichier named.root. (Ce fichier est inclus dans l'installation standard et n'est pas décrit ici.)
primary my.domain mydomain.db
Dit au serveur de noms qu'il a “autorité” sur un domaine DNS appelé “my.domain” et que la liste des adresses IP des machines du domaine “my.domain” (le réseau local) se trouve dans le fichier /etc/namedb/mydomain.db.
Une fois créé et sauvegardé le fichier /etc/namedb/named.boot, passez à l'étape suivante pour créer le fichier /etc/namedb/named.db.
Le fichier /etc/namedb/named.boot liste les noms et les adresses IP de toutes les machines du réseau local.
Pour une description détaillée des instructions de ce fichier, reportez-vous aux pages de manuel de named.
Le fichier /etc/namedb/named.boot de notre serveur DNS minimum contient les lignes suivantes:
@ IN SOA my.domain. root.my.domain. ( 961230 ; Serial 3600 ; Refresh 300 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS curly.my.domain. curly.my.domain. IN A 192.168.1.1 # The FreeBSD box larry.my.domain. IN A 192.168.1.2 # The Win'95 box moe.my.domain. IN A 192.168.1.3 # The WfW box shemp.my.domain. IN A 192.168.1.4 # The Windows NT box $ORIGIN 1.168.192.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR curly.my.domain. 2 IN PTR larry.my.domain. 3 IN PTR moe.my.domain. 4 IN PTR shemp.my.domain. $ORIGIN 0.0.127.IN-ADDR.ARPA IN NS curly.my.domain. 1 IN PTR localhost.my.domain.
Brièvement, ce fichier déclare que le serveur DNS local est:
Le “Début d'Autorité” (Start Of Authority) pour le domaine appelé “my.domain”,
Le serveur de noms (Name Server - “NS”) pour “my.domain”,
Responsable de la résolution inverse des adresses IP qui commencent par “192.168.1” et “127.0.0” (“$ORIGIN ...”).
Pour ajouter de nouvelles machines, vous devez ajouter deux lignes pour chaque système; une dans la section du haut où les noms des systèmes sont associés aux adresses Internet (“IN A”), et une autre ligne qui associe inversement l'adresse au nom de la machine (“IN PTR”), dans la section “$ORIGIN 1.168.192.IN-ADDR.ARPA”.
Par défaut, le serveur DNS (/etc/sbin/named) n'est pas lancé au démarrage du système. Vous pouvez modifier ce comportement en rectifiant une seule ligne dans le fichier /etc/rc.conf, comme suit:
Avec l'éditeur ee, visualisez le fichier /etc/rc.conf. Descendez d'une quarantaine de lignes jusqu'à ce que vous trouviez la section qui dit:
--- named_enable="NO" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---
et modifiez-la en:
--- named_enable="YES" # Run named, the DNS server (or NO). named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ---
Sauvegardez le fichier et redémarrez le système.
Vous pouvez aussi démarrer le serveur DNS avec la commande suivante:
# named -b /etc/namedb/named.boot
Chaque fois que vous modifiez les fichiers du répertoire /etc/namedb/named.boot, vous devez faire relire ces modifications par le serveur DNS avec la commande suivante:
# kill -HUP `cat /var/run/named.pid`
Le programme ppp a la capacité d'appliquer des règles de filtrage au trafic qu'il route. Bien que cela ne soit pas aussi sécurisé qu'un véritable coupe-feu, cela autorise quelques contrôles d'accès à la liaison.
(“man ipfw” pour plus d'informations sur la configuration d'un système FreeBSD plus sécurisé.)
La documentation complète des différents filtres et règles utilisables avec le programme ppp se trouve dans les pages de manuel de ppp.
Il y a quatre classes de filtres qui s'appliquent au programme ppp:
afilter - filtre compteur d'accès (ou “Keep Alive” - garder en vie)
Ils définissent quels événements sont ignorés par l'instruction set timeout=.
dfilter - filtre d'appel
Ils définissent quels événements sont ignorés par ppp en mode connexion à la demande.
ifilter - filtre d'entrée
Ils définissent quels paquets entrants sont acceptés ou refusés par le programme ppp.
ofilter - filtre de sortie
Ils définissent quels paquets sortants sont acceptés ou refusés par le programme ppp.
L'exemple qui suit est un extrait de la configuration d'un système opérationnel qui donne une bonne base pour un fonctionnement Internet “normal”, tout en empêchant que ppp accepte n'importe quoi sur la liaison. Les commentaires décrivent la logique de chaque jeu de règles.:
# # filtres KeepAlive # ne pa prendre en compte les paquets ICMP,DNS et RIP # set afilter 0 deny icmp set afilter 1 deny udp src eq 53 set afilter 2 deny udp dst eq 53 set afilter 3 deny udp src eq 520 set afilter 4 deny udp dst eq 520 set afilter 5 permit 0/0 0/0 # # filtre d'appel: # Note: ICMP établira la connexion dans cette configuration! # set dfilter 0 permit 0/0 0/0 # # autoriser les paquets ident # set ifilter 0 permit tcp dst eq 113 set ofilter 0 permit tcp src eq 113 # # autoriser les connexions telnet à l'Internet # set ifilter 1 permit tcp src eq 23 estab set ofilter 1 permit tcp dst eq 23 # # autoriser l'accès ftp à l'Internet # set ifilter 2 permit tcp src eq 21 estab set ofilter 2 permit tcp dst eq 21 set ifilter 3 permit tcp src eq 20 dst gt 1023 set ofilter 3 permit tcp dst eq 20 # # autoriser les requêtes DNS # set ifilter 4 permit udp src eq 53 set ofilter 4 permit udp dst eq 53 # # autoriser les transferts de zone DNS # set ifilter 5 permit tcp src eq 53 set ofilter 5 permit tcp dst eq 53 # # autoriser l'accès depuis/vers le réseau local # set ifilter 6 permit 0/0 192.168.1.0/24 set ofilter 6 permit 192.168.1.0/24 0/0 # # autoriser les réponses au ping et traceroute # set ifilter 7 permit icmp set ofilter 7 permit icmp set ifilter 8 permit udp dst gt 33433 set ofilter 9 permit udp dst gt 33433 # # autoriser cvsup # set ifilter 9 permit tcp src eq 5998 set ofilter 9 permit tcp dst eq 5998 set ifilter 10 permit tcp src eq 5999 set ofilter 10 permit tcp dst eq 5999 # # autoriser NTP pour la synchronization des horloges # set ifilter 11 permit tcp src eq 123 dst eq 123 set ofilter 11 permit tcp src eq 123 dst eq 123 set ifilter 12 permit udp src eq 123 dst eq 123 set ofilter 12 permit udp src eq 123 dst eq 123 # # SMTP serait une bonne idée! # set ifilter 13 permit tcp src eq 25 set ofilter 13 permit tcp dst eq 25 # # # nous utilisons beaucoup whois, donc nous le laissons passer # set ifilter 14 permit tcp src eq 43 set ofilter 14 permit tcp dst eq 43 set ifilter 15 permit udp src eq 43 set ofilter 15 permit udp dst eq 43 # # si aucune des conditions ci-dessus n'est remplie, le paquet est refusé #-------
Il peut y avoir jusqu'à vingt règles dans chaque classe de filtres. Dans chaque classe, les règles sont numérotées séquentiellement de 0 à 20, mais aucune règle dans une classe particulière n'est appliquée tant que la règle “0” n'est pas définie!
Si vous décidez de ne pas utiliser de règles de filtrage dans votre configuration du programme ppp, alors TOUT le trafic de/vers votre système sera accepté lorsqu'il est connecté à votre fournisseur d'accès.
Si vous décidez d'appliquer des règles de filtrages, ajoutez les lignes précédentes à votre fichier /etc/ppp/ppp.conf dans l'une des sections “default”, “demand” ou “interactive” (ou à toutes - c'est à vous de voir).
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.