TetaTricks/chap/DNS.tex

153 lines
4.5 KiB
TeX
Raw Normal View History

2020-10-27 09:06:17 +11:00
\chapter{Domain Name Service}
2020-11-10 12:40:30 +11:00
\label{chap:DNS}
2020-11-17 05:45:21 +11:00
\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
2024-09-29 05:25:02 +11:00
Par contre, « \textit{C'est encore de la faute du DNS} »
est devenu, ces dernières années, une excuse crédible.
Il y a de nombreuses raisons qui justifient cette remarque.
2020-11-17 05:45:21 +11:00
% ------------------------------------------------------------
2020-10-27 09:06:17 +11:00
2020-11-04 20:12:10 +11:00
\section{Outils de base}
\subsection{host}
2020-10-27 09:06:17 +11:00
\index{host}
2021-01-20 14:53:48 +11:00
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,
2020-10-27 09:06:17 +11:00
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 ?
% ------------------------------------------------------------
2020-11-04 20:12:10 +11:00
\subsection {nslookup}
2020-10-27 09:06:17 +11:00
\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}
2020-11-17 05:45:21 +11:00
\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}
2020-10-27 09:06:17 +11:00
% ------------------------------------------------------------
2020-11-04 20:12:10 +11:00
\subsection{dig}
2020-10-27 09:06:17 +11:00
\index{dig}
2022-01-30 08:46:41 +11:00
% https://jvns.ca/blog/2021/12/04/how-to-use-dig/
2020-10-27 09:06:17 +11:00
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 :
2020-12-12 14:13:54 +11:00
\texttt{\$ dig +trace <nom.de.domaine>}
2020-10-27 09:06:17 +11:00
2020-12-12 14:13:54 +11:00
Pour obtenir le reverse d'une adresse IP :
\texttt{\$ dig +trace -x <adresse.ip>}
2020-10-27 09:06:17 +11:00
2022-01-30 08:46:41 +11:00
2020-10-27 09:06:17 +11:00
% ------------------------------------------------------------
2020-11-04 20:12:10 +11:00
% \subsection{delv}
% \index{delv}
%
2020-11-17 05:45:21 +11:00
% Nouvel outil en rapport avec DNSSEC\index{DNSSEC}.
2020-10-27 09:06:17 +11:00
% XXX
2020-11-04 20:12:10 +11:00
% \index{XXX}
2020-10-27 09:06:17 +11:00
% http://www.bortzmeyer.org/delv.html
% XXX
% ------------------------------------------------------------
2020-11-04 20:12:10 +11:00
\subsection{checkresolv}
2020-10-27 09:06:17 +11:00
2020-11-17 05:45:21 +11:00
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
2021-01-20 14:53:48 +11:00
semblent définitivement perdues dans les ténèbres
de l'Undernet profond. Si quelqu'un a une piste\dots
2020-11-04 20:12:10 +11:00
2021-01-20 14:53:48 +11:00
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
2020-10-27 09:06:17 +11:00
% ------------------------------------------------------------
2021-10-31 00:54:36 +11:00
\section{DHCP} \index{DHCP} \index{dhcpd}
2020-10-27 09:06:17 +11:00
2020-11-04 20:12:10 +11:00
\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}
2021-01-20 14:53:48 +11:00
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}.
2021-10-31 00:54:36 +11:00
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/
2020-11-04 20:12:10 +11:00
% ------------------------------------------------------------
2020-10-27 09:06:17 +11:00
\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}
2020-11-17 05:45:21 +11:00
% ------------------------------------------------------------
2020-10-27 09:06:17 +11:00