Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1615 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  RPI3 routage wifi -> vpn / eth -> lan

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

RPI3 routage wifi -> vpn / eth -> lan

n°1408894
stefxg
Posté le 17-10-2017 à 16:06:15  profilanswer
 

Bonjour,
 
je requiere un peu de votre aide, par ce que je bloque.
 
j'ai un RPI3 donc avec du wifi et un eth, je souhaiterai faire passer le traffic venant de l'internet exclusivement par le wifi et me servir de l'ethernet uniquement pour le lan sans qu'il puisse sortir vers l'internet  
 
a noter que pour me connecter a internet, le wifi ne peu avoir la possibilitéque de passer par une connection vers un serveur vpn
 
 
petit schema:
 
LAN <- (eth0)  RPI  (Wlan0) -> (tun0) -> WWW
                I                 I
            WWW           LAN
 
Merci d'avance

mood
Publicité
Posté le 17-10-2017 à 16:06:15  profilanswer
 

n°1408898
geronimoo0
Posté le 17-10-2017 à 16:50:40  profilanswer
 

salut,
Tu peux créer une route par défaut (route 0) sur ton interface wlan0 et tu ne mets pas de passerelle sur ta eth0. Autre possibilité tu étanchéifies ton eth0 avec un firewall du type iptables

n°1408904
stefxg
Posté le 17-10-2017 à 18:55:15  profilanswer
 

ok, alors deja sur le routage de wlan0
 
j'ai ca:
 

Code :
  1. ~ $ route -n
  2. Table de routage IP du noyau
  3. Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
  4. 0.0.0.0         10.125.4.37     128.0.0.0       UG    0      0        0 tun0
  5. 0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 wlan0
  6. 10.125.0.1      10.125.4.37     255.255.255.255 UGH   0      0        0 tun0
  7. 10.125.4.37     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
  8. 85.203.13.5     192.168.0.1     255.255.255.255 UGH   0      0        0 wlan0
  9. 128.0.0.0       10.125.4.37     128.0.0.0       UG    0      0        0 tun0
  10. 192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0


 
donc si mon vpn tombe ca passe par 192.168.0.1 (mon routeur ), comment je modifie?
 
mon eth0 est pas branché pour l'instant
 

Code :
  1. eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
  2.         ether b8:27:eb:f9:cd:54  txqueuelen 1000  (Ethernet)
  3.         RX packets 0  bytes 0 (0.0 B)
  4.         RX errors 0  dropped 0  overruns 0  frame 0
  5.         TX packets 0  bytes 0 (0.0 B)
  6.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  7. lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
  8.         inet 127.0.0.1  netmask 255.0.0.0
  9.         inet6 ::1  prefixlen 128  scopeid 0x10<host>
  10.         loop  txqueuelen 1  (Boucle locale)
  11.         RX packets 2671  bytes 34139037 (32.5 MiB)
  12.         RX errors 0  dropped 0  overruns 0  frame 0
  13.         TX packets 2671  bytes 34139037 (32.5 MiB)
  14.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  15. tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
  16.         inet 10.125.4.38  netmask 255.255.255.255  destination 10.125.4.37
  17.         inet6 fe80::e506:6541:ea2a:3993  prefixlen 64  scopeid 0x20<link>
  18.         unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
  19.         RX packets 8507  bytes 7774909 (7.4 MiB)
  20.         RX errors 0  dropped 0  overruns 0  frame 0
  21.         TX packets 11677  bytes 1579808 (1.5 MiB)
  22.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  23. wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  24.         inet 192.168.0.109  netmask 255.255.255.0  broadcast 192.168.0.255
  25.         inet6 fe80::623:4816:6bb:6595  prefixlen 64  scopeid 0x20<link>
  26.         ether b8:27:eb:ac:98:01  txqueuelen 1000  (Ethernet)
  27.         RX packets 24704  bytes 16228945 (15.4 MiB)
  28.         RX errors 0  dropped 854  overruns 0  frame 0
  29.         TX packets 18594  bytes 4589491 (4.3 MiB)
  30.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


 
 
 
ensuite on verra iptable pour eth0 ;)


Message édité par stefxg le 17-10-2017 à 18:59:51
n°1408906
stefxg
Posté le 17-10-2017 à 19:10:29  profilanswer
 

Si je vire
 

Code :
  1. 192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0


 
et que je créé  
 

Code :
  1. 192.168.0.0     10.125.4.37         255.255.255.0   U     303    0        0 wlan0


 
j'ai bon ou pas?
 
