Tag - réseau

Entries feed

Friday 22 July 2011

Blog migré !

Plusieurs internautes reconnus ont retwitté mon dernier billet. Merci Stéphane Bortzmeyer et Korben ! Mon blog était devenu affreusement lent à consulter, la ligne ADSL ne tenant plus la charge avec son petit mégabit d'upload. Plus de 50 personnes se sont rabattues sur une copie que j'ai envoyée sur pastebin.

J'ai décidé de migrer mon blog immédiatement vers un serveur OVH. Merci à Ekinox pour ce gros domU ! Tout est de nouveau opérationnel et rapide si les DNS se sont bien propagés chez vous. Je migrerai le reste de mes services demain, Mercurial, SVN, etc. L'ancien serveur est toujours accessible sur

home.grapsus.net

Bouygues Télécom modifie en douce ses CGS peu après mon premier billet

Avant-propos

Tout d'abord je voudrais remercier tous ceux qui ont promu mon billet précédent sur Twitter ou dans leurs blogs : en deux jours, je suis passé de 50 à 1000 visiteurs journaliers, avec une pointe à 3500 hier. Ça me donne vraiment envie d'écrire plus souvent.

Mon blog a d'ailleurs eu une petite coupure causée par cette affluence soudaine. Il est actuellement hébergé à la maison avec une machine à la retraite et une connexion ADSL. Je fais ça plus par conviction que par manque de moyens. Ce système marchait parfaitement pour 50 visiteurs journaliers mais il est évident que ça ne peut plus marcher avec 1000 et au-delà. Je vais donc le déplacer sur un serveur dédié plus traditionnel dans les jours qui viennent et il n'y aura plus de problèmes de ce côté.

Des personnes ont mentionné le tethering employé pour faire mes tests comme un non respect des conditions d'utilisation. Oui c'est vrai, mais techniquement, la provenance d'un paquet n'a aucune espèce d'importance et je me suis servi d'un PC pour une raison purement pratique, pour avoir accès à des outils comme tcpdump, wireshark, wget, nmap ou netcat. On pourrait refaire les mêmes tests depuis le terminal du téléphone et l'on trouvera rigoureusement la même chose. D'ailleurs la raison qui m'a poussé à faire ces tests est que je n'arrivais regarder presqu'aucune vidéo proposée par un site web depuis mon téléphone. D'autres personnes se plaignent de ne pas pouvoir consulter des documents tels que des journaux ou des BD depuis leur téléphone. Ceci démontre bien que ce n'est pas un problème de tethering, mais une véritable limitation pour ceux qui utilisent légitiment le service.

N'hésitez pas à me contacter si vous avez des questions techniques concernant le test de votre connexion. Je pourrai même vous aider si vous me donnez un accès SSH.

Introduction

De nombreuses personnes (et trolls) ont commenté mon billet précédent dans lequel je dénonçais la coupure des sessions TCP dépassant 10 Mo et l'interdiction, par un proxy transparent, de l'accès aux fichiers dépassant 10 Mo. Plusieurs personnes ont dit que ces limites étaient annoncées dans les conditions générales de service de l'opérateur. À ma grande surprise c'est vrai ! Mais pourtant, je me rappelle, en janvier 2011, avoir épluché ces conditions, avant de souscrire à mon forfait Internet et il n'y avait rien qui parlait de ce genre de limites.

Pratiques douteuses avec les CGS

Je ne suis pas du tout juriste, mais je sais que lorsqu'on souscrit à un service, surtout avec de l'engagement de durée, on signe un très long contrat décrivant très scrupuleusement le service souscrit et les conditions de son utilisation. Lorsque l'opérateur ne respecte pas ces conditions, ou lorsqu'il décide de changer de manière unilatérale ces conditions, le client n'est plus tenu à respecter son engagement. C'est exactement ce qui était arrivée avec l'augmentation de la TVA sur les services multimédias en février 2011.

Chez Bouygues Télécom on a une vision très particulière du contrat avec le client. Après des heures de recherche, la seule page qui contient des informations à valeur légale (et non pas des brochures ou des informations indicatives) est la suivante : http://www.laboutique.bouyguestelec...

La première chose qui m'a frappée, c'est que ces documents ne sont pas versionnés : il sont régulièrement mis à jour et toute trace des versions précédentes est effacée. Or c'est les conditions de service à la date où l'on a souscrit au service qui doivent être appliquées à un client. Le moindre changement doit être explicitement accepté par le client. C'est quelque chose que l'on voit régulièrement chez Free, sur la page d'accueil de l'espace client on nous propose d'accepter ou non des modifications apportées au contrat (souvent pour profiter de nouveaux tarifs ou services). Chez Bouygues, il est donc quasi impossible d'obtenir le texte des conditions de services à la date où l'on s'est abonné au service.

