Commit Graph

9 Commits

Author SHA1 Message Date
Chad Brubaker
4ca19e8377 Add per user VPN support
VPNs are now per user instead of global. A VPN set by user A routes only
user A's traffic and no other user can access it.

Change-Id: Ia66463637b6bd088b05768076a1db897fe95c46c
2013-07-12 20:51:03 -07:00
Jeff Sharkey
421fab8a7b Avoid legacy VPN bringing down system server.
Bug: 9564691
Change-Id: I5b5f78c9ae20505f6274b91bc8fdbaaf57443277
2013-06-27 14:51:52 -07:00
Jeff Sharkey
57666934b4 Lockdown VPN handles its own connection teardown.
Recent changes started watching for CONNECTIVITY_ACTION broadcasts
to handle the case where a network is disconnected without the
interface going down.

However, when lockdown VPN is enabled, the broadcast contents are
augmented, and all connections appear disconnected until the VPN
comes online.  This caused a reset feedback loop to occur.

Since LockdownVpnTracker already handles networks being disconnected
separately from interfaces going down, this change disables handling
the broadcast when lockdown is enabled.

Bug: 8755148
Change-Id: I70a348aa97a4b22eaaf23aa5ed344de3e9a9ab0b
2013-05-01 09:40:50 -07:00
Jeff Sharkey
42c0c9f35a Allow L2TP traffic to lockdown VPN servers.
Bug: 8067988
Change-Id: I6cb7d07e0c4b7c6e112a26a06892e859e6b515a8
2013-02-21 10:31:45 -08:00
Jeff Sharkey
4fa63b2d5e Improve notification UI for lockdown VPN.
Bug: 7064111
Change-Id: I9554f6a426697b4abeb2ddd0827d314920e88ed6
2013-02-21 09:47:11 -08:00
Jeff Sharkey
0b81be6f79 Lockdown should only augment connected networks.
Bug: 7148397
Change-Id: I20e2194c874544b272b9ec8b63391d91b0a22f49
2012-09-18 15:44:16 -07:00
Jeff Sharkey
91c6a64a04 Event logging for lockdown VPN state changes.
Bug: 7079350
Change-Id: I3670efe7f09c0fca55552b6a04a2be159b9beb3c
2012-09-06 18:33:14 -07:00
Jeff Sharkey
580dd31a68 Locking when clearing VPN source rules.
Otherwise lockdown VPN reset is racy and can bring down system_server.

Change-Id: Ib8eecde1d0857a1669c3ca5506a46198c71b1b51
2012-08-29 22:31:58 -07:00
Jeff Sharkey
69ddab4575 Always-on VPN.
Adds support for always-on VPN profiles, also called "lockdown." When
enabled, LockdownVpnTracker manages the netd firewall to prevent
unencrypted traffic from leaving the device. It creates narrow rules
to only allow traffic to the selected VPN server. When an egress
network becomes available, LockdownVpnTracker will try bringing up
the VPN connection, and will reconnect if disconnected.

ConnectivityService augments any NetworkInfo based on the lockdown
VPN status to help apps wait until the VPN is connected.

This feature requires that VPN profiles use an IP address for both
VPN server and DNS. It also blocks non-default APN access when
enabled. Waits for USER_PRESENT after boot to check KeyStore status.

Bug: 5756357
Change-Id: If615f206b1634000d78a8350a17e88bfcac8e0d0
2012-08-27 12:35:05 -07:00