Vous êtes ici : Accueil Zaclys Astuces / Les rubriques / Informatique / Système d'exploitation / Linux / Réseau

Voir un article

illustration

© Tito

Ipod touch ou Iphone : utilisez la connexion internet de votre linux

Vous n'avez pas de hot spot Wifi disponible, mais vous avez un poste linux connecté à internet qui dispose d'une puce Wifi ?

Intérêt :

En configurant 1 pc linux de la sorte, vous avez 1 hot spot wifi de poche qui peut se brancher sur n'importe quel réseau filaire pour ainsi utiliser votre ipod / iphone en wifi.
Vous pouvez ajuster finement la puissance de l'antenne wifi et l'éteindre quand vous voulez.

Pour les développeurs web , l'ipod Touch est 1 alternative intéressante à l'iphone : pas d'abonnement, pas tres cher, meme iOS, meme écran retina ... et avec la connexion wifi vous avez aussi internet.
La solution permet aussi de régler le débit de la connexion wifi : en diminuant à 1Mb vous simulez 1 connexion GSM ...


Matériel :

Un ipod touch (à partir de 180€) ou un iphone (à partir de 300 euros)


Intro :

Pour ubuntu et autre inferfaces Gnome , il suffit en général d'utilise les fonctions de partage réseau du panneau de config (je ne sais pas si ça marche ni le niveau de souplesse possible).

Pour les distibs récalcitrantes et pour les barbus allergiques à la souris comme moi (ici sur redhat / fedora ), voici comment faire à la main.

Dans mon cas eth0 est ma connection wifi (sur 1 vieux portable ibm x31 avec 1 vieille puce wifi)  et eth1 ma connection réseau lan. Et cette interface peut etre configurée en dhcp (sur une freebox en filaire ou autre) ou en static, peu importe.

A noter ici que je n'utilise pas le NetworkManager, donc j'ai déactivé le service (chkconfig) et j'ai réactivé le service network classique pour plus de souplesse. C'est pourquoi vous verrez n'option "NM_CONTROLLED=no" sur ma config, mais vous pouvez tres bien rester sur NetworkManager pour avoir le controle depuis Gnome et donc adaptez simplement la config ci dessous.

A noter aussi que par défaut je n'active pas la carte wifi au boot , d'ou le ONBOOT=no dans ma config : à adapter si besoin.

Tout ce qui suit est éxécuté sous root et on suppose que le linux a bien accès à internet (par l'interface eth1 dans mon cas).



Letsgo :


# sur linux installer si besoin le package wireless-tools
(souvent installé par défaut)



# config de la carte wifi sur linux :

dans mon cas , la carte wifi a été installée en "eth0" à l'installation.

donc voici ma config /etc/sysconfig/network-scripts/ifcfg-eth0 telle que modifiée pour cet usage :

# AIRONET Wireless Communications Cisco Aironet Wireless 802.11b
DEVICE=eth0
HWADDR=00:02:8A:DC:7B:38
ONBOOT=no
IPADDR=192.168.10.1
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Wireless
NM_CONTROLLED=no
IPV6INIT=no
USERCTL=yes
ESSID=amiga
MODE=Ad-hoc
SECURITYMODE=open
IWCONFIG="key off txpower 0 rate 3"


- donc c'est cette interface 192.168.10.1 qui sevira de gateway pour l'ipod ou l'iphone

- le ESSID est le nom du réso wifi qui sera visible sur l'ipod / iphone

- vous pouvez augmenter le "txpower" pour augmenter la portée du signal (et vous griller le cerveau), ici il est au minimum ce qui me donne une portée suffisante de 5 ou 6 metres. pour avoir la liste des txpower possibles (on utilise ensuite en parametre le rang dans la liste, en commençant par 0 ) :
iwlist eth0 txpower

- le débit (rate) est au maxi pour ma puce wifi (rate 3), pour connaitre la liste des debits possibles : iwlist eth0 rate  , pareil : pour utiliser le 1er débit listé il faut mettre "rate 0" (numérotation à partir de 0) dans les options. Dans mon cas pour du dev web c'est intéressant : je pourrai réduire au minimum pour simuler un débit GSM ...

- je passe ici key à off et securitymode = open : donc pas d'encryption, il vaut mieux commencer par le plus simple : donc 1 reseau wifi ouvert et sans mot de passe, on sécurisera ensuite au niveau des iptables en autorisant uniquement la mac adresse de la puce wifi de 'lipod / iphone.

- le mode Ad-hoc est indispensable pour passer en mode serveur wifi et non plus client wifi, il ya aussi le mode Master qui doit fonctionner mais je n'ai pas testé

- et dans 1 second temps quand tout marche bien, pour utiliser du WEP il suffit de passer "key s:motmotdepasseenclair" et installer et configurer le service "hostapd" qui va gérer l'encryption (je n'ai pas testé : la portée réduite de mon signal est une sécurité, et puis les données sensibles sont cryptées par ssl sur le web et sur le mail, donc pas utile dans mon cas )

