Board logo

標題: [VPN] 讓iOS/Android 用戶透過OpenVPN翻網 [打印本頁]

作者: gfx86674    時間: 2015-1-8 12:48     標題: 讓iOS/Android 用戶透過OpenVPN翻網

本帖最後由 gfx86674 於 2015-1-9 11:26 編輯

相信各位都知道RouterOS很早就支援OpenVPN(OVPN),
但設定iOS/Android可能不是清楚...
所以小弟整理一篇大家都看得懂的,讓各位不用懂腦筋去猜想該怎麼動手.

使用OVPN最基礎的是要建立憑證 ,
不過小弟不再提憑證是如何製做,而是直接開放給有緣人下載使用.
ca.crt  /ca.key  /client.crt /client.key

先把下載的ca.crt 與ca.key 拉放至winbox的files檔案夾 ,
再至/system certificates 用Import進行匯入.
先匯入ca.crt ,再匯入ca.key ,

匯入完成Certificate會標示KT
要使用OVPN  Server ,當然得先開啟它

iOS/Android要指定使用OVPN的ip-mode ,
而Port可以自訂,小弟將原本預設Port:1194 變成現在的1195

修改/PPP Profile的default-encryption設定檔 ,將DNS-Server變更成您的Gateway
確保路由是經您的RouterOS主機查尋遞出的.


建立用戶的OVPN帳號


因ip-mode遮罩被固定為255.255.255.252不能變更 ,設DHCP-Pool意義不大.
所以直接在帳號指定Local/Remote Address .

也因遮罩限定255.255.255.252 ,所以不同帳號請用不同網段區分.
如範例的10.0.1.0/30 ,10.0.2.0/30 ,10.0.3.0/30 如此類推 ,
更禁用戶同帳號重覆登入Server.

