voxdemonix : révision n°6 (02 septembre 2018 14:40:55)
Qu'est-ce que captive.apple.com
===============================
captive.apple.com est un service de _Health Check_ utilisé sur [Android](https://fr.wikipedia.org/wiki/Android) afin de connaître l'état de la connexion Wan (internet). Les smartphones/tablettes émettent de façon régulière des requêtes [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) vers http://captive.apple.com tandis que ce dernier répond en affichant "Success ".
Si la machine n'arrive pas à récupérer cette valeur en joignant le site, le smartphone ou la tablette affichera un petit point d'exclamation sur l'écran d'accueil. Il annoncera aussi dans les notifications que la connexion internet n'est pas disponible.
Incidence sur la vie privée
===========================
Nécessite plus d'informations (présence de paramètre GET ?).
Mettre en place une alternative
===============================
1.#### Suivez ce tuto pour mettre en place un serveur DNS menteur : [[Tuto/HowTo] Mettre en place un serveur DNS aux noms de domaines parametrable (Rogue DNS)](https://linuxfr.org/wiki/tuto-howto-mettre-en-place-un-serveur-dns-aux-noms-de-domaines-parametrable-rogue-dns)
1.#### Dans les noms de domaines, renvoyez captive.apple.com vers une [adresse IP](https://fr.wikipedia.org/wiki/Adresse_ip) disponible sur votre réseau local (LAN).
1.#### Sur cette [adresse IP](https://fr.wikipedia.org/wiki/Adresse_ip) Lan, installez un serveur web et videz l'index.html afin de n'y placer que "Success ". Vous pouvez bien entendu créer un vhost dédié. (ndlr : ajouter commande magique netcat)Le plus simple étant d'utiliser [ncat](https://nmap.org/ncat/guide/ncat-usage.html). Pour ce faire
* Créez un fichier html, par exemple dans _/var/www/html/captive_
```
mkdir -p /var/www/html/captive
nano /var/www/html/captive/response.html
```
* Ajoutez les lignes suivantes
```
HTTP/1.0 200 OK
<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>
```
* Sauvegardez et quittez (_CTRL+X_)
* Éditez cron avec un utilisateur disposant de peu de droit (bref, pas root)
```
crontab -e
```
Et ajoutez la ligne suivante en l'adaptant éventuellement à vos envies :
```
@reboot ( sleep 15 ; ncat -k -l 127.0.0.1 80 < /var/www/html/captive/response.html )
```
* _sleep 15_ => on attends 15 secondes afin que le réseau soit prêt
* -k => multiple connexion possible
* -l => on place ncat en écoute (bind)
* 127.0.0.1 => on restreint éventuellement à une adresse sur laquelle écouter. Ce paramètre n'est pas obligatoire.
* 80 => le numéro de port. Attention d'éviter tout conflit avec un autre logiciel ni a tenter d'écouter sur un port réservé à root.