Acceder a internet depuis son IPhone : Iphone en Routeur 3G
De OpenWikiBSD.
- Vous trouvez que la solution du proxy ( présentée ici) est trop limitée au web ?
- Vous souhaiteriez accéder à tous les ports, tous les protocoles , lire votre courrier avec un client (pop3,imap..) et même à votre VPN en UDP/1194 (for instance) préféré depuis partout ? Bref, avoir un vrai routeur filtrant et ne pas avoir un usage limité de l'internet ?
- Vous êtes coincés loin d'un point d'accès Wifi/ADSL et vous voulez VRAIMENT lire vos mails depuis votre portable et non depuis le minuscule écran de votre téléphone ?
- etc..
Sans souci !
Sommaire |
Solution Geek-compliant
Prérequis
- Un Iphone Jailbreaké, c'est là
- Les paquets VI Improved, OpenSSH, Bigboss recommended tools
- Un forfait 3G (il)limité. Pourquoi (il)limité ? En fait, au delà d'un certain volume mensuel de données, le débit d'effondre...encore plus)
- Éventuellement un AP Wifi.
Pour la suite, soit vous suivez les explications et effectuez les manips à la main, soit vous lancez ces scripts.
Sur l'Iphone
Rappelez-vous que cet OS tourne avec une base FreeBSD, et que le parefeu qui va avec est l'excellentissime pf ! Besoin de rien de plus pour transformer votre GeekPhone en parfait routeur NAT...
- Menu Réglages
Si il y a un AP Wifi entre PC et l'Iphone, alors configurez le avec le bon SSID, le bon mot de passe WPA2, mais utilisez un réseau en @IP statique. Autrement, la config DHCP écrase la route par défaut ,celle de la 3G et...plus d'accès Internet!
- En SSH
Activez le routage des paquets IPv4 entre les interfaces :
sysctl -w net.inet.ip.forwarding=1
vim /etc/pf.conf
Oui, c'est vim et non vi qui doit être installé.
3G_IF=pdp_ip0 WI_IF=en0 WI_LAN="192.168.1.0/24" #On traduit (RFC 1918) les paquets IPv4 nat on $3G_IF from $WI_LAN -> $3G_IF #On n'effectue aucun filtrage IP pass out quick pass in quick on $WI_IF from $WI_LAN to any keep state
Je vous conseille de coller tout ça dans un script à lancer après chaque reboot du téléphone. (Le sysctl repasse à 0 au reboot du téléphone).
Sur le portable
sudo route del default sudo route add default gw @IP_WIFI_Iphone sudo sed -i "1inameserver 194.51.3.56" /etc/resolv.conf
Manifestement, c'est le serveur DNS dédié de chez Orange pour être récursif prou les clients mobile :
ftm-dns1.rain.fr (194.51.3.56)
Sinon, le workaround a donc été d'utiliser son DNS perso par le VPN, et ainsi, d'avoir une résolution DNS sans ouvrir son serveur à tout l'internet en mode récursif..
Scripts
- Sur l'IPhone, une fois pour toutes :
- Si vous avez un forfait illimité = Tous les protocoles:
vim /etc/pf.conf 3G_IF=pdp_ip0 WI_IF=en0 WI_LAN="192.168.1.0/24" #On traduit les paquets nat on $3G_IF from $WI_LAN -> $3G_IF #On n'effectue aucun filtrage IP pass out quick pass in quick on $WI_IF from $WI_LAN to any keep state touch /etc/pf.os
- Si vous avez un forfait Internet = Seulement le web
touch /etc/pf.os
vim /etc/pf.conf
3G_IF=pdp_ip0
WI_IF=en0
WI_LAN="192.168.1.0/24"
TCP_OK="{53,80,443}"
UDP_OK="{53}"
#On traduit les paquets
nat on $3G_IF from $WI_LAN -> $3G_IF
#On filtre en sortie
pass out quick on $3G_IF proto tcp from any to any port $TCP_OK
pass out quick on $3G_IF proto udp from any to any port $UDP_OK
pass out quick on $3G_IF proto icmp
pass out quick on $WI_IF keep state
pass in quick on $WI_IF from $WI_LAN to any keep state
- Sur le portable, une fois pour toutes :
si l'IPhone a pour @IP 192.168.1.100
mkdir -p /usr/script
vim /usr/script/3G.sh
#!/bin/bash
# Turn Iphone into a Wifi-3G router
# Philippe Schwarz
# 2010 October
# GPL v3
DNS_ORANGE=194.51.3.56
DNS_SFR=
DNS_BOUYGUES=
DNS_FREE=
#Modifier seulement ces deux paramètres en fonction de votre environnement
WIFI_IPHON_IP=192.168.1.100
FAI=$DNS_ORANGE
WAN_IPHON_IP=`ssh root@$WIFI_IPHON_IP ifconfig pdp_ip0 |grep -v mtu| awk '{print $2}'`
echo "@IP 3G de l'IPhone : $WAN_IPHON_IP"
echo "@IP Wifi de l'IPhone : $WIFI_IPHON_IP"
sudo route del default
sudo route add default gw $WIFI_IPHON_IP
sudo sed -i "1inameserver $FAI" /etc/resolv.conf
ssh root@$WIFI_IPHON_IP sysctl -w net.inet.ip.forwarding=1
ssh root@$WIFI_IPHON_IP route delete default
ssh root@$WIFI_IPHON_IP route delete default
ssh root@$WIFI_IPHON_IP route add default $WAN_IPHON_IP
ssh root@$WIFI_IPHON_IP pfctl -d
ssh root@$WIFI_IPHON_IP pfctl -e -f /etc/pf.conf
PING=`ping -c 1 www.free.fr |grep loss |awk '{print $6}'`
if [ "$PING" == "0%" ]
then
echo "Connexion 3G opérationnelle"
else
echo "Souci avec la Connexion 3G "
fi
chmod +x /usr/scrip/3G.sh
- Sur le portable, au début de la session, après l'authentification wifi :
/usr/script/3G.sh
C'est tout.
Au final
traceroute www.openbsd-edu.net traceroute to www.openbsd-edu.net (82.237.239.48), 30 hops max, 60 byte packets 1 iPhone-de-polyp.local (192.168.1.102) 13.845 ms 14.366 ms 14.814 ms 2 10.164.1.1 (10.164.1.1) 123.673 ms 141.720 ms 143.454 ms 3 10.164.1.2 (10.164.1.2) 163.248 ms 164.806 ms 165.809 ms 4 www.openbsd-edu.net (82.237.239.48) 189.405 ms 191.194 ms 203.029 ms
Solution JCD-compliant
Jeune Cadre Dynamique dans le TGV avec son Laptop et juste un câble USB-IPhone :-)
Merci à mes geek-étudiants de BTS de m'avoir informé de l'existence de cette appli.
Merci Clément G. & Thomas D.
Prérequis
- Câble USB de l'iphone
- Iphone jailbreaké (est-ce certain ??)
- Une linuxette
sudo apt-get install libimobiledevice-utils ipheth-utils ipheth-dkms
- Aller sur [1] avec votre laptop {Oui, inutile de le faire avec le telephone, l'opération suivante ne marche plus } et récupérer sur cette page le fichier de config correspondant à votre ISP mobile.
- S'envoyer le fichier par mail vers le téléphone et l'installer; vous vous retrouvez avec un nouveau profil {Réglages/Général/Profils/}
- Ensuite, j'ai essayé de suivre simplement{Réglages/Général/Réseau/Partage de connexion}, mais ça n'a jamais voulu marcher.
- Puis, j'ai tenté de modifier à la mano, comme indiqué ici.
Résultat : Un redémarrage plus tard, j'ai ...perdu le menu !
- Au final, j'ai installé par Cydia: MyWi, qui:
- Marche au quart de tour sans rien faire
- Permet de router en USB, en Wifi, en Bluetooth
- a une période d'essai de 7j. Oui, après c'est payant.
- Marche en USB donc ne suce pas trop la batterie du tel..
- Possède un compteur d'octets montants et descendants !
- J'écris ces lignes depuis MyWi!
Rem: N'oubliez pas d'activer l'user agent de votre browser à Iphone 3.0, ça pourrait vous éviter des ennuis avec votre gentil fournisseur.
Soucis
Débit
Sans être catastrophique, le débit n'est pas fabuleux, mais ce n'est pas l'objectif.
Pertes de connexion
Dès que l'écran se verrouille, je perds la cx wifi..donc plus d'accès Internet. Placer le verrouillage d'écran sur le max.
Dès qu'un appel GSM a lieu, coupure du lien.(Mais un tcpdump sur le téléphone montre que le vpn reste en place..)
La batterie....
Déjà que l'IPhone est anémique de ce côté, mais là, ça en devient terrible !
Pas plus de 5h-6h à ce rythme...
Ne comptez pas partir sans ressources longtemps..
Forfait
Attention ! selon votre forfait, le coût peut révéler quelques ..menues variations :
Exemple chez Orange :
- Forfait Internet : N'inclue que les connexions aux ports TCP/80 et TCP/443. Le nom du forfait devrait donc être forfait web à mon sens.
Si vous vous connectez à autre chose ou si vous avez activé le push des mails de l'Iphone, ça risque de vous coûter vite assez cher, car hors-forfait.

