Publié le 8 janvier 2020 - par

Partage d’une connexion 4G Ethernet + Wifi (Episode2)

L’article précédent sur le partage de connexion 4G via le port Ethernet du Raspberry Pi 4 a apparemment bien plu… Des lecteurs m’ont envoyé des demandes pour ajouter le WiFi au partage. Voici une solution, utilisant un Acces Point (Point d’accès ou AP) hostpad pour partager la connexion.

Niveau d'accès pour ce tutoriel : Avancé

Cliquez pour plus d’information sur les niveaux

Partage d’une connexion 4G en Ethernet et en Wifi

[stextbox id=’info’ caption=’Remarque’]S’il ne s’agit que de partager la 4G en WiFi, votre smartphone doit pouvoir le faire directement en activant le point d’accès mobile.[/stextbox]

Pour ceux qui démarreraient par cet article, je vais donner la marche à suivre, sachant que certaines explications sont déjà présentes dans l’article précédent, je vous conseille de commencer par le premier article, puis de modifier votre installation en fonction de celui-ci…

Objectif de cet article

Ce montage est plutôt destiné à fournir un accès Internet à un endroit dépourvu d’ADSL ou de fibre optique. Encore faudra-t-il que la 4G soit accessible. Ce pourrait être le cas d’une maison à la campagne, pas connectée du tout, ou d’un camping-car. Il devient possible de partager la connexion entre plusieurs utilisateurs.

Qu’est-ce qui change ?

Pour accéder au partage via le WiFi, il va falloir activer le port WiFi du Raspberry Pi. Cela signifie d’abord lui donner une adresse. J’ai choisi de différencier le réseau filaire (10.0.0.0/24) du réseau WiFi (10.0.10.0/24).

Pour permettre aux appareils d’accéder en WiFi au Raspberry Pi, j’ai choisi un classique : hostAP souvent mis en œuvre dans ce cas. Il faudra l’installer et le configurer.

Il faudra donner une adresse statique à wlan0 (10.0.10.1) dans /etc/dhcpcd.conf, ajouter cette interface à la liste des interfaces lues par le DHCP (/etc/default/isc-dhcp-server),  et créer un subnet dans le fichier de configuration du DHCP (/etc/dhcp/dhcpd.conf), pour que celui-ci distribue des adresses sur cette interface.

Dans les options, l’adresse de passerelle et l’adresse du DNS seront toutes deux à 10.0.10.1.

Il faudra aussi modifier iptables pour que les paquets soient routés vers cette nouvelle interface. On en profitera pour améliorer un peu la sécurité.

Enfin, au démarrage, il arrivait souvent que le DHCP soit en erreur lors de son lancement. La cause est que le serveur démarre AVANT que les adresses IP aient été attribuées aux interfaces. Dans un premier temps j’ai demandé que le service démarre après le réseau, mais apparemment wlan0 pose encore problème et très souvent n’a pas d’adresse lors du démarrage du serveur DHCP. Comme ce point d’accès n’est pas destiné à être démarré souvent (en principe on le démarre et il reste en fonction pendant des heures), j’ai choisi de retarder le démarrage du serveur DHCP de 30 secondes, le temps que tout ça se mette en place.

Du coup si vous essayez de vous connecter tout de suite après le démarrage du Raspberry Pi, vous n’obtiendrez pas d’adresse IP… Il faudra juste être un peu patient(e) lors du démarrage 🙂

Ce qu’on va mettre en place

Voici le synoptique de ce qui va être mis en place sur notre Raspberry Pi.

Installation de hostAP

Comme toujours pensez à mettre votre système à jour avant de commencer à installer.

Mettre une adresse fixe à l’interface wlan0

et modifier la fin du fichier avec

Le nohook permet de ne pas prendre en compte le wpa_supplicant s’il y en a un.

Modifier la configuration DHCP

On va rendre le DHCP « autorité » sur ce réseau et ajouter le subnet pour le wifi

authoritative;  Supprimez le # du début de cette ligne

Puis rendez vous à la fin du fichier et ajoutez :

Connecter le DHCP à wlan0

Pour que le serveur DHCP écoute sur des interfaces, il faut les spécifier dans /etc/default/isc-dhcp-server : ouvrez ce fichier avec nano

Modifiez la ligne ci-dessus pour que les deux interfaces soient écoutées.

Modifier la configuration de hostAP

ouvrir le fichier hostapd.conf

et écrire le contenu du fichier

Vous remplacerez le SSID et la passphrase par les vôtres.

Charger la configuration de hostAP au démarrage

Ouvrir le fichier de configuration

Remplacer la ligne:

