יום שני, אוגוסט 25, 2014

Can't get IP from VPN server - [workaround]

משום מה כאשר אני משתמש ב openvpn-settings הוא נכשל בהקצאת כתובת (dhcp) , זהוא מעקף לבעיה.

המעקף הוא הוא תסריט שמייצר תת מעטפת שרצה מאחורי הקלעים שיבצע netcfg $dev dhcp

דרישות קדם
  • משתמש על (root)
  • openvpn מופעל במצב tap
  • גישת טרמינל או adb
ההמלצה שלי זה להתקין הכל דרך f-droid ולא דרך השוק.

התסריט צריך לשבת בתיקיית המידע של openvpn ולהיות משויך (chown) לאותו המשתמש כמו המשתמש של openvpn

מציאת המשתמש מתבצעת ע"י הפעלת ls -la ולראות למי שייכים הקבצים בתיקיה של הישום "openvpn" (אפשר גם אחרת אבל זה הכי פשוט):

127|root@android:/data # ls -l /data/data/de.schaeuffelhut.android.openvpn     
drwxrwx--x app_66   app_66            2014-04-10 01:03 cache
drwxr-xr-x system   system            2014-04-10 01:03 lib
drwxrwx--x app_66   app_66            2014-08-25 13:34 shared_prefs



1|root@android:/data/data/de.schaeuffelhut.android.openvpn # cat up.sh   

#!/system/bin/sh

dev=$1
/system/bin/netcfg $dev up 2>&1
(/system/bin/dhcpcd $dev 2>&1 ) &
יש לשים דגל ריצה:

root@android:/data/data/de.schaeuffelhut.android.openvpn/ # chmod 777 up.sh

יש לבצע שיוך
root@android:/data/data/de.schaeuffelhut.android.openvpn/ # chown app_66 up.sh


יש לוודא שהכל בסדר

root@android:/data/data/de.schaeuffelhut.android.openvpn/ # ls -la up.sh  
-rwxrwxrwx app_66   root          178 2014-08-25 13:34 up.sh

יש להוסיף הוראה להפעלת התסריט בקובץ הגדרות הלקוח

root@android:/data # echo up \"/system/bin/sh          \
   /data/data/de.schaeuffelhut.android.openvpn/up.sh\" \
       >> /sdcard/openvpn/client.ovpn



 נבדק על android 4.0.4

קובץ ההגדרות נראה כך (X.X.X.X זה כתובת השרת) - לאחר השינוי :

1|root@android:/data # cat /sdcard/openvpn/client.ovpn                         
client
dev   tap
proto tcp
remote X.X.X.X 21194
resolv-retry infinite
nobind
persist-key
persist-tun
ca   ca.crt
cert client.crt
key  client.key
ns-cert-type server
comp-lzo no
verb 5
ping-restart 120
up "/system/bin/sh /data/data/ de.schaeuffelhut.android.openvpn/up.sh"

אין תגובות:

הוסף רשומת תגובה