- pour activer / desactiver l'interface wifi et prendre en compte les modifs sur la config :
ifdown eth0 && ifup eth0 
(ce qui éteint puis allume la puce wifi normalement , chaque commande peut etre utilisée séparément bien sur : ifdown eth0 tout seul pour éteindre)

- commandes à connaitre : iwconfig et iwlist (cf les man pages)



# activer le serveur dhcp sur linux  :

Pour utiliser du dhcp , il suffit d'installer le package "dnsmasq" et configurer 2 lignes dans /etc/dnsmasq.conf :

interface=eth0
dhcp-range=192.168.10.10,192.168.10.150,255.255.255.0,12h

(interface sert à préciser sur quelle interface on servira les bails dhcp, donc dans mon cas eth0 pour la carte wifi, et dhcp-range pour la plage d'adresse que l'on peut servir si plusieurs appareils se connectent en dhcp )

Automatiquement ce serveur dhcp servira en passerelle (gateway) et en serveur DNS l'adresse ip à l'écoute sur l'interface en question (cad lui meme) , ça m'a dérouté au départ mais c'est normal car ensuite il s'occupera de forwarder les requetes DNS vers le serveurs DNS utilisé et configuré dans /etc/resolve.conf (qui est lui meme mis à jour si ce linux est aussi client dhcp d'un autre passerelle comme une freebox par exemple) : bref la nature est bien faite , mais pour que tout ça fonctionne il faudra ouvrir suffisamment les iptables pour laisser l'ipod ou l'iphone puisse dialoguer avec ce bazar.

Pour finir lancez le service (service dnsmasq start) et activez le pour le reboot (chkconfig dnsmasq on)




# activer le mode routeur de votre linux :

Pour que l'ipod / iphone puisse sortir sur internet en utilisant le linux comme passerelle : il faut activer le mode routeur qui va permettre de faire suivre les échanges entrant sur l'interface wifi vers l'interface réseau sortante

Pour bien verrouiller le bazar , je vous propose d'autoriser uniqument la mac adresse de la puce wifi de votre appareil : vous la trouvez sur l'iOS de votre Ipod / Iphone dans reglages / general / informations / adresse wifi) .