Par la ligne suivant:

Modifier la configuration du DNS

Il faut indiquer au DNS qu’il doit résoudre les noms pour les deux réseaux connectés sur eth0 et wlan0.

Ouvrez le fichier /etc/bind/named.conf

Modifiez le comme suit

Ajuster les iptables

Dans la version précédente, les paquets ne subissent aucun filtrage. Tout ce qui arrive via le modem USB ou l’interface eth0 est routé sans arrière pensée. Ce serait bien de n’autoriser le transit que pour les paquets dûment autorisés.

Si vous aviez déjà des iptables, supprimez-les

puis saisissez en ligne de commande

Comme précédemment on va enregistrer cette configuration iptables :

Créer un service pour recharger les iptables

Créer un fichier pour le service iptables

Saisir dans ce fichier le texte suivant

Ce fichier sera exécuté par systemd lors du démarrage pour mettre les iptables en place (merci Grv pour la suggestion de modif 🙂 )

Il faut aussi activer le service que vous venez de créer.

Vous pouvez vérifier que les iptables ont bien été chargées avec

et

[stextbox id=’alert’ caption=’Attention’]Si vous aviez configuré les iptables d’après le premier article, supprimez la ligne
/home/pi/reseau.sh
dans le fichier /etc/rc.local[/stextbox]

Retarder le démarrage du DHCP

Comme indiqué au début de l’article, j’ai eu des misères avec le démarrage du DHCP qui intervenait avant que les interfaces prennent une adresse IP.

Le fait de rajouter After=network-online.target n’a pas suffi. J’ai retardé le démarrage de 30s. Faites une copie du service DHCP actif vers le dossier de systemd où nous allons pouvoir le modifier.

Ouvrez le fichier du service DHCP

Modifiez le comme suit :

Réinstallez le système pour que les modifications soient prises en compte

Redémarrez le Raspberry Pi pour prendre en compte toutes les modifs et attendez que le DHCP démarre. Vous pouvez tester…

Une distribution pour tester

Je vous propose de télécharger une image déjà configurée suivant cet article. Copiez la sur une carte microSD avec Etcher ou Win32DiskImager. Démarrez l’OS puis lancez raspi-config

pour augmenter la taille de la partition Linux à la place disponible sur la carte microSD

7 Advanced Options > A1 Expand Filesystem.

Ca devrait vous donner une installation opérationnelle. Si vous testez merci de mettre un commentaire ci-dessous pour donner votre avis.

Conclusion

Avec ce projet on met en œuvre beaucoup de connaissances dans différents domaines. On est loin du Raspberry Pi car tout ce qu’on vient de faire, on aurait pu le réaliser sur un PC sous Debian…
Si tout va bien, vous aurez des choses qui ne fonctionne pas. Je dis ça parce que si ça « tombe en marche » vous n’aurez rien appris 🙂 Le but du jeu c’est de trouver pourquoi ça ne fonctionne pas. Utilisez la doc, les Wiki, les moteurs de recherche… concernant les serveurs, l’AP…

Commencez par les bases. Si vous ne comprenez pas comment fonctionne le réseau ou les services DNS ou DHCP, vous avancez en terrain miné. Pour pouvoir dépanner il faut comprendre comment ça fonctionne.
Si vous me contactez en me disant j’ai suivi le tuto et ça ne marche pas… Bin … je ne saurai pas pourquoi, ni ce que vous avez fait ou pas fait. Il suffit d’oublier un ; pour qu’un fichier de config soit défectueux. En général il y a des commandes qui permettent de vérifier ces fichiers de config. Utilisez les… Consultez les journaux d’erreurs système et des applis… Si vous ne savez pas de quoi je parle, c’est par là qu’il faut commencer 😉

Et puis cherchez, recommencez… Si ce qui vous intéresse c’est juste la recette, cet article n’est pas pour vous. Achetez un routeur, vous aurez une belle page web pour le paramétrer et pas des fichiers texte (pas sexy du tout). Mais (et je suis désolé d’insister) si vous ne comprenez pas comment ça fonctionne « vraiment » vous ne vous en sortirez pas.

Voilà, voilà… prenez votre temps, découvrez, essayez, testez. Quand ça ne fonctionne pas c’est bon signe, ça veut dire que vous allez apprendre quelque chose 😀

Les tests ont été fait avec un Samsung S8 et un S4. Je n’ai pas d’iPhone et je ne peux pas dire si ça fonctionne ou pas. Après, si Apple veut bien me fournir un iPhone je peux faire les tests, bien entendu 🙂

