TetaTricks/chap/DNS.tex

149 lines
4.3 KiB
TeX

\chapter{Domain Name Service}
\label{chap:DNS}
\index{DNS}
% ------------------------------------------------------------
Le DNS est (pour simplifier) l'annuaire de l'Internet.
À la base, c''est lui
qui va permettre de connaitre l'adresse d'une machine ou d'un
service à partir de son nom. Un énorme progrès comparé à la
maintenance du fichier \texttt{/etc/hosts} qu'il fallait,
à la vieille époque, télécharger toutes les nuits\dots
% ------------------------------------------------------------
\section{Outils de base}
\subsection{host}
\index{host}
C'est vraiment la commande \textit{vanilla} pour tout ce qui touche
à la résolution de nom.
Elle propose les premières options de base,
avec une syntaxe facile à retenir. Elle existe, sous des formes
légèrement déviantes, dans une grande partie des
OS\footnote{même dans le sale, c'est dire.} existants de nos jours.
\begin{verbatim}
tth@plop:~ $ host sigfood.dinorama.fr
sigfood.dinorama.fr has address 91.121.221.123
tth@plop:~ $ host -t mx dinorama.fr
dinorama.fr mail is handled by 20 mx1.smeuh.org.
tth@plop:~ $
\end{verbatim}
Ces deux exemples sont encourageants. Est-il possible d'aller
plus loin ?
% ------------------------------------------------------------
\subsection {nslookup}
\index{nslookup}
\begin{quote}
Nslookup is a program to query Internet domain name
servers. Nslookup has two modes: interactive and
non-interactive. Interactive mode allows the user to query
name servers for information about various hosts and domains
or to print a list of hosts in a domain. Non-interactive mode
is used to print just the name and requested information for
a host or domain. »
\end{quote}
\begin{verbatim}
tth@tranxene:~$ nslookup -type=txt tetalab.org
Server: 80.67.169.12
Address: 80.67.169.12#53
Non-authoritative answer:
tetalab.org text = "v=spf1 ip4:89.234.156.223 -all"
Authoritative answers can be found from:
tth@tranxene:~$
\end{verbatim}
% ------------------------------------------------------------
\subsection{dig}
\index{dig}
% https://jvns.ca/blog/2021/12/04/how-to-use-dig/
Dig (\textit{domain information groper}) est un outil d'interrogation
des serveurs DNS. Par défaut, il questionne les serveurs
listés dans \texttt{/etc/resolv.conf}.
Pour résoudre récursivement un nom de domaine à partir de la racine :
\texttt{\$ dig +trace <nom.de.domaine>}
Pour obtenir le reverse d'une adresse IP :
\texttt{\$ dig +trace -x <adresse.ip>}
% ------------------------------------------------------------
% \subsection{delv}
% \index{delv}
%
% Nouvel outil en rapport avec DNSSEC\index{DNSSEC}.
% XXX
% \index{XXX}
% http://www.bortzmeyer.org/delv.html
% XXX
% ------------------------------------------------------------
\subsection{checkresolv}
Un outil très basique conçu et bricolé par Tonton~Th au siècle
dernier lors d'un séjour hivernal à Frontignan-plage.
Hélas, les sources
semblent définitivement perdues dans les ténèbres
de l'Undernet profond. Si quelqu'un a une piste\dots
Une ré-écriture s'impose, en repartant sur les mêmes bases.
En utilisant les mêmes fonctions qu'une application basique.
Peut-être aussi en lui trouvant un nom plus \textsl{fun}\dots
% ------------------------------------------------------------
\section{DHCP} \index{DHCP} \index{dhcpd}
\begin{quote}
The DHCP protocol allows a host to contact a central server which maintains a
list of IP addresses which may be assigned on one or more subnets. A DHCP
client may request an address from this pool, and then use it on a temporary
basis for communication on network.
\end{quote}
Question : comment peut-on « écouter » les requètes et les réponses
DHCP sur notre réseau local pour détecter le rogue-machin ?
Probablement avec \texttt{tcpdump}\index{tcpdump},
et c'est à l'essai
dans la page \pageref{tcpdump}.
Un compagnon privilégié du DHCP est le système PXE\index{PXE}
qui permet de \textsl{booter} des images ISOs stockées sur
un serveur du réseau local.
% https://www.geoffray-levasseur.org/tutoriels-2/un-pxe-pour-les-unir-tous/
% ------------------------------------------------------------
\section{dnsmasq}
\index{dnsmasq}
\begin{quote}
dnsmasq is a lightweight DNS, TFTP and DHCP server. It is intended to
provide coupled DNS and DHCP service to a LAN.
\end{quote}
% ------------------------------------------------------------