You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
6.5 KiB
205 lines
6.5 KiB
\chapter{Les intertubes} |
|
\label{chap:reseau} \index{Internet} |
|
|
|
Ah, le grand Internet sauvage, il serait temps qu'on en parle un peu. |
|
Nous allons voir dans ce chapitre quelques utilisations |
|
que l'on peut qualifier de «~créatives~». |
|
|
|
Si vous attendiez des choses plus sérieuses, j'ai aussi ça |
|
en magasin : \textsc{dns} page \pageref{chap:DNS}, |
|
\textsc{ssh} page \pageref{chap:ssh}, |
|
streaming page \pageref{streaming}, |
|
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. |
|
|
|
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 |
|
\textbf{nouveau}. |
|
|
|
\subsection{qotd} |
|
\index{qotd} |
|
|
|
À titre d'exercice, nous allons reprendre l'exemple du serveur |
|
de \textsl{quote of the day} que nous avons déja utilisé avec |
|
Inetd\index{inetd}, et lancer le |
|
petit script par l'intermédiaire de Xinetd. |
|
|
|
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 |
|
{ |
|
disable = yes |
|
type = UNLISTED |
|
|
|
socket_type = stream |
|
protocol = tcp |
|
|
|
user = nobody |
|
server = /usr/local/bin/qotd.sh |
|
} |
|
\end{verbatim} |
|
|
|
Bien entendu, le script \texttt{qotd.sh} décrit en page |
|
\pageref{inetd} sera placé dans le bon répertoire. |
|
Ensuite, il faut demander à Xinetd de relire ses fichiers de |
|
configuration par un signal bien senti et au bon endroit. |
|
|
|
|
|
|
|
|
|
|
|
% ============================================================== |
|
\section{Translation d'adresse} |
|
\index{NAT} |
|
|
|
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 |
|
défits à relever pour en faire une solution complexe et |
|
amusante à des problèmes inexistants et datant du siècle |
|
dernier. |
|
Par exemple la comparaison de la mise en œuvre du NAT |
|
avec \texttt{iptable} et \texttt{pfctl} est une source de trolls |
|
sans fin. |
|
|
|
|
|
% ============================================================== |
|
\section{Iodine} |
|
\index{iodine}\label{iodine} |
|
|
|
Iodine, c'est quoi ? C'est un ensemble de logiciels qui permettent |
|
de se brancher sur l'Intertube même si on n'a pas d'accès |
|
«~autorisé~» par la voisine qui a déménagée vers la |
|
lointaine campagne avec sa friboite. |
|
|
|
\begin{quote} |
|
This is a piece of software that lets you tunnel IPv4 data through a |
|
DNS server. This can be usable in different situations where internet |
|
access is firewalled, but DNS queries are allowed. |
|
The name iodine was chosen since it starts with IOD (IP Over DNS) |
|
and since iodine has atomic number 53, which happens to be the DNS |
|
port number. |
|
\end{quote} |
|
|
|
À ce jour (2 septembre 2013) ce que vous allez lire est basé |
|
sur la version \texttt{0.6.0-rc1} et sera probablement plus ou |
|
moins incompatible avec les versions précedentes ou suivantes, ymmv. |
|
|
|
\begin{verbatim} |
|
root@plop:iodine-0.6.0-rc1# bin/iodine teton.mooo.com -f -P m |
|
Opened dns0 |
|
Opened UDP socket |
|
Sending DNS queries for teton.mooo.com to 192.168.1.1 |
|
Autodetecting DNS query type (use -T to override).................. |
|
iodine: No suitable DNS query type found. Are you connected to a network? |
|
iodine: If you expect very long roundtrip delays, use -T explicitly. |
|
iodine: (Also, connecting to an "ancient" version of iodined won't work.) |
|
\end{verbatim} |
|
|
|
|
|
\subsection{Coté serveur} |
|
|
|
Je pense qu'il faut commencer par voir du coté du DNS |
|
pour déléguer une sous-zone à la machine qui va faire tourner |
|
le serveur iodine. Mais j'en suis pas certain. RTFM. |
|
|
|
\subsection{Coté client} |
|
|
|
Je n'en sais pas plus non plus... |
|
|
|
\begin{verbatim} |
|
sudo bin/iodine -f -P s3cr3tp4ssw0rd i.buvette.org |
|
\end{verbatim} |
|
|
|
Donc, n'ayant plus vraiment (pour le moment) le besoin d'utiliser |
|
ce passe-muraille, je vais laisser ce passage en l'état... |
|
|
|
|
|
% ============================================================== |
|
\section{Outils de diagnostic} |
|
|
|
iftop\index{iftop}, |
|
iptraf\index{iptraf} |
|
\dots |
|
|
|
% ------------------------------------------------------------- |
|
\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. |
|
|
|
% ------------------------------------------------------------- |
|
\subsection{tcpdump} |
|
\index{tcpdump} \label{tcpdump} |
|
|
|
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. |
|
|
|
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}. |
|
|
|
% ------------------------------------------------------------- |
|
|
|
\subsection{nmap} |
|
\index{nmap} |
|
|
|
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. |
|
|
|
|
|
|
|
% ============================================================== |
|
\section{netcat} |
|
\index{netcat} |
|
|
|
\begin{quote} |
|
The nc (or netcat) utility is used for just about anything under the sun |
|
involving TCP or UDP. It can open TCP connections, send UDP packets, |
|
listen on arbitrary TCP and UDP ports, do port scanning, and deal with |
|
both IPv4 and IPv6\footnote{Voir le chapitre \ref{chap:IPv6} pour cette |
|
nouveauté.}. |
|
Unlike telnet(1), nc scripts nicely, and separates |
|
error messages onto standard error instead of sending them to standard |
|
output, as telnet(1) does with some. |
|
\end{quote} |
|
|
|
|
|
% ============================================================== |
|
|
|
|