Partage de connexion sim900 + vpn

Bonjour,
je viens vers vous car je n’y arrive pas.
je vous explique en gros :
j’ai un orangepi zero dessus armbian.
je souhaite me connecté a internet via une carte sim900 : ça c’est ok.
je souhaite partagé la connexion gprs via le port Ethernet : ça c’est ok.
par contre quand je me connecte a mon server vpn, je n’ai plus internet sur le port Ethernet

Je me sert pour la connexion sim900 d’une connexion pppd
qui me créé donc une ‹ interface › ppp0
j’ai utilisé cette fonction :

iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE 

je l’ai enregistré

Pourtant quand je me connecte par le wifi, et qu’ensuite je me connecte au vpn, là pas de problème j’ai bien internet, et mon adresse et bien celle de mon vpn.

Voila je ne sais plus ou cherché, le but final de mon petit projet est de pouvoir avoir internet dans un local ou il n’y a pas internet, et de pouvoir me connecté aux appareils de ce local à distance.
Comme les réseaux 4g sont inaccessible depuis l’extérieur j’ai pensé a faire comme çà:
Appareillage>Orange Pi> 4g > vpn < fibre < Ordi perso

voila merci pour vos retour, et dites moi si il faut d’autre indication

Bonjour et bienvenue sur le forum,

Je ne connais pas les caractéristiques de la connexion VPN, mais je pense que ça peut venir de différentes causes :

  • ta connexion VPN est configurée en route par défaut, mais ton serveur VPN ne s’attend pas à te donner accès à Internet
  • ta connexion VPN est configurée en route par défaut, mais tu n’as pas configuré de NAT sur la connexion VPN et ton serveur VPN ne connait pas le réseau de ton port Ethernet

Pour mieux savoir, il faudrait nous donner les retours des commandes suivantes sur ton orangepi quand le VPN est activé :

ip route show default
ip -6 route show default
iptables-save
ip6tables-save

J’ai mal expliqué pour le wifi
Quand je me connecte au wifi c’est avec l’orange pi, et la pas de soucis avec l’ethernet, j’ai bien internet derrière.

voila le log en question

# Generated by iptables-save v1.8.4 on Sun Jan  2 16:02:02 2022
*filter
:INPUT ACCEPT [1040:233803]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [323:31331]
-A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -j ACCEPT
COMMIT
# Completed on Sun Jan  2 16:02:02 2022
# Generated by iptables-save v1.8.4 on Sun Jan  2 16:02:02 2022
*nat
:PREROUTING ACCEPT [315:51419]
:INPUT ACCEPT [26:4298]
:OUTPUT ACCEPT [149:10928]
:POSTROUTING ACCEPT [32:2088]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT
# Completed on Sun Jan  2 16:02:02 2022

il s’avère que les iptables du fichier iptable .ipv4.nat ne ce charge pas au début
pourtant j’ai bien mit la ligne :

iptables-restore < /etc/iptables.ipv4.nat

dans le fichier rc.local

L’utilisation du fichier /etc/rc.local est obsolète depuis Debian 9, il me semble. Pour appliquer des règles iptables au démarrage, je te conseille plutôt d’utiliser le paquet iptables-persistent si tu applique tes règles avant l’installation du paquet, tu auras un moment pendant l’installation où on te proposera de mettre les règles appliquées dans la configuration.

Il y a du Wifi ? Il n’y a pas de VPN ?

Si, je recapitule, j’ai plusieurs moyen, quand je fait un test avec internet par le wifi > VPN : aucun problème
quand je fait un test avec internet par le module sim900 > VPN : aucune connexion

Sur le orangepi, active la connexion sim900 et le VPN et donne-moi le retour de la commande suivante :

ip a

Grâce au commande que tu ma demandé de testé j’ai pu m’apercevoir que la table de routage ne s’actualisé pas. problème résolu j’ai internet derrière le sim900 et connecté au vpn.

maintenant je dois trouvé comment le connecté automatiquement,
j’arrive à lancer la connexion sim 900 mais la connexion vpn ne ce lance pas.

j’ai crée un commande crontab -e

@reboot /usr/script.sh

et dans ce script

sleep 20
pon rnet
sleep 20
openvpn --config /etc/openvpn/openvpn.conf --comp-lzo

la commande pon rnet ce lance, mais pas le vpn je ne sais pas comment verifié le log de ce script…
si vous avez une idée ? ^^

