SFR illimythic 3G et LINUX

 »Vous en avez marre d’utiliser votre petit Opera Mini sur votre téléphone et de devoir attendre que la négociation se fasse correctement ou encore devoir re re sélectionner le bon type de réseau » …

La solution est simple … faite passé votre laptop pour un téléphone
L’idée c’est que sfr filtre la navigation web grâce au User agent de votre navigateur et laisse passé le trafic uniquement quand votre navigateur se déclare sur leur proxy comme un navigateur de téléphone portable.

Par contre les informations de type data, elle, passe sans soucis par les ports « web » http et https (80, 443). D’ailleur le port 443 n’utilise pas le user agent … donc vous pouvez aller sur la pages de plugins de firefox et télécharger les addon :

user agent switcher et Proxy switcher

!!!!ATTENTION : !!!!Je décline toute responsabilité dans l’utilisation de votre téléphone, votre forfait et ne pourrai être tenu responsable de votre possible hors-forfait. !!!

Les manipulations proposées ci-dessous ne sont que des test effectués dans un but de recherche.

PS: Toute les commandes ont été réalisé sous Debian Etch RC5

La première étape est de trouver le moyen de connecter votre téléphone 3G en bluetooth à votre PC.

Pour cela il vous faut le petit package hcitool qui se trouve dans bluez-utils :

sudo apt-get install bluez-utils

Puis pour scanner les téléphones autour de vous (et prendre le votre évidement !!!) :

nabu4@nabu4lezard:~$ hcitool scan
Scanning ...
XX:XX:XX:XX:74:7C W580i@@ @@ XX:XX:XX:XX:2F:62 Chewbakphone

L’a partie de gauche (XX:XX:XX:XX:2F:62) correspond à l’adresse MAC de votre carte bluetooth de votre téléphone.

Puis il va falloir scanner les channel (ports de communication) de votre carte Bluetooth afin de trouver comment se connecter en mode Dial-Up Networking .

Pour cela on va utiliser l’outils sdptool avec l’option browse et l’adresse MAC de votre carte bluetooth :

nabu4@nabu4lezard:~$ sdptool browse XX:XX:XX:XX:2F:62 Browsing XX:XX:XX:XX:2F:62 ... ...
Service Name: Dial-Up Networking Service RecHandle: 0x10011
Service Class ID List: "Dialup Networking" (0x1103)
Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003)
Channel: 2 Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100
Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100 ...

Ce qui est important de garder en tête c’est tout simplement le numéro du channel : ici 2

Et enfin pour se connecter à votre téléphone il vous suffit donc de taper dans un terminal :

rfcomm connect 0 XX:XX:XX:XX:2F:62 2

Ou 0 est le numéro de la carte qui va être monter sur votre système de fichier dans le répertoire /dev/ et ou 2 est le numéro du channel que le PC va utiliser pour communiquer.

Ex : @@ nabu4@nabu4lezard:~$ rfcomm connect 0 XX:XX:XX:XX:2F:62 2
Connected /dev/rfcomm0 to XX:XX:XX:XX:2F:62 on channel 2
Press CTRL-C for hangup

PS: N’oubliez pas que cette connexion se termine si vous fermez la fenêtre de votre terminal ou que vous tapez CTRL-C ou que vous vous éloignez trop de votre PC (avec le téléphone dans la poche)

Nous somme enfin connecter, du moins du téléphone au PC (sous LINUX évidement).

Maintenant passons aux choses sérieuses.

Installez les excellents outils wvdial ou gnome-ppp

sudo apt-get install wvdial

Ouvrez le fichier $HOME/.wvdial.conf

(attention au point devant wvdial c’est un fichier caché) et remplacez son conf par :

[Dialer Defaults]
Modem = /dev/rfcomm0
ISDN = off
Modem Type = Analog Modem
Baud = 460800
Init = ATZ
Init2 = AT+cgdcont=,"IP","wapsfr"
Init3 =
Init4 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Phone = *99***1
# Phone1 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM0L0DT
Ask Password = off
Password = wapsfr
Username = wapsfr
Auto Reconnect = off
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = off
Idle Seconds = 240
Auto DNS = on
Minimize = on
Dock = on

Enregistrez et … sous un terminal tapez

nabu4@nabu4lezard:~$ wvdial
PPP negotiation detected.
Starting pppd at Wed Dec 24 11:39:38 2008
Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
PAP (Password Authentication Protocol) may be flaky.
Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
CHAP (Challenge Handshake) may be flaky.
Pid of pppd: 7901
Using interface ppp0
local IP address 10.188.XXX.XX
remote IP address 10.X.X.X
primary DNS address 172.20.X.X
secondary DNS address 172.20.X.X

PS : les DNS met 2 ou 3 seconde à redescendre.

Enfin ouvrez votre navigateur et faite :

‘Outils > User agent Switcher > Option > Options’ Onglet de gauche : ‘User agents’ cliquez sur add

Dans description mettez ce que vous voulez

ex : Symbian puis dans User agent :

Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/20.0.016; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

Attention de ne pas oublier de décocher dans firefox ‘Fichier > travailler hors connexion’ si aucune carte réseau n’est active.

Enfin : mettez « http://www.google.fr/webhp?hl=fr&output=html » en page de démarrage pour ne pas avoir la page de google en mode téléphone simplifier.

Voilà … La prochaine étape que je vais tester : Créer un VPN pour contrer le faite que SFR bloque tous les autre port que 80 et 443 .

En ++ (non en fait en bash) Le petit script qu vous automatise toute la partie connexion : Evidement vous devez adapter la ligne ou se trouve l’adresse mac de votre téléphone … 😉 et le rendre executable Téléchargé et modifier le script par vos informations :

wget -c http://tuxme.net/public/script/sfr.sh
chmod 777 sfr.sh
# Pour le lancer ...
./sfr.sh