若您是使用小弟所提供的憑證,接下只要打開電腦的記事本,
將下面的文字存為client.ovpn即可.
  1. client
  2. dev tun
  3. remote 1.23.123.123 1195
  4. proto tcp
  5. auth-user-pass pw.txt
  6. redirect-gateway
  7. mute-replay-warnings

  8. ;ca.crt
  9. ;client.crt
  10. ;client.key

  11. <ca>
  12. -----BEGIN CERTIFICATE-----
  13. MIIDBDCCAm2gAwIBAgIJAM8oNFlxL3rSMA0GCSqGSIb3DQEBBAUAMGAxCzAJBgNV
  14. BAYTAlRXMQswCQYDVQQIEwJUVzEPMA0GA1UEBxMGVGFpcGVpMQ0wCwYDVQQKEwRo
  15. b21lMSQwIgYJKoZIhvcNAQkBFhV4eHh4eHh4eEB5YWhvby5jb20udHcwHhcNMTIx
  16. MjExMTYyNDIzWhcNMjIxMjA5MTYyNDIzWjBgMQswCQYDVQQGEwJUVzELMAkGA1UE
  17. CBMCVFcxDzANBgNVBAcTBlRhaXBlaTENMAsGA1UEChMEaG9tZTEkMCIGCSqGSIb3
  18. DQEJARYVeHh4eHh4eHhAeWFob28uY29tLnR3MIGfMA0GCSqGSIb3DQEBAQUAA4GN
  19. ADCBiQKBgQDTIffwLYBebqwQBSGb8K9wIF4b5HRVoTqfS8ZTc07TB07DZkGcTOX4
  20. HhEnW093KggwVfzRLXk+xzw2uK6iQjJo+9DJqsVviw8sQivs+ZtxAgiZSEeMfsY+
  21. 03YRXgYm6N684qt25ge/EyhuO6peWNRIcS3nW1FXPJ736e1+l/yVQQIDAQABo4HF
  22. MIHCMB0GA1UdDgQWBBQAirU2p0HRWb6DBzGl+UpFzghiAzCBkgYDVR0jBIGKMIGH
  23. gBQAirU2p0HRWb6DBzGl+UpFzghiA6FkpGIwYDELMAkGA1UEBhMCVFcxCzAJBgNV
  24. BAgTAlRXMQ8wDQYDVQQHEwZUYWlwZWkxDTALBgNVBAoTBGhvbWUxJDAiBgkqhkiG
  25. 9w0BCQEWFXh4eHh4eHh4QHlhaG9vLmNvbS50d4IJAM8oNFlxL3rSMAwGA1UdEwQF
  26. MAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAP/rusq6/L1Ju0F8yJPUtvqq7i2WevRUW
  27. b0s0uy076XX/njvY16QnGeqZSw7mi59TSa2kEkO/nDPcCE88y6Q2yCl+CHx3hZLe
  28. 2zBuxZ4kCaVlAVks8XI2PbqYxASAH8INzDrqfY0ISsGiIVACGnIS9O3DmUtV93De
  29. NLzt4kDBET0=
  30. -----END CERTIFICATE-----
  31. </ca>

  32. <cert>
  33. -----BEGIN CERTIFICATE-----
  34. MIIDJzCCApCgAwIBAgIBAjANBgkqhkiG9w0BAQQFADBgMQswCQYDVQQGEwJUVzEL
  35. MAkGA1UECBMCVFcxDzANBgNVBAcTBlRhaXBlaTENMAsGA1UEChMEaG9tZTEkMCIG
  36. CSqGSIb3DQEJARYVeHh4eHh4eHhAeWFob28uY29tLnR3MB4XDTEyMTIxMjAxMzA1
  37. OFoXDTIyMTIxMDAxMzA1OFowYDELMAkGA1UEBhMCVFcxCzAJBgNVBAgTAlRXMQ0w
  38. CwYDVQQKEwRob21lMQ8wDQYDVQQDEwZjbGllbnQxJDAiBgkqhkiG9w0BCQEWFXh4
  39. eHh4eHh4QHlhaG9vLmNvbS50dzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
  40. wUOdzSIu/vGFAoYo8nTzjVzwSftSwxRF9qlMsfFZfE/aVWhUpxFdWFio7qV+oo6j
  41. lSvYsEFGC49rmjs0gpc8eoZo65doMzDwwkN4lxu30Jjqah9HtY5EcZX9R1Gl6t3Q
  42. lhD9nUDEjSDH8SWY81uG60/yvV2V/7WW0eWI2iw4/D0CAwEAAaOB8DCB7TAJBgNV
  43. HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
  44. Y2F0ZTAdBgNVHQ4EFgQUk6pp88OQjLIFQ+v9UAm6UHC3od4wgZIGA1UdIwSBijCB
  45. h4AUAIq1NqdB0Vm+gwcxpflKRc4IYgOhZKRiMGAxCzAJBgNVBAYTAlRXMQswCQYD
  46. VQQIEwJUVzEPMA0GA1UEBxMGVGFpcGVpMQ0wCwYDVQQKEwRob21lMSQwIgYJKoZI
  47. hvcNAQkBFhV4eHh4eHh4eEB5YWhvby5jb20udHeCCQDPKDRZcS960jANBgkqhkiG
  48. 9w0BAQQFAAOBgQBE2ATIoN2IBunjlIeSz+eXDd4D8du3Si807i/9knICweBY4Wsv
  49. P/9lpozqcklyRdEFG9UjAfYoz54ULEspiPS7oHKd4bIZsabMLBSAxKq4MvEiIto4
  50. EjKCMSt8WTaSAvES63Hva1kqHhWK50eRAg5llS1awdegu2P5nNxxhB9Knw==
  51. -----END CERTIFICATE-----
  52. </cert>

  53. <key>
  54. -----BEGIN RSA PRIVATE KEY-----
  55. MIICXAIBAAKBgQDBQ53NIi7+8YUChijydPONXPBJ+1LDFEX2qUyx8Vl8T9pVaFSn
  56. EV1YWKjupX6ijqOVK9iwQUYLj2uaOzSClzx6hmjrl2gzMPDCQ3iXG7fQmOpqH0e1
  57. jkRxlf1HUaXq3dCWEP2dQMSNIMfxJZjzW4brT/K9XZX/tZbR5YjaLDj8PQIDAQAB
  58. AoGAYhEUdq3c2QLm8mPvTTBpEZdSWsgLs++KnOJFh5mnRbwjVulM40WdbyH1/rq9
  59. anEksqIAH1fP2jfZavaV65ogVk1q8sSZ1JfY6m0SDlvlMryPmEHnuWbUIJsvmKRB
  60. nN/BwAkbbOB1s2uRHntgs+ktxVTATnre0iI+P5PVfmluKkECQQDx71mcrEvDSL6t
  61. MYPgmm99OoaCC0JuqNMbh1Qw2hMSzreCJFDeghPOwfYDcj235egXjuLdWJCNdsLk
  62. oTx72P+tAkEAzH/perm9Rq1M7UUhw+nKIJqFRyf+VtR1Wk3j4xQmbRfvBns2YjGR
  63. 4BB7FlVNyP94z/H1X6TZrrNHPMmjQVlA0QJAU2V9T2t5Bk0KJWt/GSpDKjjFawh0
  64. ku6xLrkchWZ20rHdQghAtCLEry3fHtr/eWfP9Gb1vvUrhwgcMHGABvULVQJAD67X
  65. lwPbkioENkYQ+tdZGvr+saBNjxcoEM7cZTPMZp1pRVP5rbojd82LwwCzwHBnMXta
  66. 2ATqdM1m7zB/hqlzoQJBAOM89P0LVPQrcKlp/fN+lIJQQli3jOsUwLNFYbWlqTr8
  67. sa3O2zc8OFj/aPlcSgvmm64H3z5Aa4Pld6lz58ic8bU=
  68. -----END RSA PRIVATE KEY-----
  69. </key>