Une fois trouvé cette mac adresse éditez /etc/sysconfig/iptables comme ceci (en gras les lignes que j'ai ajouté à ma config initiale)  : 


*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m mac --mac-source 28:15:1A:A0:30:FF -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


*nat
:PREROUTING DROP [0:0]
-A PREROUTING -m mac --mac-source 28:15:1A:A0:30:FF -i eth0 -j ACCEPT

:OUTPUT ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE

COMMIT


Relancer la config (service iptables restart) et activez si besoin le service pour le reboot (chkconfig iptables on)

Ces iptables vont sécuriser le réseau : les échanges wifi sont ouverts uniquement pour la mac adresse en question. La regle de postrouting permet de faire du NAT : c'est exactement ce qui se passe dans la Freebox par exemple, quand elle est activée en mode routeur.

Ensuite il faut activer le mode routeur du kernel linux, editez /etc/sysctl.conf :
net.ipv4.ip_forward = 1

Et demander au kernel de relire la config pour prise en compte immédiate  :
/sbin/sysctl -p




# Maintenant que tout est configuré , allons sur l'ipod touch :

Aller dans la config wifi, vous devez voir apparaitre le réseau "amiga" (tel que baptisé dans le ESSID ci dessus), sans cadenas, tapotez dessus à gauche pour l'utiliser (une coche apparait à gauche) ensuite tapoter à droite pour rentrer dans la config.
Si l'échange dhcp s'est bien passé vous devez retrouver les infos échangées avec le linux : ip, mask et surtout la passerelle et le dns qui doivent être fixées sur l'ip de l'interface wifi du linux.

Sur linux pour tracer les échanges sur le carte wifi : tcpdump -i eth0


Normalement si tout est ok, depuis le linux vous devez pouvoir pinger l'ipod ou l'iphone sur son ip, à priro la 1ere du "dhcp range" , donc ici sur 192.168.10.10

Et depuis l'ipod / iphone , vous pouvez ouvrir safari aller sur internet .

En cas de pb, vérifier d'abord le dns : essayez une ip plutot qu'un nom sur safari , si ça marche c'est que c'est un pb de dns, si ça marche pas, c'est 1 pb réseau : vérifiez alors les iptables et le mode routeur du linux

Vous pouvez aussi lancer apache sur linux et tapper sur safari "http://ip"; avec ip l'adresse ip de la carte wifi du linux : vous devez voir la page d'accueil apache.

PB PROXY  : évidemment si le linux passe par 1 proxy (réseau d'entreprise) : il faut également préciser l'adresse de ce proxy sur l'ipod / iphone. Il peut être servi par le serveur dhcp , mais je n'ai pas testé.


# Pour finir 
comme évoqué ci dessus, pour activer le cryptage wep ou autre , installer et configuer "hostapd" et mettre 1 clef dans la config de la carte wifi (cf ci dessus, je n'ai pas testé car inutile dans mon cas comme je l'ai dit).



# divers :


pour connaitre les débits possibles de la carte wifi linux :

iwlist eth0 rate

eth0      4 available bit-rates :
          1 Mb/s
          2 Mb/s
          5.5 Mb/s
          11 Mb/s
          Current Bit Rate:2 Mb/s



pour utiliser le 4eme de la liste :

iwconfig eth0 rate 3

(prise en compte immédiate, pour que ce soit conserver au reboot , il faut modifier la config, bien suuur)


pour vérifier la config actuelle :

iwconfig eth0
eth0      IEEE 802.11-DS  ESSID:"amiga"  Nickname:"x31"
          Mode:Ad-Hoc  Channel:0  Cell: 3A:03:5B:00:8F:02  
          Bit Rate=11 Mb/s   Tx-Power=0 dBm   Sensitivity=0/65535 
          Retry limit:16   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/100  Signal level=-105 dBm  Noise level=-98 dBm
          Rx invalid nwid:6184  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:751  Invalid misc:468744   Missed beacon:0


Matériel :

Un ipod touch (à partir de 180€) ou un iphone (à partir de 300 euros)

5 138 clics - Créé le 20/04/2011 par Tito - Modifié le 20/09/2012



Réagissez, commentez, discutez ...

InfoSoyez le premier à réagir !


(sert uniquement à vous signaler les réactions)




Partager ?

diaspora  G+  facebook  twitter  Digg  Yahoo  Delicious  Technorati  myspace


Voir d'autres articles en rapport avec celui-ci ?



Stats des clics sur cet article : cliquez ici »



Vous voulez contribuer et publier un article dans cette rubrique ?

InfoMerci de vous identifier ou de vous créer un compte si ce n'est pas déjà fait.


icone user Me connecter :

InfoMerci de saisir vos identifiants.




Me reconnecter automatiquement à chaque visite sur ce navigateur :
               





retour






Plan du site | Aide | Mentions légales et CGU | RGPD | Travaux et incidents | Budget | Faire un don | Chouchen | Z pub | Logo et prospectus

© Association la mère Zaclys 1998-2019  - Zaclys v2.5

Suivez nous sur Diaspora, Mastodon, Google+, FaceBook ou Twitter