mercredi 2 septembre 2020

Réseau : comment se libérer des blocages d'internet ?! ;-) DPI & VPN OFUSCATION...

Dans cette article, on va voir comment se libérer de certains blocages des opérateurs ADSL, fibre, etc...

Photos gratuites de bande passante, base de données, câble

En fait, la neutralité du net n'est plus respecté depuis longtemps et cela pose problème parfois pour nos usages d'internet. Parfois l'opérateur peut bloquer certains sites et aussi certains type de flux (https, ftp, streaming, peer2peer, vpn, etc...).

Les premier blocages que l'on rencontre habituellement sont sur l'accès à une IP voir à un port donné :-(.

Dans ce cas, on peut passer par des proxy gratuit mais souvent on fini par utiliser un VPN.

Comme vous avez pu le voir dans mes articles précédent, j'utilise maintenant NordVPN, 

Onze Nordvpn ervaringen is zeer goed te noemen een uitstekende VPN

mais je confirme que finalement j'ai du l'utiliser aussi pour avoir accès à certains sites finalement bloqué par les opérateurs.

Mais je me suis rendu compte que cela me permet d’accéder mais pas forcement d'utiliser, parce que l'opérateur peut aussi bloquer de manière "protocolaire" sans connaitre l'IP que l'on veut accéder :-(

Par exemple, il peut considérer que le streaming de video est proscris et je me suis vu interdit de voir certaines vidéos qui était finalement légale.... :-(

Par exemple, à travers le VPN, je pouvais "pinger" un site mais dès que je lançais la vidéo, elle était bloqué :-( WTF ?!

Donc j'ai découvert ce qui se tramait... ;-)

Finalement, le VPN n'est pas suffisant parce que les opérateurs peuvent aussi utiliser le DPI (Deep packet inspection) quand on utilise un VPN comme NordVPN pour identifier nos usages... pas vraiment neutre cela !

Deep Packet Inspection- A Data Insight | ALTEN Calsoft Labs' Blog

En fait, c'est généralement des outils pour les opérateurs qui recherchent des signatures d'applications et ainsi identifié les usages d'internet pour limiter la bande passante mais aussi bloqué certains sites blacklistés. 

Pour cela, un VPN configuré dans son plus simple appareil n'est pas suffisant.

Si on configure OpenVPN (en UPD ou TCP) ou même avec la technologie wireGuard, cela ne change rien, l'opérateur pourra bloquer même si le canal est crypté.

Donc finalement, les fournisseurs de VPN ont trouvé la parage, il faut offusqué le canal VPN.

On appel cela "Ofuscated VPN".

Donc dans NordVPN, il y a une option mais cela ne marche qu'avec OpenVPN et de préférence en UDP. Donc on va devoir oublier la vélocité de NordLynx pour l'instant :-(

Donc par rapport à mon installation actuel utilisant "NordLynx" la solution Wireguard  pour NordVPN, :

pi@VPNGATEWAY:~ $ nordvpn status
Status: Connected
Current server: fr128.nordvpn.com
Country: France
City: Paris
Your new IP: 4X.1XX.1XX.XX
Current technology: NordLynx
Transfer: 36.37 MiB received, 2.89 MiB sent
Uptime: 2 hours 24 minutes 14 seconds
pi@VPNGATEWAY:~ $

Donc j'ai du revenir en OpenVPN et en UDP avec les commandes suivantes sur mon raspbian :

pi@VPNGATEWAY:~ $ nordvpn set technology openvpn
Technology is successfully set to 'OpenVPN'.
You are connected to NordVPN. Please reconnect to enable the setting.
pi@VPNGATEWAY:~ $ nordvpn set protocol udp
Protocol is successfully set to 'UDP'.
You are connected to NordVPN. Please reconnect to enable the setting.
pi@VPNGATEWAY:~ $

On configure en "obfuscated" 

pi@VPNGATEWAY:~ $ nordvpn set obfuscate enable
Obfuscation is successfully set to 'enabled'.
You are connected to NordVPN. Please reconnect to enable the setting.
pi@VPNGATEWAY:~ $

Et pour finir on relance le VPN pour prendre en compte la nouvelle configuration:

pi@VPNGATEWAY:~ $ nordvpn d
You are disconnected from NordVPN.
How would you rate your connection quality on a scale from 1 (poor) to 5 (excellent)? Type 'nordvpn rate [1-5]'.
pi@VPNGATEWAY:~ $ nordvpn c
Connecting to France #500 (fr500.nordvpn.com)
You are connected to France #500 (fr500.nordvpn.com)!
pi@VPNGATEWAY:~ $

*: pour des raisons de sécurité, c'est possible que l'on vous redemande votre login/password de temps en temps sur la commande "nordvpn c" ou "nordvpn connect".

Maintenant, on peut vérifier le statut et la configuration actuelle:

pi@VPNGATEWAY:~ $ nordvpn status
Status: Connected
Current server: fr500.nordvpn.com
Country: France
City: Paris
Your new IP: 212.83.148.182
Current technology: OpenVPN
Current protocol: UDP
Transfer: 13.28 KiB received, 7.92 KiB sent
Uptime: 3 minutes 56 seconds
pi@VPNGATEWAY:~ $ nordvpn settings
Technology: OpenVPN
Protocol: UDP
Kill Switch: disabled
CyberSec: disabled
Obfuscate: enabled
Notify: disabled
Auto-connect: disabled
DNS: disabled
Whitelisted ports:
       22 (UDP|TCP)
pi@VPNGATEWAY:~ $

Attention, on voit qu'il faut aussi réactiver l'auto connect si on le souhaite pour le prochain reboot (je conseil de mettre "on fr" pour des raisons de performance en générale à partir de la france):

pi@VPNGATEWAY:~ $ nordvpn set autoconnect on fr
Auto-connect is set to 'enabled' successfully.
pi@VPNGATEWAY:~ $

Pour se rassuer, on peut aussi faire un "speedtest":

pi@VPNGATEWAY:~ $ speedtest

   Speedtest by Ookla

     Server: SFR - Paris (id = 12746)
        ISP: Dedibox SAS
    Latency:    13.88 ms   (0.65 ms jitter)
   Download:     9.39 Mbps (data used: 6.6 MB)
     Upload:     1.32 Mbps (data used: 2.1 MB)
Packet Loss:     0.0%
 Result URL: https://www.speedtest.net/result/c/4ef95054-9ef0-4b12-acf8-836dfe364ae2
pi@VPNGATEWAY:~ $

Et voilà, maintenant, on ne devrait plus avoir de blocages... Enjoy !!!

P.S: Si vous voulez plus d'info sur l'installation de ma VPN gateway, merci de regarder mes articles précédents sur les usages du VPN et de NordVPN en particulier parce qu'il faut bien en choisir un ;-)  : http://bozothegeek.blogspot.com/search?q=nordvpn

ANNEXE (si vous étiez en NordLynx précédemment) :

Attention, il faudra dans le cadre de la gateway, reconfigurer le NAT et le firewall utilisant la connection "tun0" et pas "NordLynx":

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.150  netmask 255.255.255.0  broadcast 192.168.0.255
        ether b8:27:eb:f1:e7:f9  txqueuelen 1000  (Ethernet)
        RX packets 17780  bytes 2084254 (1.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2675  bytes 1163905 (1.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1420
        inet 10.5.0.2  netmask 255.255.0.0  destination 10.5.0.2
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 48 (48.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Donc on re-active le NAT maintenant pour cet interface:

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Et on redirige les traffics entrant/sortant dans cet interface de ce VPN::

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Pour finir on lance la commande pour sauvegarder la configuration et rendre cela permanent après reboot :
(si cela ne marche pas, vous n'avez pas fait le tuto précédent surement et installé ce qu'il faut ou vous n'êtes pas sur debian ou raspbian ;-)

sudo netfilter-persistent save

P.S: pendant mes manipulations j'ai fait des erreurs, si besoin il faudra faire un cleaning de l'iptable avec ces commandes avant de la refaire:

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT




samedi 22 août 2020

Raspberry Pi 4: Déballage du NESPI 4 CASE de RETROFLAG

Pour info, j'ai commencé une playlist sur youtube sur le Raspberry Pi 4. J'ai commencé avec le déballage d'un boitier sympa, le NESPI 4 CASE de RETROFLAG youtu.be/lurdvuY4MX4

Enjoy ! ;-)

jeudi 13 août 2020

Retrogaming: comment virtualiser sa Recalbox 6.1.1 (voir 7 bientôt)... ?

Bon, mon besoin initial était un peu particulier voir bizarre... je voulais juste pouvoir consulter sur mon PC ma collection scrappé de roms utilisant les gamelist.xml/images/videos... que j'utilise normalement pour recalbox... et finalement, je n'ai pas trouvé de front-end ou de manager joli pour faire cela sur Windows...



Le meilleur (pour moi ;-) est emulation station lui même finalement (https://emulationstation.org/) et qui est dans Recalbox bien configuré avec mes roms actuelles... donc j'ai conclu qu'il me faudrait recalbox sur mon PC (et vu que RecalBox est un OS, je dois l'avoir comme virtualisé sur mon PC sous Windows 10... Au passage j'espère quand même pouvoir lancer certains emulateurs si possible même si je sais que c'est limité pour avoir de bonnes performances dans ces conditions.

Je me suis donc inspiré de ce tuto (http://siempredesdeelcurro.blogspot.com/2017/12/howto-install-recalbox-in-virtualbox.html) que j'ai revalidé et je vous ai rajouté des détails (et en français.... cocorico ! ;-)

On va d'abord avoir besoin de 3 softs...

1) Télécharger virtualbox pour virtualiser sur Windows 10 64 bits
Sur https://www.virtualbox.org/wiki/Downloads, j'ai téléchargé la version windows en version 6.1.8

2) Télécharger la distrib linux pour créér une image compatible VirtualBox
A partir de cette page https://linuxmint.com/download.php, j'ai téléchargé la version "xfce" comme conseillé par le précédent tuto, dans mon cas, j'ai téléchargé l'ISO en version 19.3-xfce-64bits (1,86 Go)





3 - Optionnel ) Télécharger Recalbox PC 64 bits - recalbox-x86_64.img.xz (en version 6.1.1 actuellement)
Sur https://archive.recalbox.com/, j'ai donc pris la version PC 64 bits (en fait, c'est juste pour l'avoir si vous avez des problèmes réseaux avec VirtualBox... sinon, on va la télécharger depuis la VM directement dans ce tuto)
Dernière minute: Je vais essayer aussi avec la V7 dans la version que j'ai compilé par mes soins dernièrement ;-)







On installe donc déjà VirtualBox...

Et ensuite, on va installer VirtualBox sur PC (attention il y aura une coupure réseau pour installer les drivers de la carte réseau)









Aprés reboot de votre PC (je le conseil fortement), on peut enfin utiliser VirtualBox et la configurer pour lancer la distrib Linux qui va nous aider à faire la VM recalbox.

Configurer la VM...


1) Donc on clic sur "Nouvelle" et on passe en "mode expert" pour pouvoir customiser les paramètres à notre guise.

a) On choisi:
type : Linux
Version: Other Linux  (64-bit)

b) Puis on clic sur le bouton "Créer"

Optionel) on peut choisir la mémoire et le chemin mais cela pourra se faire plus tard aussi.


2) On choisi ensuite le chemin de la VM exactement puis la taille alloué dynamiquement (au moins 8 Go voir 16 go avec la V7, on prend de la marge mais on est en allocation dynamique donc pas de soucis ;-). Certains préfèrent une taille fixe pour les performances, dans ce cas il faut mettre "16 Gio". On garde le format VDI pour l'image. Pour finir, on clique sur le bouton "Créer".


3) Et voilà on a un disque virtuel prêt pour accueillir notre recalbox :


4) On va modifier les paramètres de ce disque pour booter sur l'iso du linux Mint :