Deuxième point noir : "Conditions Générales de Service" est tout sauf un document légal, c'est encore une brochure de 4 pages qui prend la forme d'une FAQ et où on vous dit en gros deux choses :

  • Les seules raisons valables pour résilier avant la fin de l'engagement c'est le décès ou l'emprisonnement à longue durée du client.
  • Tous les tarifs et les services sont définis dans le "Guide des tarifs".

Alors là c'est très fort : pour la description et les tarifs des services souscrits on vous renvoie à une brochure !

Changement des CGS en douce

Je tombe alors sur le fameux "Guide des tarifs" version "mai/août 2011" qui prend la forme d'une brochure explicative des prix et des services avec, à la page 74, "les informations contractuelles". Cette dernière partie se contente de reprendre le texte des "Conditions Générales de Service" sous forme de FAQ.

Dans la partie non contractuelle on trouve effectivement la phrase suivante :

INTERNET
Correspond à la navigation sur tous les sites Internet ou wap. Cette navigation s'effectue soit :
sur votre mobile ou sur votre ordinateur/tablette grâce à l'option modem 24/24. Chaque télé-
chargement ou accès en streaming est de 10Mo maximum.

Première remarque : on est en train de nous dire que Internet c'est naviguer sur des sites Internet ou WAP. On m'a appris à l'école, que Internet est un réseau qui interconnecte des millions de réseaux et leur permet d'échanger des données au moyen du protocole IP. Chez Bouygues Internet c'est la consultation d'un seul service, le web, au moyen du protocole HTTP. Soit.

Deuxième remarque : toutes les limites d'utilisation du service Internet sont répertoriées dans la partie contractuelle de la brochure, mais pas celle-là ! Ça sent l'ajout à la va-vite, sans avoir consulté le juriste pour inclure cette condition dans les véritables CGS...

J'avais vraiment le sentiment que cette phrase ne figurait pas dans le "Guide des tarifs" en janvier 2011. Heureusement que le web conserve et archive des documents : j'ai pu retrouver les PDF des versions précédentes du "Guide des tarifs", effacées du site officiel :

guide des tarifs bouygues "Offres mobile" filetype:pdf

Résultats :

  • 12729PHR novembre/janvier 2010 : pas de paragraphe "INTERNET", mais un modeste paragraphe "SURF" qui donne des exemples d'utilisation
  • 12755PHR mars/mai 2010 : +"L’Internet depuis un mobile correspond à l’échange de données (dont les e-mails) sur les sites Internet ou WAP."
  • 12783PHR août/novembre 2010 : "Correspond à la navigation sur tous les sites Internet ou wap. Cette navigation s’effectue exclusivement sur votre mobile non relié à un ordinateur ou avec une clé 3G+ relié à un seul ordinateur."
  • 12820PHR janvier/mars 2011 : pas de changement
  • 12830PHR mars/mai 2011 : pas de changement
  • 12846PHR mai/août 2011 (version actuelle) : bingo ! +"Chaque télé-chargement ou accès en streaming est de 10Mo maximum."

Je ne veux pas soutenir une quelconque théorie du complot, ou me donner de l'importance : mais mon billet précédent a été publié le 19 avril 2011 et à l'époque je l'avais twitté à @bouyguestelecom et il avait fait déjà un peu de bruit.

Conclusion

Les Conditions Générales de Service de Bouygues ont été modifiées en douce en mai 2011 pour rendre contractuelles des limitations techniques intolérables. Les versions précédentes des documents contractuels sont effacées pour faire comme si tous les clients acceptaient tacitement n'importe quel changement.

Le contrat que j'ai signé en janvier 2011 ne mentionne pas ces limitations, pourtant je les subis et je n'ai jamais accepté les nouvelles conditions. Dans la mesure où ce changement est une régression du service proposé, ceci constitue une modification unilatérale de mon contrat. Je suis actuellement en stage à l'étranger et ma ligne est temporairement suspendue. À mon retour je compte envoyer une lettre de résiliation.

Je voudrais vraiment entendre des vrais avis juridiques sur la question. L'idéal serait de faire étudier la problématique à quelqu'un comme Maître Éolas... Il y a peut-être aussi du matériel pour une action de l'UFC Que choisir ?

Edit

