Jump to content

[TUTO] Openvpn sur Samsung Galaxy S GT I9000


Recommended Posts

Bonjour et bienvenue dans ce tutoriel,

nous allons installer et configurer openvpn sur un Galaxy S.

Votre mobile doit être en 2.1 (testé sous JM2) et rooté. La connexion a été testée sur Virgin Mobile, en mode udp/443.

Vous devez également avoir accès à un serveur openvpn.

Disclaimer : Attention, ce tutorial propose de modifier des fichiers sur votre téléphone. Vous devez donc savoir ce que vous faites et en assumer les conséquences !!!

1/Pourquoi un vpn, pourquoi openvpn ?

Un vpn vous permet d'être relié à Internet via une machine tierce, cela apporte:

- confidentialité vis à vis du site visité: celui ci voit l'ip de la machine tierce, comme un proxy. (attention, cela ne signifie pas un anonymat total, l'hébergeur de la machine tierce en sait peut être assez sur vous en cas de besoin).

- sécurité et confidentialité vis à vis de l'opérateur utilisé: celui ci ne voit qu'un flux crypté, et ne connait pas le contenu échangé.

pptp est un vpn déjà intégré sous android, un standard dont la configuration est simple, mais il est en général bloqué par l'opérateur (facilement car les ports et protocole sont fixes).

openvpn est une application qui chiffre la communication entre le client et le serveur. Ce n'est pas un protocole, rien n'est fixe (on peut faire de l'udp ou tcp, sur n'importe quel port) ce qui rend difficile son blocage (à moins de réduire internet à un proxy opérateur obligatoire, merci la sécurité).

2/Installation du client

Pour l'installation du client, nous avons besoin de 3 choses:

  • le fichier module kernel tun.ko, spécifique au noyau utilisé. Il n'existe pas encore de module pour les firmwares JP à ma connaissance, à défaut d'avoir les sources 2.6.32 du kernel samsung.
  • le fichier binaire openvpn.
  • les fichiers librairies libssl, libcrypto et liblzo utilisés par le binaire openvpn. Ils vont écraser les fichiers du firmware.

liens:

Créer un dossier openvpn dans /sdcard/ (qui correspond donc à la carte interne).

Copiez y les fichiers *.so, openvpn et tun.ko

passer en mode debug et lancer adb shell

su

Si vous ne l'avez pas encore fait, installer les raccourcis busybox

busybox install -s /system/xbin/

on backup les fichiers écrasés:

mkdir /sdcard/openvpn/backup
busybox cp /system/lib/libcrypto.so /sdcard/openvpn/backup/
busybox cp /system/lib/libssl.so /sdcard/openvpn/backup/

on écrase, on met les droits et on copie le binaire