Ça sent l’arbitraire cette attente de vingt secondes, il y a sûrement moyen de déclancher ça de façon plus robuste.

Que fait cette commande au juste ?

Pon rnet lance la connexion 2g sur le module sim900,

Oui c’est arbitraires comme valeur j’estime que 20 seconde c’est correct mais le vpn ne veux pas,

Uniquement manuellement…

Dans ce cas, je vois bien cette commande se lancer dans une ligne pre-up du fichier /etc/network/interfaces

Pour le VPN, tu peux modifier le fichier /etc/default/openvpn et ajouter la connexion openvpn aux connexions se lançant automatiquement (valeur de la variable AUTOSTART).

Tu veux dire quoi par là, comment le lances-tu automatiquement ? Quel message d’erreur tu obtiens ?

Bonjour, le Orangepi lance bien la commande « pon rnet » qui permet la connexion 2g.
le vpn ne veux absolument pas ce lancer automatiquement, quand je le lance manuellement pas de problème.

j’ai une question technique concernant mon utilisation:
je vais essayé d’être claire mais ce n’est pas facile :slightly_smiling_face:
donc mon Orangepi et connecté via 2g a mon serveur openvpn chez moi.
Je branche mon ordi portable sur le port Ethernet du orange pi et je désactive évidement le wifi
Je récupère donc internet sur mon ordi portable via le Orangepi qui lui est connecté au vpn.

De la j’arrive avec mon ordi a « pingé » ma box, et tout ce qu’il y a sur mon réseau domestique, donc à distance c’est comme si j’étais en local.
par contre dans l’autre sens je peux pas « pingé » mon ordi depuis mon réseau local.
Donc je n’atteint pas ce qu’il y a derrière le Orangepi. En gros ca marche dans un sens mais pas dans l’autre.

mon ip box local 192.168.1.*
mon ip openvpn 192.168.2.*
mon ip Orangepi eth0 10.10.10.*
Donc de mon Ordi derrière l’Orangepi qui a comme adresse 10.10.10.101
Je peux faire un ping sur 192.168.1.* ; 192.168.2.* ; 10.10.10.* sans problème
depuis un autre ordi connecté au serveur openvpn je peu faire un ping sur 192.168.1.* ; 192.168.2.* mais pas 10.10.10.*

je me dit que quelque chose bloque au niveau de l’Orangepi
peut être au niveau des iptables ?

Aucune idée, je ne sais pas quelle erreur tu rencontres.

Aucune idée, les dernières règles connues (en date du 2 janvier) laissent tout passer (sauf certains trafic qui peuvent passer).
Le problème vient probablement de ton serveur VPN qui ne connait pas la route vers le réseau dans lequel est ton ordinateur portable connecté au port Ethernet de ta OrangePi.

Bonjour,

Est-ce possible d’obtenir une partie des règles iptables sur le serveur VPN ? (en espérant qu’il soit sous Linux)
Notamment la chaîne POSTROUTING de la table nat avec :

sudo iptables --line-numbers -nvx -t nat -L POSTROUTING

En effet, je me demande si les machines du réseau local à ton domicile possèdent la route réseau vers le sous-réseau utilisé par OpenVPN ( 192.168.2.0/24 )

Globalement, ce que tu semble vouloir mettre en place, un VPN site à site, est quelque-chose d’assez difficile à faire en IPv4 du moment que l’on utilise une « box » destinée aux particuliers autre que la « Révolution ».
Heureusement, on devrait peuvoir tenter des choses grâce à ton serveur VPN.


AnonymousCoward

Alors hélas mon vpn est un vpn sur un Synology donc autant dire que je n’ai accès à rien.

je pense que tu as raison c’est un vpn site a site que je voudrais.
je ne comprend pas pourquoi tu parle de la box, car la ou cela bloque c’est sur l’orange pi
après peut être que cela viens du Synology.

car comme je te dit avec l’ordinateur derrière le Orangepi (client) j’arrive a atteindre tous mon réseau local derrière le Synology (serveur) mais pas dans l’autre sens, et c’est ca que je veux.

car en gros j’ai besoin de créé un réseau accessible depuis l’extérieur mais ce réseau a comme particularité d’être en 2G et donc derrière un opérateur mobile, donc aucune possibilité de connexion a distance.

De ce que j’en comprends, le Synology utilise du SNAT pour faire en sorte que les connexions qui proviennent du VPN (OrangePi ou machines sur le réseau de l’OrangePi) soient transformées. Leur adresse IP source est remplacée par celle du Synology.