J'ai retrouvé plusieurs autres PDF 12***PHR, surtout le "mars/mai 2011" qui était la pièce manquante pour avoir la preuve que le changement a été introduit en mai 2011. J'ai aussi ajouté une évolution plus détaillé du paragraphe problématique : on s'aperçoit qu'il a été remanié plus d'une fois !

Remarquez le passage de "SURF" à "INTERNET" après janvier 2010. Bizarrement ce changement n'a pas entraîné l'ouverture d'autres services que le web ou l'attribution d'adresses IP Internet aux clients...

Tuesday 19 April 2011

Bouygues Télécom filtre malhonnêtement son réseau 3G et inspecte vos données

Une jolie leçon en matière de neutralité de réseau de la part de Bouygues Télécom. Voici "l'accès Internet illimité 2Go" que obtenez pour 45 euros par mois.

Introduction

Mon PC sous Debian SID est connecté au réseau 3G de Bouygues Télécom à travers la fonctionnalité "point d'accès Wifi" du téléphone HTC Desire Z (Android Froyo).

Filtrage de contenus vidéo

Tous les lecteurs de vidéos flash que vous rencontrez sur internet affichent mystérieusement une erreur. Avec Firebug on voit aisément que c'est le flux FLV en lui même qui ne passe pas : ERREUR 403 : Forbidden avec un message d'erreur en français, quelque soit le site. On a donc affaire à un proxy transparent. Pourquoi on trouverait ça choquant ou inadmissible de la part d'un FAI ADSL alors que c'est monnaie courante chez les revendeurs de minitels mobiles ? Essayons d'en savoir plus...

Voici un faux contenu FLV :

1
2
<?php header("Content-Type: video/x-flv"); ?>
lol

Bizarrement tout va bien :

 grapsus@escher:~$ wget grapsus.net/test.php
 ...
 2011-04-18 12:28:36 (417 KB/s) - «test.php» sauvegardé 6/6

Mais alors pourquoi une vraie vidéo bloque ? Essayons d'enregistrer un vrai fichier FLV de 20 Mo :

 wget http://grapsus.net/test.flv
 ...
 requête HTTP transmise, en attente de la réponse...403 Forbidden
 2011-04-18 22:09:56 ERREUR 403: Forbidden.

Et les logs du serveur :

 62.201.XXX.XXX - - 18/Apr/2011:22:07:24 +0200 "GET /test.flv HTTP/1.0" 200 22466703 "-" "Wget/1.12 (linux-gnu)"

Toujours pas convaincus du proxy transparent ?

Essayons de tronquer le fichier pour voir si la taille joue un rôle :

 $ dd if=test.flv of=test2.flv bs=1 count=8000000
 8000000+0 enregistrements lus
 8000000+0 enregistrements écrits
 8000000 bytes (8,0 MB) copied, 26,4951 s, 302 kB/s

Et miracle, ça passe !!

Avec une recherche dichotomique, on comprend très vite que la taille limite est précisément de 10 Mo (10*2^20 octets), au délà, un contenu de type video/x-flv est remplacé par la réponse 403 Forbidden.

Coupure de sessions TCP trop gourmandes

Un proxy ça reste gentil me direz-vous, mais voici quelque chose d'encore plus fort. Bouygues coupe pour vous toutes les sessions TCP qui dépassent 10 Mo en termes de volume reçu !!!

Prenons l'exemple d'une connexion SSH qui atteint lesdits 10 Mo :

 root@XXX:~# Write failed: Broken pipe

Et le magnifique dump 'Wireshark' sur la carte réseau du client :

 11158	214.451936	192.168.1.108	XXX			SSHv2	Encrypted request packet len=48
 11159	214.461449	XXX		192.168.1.108	SSHv2	Encrypted response packet len=1408
 11160	214.461604	XXX		192.168.1.108	TCP	ssh > 48450 RST, PSH, ACK Seq=9593089 Ack=88369 Win=92628 Len=128
 11161	214.531079	XXX		192.168.1.108	TCP	ssh > 48450 RST, ACK Seq=9591681 Ack=88417 Win=0 Len=0
 11162	214.553142	XXX		192.168.1.108	TCP	ssh > 48450 RST, ACK Seq=9591681 Ack=88465 Win=0 Len=0

