2020-09-28 02:15:15 +11:00
|
|
|
% ==============================================================
|
|
|
|
% TRUCS DE VIEUX
|
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
\chapter{Trucs de dino}
|
2020-11-13 11:35:31 +11:00
|
|
|
\label{chap:dino}
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
Je vais, dans ce chapitre, parler de choses que les moins de vingt
|
|
|
|
ans ne peuvent pas connaitre. Des choses qui existaient
|
2021-01-20 14:53:48 +11:00
|
|
|
\textsl{bien avant} le Web\index{www}, et pour lesquelles on
|
2024-09-29 05:25:02 +11:00
|
|
|
peut facilement imaginer des usages alternatifs et amusants !
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
% ==============================================================
|
|
|
|
|
|
|
|
\section{inetd}
|
|
|
|
\index{inetd}\label{inetd}
|
|
|
|
|
|
|
|
Aussi connu sous le nom de « superserveur Internet », ce démon
|
|
|
|
a fait ses premiers pas dans l'Unix 4.3BSD
|
|
|
|
et depuis est maintenant remplacé par
|
2024-09-29 05:25:02 +11:00
|
|
|
\texttt{xinetd}\index{xinetd}, décrit en page \pageref{xinetd},
|
|
|
|
lequel a peut-être été déja supplanté par un truc qui est
|
|
|
|
\textit{plus nouveau}.
|
|
|
|
% --> https://0pointer.de/blog/projects/inetd.html
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
Inetd a pour but de gérer l'accès à des services réseaux,
|
|
|
|
qui peuvent être internes ou externes. Un service interne
|
2024-09-29 05:25:02 +11:00
|
|
|
est entièrement géré par Inetd : on y trouve par exemple
|
|
|
|
\textsl{daytime} qui permet de connaitre l'heure qu'il est à
|
2020-09-28 02:15:15 +11:00
|
|
|
l'autre bout du monde :
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
tth@plop:~$ grep daytime /etc/inetd.conf
|
|
|
|
daytime stream tcp nowait root internal
|
|
|
|
tth@plop:~$ nc uind.cispeo.fr daytime
|
|
|
|
29 JUL 2014 21:10:30 CEST
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Dans ce cas, c'est directement Inetd qui répond. Mais il sait
|
|
|
|
faire une autre chose, bien plus constructive :
|
|
|
|
toujours répondre à
|
|
|
|
un appel venant du grand Ternet, mais maintenanr nous allons
|
|
|
|
déléguer le traitement de la demande à un
|
|
|
|
autre participant.
|
|
|
|
|
|
|
|
Il ne reste plus qu'à le mettre en œuvre, en réutilisant
|
|
|
|
un exemple très ancien\footnote{Août 1998, lors d'une
|
|
|
|
réunion du CULTe, à Toulouse}, et très simple à
|
|
|
|
comprendre.
|
2024-09-29 05:25:02 +11:00
|
|
|
Dans notre cas, inetd sera à l'écoute sur un port tcp.
|
|
|
|
Dès qu'une demande de connection arrive,
|
|
|
|
il accepte la connection, lance le process configuré,
|
|
|
|
puis
|
|
|
|
connecte ce qui vient du socket au \textsl{stdin} de ce
|
|
|
|
process, et le \textsl{stdout} de celui-ci à la sortie
|
|
|
|
vers l'extérieur.
|
2020-09-28 02:15:15 +11:00
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
% Voir aussi : tcpserver\index{tcpserver}\dots
|
|
|
|
|
|
|
|
% ---------------------------------------------------------
|
2022-06-10 06:08:46 +11:00
|
|
|
|
2020-09-28 02:15:15 +11:00
|
|
|
\subsection{qotd}
|
2024-09-29 05:25:02 +11:00
|
|
|
\index{qotd} \label{qotd}
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
Le protocole « Quote Of The Day » (\texttt{qotd}) a été
|
|
|
|
normalise dans le \texttt{rfc865}, écrit en 1983 par John Postel.
|
2024-09-29 05:25:02 +11:00
|
|
|
Une rapide implémentation du moteur de quote peut être codée avec
|
|
|
|
quelques lignes de shell~:
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
\index{fortune}
|
2024-09-29 05:25:02 +11:00
|
|
|
\lstinputlisting[language=sh]{code/inet/qotd.sh}
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
Maintenant, il nous faut dire à Inetd d'appeler ce moteur
|
|
|
|
chaque fois qu'une connection tcp entrante arrive sur le
|
2024-09-29 05:25:02 +11:00
|
|
|
port 17 (ce numéro du service est défini dans le fichier
|
|
|
|
\texttt{/etc/services}).
|
|
|
|
|
|
|
|
XXX\index{XXX}
|
|
|
|
|
|
|
|
Et pour les modernistes qui utilisent \texttt{xinetd}\index{xinetd}
|
|
|
|
les explications sont en page \pageref{xinetd:qotd}.
|
2020-09-28 02:15:15 +11:00
|
|
|
|
2021-01-20 14:53:48 +11:00
|
|
|
% ==============================================================
|
|
|
|
%
|
|
|
|
% https://www.bortzmeyer.org/1288.html
|
|
|
|
%
|
|
|
|
\section{Finger} \index{finger} \label{finger}
|
|
|
|
|
|
|
|
\textbf{finger} — user information lookup program
|
|
|
|
|
|
|
|
Sur le port 79/tcp.
|
|
|
|
|
|
|
|
https://tools.ietf.org/html/rfc1288
|
|
|
|
|
|
|
|
https://www.bortzmeyer.org/1288.html
|
|
|
|
|
2020-09-28 02:15:15 +11:00
|
|
|
% ==============================================================
|
|
|
|
|
2021-01-20 14:53:48 +11:00
|
|
|
\section{Gopher}
|
2020-09-28 02:15:15 +11:00
|
|
|
\index{gopher}
|
|
|
|
|
2021-01-20 14:53:48 +11:00
|
|
|
Sur le port 70/tcp.
|
2020-09-28 02:15:15 +11:00
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
The Internet Gopher(tm) software and documentation is copyright (c)
|
|
|
|
1991, 1992, 1993, 1994 by the University of Minnesota.
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
% ==============================================================
|
|
|
|
|