ps : j’ai même connu des formateurs qui donnaient des TP avec des erreurs pour obliger les techniciens à chercher… je ne dirai pas de nom !

Sources

 

iptables et systemd

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

38 réflexions au sujet de « Partage d’une connexion 4G Ethernet + Wifi (Episode2) »

  1. Edouard

    Bonjour,
    Un grand merci pour ce partage !
    J’ai testé et l’ai adopté, tous fonctionne parfaitement sur mon Raspberry 4, mode ethernet et wifi.
    Merci encore et bravo.

    Répondre
  2. dyox

    Merci François et meilleurs voeux !
    Pour ceux qui sont curieux, on peut avoir le même résultat avec OpenWRT.
    Après, c’est sûr, c’est beaucoup moins didactique.

    Répondre
  3. Artemus24

    Salut à tous.

    Beau travail mais il y a des manques, comme par exemple déclarer un nom d’hôte sous bind9.
    Sinon, cela ne sert à rien de l’utiliser.

    Je constate que hostapd fonctionne très bien avec une seule interface.
    Mais quand on en utilise deux, je n’arrive pas à me connecter sur la seconde et je ne sais pas pourquoi.
    (wlan0 & wlan1) ou bien (wlan1 & wlan0).

    Qui est à l’origine de ce sujet ?

    @+

    Répondre
  4. Thierry

    Bonjour,
    Merci pour le partage.

    Il ne manque plus qu’à ajouter le « wifi extender » avec le tethering et la boucle est bouclée.

    Il y a des chances que vous nous fassiez une page sur ça ?

    Sinon merci, c’est très utile.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      qu’appelez vous WiFi extender avec le tethering ?
      Pour moi le Wifi extender sert à relayer le WiFi d’une box ou d’un routeur
      pour augmenter la distance d’utilisation…
      cordialement
      francois

      Répondre
      1. Thierry

        Bonjour,
        Oui, l’idée serait d’agréger gâce au raspberry pi, une connexion wifi existante plus le tethering.
        Et pourquoi pas même rajouter un modem 3G/4G avec tout ça 😀
        Très utile quand on n’a pas de fibre, pas d’abonnement internet mais juste des forfaits mobiles data.
        Merci

        Répondre
  5. F5SWB

    Bonjour,

    L’image fonctionne sans problème. Le wifi est disponible.
    Néanmoins avec un iphone 7, j’ai « accès internet indisponible ».

    A suivre si quelqu’un aurait une piste.
    Cordialement.
    Dimitri.

    Répondre
  6. matteo

    I followed both guides and managed to make everything work.

    I wanted to test your distribution at the end of this article, but I can’t find the data for access raspberrypi login and password

    is it possible to have them?

    Répondre
      1. HEISSLER

        Bonjour,

        Le lien fonctionne bien mais au démarrage de l’image, il faut un login et un mot de passe pour lancer Raspbian. Auriez vous encore ces accès svp ?

        Répondre
          1. Heissler

            J’ai cherché dans tout vos tutos et c’était bien pi / raspberry . J’ai fini de paramétrer le Raspberry via l’image et ca fonctionne parfaitement ! Merci beaucoup pour ce tuto très utile. J’ai juste eu a modifier les fichiers conf usb0 par wwan0 car j’utilise un galet 4g de chez Huawei. Encore merci

            Répondre
  7. Matteo Piva

    Hello.
    Ok file downloaded from the site and started, but once logged in and connected the phone via USB and started the thetering, connected the network cable to the Raspberry and the PC, the PC does not connect and does not find the connection in the ethernet

    Répondre
    1. François MOCQ Auteur de l’article

      Hello Matteo
      I’m sorry it’s not easy to understand what’s going on remotely.
      That’s why this article is classified as « Advanced » because users need to be able to understand what’s going on. Does your phone work when sharing on a PC? Which brand (iphone = problems doesn’t work)? etc
      You have to go through the process step by step and try to locate where the fault is for you. I’ve had several feedback from people who have successfully installed the image and I use it in the workshop regularly… keep me informed.
      regards
      françois

      Répondre
  8. Matteo

    Avviato immagine scaricata, collegato telefono Android con USB e attivato tethering usb, dalla presa ethernet mi collego a uno switch Lan e poi dal Switch a un pc con Windows 10, tutto tramite cavo.
    Ma non c’è connessione, sul Raspberry se faccio if config hi una serie di comandi ma non riesco a condividere la foto qui.

    Image téléchargée démarrée, téléphone Android connecté avec USB et partage de connexion USB activé, à partir de la prise Ethernet, je me connecte à un commutateur Lan, puis du commutateur à un PC avec Windows 10, le tout via un câble.
    Mais il n’y a pas de connexion, sur le Raspberry si je le fais si je configure une série de commandes mais je ne peux pas partager la photo ici.

    Répondre
  9. michael

    Bonjour,
    Merci pour ce super tuto bien détaillé, cela fait plus d’un mois que je tourne dessus, je pensais qu’il y avait certaines incompatibilité et qu’à cause de cela je ne pouvais pas me connecter sur certains sites.
    Puis je me suis rendu compte de mon erreur, en fait par et uniquement par WIFI lorsque je fais un teste de connexion, je suis à 0 en upload alors qu’en ethernet je suis à 10Mo. Par contre lorsque je me connecte à mon disque dur réseau, toujours sur le même pc portable, j’arrive bien à envoyer des fichier assez imposants sans problème, donc la carte WIFI du raspberry fonctionne. J’ai effectué des testes avec plusieurs matériels différents et à chaque fois j’arrive à la même conclusion.
    Etant donné que j’ai effectué les mises à jour, J’ai essayé de reconfigurer la partie iptable et c’est toujours pareil.
    Si quelqu’un à une idée, je suis preneur.

    Merci d’avance pour vos futures réponses et à bientôt. 🙂

    Répondre
  10. Isabelle

    Bonjour,

    Je recherche et étudie la config d’un cas similaire.
    J’ai un point d’accès wifi « D’Link DAP-2695 » relié en Ethernet à ma box adsl.
    L’idée est de supprimer la box et d’avoir un accès 4G par l’intermédiaire d’un smartphone.
    Est ce faisable ? Si oui, comment configurer mon Rpi 3B+ ?

    Isa

    Répondre
  11. iznobe

    Bonjour Francois et merci pour ces 2 tutos qui inerressent de + en + de monde .

    je me faisais une reflexion au sujet de la securité depuis un moment a ce sujet justement .
    je pars sur un telephone sous android , comment savoir quelle securité est mise en place lors d’ un partage de la sorte du coté d ‘ android et du telephone ?
    un pare feu est il integré ou pas ?
    est ce qu ‘un pirate peut tenter de se connecter sur le reseau 4 G ou autre et remonter l’ adresse IP jusqu ‘ au smartphone et peut etre passé dans le reseau local ?

    j ‘ ai chercher partout sur le net , c pas facile de trouver des reponses claires et encore moins en francais …
    suis meme aller voir le code source android et l ‘ API google mais bon , je ne suis pas devellopeur android .

    Si quelqu ‘ un a des infos a ces sujets sur de l’ utilisation a long terme d ‘ un telephone comme modem et la securité qui va avec je suis plus qu ‘ intéressé , merci pour tout vos partages .

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      il faudrait avoir l’avis de spécialiste dans le domaine. pour ma part je ne vois pas trop quelqu’un passer par la 4G pour venir dans mon réseau… mais pourquoi pas ? Après ils ciblent plutôt les entreprises et collectivités que les particuliers…

      Répondre
  12. Ping : Partage De Connexion Raspberry Pi

  13. Vaultreck

    Bonjour,

    Félicitation pour ce travail d’une exceptionnelle qualité.

    Pensez vous qu’il serait possible de faire pareil en remplacent le pont USB par un pont Wi-Fi ? Cela paramétrait de faire un simple partage de connexion Wi-Fi avec le téléphone afin de ne pas être obligé de le laisser brancher au RPi.

    Cordialement,

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      j’avoue que je ne vois pas trop ce que vous voudriez faire?
      le partage via le WiFi du telephone se fait sans problème…
      l’idée ici c’est de partager la connexion 4G en filaire
      cdt
      françois

      Répondre
  14. bu3304

    Bonjour,

    Je viens vers vous car à ce jour, l’image ne fonctionne pas avec mes pi4.

    J’ai un message au démarrage du bootloader comme quoi il existe une version plus récente. Testé sur Pi4 8Go et Pi 400. Et le bootloader tourne en rond.

    J’ai aussi tenté une install avec RaspiOS Bullseye Lite en suivant vos 2 tutos mais je coince sur l’enregistrement et le boot auto de l’iptables.

    J’aurais vraiment aimé pouvoir utiliser votre image clé en mains car j’ai besoin dans mon nouveau logement (ADSL 1Mega !!!) de passer par de la 4G et vos 2 billets sur le partage de connection fait clairement echo à mes besoins.

    En espérant une réponse. Bon Week-End et merci pour tout ce que vous mettez à disposition des neophytes.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      effectivement, l’article date de près de 2 ans maintenant (très long en informatique)
      et il y a eu des évolutions de l’OS en particulier
      il faudra que je refasse un article avec Bullseye mais je ne peux pas actuellement (faute de temps)
      Que voulez vous dire avec « mais je coince sur l’enregistrement et le boot auto de l’iptables »
      attention WordPress a remplacé > par le texte « & g t ; »
      cdt
      françois

      Répondre
  15. bu3304

    Bonjour Francois,

    Merci pour votre réponse. Pour les caractères HTML (> et < ), j’avais compris.

    Mais je pense buter sur les étapes après la commande : « sudo iptables-save < iptables » car au reboot, effectivement je perds la config.

    Je me rate donc à la partie : »Maintenant il faut recharger ce fichier lors de chaque démarrage du Raspberry Pi. Une des méthodes est d’ajouter un script dans /etc/rc.local. » …

    Je souhaite vraiment utiliser un de mes Pi4 restants pour ce projet car je n’ai clairement plus de trésorerie pour acheter un routeur LTE et un routeur Multi WAN à balance de charge. Mais je ne comprends pas ce que je zappe.

    Bref, je vais re tenter avec l’image « 2019-09-26-raspbian-buster-lite ».

    Je vous souhaite un bon week-end.

    Répondre
    1. bu3304

      Bonjour, pour dire qu’avec un Pi4 4Go et son bootloader « ancien », j’ai enfin réussi à faire fonctionner les 2 tutos.
      J’ai donc démarré l’iso fournit dans la 2eme partie et j’ai pu voir grâce à vos lignes de commandes où était mes erreurs (reseau.sh pas au bon endroit et en lecture seule)
      Maintenant plus qu’à tester en profondeur le résultat.
      PS : j’ai bien utilisé l’image 2019-09-26-raspbian-buster-lite et non la dernière Bullseye Lite.
      Merci Francois pour votre site et vos tutos.
      Bien Cordialement.

      Répondre
      1. François MOCQ Auteur de l’article

        merci c’est gentil de faire un retour
        je referai sans doute la manip avec Bullseye
        mais je vais attendre que ça se stabilise car pour le moment il y a encore des trucs qui ne fonctionnent pas…
        cdt
        françois

        Répondre
      2. bu3304

        Bonsoir,
        Tout fonctionne bien, j’ai d’excellents debits tant en Wifi qu’en 4G+ sauf que je rencontre un problème de taille : Les équipements LAN (10.0.0.0/24) ne voient pas les équipements WIFI (10.0.10.0/24) hors j’ai besoin de cette fonctionnalité (NAS OMV5 en partage, players Kodi, laptop et desktop, …)
        Puis-je modifier dhcpcd.conf pour par exemple LAN 10.0.0.10 à 10.0.0.49 et WIFI 10.0.0.50 à 10.0.0.100 ?
        Je ne voudrais pas « casser » mon nouveau jouet mais en l’etat, ma configuration n’est pas 100% optimale.

        Répondre
        1. François MOCQ Auteur de l’article

          Bonjour
          vous avez un réseau 10.0.0.0 et un autre 10.0.10.0
          ce ne sont pas les mêmes réseaux et il faut router les paquets entre les deux
          Après pour faire des tests je vous conseille de faire une copie de la carte SD ‘qui marche » : Menu > Accessoires > SD Card Copier
          Vous mettez la carte fonctionnelle dans un coffre fort :-; et vous modifiez la copie comme ça même si vous plantez tout vous pouvez toujours revenir en arrière

          Répondre
          1. bu3304

            Bonsoir Francois,
            Effectivement, j’ai fait un backup avant ET j’ai bien fait car mon reseau internet est tombé ! Mes produits sont bien tous sur le même plan 10.0.0.0/24 mais plus d’internet. Ni pour les périphériques LAN que pour les WLAN. Là, je sèche grave.
            Devrais-je plutôt poster sur votre rubrique Forums et éviter de polluer votre billet ?
            Merci pour votre patience.
            Bonne soirée.

            Répondre
  16. defrance

    bonjour

    merci pour ce tuto…

    dans mon cas avec hostapd à la fois dhcpcd et dnsmasq sont utilisés et actifs…

    donc qui délivre les baux dans ce cas ?

    puis-je arrêter dnsmasq au profit de dhcpcd ou l’inverse ?

    merci

     

    Répondre
  17. Cedric

    Hello et merci pour le tuto,

    Ca ne fonctionne pas pour moi et je n’arrive pas a trouver pourquoi.

    J’arrive a voir le reseau wifi que j’ai créé, j’arrive a mis connecter via un pc portable mais je n’ai pas internet. Mon telephone portable le voit egalement mais refuse de s’y connecter.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.