Au segment 11159 on dépasse le quota des 10 Mo, notez bien le segment suivant qui arrive avec un flag RST (la présence de PSH suggère qu'il a juste été violemment ajouté par les équipements du réseau Bouygues). Et comme ce n'est pas assez, les segments restants (11161 et 11162) se prennent aussi des flags RST pour être bien sûr d'achever la connexion, du grand art !

Conclusion

Il est tout simplement scandaleux que ce service soit appelé "accès à Internet" ! Le réseau de Bouygues vous ment en essayent de se substituer aux réponses données par les vrais destinataires de vos connexions dans l'irrespect le plus total des protocoles réseau. On peut comprendre (mais sûrement pas accepter !) que les opérateurs essayent de défendre une économie vouée à mourir dans laquelle on vend séparément à prix d'or des services inclus dans une vraie connexion Internet : mail, vidéos ou même la téléphonie !

Ce genre de pratiques fait honte au domaine des télécoms et me rend très songeur quant à la perspective d'y travailler à la fin de mes études...

Notes

Mon article n'est en aucun cas une diffamation ou une accusation infondée, dans ma mesure où toutes les manipulations sont décrites avec précision et reproductibles avec un résultat sans équivoque.

La question générale de la neutralité d'Internet étant très intéressante, mais hors de la portée de cet article (plutôt technique), je vous invite fortement à voir les conférences de Benjamin Bayart : http://www.fdn.fr/minitel.avi

Si vous êtes chez d'autres opérateurs, je vous suggère d'étudier en détail votre connexion et à poster les détails ici, afin de comparer les différents réseaux.

Wednesday 4 August 2010

Connexion automatique à FreeWifi avec Debian

Voici la configuration pour les systèmes du type Debian pour se connecter au réseau des hot-spots FreeWifi :

/etc/network/interfaces :

1
2
3
4
5
6
7
iface freewifi inet dhcp
  wireless-essid FreeWifi
  wireless-rate 11M
  wireless-key off
  pre-up ifconfig ath0 mtu 1460 up
  post-up nohup /root/bin/freewifi.sh &
  post-down killall -q -KILL freewifi.sh

/root/bin/freewifi.sh :

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
KEY='' # identifiant freewifi, aller sur wifi.free.fr si vous ne l'avez pas encore
PASSWORD='' # mot de passe freewifi
 
sleep 3
while true ; do
  wget --quiet --no-check-certificate --post-data\
  'login='"$KEY"'&password='"$PASSWORD"'&submit=Valider'\
  'https://wifi.free.fr/Auth' -O '/tmp/free'
  sleep 1000
done

Pour lancer la connexion avec une carte Atheros par exemple :

ifup ath0=freewifi

Qu'est-ce qu'il y a d'original là-dedans ? La connexion n'est pas fiable avec la valeur par défaut du paramètre MTU (Maximum Transmission Unit); les paquets de plus de 1,46 ko ne semblent pas passer à cause de la fragmentation (on peut facilement tester avec ping -s TAILLE -v serveur.foo); à 1460 octets la connexion est stable, et des sessions SSH ont duré plusieurs heures sans problème chez moi. Ensuite on fixe la vitesse de la carte wifi à 11 Mbit/s; la plupart des cartes ont une puissance d'émission supérieure aux vitesses plus basses, et de toute manière on n'aura jamais plus de quelques Mbits avec un hot-spot. Enfin, le réseau FreeWifi utilise un portail captif pour vous authentifier pour une durée assez courte (quelque chose comme 30 minutes); avec mon script post-up, l'authentification se fait de manière automatique et périodique.

Thursday 15 July 2010

Blackberry (OS v5) + abonnement SFR + PC sous Linux

Il est possible d'utiliser un terminal mobile RIM pour connecter son PC sous Linux à Internet à travers le réseau GRPS/EDGE/3G. Ce billet est surtout motivé par le fait que les configurations que l'on trouve sur la toile ne semblent plus fonctionner depuis la mise à jour du Blackberry OS à la version 5. Je vais aussi vous donner quelques astuces pour vous en sortir avec la connexion complètement bridée que l'on obtient alors chez SFR.

Configuration du terminal

Allez dans paramètres, puis dans les options avancées et enfin dans TCP/IP : il faut alors tout cocher (utiliser APN et authentification APN) et remplir websfr partout.

Configuration du PC

J'ai suis parti des fichiers de configuration pris sur ProgWeb - Utiliser son BlackBerry sous Linux, une page très complète et en français, à lire absolument si vous avez un BlackBerry.

Il faut installer les paquets barry-util et ppp. Barry est une collection d'utilitaires pour Blackberry, il comprend notamment pppob qui permet d'utiliser le terminal mobile en tant que modem, il y a des configurations PPP toutes prêtes pour les opérateurs amércains, pour SFR il faudra créer les fichiers soi-même. Pour les distributions non semblables à Debian, tout va se passer pratiquement de la même manière pourvu qu'on sache installer Barry et pppd.

/etc/ppp/peers/barry-sfr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
noipdefault
defaultroute
 
ipcp-restart 7
ipcp-accept-local
ipcp-accept-remote
 
lcp-echo-interval 0
lcp-echo-failure 99
 
nopcomp
noaccomp
noauth
nomagic
noccp
crtscts
pap-timeout 20
pap-restart 20
lcp-restart 10
#novj
user "websfr"
password "websfr"
usepeerdns
 
#decommenter les lignes suivantes pour debugger
#debug
#connect "/usr/sbin/chat -v -f /etc/chatscripts/sfr-chat"
connect "/usr/sbin/chat -f /etc/chatscripts/sfr-chat"
#pty "/usr/sbin/pppob -v -l /tmp/barry.log"
pty "/usr/sbin/pppob"

/etc/chatscripts/sfr-chat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
TIMEOUT 10
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'ERROR'
ABORT "NO DIALTONE"
ABORT VOICE
ABORT RINGING
 
SAY 'Starting GPRS connect script\n'
 
'' 'BBT_OS'
'' 'ATZ'
OK 'AT+CGDCONT=1,"IP","websfr"'
ABORT 'NO CARRIER'
SAY 'Dialing...'
OK 'ATD*99#'
CONNECT
~p

Connectez alors le terminal en USB et lancez la connexion avec

pon barry-sfr

Vérifiez alors qu'une interface ppp0 s'est créé et que la route par défaut utilise cette interface :

root@escher:/home/grapsus# ifconfig ppp0
ppp0      Link encap:Protocole Point-à-Point  
          inet adr:X.X.X.X  P-t-P:X.X.X.X  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:3 
          RX bytes:174 (174.0 B)  TX bytes:222 (222.0 B)
root@escher:/home/grapsus# route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0

Vous êtes maintenant connecté.

Notes

Connexion automatique

On peut ajouter cette connexion au fichier /etc/network/interfaces de Debian et automatiser ainsi la connexion :

iface ppp0 inet ppp
	provider barry-sfr
	post-down killall -q -KILL '/usr/sbin/pppob'
	post-up resolvconf -d ath0
	post-up resolvconf -d eth1
	post-up cat /etc/ppp/resolv.conf | resolvconf -a ppp0

et lancer la connexion avec

ifup ppp0

J'ai ajouté des directives qui paramètrent correctement les DNS (eth1 et ath0 sont à remplacer les les noms de vos cartes réseau habituelles), et qui terminent le processus pppob à la fin, ce qui permet de se reconnecter sans avoir à re-brancher son téléphone.

DNS

Les DNS de SFR atterrissent dans le fichier /etc/ppp/resolv.conf, il faut soit le copier vers /etc/resolv.conf à chaque fois, soit utiliser le système ifup avec une directive post-up, comme je l'ai fait ci-dessus.

Lenteur

C'est lent : en GPRS on arrive à peine à 100 kbit/s avec des temps de latence importants.

Connexion bridée

Beaucoup de sites web affichent des pages blanches, de nombreux ports sont bloqués, cette connexion est au final assez pénible à utiliser en l'état. Une solution simple est de paramétrer un serveur SSH sur le port 443 chez vous et de faire passer tout le trafic par là.

Configuration du serveur

Dans /etc/ssh/sshd_config ajouter :

Port 443

Configuration du client

Une fois la connexion SFR établie, on lance

ssh -C -p 443 -D 3333 serveur-maison.bar

SSH lance alors un serveur proxy SOCKS v5 local qui fait transiter les connexions par le tunnel SSH; pour l'utiliser avec Firefox, il faut paramétrer l'adresse du proxy à localhost, port 3333 dans les paramètres réseau.

De manière générale, on peut faire passer n'importe quelle application par le proxy SOCKS avec la bibliothèque tsocks. Il faut paramétrer l'adresse du proxy dans /etc/tsocks.conf :

server = 127.0.0.1
server_type = 5
server_port = 3333

Puis lancer

tsocks application

Tout ça paraît très laborieux, mais une fois qu'on a un peu manipulé ces outils, on arrive, en quelques secondes, à se connecter chez soi de manière sécurisée et profiter au maximum de l'Internet mobile. En cas de doute il suffit de consulter les pages de man pppd, ssh et tsocks.

Édit du 25/07/2010

Suite à des changements chez SFR ma configuration ne fonctionnait plus; j'ai passé pas mal de temps à jouer avec les paramètres PPP et le chat-script pour tout faire remarcher. L'article a été mis à jour en conséquence.

- page 1 of 2