busybox cp /sdcard/openvpn/*.so /system/lib/
busybox chmod 644 /system/lib/libcrypto.so
busybox chmod 644 /system/lib/libssl.so
busybox chmod 644 /system/lib/liblzo.so
busybox cp /sdcard/openvpn/openvpn /system/bin/
busybox chmod a+x /system/bin/openvpn

Il faut ensuite redémarrer le téléphone.

3/Le serveur

Il vous faut donc un serveur, vous avez plusieurs choix:

- vous prenez un fournisseur de service.

- vous installer la partie serveur sur un serveur chez vous, ou chez un hébergeur.

Pour mes tests, j'ai utiliser une solution intermédiaire. Si vous avez un compte ovh et des crédits, vous pouvez participer gratuitement à la beta devcloud http://www.ovh.com/fr/cloud/devcloud.xml ce qui vous permet de mettre en service un serveur openvpn en quelques minutes.

(Rappel: Les services DevCloud actuellement en beta ne sont pas prévus pour des applications en production.)

Il suffit de lancer un serveur openvpn, notez l'adresse ip attribuée, d'aller dans configurer / ajouter un utilisateur. Vous télécharger ensuite les fichiers client avec la grosse flèche.

Et c'est tout, votre serveur est opérationnel en moins de 3 minutes.

Le contenu du zip (2 fichiers .crt, un fichier .key et un fichier .ovpn) est à extraire dans le dossier openvpn de la sdcard.

4/Configuration du client et connexion

Pour configurer le client et lancer la connexion, nous utiliserons android-openvpn-settings

http://code.google.com/p/android-openvpn-settings/

Une fois le logiciel installé, lancez le et vérifiez dans Menu/Advanced:

- Cocher Load tun kernel module

- Dans TUN module settings, mettez insmod et /sdcard/openvpn/tun.ko

- Dans Path to configuration, mettez /sdcard/openvpn (normalement ok par defaut)

- Dans Path to openvpn binary, mettez /system/bin/openvpn (normalement ok par defaut)

Revenez en arrière, la configuration client.ovpn doit apparaitre.

- maintenez le doigt sur la ligne client.ovpn, puis preferences :

- Cochez Use VPN DNS Server

- Dans VPN DNS Server, mettez 8.8.8.8, ce qui correspond au serveur dns global de google.

Revenez en arrière puis cochez les cases pour lancer la connexion.

openvpn7.png

Une fois connecté, faites un test de navigation, chercher myip sur google par exemple, puis le premier lien ip-address.com.

L'adresse ip indiquée devrait être celle de votre serveur openvpn.

openvpn8.png

Remarques:

  • le dossier /system est presque plein de base, il ne devrait rester plus que 600Ko dispo après avoir fait ces manips. Ne le remplissez pas à 100%, cela pourrait provoquer des bugs (j'ai du repasser le PDA, le phone ne bootait plus).
  • si votre serveur change d'ip (dans le cas par exemple d'un serveur cloud ovh relancé, ou serveur maison avec ip dynamique), éditez le fichier ovpn en conséquence. Vous pouvez d'ailleurs y mettre un host dyndns.
  • le port par défaut (udp/1194) peut être bloqué par l'opérateur, reconfigurez le serveur pour utiliser un port difficilement blocable (par ex tcp/443).

Az'

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Merci pour ce tuto... J'ai cependant un petit problème, peut-être pourrez-vous m'éclairer..

Ma config :

Samsung Galaxy S I9000, serveur VPN Ipcop Zerinna.

J'ai suivi a la lettre le tuto, je n'ai pas eu d'erreur .

Quand je demarre openvpn sur le samsung, cela ne génère aucun traffique... :(

Ma config Openvpn:

#OpenVPN Server conf

tls-client

client

dev tun

proto udp

tun-mtu 1400

remote ******.*****.org 1194

ca cacert.pem

cert ******.pem

key *******.pem

cipher AES-128-CBC

verb 5

ns-cert-type server

Cette config fonctionne parfaitement avec mon laptop...J'ai bien entendu copier les fichiers .pem dans le répertoire openvpn du samsung,

J'ai essayer en 3g et en wifi même combat...alors si quelqu'un a une piste :lol:

Link to comment
Share on other sites

Bon j'avance petit a petit...

Je suis repassé depuis l'andoid market par Openvpn Installer , maintenant openvpn se lance, lit ma config, mais ne m'attribue pas une adresse de mon réseau... en fesant un netcfg je constate que l'interface tun rest down...

Si j'assaye de la lancer en commande line, j'ai un message permissiond denied même en su... j'ai fais un chmod dessus a 777 mais idem... galère....

Link to comment
Share on other sites

il faut taper 'lsmod' dans adb shell pour vérifier que tun apparait dans la liste.

# insmod /sdcard/openvpn/tun.ko
# lsmod
tun 11088 0 - Live 0xbf1ce000
vibrator 6744 2 - Live 0xbf19b000
Si4709_driver 17524 0 - Live 0xbf191000
s3c_bc 2880 0 - Live 0xbf18b000
s3c_lcd 5060 0 - Live 0xbf184000
pvrsrvkm 205996 58 s3c_bc,s3c_lcd, Live 0xbf14c000
multipdp 31216 1 - Live 0xbf13f000
dpram 193304 10 multipdp, Live 0xbf10a000
param 10132 0 - Live 0xbf105000 (P)
j4fs 65556 1 - Live 0xbf0ef000 (P)
rfs_fat 235456 5 - Live 0xbf0b0000 (P)
rfs_glue 74328 1 rfs_fat, Live 0xbf098000 (P)
fsr_stl 248012 6 j4fs, Live 0xbf056000 (P)
fsr 328160 3 dpram,fsr_stl, Live 0xbf000000 (P)

à ma connaissance, il n'y a pas le module dans le noyau officiel de n'importe quel firmware 2.1.

S'il s'agit d'un firmware upgradé (modaco, samdroid, ...), peut être est ce le cas.

Link to comment
Share on other sites

sinon pour comparer les fichiers ovpn:

# cat /sdcard/openvpn/client.ovpn 
remote 178.32.124.243 443
cert azdemo.crt
key azdemo.key
proto udp
client
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
ns-cert-type server
comp-lzo
verb 3

peut être que certaines options ne sont pas dispo sur la version android/sur la librairie ssl

Link to comment
Share on other sites

Du coté Lsmod cela a l'air bon...:

$ lsmod

lsmod

tun 11088 0 - Live 0xbf1d1000

dhd 181484 0 - Live 0xbf19f000

vibrator 6744 2 - Live 0xbf19b000

Si4709_driver 17524 0 - Live 0xbf191000

s3c_bc 2880 0 - Live 0xbf18b000

s3c_lcd 5060 0 - Live 0xbf184000

pvrsrvkm 205996 44 s3c_bc,s3c_lcd, Live 0xbf14c000

multipdp 31216 0 - Live 0xbf13f000

dpram 193304 10 multipdp, Live 0xbf10a000

param 10132 0 - Live 0xbf105000 (P)

j4fs 65560 1 - Live 0xbf0ef000 (P)

rfs_fat 235456 5 - Live 0xbf0b0000 (P)

rfs_glue 74328 1 rfs_fat, Live 0xbf098000 (P)

fsr_stl 248012 6 j4fs, Live 0xbf056000 (P)

fsr 328160 3 dpram,fsr_stl, Live 0xbf000000 (P)

$

Mais j'y suis presque, la partie connexion, certificat on l'air ok le tunnel s'ouvre sur mon Ipcop... mais je pense que la commande ifconfig-push envoyée par mon ipcope n'est pas reconnue par le samsung...

Link to comment
Share on other sites

Bon j'ai repris tout depuis le début en suivant à la lettre le tuto mais c'est toujours la même chose....voir même pire...

une fois le tuto fais quand je lance l'openvpn rien ne se passe et dans le logcat j'ai :

D/SuRequest( 2928): Sending result: ALLOW

D/su ( 2947): 10098 de.schaeuffelhut.android.openvpn executing 0 /system/bin/sh

D/OpenVPN-DaemonMonitor[/sdcard/openvpn/Samsung-TO-IPCop.ovpn]-daemon-stderr( 2915): link_image[1717]: 2950 missing essential tablesCANNOT LINK EXECUTABLE

W/InputManagerService( 2272): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@47e65310

D/OpenVPN-Settings( 2915): onResume()

D/OpenVPNDaemonEnabler( 2915): Received OpenVPN daemon state changed from Unknown to Disabled

I/OpenVPN-DaemonMonitor[/sdcard/openvpn/Samsung-TO-IPCop.ovpn]-daemon-stdout( 2915): terminated

D/OpenVPN-DaemonMonitor[/sdcard/openvpn/Samsung-TO-IPCop.ovpn]-daemon-stderr( 2915): └Ç

alors si quelqu'un peut m'aider ce serai avec grand plaisir....b

Link to comment
Share on other sites

J'ai un peut l'impression de faire un monologue sur ce forum ...

Bref après moulte recherche sur différent forum, j'ai enfin mon open VPN qui fonctionne en tout cas en Wifi, j'arrive me connecter sur mon réseau accèder a mes machines nickel.

Par contre pas en 3g je peux faire un ping de la machine , mias impossible de me connecter en http dessus, alors que cela fonctionne quand j'ai l'openvpn en wifi.....

Link to comment
Share on other sites

  • 2 months later...

Bonjour à tous,

J ai le meme probleme que toi Bibu connexion en cours auth semble ok puis deconnexion, j'ai bien des logs de connexion sur mon IPCOP mais je n'arrive pas a finaliser la connexion.

j'ai également l'impression que le probleme vient du PUSH route qui est envoyé par le serveur Ipcop et qui n'est pas reconnu par le I9000.

Peux tu expliqué comment tu t es sortie de ce probleme.

Merci d'avance de vos réponses

Samsung GT-I9000

2.1-Update1

ECLAIR.I9000BUJG1

Link to comment
Share on other sites

Salut v1C0,

Content de lire une personne qui a la même config que moi..., d'autant plus qu'ayant eu la bonne idée de faire une mis à jour de mon galaxy hier..., je me retrouve au point de départ avec open vpn...si mes souvenirs son bon, c'est un problème de link sur certaine commande (route , ifconfig..) faut que je m'y replonge.... j'avais trouvé pas mal d'info sur le forum

http://forum.xda-developers.com/showthread.php?t=793712

je vais refaire l'installation ....

Link to comment
Share on other sites

  • 3 weeks later...

Voilà j'ai refais l'installation...

Ma config:

Micrologiciel: 2.2

Version kernel : 2.6.32.9

I9000XXJPM

FROYO.XXJPM

Busybox 1.16.0 (de Titanium Backup)

Insaller le binaire (openvpn installer du market) dans /system/bin

le fichier de config et les certificats dans /sdcard/openvpn

le fichier tun.ko dans /sdcard

Faire un link de /system/bin dans /system/xbin/bb

(ln -s /system/bin /system/xbin/bb)

Config client:

#OpenVPN Server conf

tls-client

client

dev tun

proto tcp-client

tun-mtu 1400

remote***.*********.org 443

pkcs12 /sdcard/openvpn/Samsung.p12

cipher AES-128-CBC

ns-cert-type server

status /sdcard/openvpn/openvpn.txt

log-append /sdcard/openvpn/openvpn.txt

verb 4

Config Serveur IPcop

local ***.*******.org

dev tun

tun-mtu 1400

proto tcp

port 443

tls-server

ca /var/ipcop/ovpn/ca/cacert.pem

cert /var/ipcop/ovpn/certs/servercert.pem

key /var/ipcop/ovpn/certs/serverkey.pem

dh /var/ipcop/ovpn/ca/dh1024.pem

server 10.10.10.0 255.255.255.0

push "route 192.168.168.0 255.255.255.0"

push "route 10.8.0.0 255.255.255.0"

keepalive 10 60

status-version 1

status /var/log/ovpnserver.log 30

cipher AES-128-CBC

max-clients 100

tls-verify /var/ipcop/ovpn/verify

crl-verify /var/ipcop/ovpn/crls/cacrl.pem

user nobody

group nobody

persist-key

persist-tun

verb 3

Cette config pour moi fonctionne parfaitement en Wifi, je peut accèder a tout mon réseau (green) de l' ipcop. Par contre en 3G (swisscom) je n'arrive pas accèder mon réseau en http...

J'espère que cela va t'aider bonne chance...

Edited by bibu
Link to comment
Share on other sites

  • 2 weeks later...

Bonjours,

J'ai un Galaxie S

avec

Kernel 2.6.29 root@SE-S603 #2

que j'ai rooté

Un ANdroid2.1-update1

Version de la bande de base : I9000XXJM2

Juste petite question hors sujet: Je ne peux toujours pas upgrader en 2.2 avec Kies c'est normal ??(suis chez bouygues)

Je suis bloqué assez tot dans la manip.

J'ai récupèré les fichiers sur mon PC mais quand j'essaie les copies il me dit qu'il n'y a pas assez de place

et en effet un df m'indique qu'il ne reste plus baucoup de place pour copier ces fichiers:

# df
df
/dev: 166704K total, 0K used, 166704K available (block size 4096)
/mnt/.lfs: Function not implemented
/sqlite_stmt_journals: 4096K total, 0K used, 4096K available (block size 4096)
/system: 282432K total, 282084K used, 348K available (block size 4096)
/data: 1963952K total, 199072K used, 1764880K available (block size 16384)
/dbdata: 130280K total, 8036K used, 122244K available (block size 4096)
/cache: 30792K total, 1376K used, 29416K available (block size 4096)
/efs: 6064K total, 4103K used, 1961K available (block size 1024)
/sdcard: 6060544K total, 197792K used, 5862752K available (block size 32768)

est ce du à la version android2.1?

les partions seraient différentes en 2.2?

Est ce que je peux installer ces fichier dasn une autre partition?

Merci de votre aide.

Edited by chtiboss
Link to comment
Share on other sites

  • 6 months later...

Bonjour à tous,

Je viens d'essayer d'installer openvpn et pour l'instant il ce connecte bien, mais mon ip ne change pas en navigation ce qui me fait penser qu'enfin de compte je ne l'utilise pas.

Doit je faire une configue en plus ?

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...