Ceci fait que les machines sur ton LAN perso répondent au Synology et le Synology fait suivre les réponses aux machines derrière la OrangePi.

Par contre, lorsque une machine sur ton LAN perso, que l’on appellera « babasse », cherche à se connecter à une machine via le VPN dont l’adresse IP serait 10.10.10.63 , babasse ne connaît pas la route réseau pour joindre 10.10.10.63 . Babasse ne sait pas qu’il faut faire relayer la connnexion par le Synology.

Pour vérifier, il faudrait mettre en place un serveur web sur une machine de ton LAN perso, qui enregistre l’adresse IP source de chaque connexion dans un fichier journal / log.
Puis faire quelques connexions depuis une machine raccordée à la OrangePi.
Si le journal des connexions du serveur sur ton LAN perso indique l’adresse IP LAN du Synology, c’est que cette fonction SNAT est active.

Parmi les solutions, il y aurait :

  • pouvoir désactiver la fonction SNAT sur le VPN par le Synology
  • avoir un autre ordi (ou une autre OrangePi) pour faire la fonction VPN à la place du Synology


AnonymousCoward

Si tu as une machine sous Linux sur ton LAN perso (et qui ne soit pas le Synology), tu te connectes en SSH sur la machine depuis ton site distant et tu lances :

who --ips

Cela devrait t’indiquer l’adresse IP source utilisée pour la connexion SSH.


AnonymousCoward

Voila donc j’ai un 2e orangepi qui me sert pour mon imprimante 3d, donc
je prend mon ordi portable connecté au orangepi (client) en 2g
donc du réseau distant; je me connecte parfaitement au Orangepi(imprimante 3d) en ssh
je lance la commande que tu ma demandé et voila la réponse :

root@orangepipc:~# who --ips
root     pts/0        2022-01-28 18:35 192.168.1.32

concernant le SNAT je pense que je ne peux rien faire, car je n’ai accès à aucun réglage du serveur openvpn sur le Synology.

donc tu pense que je devrais créé un serveur openvpn sur le Orangepi(imprimante) et quel réglage devrais je faire pour arrivé à mes fin ? je veux dire déjà dans le grande ligne.

Alors, après quelque recherche je peux finalement me connecté en SSH sur le synology.

je peux donc lancer des commande seulement la je suis perdu je peux j’imagine faire un routage par iptables mais la je vais avoir besoin d’aide ^^

voici la commande demandé plus haut :

DiskStation> iptables --line-numbers -nvx -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT 239421 packets, 94860890 bytes)
num      pkts    bytes target     prot  opt in     out     source               destination
1       73700 66158519 MASQUERADE  all  --  *      *       192.168.2.0/24       0.0.0.0/0```

On a donc trouvé la cause du problème. C’est nickel.

Maintenant, il y a deux choses à faire pour que tu puisses joindre une machine sur ton réseau distant depuis ton LAN perso :

  • supprimer la règle iptables de la table nat, chaîne POSTROUTING sur le Synology :
iptables -t nat -D POSTROUTING 1
  • ajouter les routes vers les sous-réseaux distants sur chaque machine de ton LAN perso.
    Par exemple, depuis une machine Linux :
sudo ip -4 route add 192.168.2.0/24 via 192.168.1.32
sudo ip -4 route add 10.10.10.0/24 via 192.168.1.32

Ou sous Windows :

route ADD 192.168.2.0/24 192.168.1.32
route ADD 10.10.10.0/24 192.168.1.32

(il y a un moyen de rendre ces routes permanentes, sous Windows. Je te laisse chercher)

Ensuite, la connexion à une machine distante devrait fonctionner.

L’intérêt d’avoir une bonne box / un bon routeur, ce serait d’ajouter le VPN directement dessus et ainsi d’éviter de devoir ajouter les routes sur chaque machine de ton LAN perso.


AnonymousCoward

Alors déjà un grand merci pour le temps que tu me consacre :slight_smile:

J’ai donc suivi tes instructions, maintenant j’arrive, depuis mon Lan, à « pingé » mon Orangepi(client)
avec mon ordi qui est en 192.168.1.17
je ping 192.168.2.6 (Orangepi client quand connecté au NAS Synology par VPN)
je reçoit les paquets.
Par contre impossible de « pingé » la plage 10.10.10.*

on ce rapproche du but !

il doit me manqué un dernier réglage mais je ne vois pas ou, peut être un iptables à réglé dans la nas ?