複製代碼
注意remote 1.23.123.123 1195 是您的地址與port ,要修正成您的.

另外還得存pw.txt ,是存放用戶帳號/密碼用的.
第一行為用戶帳號 ,第二行則為密碼.
  1. bfs
  2. 123456
複製代碼
iOS/Android裝置安裝OpenVPN Connect ,並將client.ovpn/pw.txt上傳並進行匯入

先關閉OpenVPN Connect的Force AES-CBC ciphersuites
若沒意外 ,iOS/Android接下來即順利與OVPN-Server連線.
  

作者: 角色    時間: 2015-1-8 13:35

非常精彩的文章!

我现在还用PPTP Server。用OpenVPN有一个好处就是可以改port!
作者: carw318    時間: 2015-1-12 22:34

謝謝 , 好有用的資料 !
作者: yiucsw    時間: 2015-6-11 11:27

要在IPAD 上VPN.
想问 OPENVPN 是不是能支持DDNS?  remote 1.23.123.123 1195 能改成DDNS的Address吗?
在gmail 上open client.ovpn, 要找PW.TXT。好像找不到Path。是不是一定要ITUNE才可以upload client.ovpn? 没有pw.txt, 是不是openvpn 能prompt userid/password?
auth-user-pass pw.txt
作者: yiucsw    時間: 2015-6-11 11:54

找到了,openvpn 能支持DDNS。
现在Connecting。。
是SetTunnelSocket returned 1
Server Poll timeout, trying next remote entry
不知道是什么Error?
作者: yiucsw    時間: 2015-6-11 13:54

利用了你的Certication。改了IP Pool, 现在在下一阶段。
不停的Push request to server.
error:  ECP recv EOF
EVENT: TRANPORT_ERROR transport error on 'xxxx' NETWORK_EOF_ERROR [ERR]

知道哪里有问题吗?
作者: yiucsw    時間: 2015-6-14 00:40

回復 1# gfx86674

我用了你的 Certification + RB OVPN Setting。 还有有网络的问题。连不上OVPN?
以下是IPAD 的Log,在RB没有什么Error。

2015-06-14 00:14:37 VERIFY OK: depth=0
cert. version     : 3
serial number     : 02
issuer name       : C=TW, ST=TW, L=Taipei, O=home, emailAddress=xxxxxxxx@yahoo.com.tw
subject name      : C=TW, ST=TW, O=home, CN=client, emailAddress=xxxxxxxx@yahoo.com.tw
issued  on        : 2012-12-12 01:30:58
expires on        : 2022-12-10 01:30:58
signed using      : RSA with MD5
RSA key size      : 1024 bits
basic constraints : CA=false

2015-06-14 00:14:38 TCP recv EOF
2015-06-14 00:14:38 Transport Error: Transport error on 'xxx.xxx.xxx: NETWORK_EOF_ERROR
2015-06-14 00:14:38 EVENT: TRANSPORT_ERROR Transport error on 'xxx.xxx.xxx: NETWORK_EOF_ERROR [ERR]
2015-06-14 00:14:38 Client terminated, restarting in 5...
2015-06-14 00:14:41 RECONNECT TEST: Internet:ReachableViaWiFi/-R -----l- WiFi:ReachableViaWiFi/-R ------d
作者: gfx86674    時間: 2015-6-14 11:40

本帖最後由 gfx86674 於 2015-6-14 11:45 編輯

回復 7# yiucsw
你是使用什麼版本的RouterOS ?

v6.28有bug ,所以無法連線.
隨後v6.29修正,就正常了;或者選擇降v6.27前的OS版本也可以.
作者: yiucsw    時間: 2015-6-17 15:00

是最新的版本
作者: gfx86674    時間: 2015-6-17 19:01

是最新的版本
yiucsw 發表於 2015-6-17 15:00

那您的可能要注意firewall filter的過濾;
或是因nat設置 ,vpn要求被映射到其它的Server主機.

據聞RouterOS_v6.29.1_OpenVPN_bug並未除盡 ,建議換回v6.27
作者: yiucsw    時間: 2015-6-25 09:43

在Mikrotiklog setting 加了OVPN info,连IPAD 时内有这样的Message:
ovtp disconnected<remote peer uses tun encapsulation while we -tap>
知道在那里改OVPN server 为TUN?
主要是APPLE IPAD用
作者: yiucsw    時間: 2015-6-25 09:55

在Mikrotik 的 PPP 改OVPN Server 的 Mode 从Ethernet 到IP。现在能Support TUN。
现在是其他的错误。
作者: gfx86674    時間: 2015-6-25 14:39

回復 11# yiucsw

作者: yiucsw    時間: 2015-6-25 15:15

谢谢,现在Apple iPad 同 Android 都能支持 OVPN。 想问能加上 mikrotik to mikrotik? mikrotik to mikrotik  能双向吗。
作者: gfx86674    時間: 2015-6-25 16:22

本帖最後由 gfx86674 於 2015-6-25 16:30 編輯

回復 14# yiucsw
可以,client主機也需匯入與server相同的憑證(ca.crt/ca.key).

做site-to-site 免匯入client.crt/client.key ,
client這兩個憑證只有行動裝置需要, Windows桌機與Mikrotik主機可以省缺不使用.

接下後續設定與pptp site-to-site完全相同,您可以試試.
作者: yiucsw    時間: 2015-6-29 06:16

在OVPN server 端加了Firewall filter port。已成功Mikrotik -》Mikrotik 的OVPN 连接。谢谢。
作者: yiucsw    時間: 2016-8-3 09:31

最近重做OVPN 發現 要加Firewall rule - Input, TCP, dst port, 1195. action: accept.
不知道auth 同 Ciper 加什麼,所以全加,才沒有Network-EOF-error, 可以知道應用那個AUTH/CIPER。 你以前的圖不能用
[attach]3798[/attach]
作者: yiucsw    時間: 2016-8-3 11:22

在台灣,Android手機上,中國移動的4G流量包不能上Google,不能用Google Map。 嘗試用OVPN,在酒店沒有問題,但在中國移動的4G流量包上OVPN斷線。除了OVPN還有什麼Android上的VPN能試試?
作者: gfx86674    時間: 2016-8-3 13:52

本帖最後由 gfx86674 於 2016-8-3 13:56 編輯

回復 17# yiucsw
不清楚您說的狀況,小弟OS版本是最新的v6.36 ,沒您說的問題.
[attach]3799[/attach]
  1. /ip pool
  2. add name=ovpn-pool ranges=192.168.88.137-192.168.88.139

  3. /ppp profile
  4. add dns-server=192.168.88.1 local-address=192.168.88.136 \
  5.   name=ovpn-profile remote-address=ovpn-pool \
  6.   use-compression=yes use-encryption=no use-mpls=yes

  7. /ppp secret
  8. add name=bfs password=??? remote-address=192.168.88.137 service=ovpn
複製代碼
[attach]3800[/attach]
[attach]3801[/attach]
[attach]3802[/attach]
作者: gfx86674    時間: 2016-8-4 08:00

最近重做OVPN 發現 要加Firewall rule - Input, TCP, dst port, 1195. action: accept.
不知道auth 同 Cipe ...
yiucsw 發表於 2016-8-3 09:31

有可能是您換新手機,忘了把新安裝OpenVPN Connect Force AES-CBC ciphersuites關閉.
[attach]3803[/attach]
作者: yiucsw    時間: 2016-9-5 10:35

主要是用大陆的(中國移動)台灣數據漫遊包,所有的Route 到中國中轉。OVPN是沒有辦法建立VPN的。
作者: yiucsw    時間: 2016-9-5 10:36

可不可以張Windows的Config setup 都發出來。在Windows 7 不懂如何建立Config。
作者: yiucsw    時間: 2016-12-7 19:53

最近IOS 的 PPTP 没有了。要重新用Openvpn, APPLe IOS, android 都能连接,只是Windows 有问题,看LOG 是有以下的问题,是 不有关系的?

Wed Dec 07 19:47:27 2016 us=217239 VERIFY ERROR: could not extract CN from X509 subject string ('C=TW, ST=TW, L=Taipei, O=home, emailAddress=xxxxxxxx@yahoo.com.tw') -- note that the username length is limited to 64 characters
Wed Dec 07 19:47:27 2016 us=217239 OpenSSL: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
作者: gfx86674    時間: 2016-12-7 22:19

本帖最後由 gfx86674 於 2016-12-7 22:21 編輯
最近IOS 的 PPTP 没有了。要重新用Openvpn, APPLe IOS, android 都能连接,只是Windows 有问题,看LOG 是有 ...
yiucsw 發表於 2016-12-7 19:53

windows和手機的ovpn設定檔的差別在於,windows不需client.crtclient.key憑證.
所以把連線用的ovpn設定擋內的<cert>.....</cert><key>.....</key> 文字全刪除 ,
windows就能連線了
作者: yiucsw    時間: 2016-12-8 01:14

我刚重新regenerate Client.crt 同 Client.key.  windows 7 能连,
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
但Android OpenVPN core error: PolarSSL: erro parsing cert certifcation: X509 - the CRT/CRL/CSR format is invalid...
是否不能用Client.CRT/Client.Key? 直接放到ovpn設定擋內的<cert>.....</cert> 和 <key>.....</key> 内
作者: yiucsw    時間: 2016-12-8 11:57

是我加错了client.crt, 所以有Parsing Error.
作者: yiucsw    時間: 2016-12-8 12:09

用了新的easy-rsa, 现在在Windows 7, Android能连到RB962.
作者: gfx86674    時間: 2016-12-8 18:23

用了新的easy-rsa, 现在在Windows 7, Android能连到RB962.
yiucsw 發表於 2016-12-8 12:09

您是指有連線到rb962 ,但內網連接不到是嗎?

若是這個問題,請將vpn/dhcp pool網段分開.
如:
gateway=192.168.1.1/24時 ,切192.168.1.0/24 與 192.168.2.0/24
gateway=192.168.1.1/25時 ,切192.168.1.0/25 與 192.168.1.128/25

切勿:
gateway=192.168.1.1/24時 ,
pool切 192.168.1.101-192.168.1.150 與 192.168.1.151-192.168.1.200
這樣兩個pool還是共用同網段, 父/子路由關聯會建立不起來.
作者: yiucsw    時間: 2016-12-8 23:39

主要是翻网。
找到Network EOF 的问题,是我打错Userid。
现在Windows/IPhone/Android 都能上OPenVPN了。
谢谢




歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/) Powered by Discuz! 7.2