On va cliquer sur l'icone suivante  dans la partie "Stockage"...

Puis choisir "choose a disk file" pour aller sélectionner l'iso de Linux Mint :


Puis cliqué sur la bouton "OK"

5) Maintenant on peut "Démarrer" et on nous propose le disque de démarrage:




6) On arrive sur le boot de l'iso de Linux Mint (cela va continuer tout seul ou sinon il faut sélectionner "Start Linux Mint"):



7) On arrive au login ...


...mais qui va se faire automatiquement ;-)



8) Maintenant, on peut aller sur internet pour télécharger l'image recalbox en question:

On lance le navigateur firefox



On prend la version PC x86_64 sur nos PCs récents :





8 bis) variante si on veux utiliser un image déjà sur notre PC windows 10:
Il va falloir faire un sharing windows (samba). 
(je ne propose pas de dossier partagé par virtualbox parce que j'ai rencontré des problèmes dans le cas d'un live cd comme ce linux mint)

Dans le linux, il faudra lancer un terminal et la commande suivante par exemple pour aller sur le partage réseau:

mint@mint:~$ thunar "smb://192.168.0.4/"

Et ensuite cela va lancer l'explorateur de fichier en demandant le login/password :




Ainsi, on peut récupérer une image recalbox:


9) Maintenant on peut double cliquer sur l'image que l'on veut restaurer finalement dans le disque virtuel :



Puis on sélectionne le disque virtuel comme destination de la restauration:


Puis on clique sur le bouton "Start Restoring...":


Puis on "Restore":



Et quand c'est fait, l'explorateur de fichier s'ouvre sur le disque restauré:


On peut donc redémarrer:



10) Maintenant au prochain boot il faudra booter sur le drive local via le menu du live cd ou enlever le live cd et booter normalement sur le disque virtuel de la vm en question:





11) Et voilà, c'est lancé...


Il faudra bien connecter l'interface de la manette usb (dans mon cas une manette de xbox 360) via les menus de virtual box:


Pour lancer par la suite un jeu :


Et voilà, j'ai testé sur un pc portable avec un core i7 9ème génération 16 Go de ram et 6 coeurs alloué sur 12, je confirme cela le fait pas mal pour de la virtualisation ;-).

je vous laisse tester de votre côté pour vous faire un avis aussi...

Enjoy !