non je pense que j'ai pas bon grrr  :fou:  
 
je comprends rien en routage, j'ai pas encore eu le declic  :??:


Message édité par stefxg le 17-10-2017 à 19:11:58
n°1408920
geronimoo0
Posté le 18-10-2017 à 09:23:55  profilanswer
 

quelle est ta distribution?
les paramètres de tes interfaces sera modifiable selon si tu utilises les confs de base (/etc/network/interfaces) ou des surcouches de type network-manager...
Cependant juste pour la petite explication de ton poste
 

Code :
  1. ~ $ route -n
  2.     Table de routage IP du noyau
  3.     Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
  4.     0.0.0.0         10.125.4.37     128.0.0.0       UG    0      0        0 tun0
  5.     0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 wlan0
  6.     10.125.0.1      10.125.4.37     255.255.255.255 UGH   0      0        0 tun0
  7.     10.125.4.37     0.0.0.0         255.255.255.255 UH    0      0        0 tun0
  8.     85.203.13.5     192.168.0.1     255.255.255.255 UGH   0      0        0 wlan0
  9.     128.0.0.0       10.125.4.37     128.0.0.0       UG    0      0        0 tun0
  10.     192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0


 
destination: 0.0.0.0 c'est ce qu'on appel la route par défaut, ou "route zéro". En gros c'est le reste du monde, donc pour toi Internet.
 
Là tu as donc une passerelle 10.125.4.37 qui te permet d'atteindre Internet sur le réseau 10.125.x.x
Tu as une seconde en dessous qui est une passerelle (gw) 192.168.0.1 pour le réseau 192.168.0.x; Si je comprends bien c'est ton trafic du wifi qui est redirigé sur ton VPN?
 
Maintenant tu peux faire un test tout bête: tu créés pour ton interface eth une route bidon. En gros imaginons que ton réseau pour l'eth est de type 10.10.0.x
on va faire un truc du genre (je ne suis plus sûr des commandes)
 
route add 10.10.0.0 netmask 255.255.255.0 12.34.56.78
 
en gros tu dis que ta passerelle pour le réseau 10.10.0.x est la 12.34.56.78, qui n'est pas joignable. Normalement dans ce cas ton interface pourra contacter ses potes sur le même réseau (masque /24) mais pas le reste du monde.
 
 

n°1408946
stefxg
Posté le 18-10-2017 à 16:47:59  profilanswer
 

Salut Geronimo
 
alors en fait j'ai avancé un peu j'ai trouvé un script qui lance la connection vpn et créé des règles iptables
 
voici le script
 

