TetaTricks/chap/reseau.tex

187 lines
6.0 KiB
TeX
Raw Normal View History

2021-10-31 00:54:36 +11:00
\chapter{Les Intertubes}
2020-11-13 11:35:31 +11:00
\label{chap:reseau} \index{Internet}
2020-09-28 02:29:13 +11:00
Ah, le grand Internet sauvage, il serait temps qu'on en parle un peu.
2024-09-29 05:25:02 +11:00
Nous allons voir dans ce chapitre des logiciels peu connus,
et les quelques utilisations que l'on peut en faire
afin d'avoir le label « techno-futilité ».
2020-09-28 02:29:13 +11:00
Si vous attendiez des choses plus sérieuses, j'ai aussi ça
2020-11-10 12:40:30 +11:00
en magasin : \textsc{dns} page \pageref{chap:DNS},
2020-11-13 11:35:31 +11:00
\textsc{ssh} page \pageref{chap:ssh},
2021-08-03 19:20:58 +11:00
streaming page \pageref{chap:streaming},
2020-09-28 02:29:13 +11:00
et probablement bien d'autres à venir.
% http://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/
% ==============================================================
\section{xinetd}
\index{xinetd}
\label{xinetd}
Xinetd est un \textit{super-server daemon} qui gère l'accueil
et le lancement pour certains services Internet essentiels
tels que \texttt{daytime}\index{daytime} ou
\texttt{echo}\index{echo}.
Par rapport à son ancêtre
\texttt{inetd}\index{inetd}, décrit en page \pageref{inetd},
il offre plus
de souplesse dans la configuration et la gestion des droits
d'accès.
2020-11-13 11:35:31 +11:00
Ceci dit, de nos jours\footnote{Wed Nov 11 04:47:50 CET 2020},
il a probablement été remplacé par quelque chose d'encore plus
étrange basé sur \textsl{systemd}\index{systemd},
puisque l'important
ça n'est pas que ça soit mieux, mais que ce soit
2024-09-29 05:25:02 +11:00
\textbf{nouveau}. Il fallait le dire.
2020-11-13 11:35:31 +11:00
2024-09-29 05:25:02 +11:00
% ---------------------------------------------------------
\subsection{Un serveur pour \textsl{qotd}}
\label{xinetd:qotd}
2020-09-28 02:29:13 +11:00
À titre d'exercice, nous allons reprendre l'exemple du serveur
de \textsl{quote of the day} que nous avons déja utilisé avec
2024-09-29 05:25:02 +11:00
Inetd\index{inetd} (page \pageref{qotd}),
et lancer notre petit script par l'intermédiaire de Xinetd.
2020-09-28 02:29:13 +11:00
Pour cela, il faut créer dans le répertoire
\texttt{/etc/xinetd.d/}\footnote{Attention, ce répertoire
est peut-être un debianisme, ymmv.} un fichier nommé
\texttt{qotd} et contenant ceci :
\begin{verbatim}
service qotd
2024-09-29 05:25:02 +11:00
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
server = /usr/local/bin/qotd.sh
}
2020-09-28 02:29:13 +11:00
\end{verbatim}
Bien entendu, le script \texttt{qotd.sh} décrit en page
\pageref{inetd} sera placé dans le bon répertoire.
2024-09-29 05:25:02 +11:00
Et ouvert aux quatre vents par un
\texttt{sudo chmod a+x /usr/local/bin/qotd.sh} de bon aloi.
\index{fortune}
\lstinputlisting[language=sh]{code/inet/qotd.sh}
2020-09-28 02:29:13 +11:00
Ensuite, il faut demander à Xinetd de relire ses fichiers de
2024-09-29 05:25:02 +11:00
configuration par un bon \textsc{SIGHUP} bien senti
et au bon endroit, c'est à dire le PID que l'on pourra
(peut-être) obtenir dans \texttt{/var/run/xinetd.pid},
et paf.
Allons voir si cela fonctionne.
2020-09-28 02:29:13 +11:00
2021-07-08 20:48:35 +11:00
Ah, on me murmure dans l'oreille que Xinetd n'existe plus dans
les Linux modernes, et qu'il existe quelque chose de
\textit{beaucoup mieux}. Je ne sais pas quoi.
Je demande à voir\footnote{Parce que c'est écrit par LP ?}.
2024-09-29 05:25:02 +11:00
% --> https://0pointer.de/blog/projects/inetd.html
2020-09-28 02:29:13 +11:00
% ==============================================================
\section{Translation d'adresse}
\index{NAT}
2023-09-04 05:30:43 +11:00
% XXX expliquer un peu le NAT !
2020-09-28 02:29:13 +11:00
Voir en page \pageref{NAT} pour découvrir comment utiliser une
machine connectée en WiFi pour donner accès à Internet à votre
réseau local Ethernet\dots
Mais cette translation d'adresse peut avoir aussi d'autres
2021-07-08 20:48:35 +11:00
défis à relever pour en faire une solution complexe et
2020-09-28 02:29:13 +11:00
amusante à des problèmes inexistants et datant du siècle
2020-11-13 11:35:31 +11:00
dernier.
Par exemple la comparaison de la mise en œuvre du NAT
2023-09-04 05:30:43 +11:00
avec \texttt{iptables} et \texttt{pfctl} est une source de trolls
2020-09-28 02:29:13 +11:00
sans fin.
% ==============================================================
2020-11-13 11:35:31 +11:00
\section{Outils de diagnostic}
2020-09-28 02:29:13 +11:00
iftop\index{iftop},
iptraf\index{iptraf}
\dots
2024-09-29 05:25:02 +11:00
Mais c'est toujours la faute du \textsc{dns}\index{dns}.
2020-11-13 11:35:31 +11:00
% -------------------------------------------------------------
\subsection{iperf}
\index{iperf}
Avec \texttt{iperf}, on peut mesurer le débit du réseau
IP (en TCP\index{TCP} ou UDP\index{UDP})
entre deux machines. Il faut d'abord le lancer sur la machine
cible en mode "serveur" ou "daemon".
Ensuite, des clients peuvent mesurer le débit entre eux-même
et le serveur.
Le port par défaut utilisé est le 5001.
2020-09-28 02:29:13 +11:00
% -------------------------------------------------------------
\subsection{tcpdump}
2021-01-20 14:53:48 +11:00
\index{tcpdump} \label{tcpdump}
2020-09-28 02:29:13 +11:00
2020-11-10 12:40:30 +11:00
C'est clairement un outil dédié au voyeurisme, mais qui permet de
décrypter les ésotérismes de MiniMad\index{minimad}. C'est donc
sur cet exemple que nous allons partir.
2020-09-28 02:29:13 +11:00
2020-11-13 11:35:31 +11:00
Ces gadgets dialoguent entre eux par le protocole
\textsl{Bonjour}\index{Bonjour}, aka \textsl{ZeroConf}%
\footnote{C'est en page \pageref{chap:Bonjour} qu'on
en parle vaguement}.
2021-10-31 00:54:36 +11:00
Mais en fait, non. Je n'ai plus les Minimad sous la main.
Il va falloir trouver un autre exemple, ou l'imaginer
nous-même.
2020-09-28 02:29:13 +11:00
% -------------------------------------------------------------
\subsection{nmap}
\index{nmap}
2020-11-13 11:35:31 +11:00
C'est clairement aussi un outil dédié au voyeurisme à distance,
puisque il permet de découvrir, avec plus ou moins de détails,
les services exposés à l'extérieur par une machine distante.
2020-09-28 02:29:13 +11:00
2021-10-05 07:24:01 +11:00
Comment scanner un /24 pour y découvrir les machines ?
2020-09-28 02:29:13 +11:00
2021-10-05 07:24:01 +11:00
\begin{verbatim}
# nmap -sS 192.168.42.0/24
\end{verbatim}
\texttt{-sS} = TCP SYN scan.
2021-01-20 14:53:48 +11:00
2020-09-28 02:29:13 +11:00
% ==============================================================
\section{netcat}
\index{netcat}
2022-04-01 23:23:45 +11:00
\textbf{Attention :} Il existe au moins $N$ variantes de netcat
2021-10-31 00:54:36 +11:00
en circulation, bien entendu avec des options et des
comportements différents.
2020-09-28 02:29:13 +11:00
\begin{quote}
The nc (or netcat) utility is used for just about anything under the sun
2020-11-13 11:35:31 +11:00
involving TCP or UDP. It can open TCP connections, send UDP packets,
2020-09-28 02:29:13 +11:00
listen on arbitrary TCP and UDP ports, do port scanning, and deal with
2020-11-13 11:35:31 +11:00
both IPv4 and IPv6\footnote{Voir le chapitre \ref{chap:IPv6} pour cette
nouveauté.}.
Unlike telnet(1), nc scripts nicely, and separates
2020-09-28 02:29:13 +11:00
error messages onto standard error instead of sending them to standard
output, as telnet(1) does with some.
\end{quote}
2021-10-31 00:54:36 +11:00
Netcat was written by a guy we know as the Hobbit <hobbit@avian.org>.
2020-09-28 02:29:13 +11:00
% ==============================================================