From fa218f752003adcfb040053cfb88b36637060de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Tue, 7 Oct 2014 17:44:46 +0200 Subject: Block traffic during first connection. Set up routes to UDP unlimited server (since openvpn hasn't finished, it simply blocks traffic) and also DNS server to 10.41.0.1. These values correspond to current leap_platform configuration (https://github.com/leapcode/leap_platform/blob/7bc79e68e5ca913d1d2843c48cde8f946feed09c/puppet/modules/site_openvpn/manifests/init.pp) --- .../main/java/se/leap/bitmaskclient/VoidVpnService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java (limited to 'app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java new file mode 100644 index 00000000..ec88fd48 --- /dev/null +++ b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java @@ -0,0 +1,17 @@ +package se.leap.bitmaskclient; + +import android.content.Context; +import android.net.VpnService; + +public class VoidVpnService extends VpnService { + public void setUp(Context context) { + VpnService.prepare(context); // stops the VPN connection created by another application. + Builder builder = new Builder(); + builder.addAddress("10.42.0.8",16); + builder.addRoute("0.0.0.0", 1); + builder.addRoute("128.0.0.0", 1); + builder.addRoute("192.168.1.0", 24); + builder.addDnsServer("10.42.0.1"); + builder.establish(); + } +} -- cgit v1.2.3 From c4df01ab94c85ecf4a106b187a03e4859a857b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Tue, 7 Oct 2014 21:17:12 +0200 Subject: Set up early routes on boot too. --- .../java/se/leap/bitmaskclient/VoidVpnService.java | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java index ec88fd48..5f7c0ab1 100644 --- a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java +++ b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java @@ -1,11 +1,28 @@ package se.leap.bitmaskclient; -import android.content.Context; +import android.content.Intent; import android.net.VpnService; +import android.util.Log; public class VoidVpnService extends VpnService { - public void setUp(Context context) { - VpnService.prepare(context); // stops the VPN connection created by another application. + + static final String START_BLOCKING_VPN_PROFILE = "se.leap.bitmaskclient.START_BLOCKING_VPN_PROFILE"; + static final String TAG = VoidVpnService.class.getSimpleName(); + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + String action = intent.getAction(); + if (action == START_BLOCKING_VPN_PROFILE) { + new Thread(new Runnable() { + public void run() { + blockConnections(); + } + }).run(); + } + return 0; + } + + public void blockConnections() { Builder builder = new Builder(); builder.addAddress("10.42.0.8",16); builder.addRoute("0.0.0.0", 1); @@ -13,5 +30,12 @@ public class VoidVpnService extends VpnService { builder.addRoute("192.168.1.0", 24); builder.addDnsServer("10.42.0.1"); builder.establish(); + android.util.Log.d(TAG, "VoidVpnService set up"); + try { + new java.net.Socket("sdf.org", 80); + Log.d(TAG, "VoidVpnService doesn's stop traffic"); + } catch (Exception e) { + e.printStackTrace(); + } } } -- cgit v1.2.3 From 8566f7c6f3a5ee3eb668964e3dffb4a753db5b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Parm=C3=A9nides=20GV?= Date: Tue, 7 Oct 2014 21:33:55 +0200 Subject: Finish VoidVpnLauncher activity. It was remaining there, with an empty layout. --- app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java | 1 + 1 file changed, 1 insertion(+) (limited to 'app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java index 5f7c0ab1..b7289c23 100644 --- a/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java +++ b/app/src/main/java/se/leap/bitmaskclient/VoidVpnService.java @@ -24,6 +24,7 @@ public class VoidVpnService extends VpnService { public void blockConnections() { Builder builder = new Builder(); + builder.setSession("Blocking until running"); builder.addAddress("10.42.0.8",16); builder.addRoute("0.0.0.0", 1); builder.addRoute("128.0.0.0", 1); -- cgit v1.2.3