Code :
  1. #!/bin/bash
  2. if [[ $EUID -ne 0 ]]; then
  3.         echo "This script must be run as root" 1>&2
  4.         exit 1
  5. fi
  6. # name of primary network interface (before tunnel)
  7. PRIMARY=wlan0
  8. # address of tunnel server
  9. SERVER=france-paris-2-ca-version-2.expressnetw.com
  10. # address of vpn server
  11. VPN_SERVER=france-paris-2-ca-version-2.expressnetw.com
  12. # gateway ip address (before tunnel - adsl router ip address)
  13. # automatically determine the ip from the default route
  14. GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`
  15. # provided by pppd: interface name
  16. TUNNEL=tun0
  17. openvpn --config /etc/openvpn/expressvpn/monvpn.ovpn &
  18. # iptables rules - important!
  19. #LOCAL_NET=192.168.0.0/16
  20. LOCAL_NET=$GATEWAY
  21. # Flush all previous filter rules, you might not want to include this line if you already have other rules setup
  22. iptables -t filter --flush
  23. iptables -t filter -X MYVPN
  24. iptables -t filter -N MYVPN
  25. # Exceptions for local traffic & vpn server
  26. iptables -t filter -A MYVPN -o lo -j RETURN
  27. iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
  28. iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
  29. iptables -t filter -A MYVPN --dst $LOCAL_NET -j RETURN
  30. iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
  31. iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN
  32. # Add extra local nets here as necessary
  33. iptables -t filter -A MYVPN -j DROP
  34. # MYVPN traffic leaving this host:
  35. iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
  36. iptables -t filter -A OUTPUT -p icmp -j MYVPN
  37. iptables -t filter -A OUTPUT -p udp -j MYVPN
  38. echo "nameserver 8.8.8.8" > /etc/resolv.conf


 
adapté avec mes variables
 
le site du script
 
https://www.inputoutput.io/hardenin [...] -iptables/
 
le lancement du script avec -x
 

Code :
  1. + PRIMARY=wlan0
  2. + SERVER=france-paris-2-ca-version-2.expressnetw.com
  3. + VPN_SERVER=france-paris-2-ca-version-2.expressnetw.com
  4. + cut -d  -f2
  5. + tr -s 
  6. + egrep ^0\.0\.0\.0
  7. + grep wlan0
  8. + route -n
  9. + GATEWAY=192.168.0.1
  10. + TUNNEL=tun0
  11. + LOCAL_NET=192.168.0.1
  12. + iptables -t filter --flush
  13. + iptables -t filter -X MYVPN
  14. + openvpn --config /etc/openvpn/expressvpn/monvpn.ovpn
  15. iptables: No chain/target/match by that name.
  16. + iptables -t filter -N MYVPN
  17. + iptables -t filter -A MYVPN -o lo -j RETURN
  18. + iptables -t filter -A MYVPN -o tun0 -j RETURN
  19. + iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
  20. + iptables -t filter -A MYVPN --dst 192.168.0.1 -j RETURN
  21. + iptables -t filter -A MYVPN --dst france-paris-2-ca-version-2.expressnetw.com -j RETURN
  22. + iptables -t filter -A MYVPN --dst france-paris-2-ca-version-2.expressnetw.com -j RETURN
  23. + iptables -t filter -A MYVPN -j DROP
  24. + iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
  25. + iptables -t filter -A OUTPUT -p icmp -j MYVPN
  26. + iptables -t filter -A OUTPUT -p udp -j MYVPN
  27. + echo nameserver 8.8.8.8


 
les iptables créées
 

Code :
  1. sudo iptables -L
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination       
  4. Chain FORWARD (policy ACCEPT)
  5. target     prot opt source               destination       
  6. Chain OUTPUT (policy ACCEPT)
  7. target     prot opt source               destination       
  8. MYVPN      tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN
  9. MYVPN      icmp --  anywhere             anywhere           
  10. MYVPN      udp  --  anywhere             anywhere           
  11. Chain MYVPN (3 references)
  12. target     prot opt source               destination       
  13. RETURN     all  --  anywhere             anywhere           
  14. RETURN     all  --  anywhere             anywhere           
  15. RETURN     all  --  anywhere             localhost         
  16. RETURN     all  --  anywhere             192.168.0.1       
  17. RETURN     all  --  anywhere             85.203.13.4       
  18. RETURN     all  --  anywhere             85.203.13.5       
  19. RETURN     all  --  anywhere             85.203.13.21       
  20. RETURN     all  --  anywhere             85.203.13.5       
  21. RETURN     all  --  anywhere             85.203.13.21       
  22. RETURN     all  --  anywhere             85.203.13.4       
  23. DROP       all  --  anywhere             anywhere


 
des fois ca fonctionne et des fois pas  
 
un preobleme de resolution de nom
 

Code :
  1. Wed Oct 18 14:52:47 2017 RESOLVE: Cannot resolve host address: france-paris-2-ca-version-2.expressnetw.com:1195 (Temporary failure in name resolution)
  2. Wed Oct 18 14:52:47 2017 RESOLVE: Cannot resolve host address: france-paris-2-ca-version-2.expressnetw.com:1195 (Temporary failure in name resolution)
  3. Wed Oct 18 14:52:47 2017 Could not determine IPv4/IPv6 protocol
  4. Wed Oct 18 14:52:47 2017 SIGUSR1[soft,init_instance] received, process restarting
  5. Wed Oct 18 14:52:47 2017 Restart pause, 5 second(s)


 
peut etre une protection de vpnexpress, sur une reconnection trop rapide je sais pas
 
mon soucis c'est que je ne sais pas interpreter les iptables, je vois bien que ca fait quelque chose mais je sais pas ce que ca veut dire :(


Message édité par stefxg le 18-10-2017 à 16:55:13
n°1408972
stefxg
Posté le 19-10-2017 à 00:11:25  profilanswer
 

Je suis sur un RPI3 tournant sur Raspbian  
 
J'ai fait quelques changements au script, de cette façons ca gère deux cartes réseaux.  
Les changements sont en rouge, j'ai aussi rajouté 3 minutes de temporisation pour laisser le temps à openvpn de derouler son script.
 
Ce qu'il manque c'est de rajouter une entrée dans l'iptables pour laisser passer la resolution de nom de domaine sur le lan.
pour l'instant je n'ai pas encore trouvé comment faire.
 
exemple:

Code :
  1. ping -c 3 drivebox.local
  2. ping: drivebox.local: Nom ou service inconnu
  3. pi@seedbox:~ $ ping -c 3 192.168.0.35
  4. PING 192.168.0.35 (192.168.0.35) 56(84) bytes of data.
  5. 64 bytes from 192.168.0.35: icmp_seq=1 ttl=64 time=5.38 ms
  6. 64 bytes from 192.168.0.35: icmp_seq=2 ttl=64 time=5.12 ms
  7. 64 bytes from 192.168.0.35: icmp_seq=3 ttl=64 time=5.16 ms
  8. --- 192.168.0.35 ping statistics ---
  9. 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
  10. rtt min/avg/max/mdev = 5.127/5.226/5.382/0.111 ms


 
 

Code :
  1. #!/bin/bash
  2. if [[ $EUID -ne 0 ]]; then
  3.         echo "This script must be run as root" 1>&2
  4.         exit 1
  5. fi
  6. # name of primary network interface (before tunnel)
  7. PRIMARY=wlan0
  8. SECONDARY=eth0
  9. # address of tunnel server
  10. SERVER=france-paris-2-ca-version-2.expressnetw.com
  11. # address of vpn server
  12. VPN_SERVER=france-paris-2-ca-version-2.expressnetw.com
  13. # gateway ip address (before tunnel - adsl router ip address)
  14. # automatically determine the ip from the default route
  15. GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`
  16. NTW_PRI=`ip route show | grep $PRIMARY | egrep "scope" | tr -s " " | cut -d" " -f1`
  17. NTW_SEC=`ip route show | grep $SECONDARY | egrep "scope" | tr -s " " | cut -d" " -f1`
  18. # provided by pppd: interface name
  19. TUNNEL=tun0
  20. openvpn --config /etc/openvpn/expressvpn/monvpn.ovpn &
  21. date
  22. echo "////////////////////////////" ;
  23. echo "//                        //" ;
  24. echo "//                        //" ;
  25. echo "// Connection Express vpn //" ;
  26. echo "//                        //" ;
  27. echo "//                        //" ;
  28. echo "////////////////////////////" ;
  29. sleep 3m
  30. date
  31. echo "////////////////////////////" ;
  32. echo "//                        //" ;
  33. echo "//                        //" ;
  34. echo "// modification iptables  //" ;
  35. echo "//                        //" ;
  36. echo "//                        //" ;
  37. echo "////////////////////////////" ;
  38. # iptables rules - important!
  39. #LOCAL_NET=192.168.0.0/16
  40. LOCAL_NET=$NTW_PRI
  41. LOCAL_NET2=$NTW_SEC
  42. # Flush all previous filter rules, you might not want to include this line if you already have other rules setup
  43. iptables -t filter --flush
  44. iptables -t filter -X MYVPN
  45. iptables -t filter -N MYVPN
  46. # Exceptions for local traffic & vpn server
  47. iptables -t filter -A MYVPN -o lo -j RETURN
  48. iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
  49. iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
  50. iptables -t filter -A MYVPN --dst ${LOCAL_NET} -j RETURN
  51. iptables -t filter -A MYVPN --dst ${LOCAL_NET2} -j RETURN
  52. iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
  53. iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN
  54. # Add extra local nets here as necessary
  55. iptables -t filter -A MYVPN -j DROP
  56. # MYVPN traffic leaving this host:
  57. iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
  58. iptables -t filter -A OUTPUT -p icmp -j MYVPN
  59. iptables -t filter -A OUTPUT -p udp -j MYVPN
  60. echo "nameserver 8.8.8.8" > /etc/resolv.conf


Message édité par stefxg le 19-10-2017 à 00:13:11
n°1408987
geronimoo0
Posté le 19-10-2017 à 09:10:12  profilanswer
 

les requetes DNS c'est UDP (tu peux ouvrir TCP aussi) sur le port 53 ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  RPI3 routage wifi -> vpn / eth -> lan

 

Sujets relatifs
clef ou carte wifi pour ordissimo V1wifi/bluetooth sur AR9462
Pb install après update noyau : pas de dossier build dans /lib/modulesdébit WiFi AC pas top même en LAN
perte de reseaux WIFIroutage sous linux
Newbie Linux : Installation Dropbox user comment ?Installer un drivers wifi manuellement?
Plus de Wifi sur mon PC portable Linux [Résolu] Déconnexions intempestives WiFi - Elementary OS - BCM4313
Plus de sujets relatifs à : RPI3 routage wifi -> vpn / eth -> lan



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR