You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-13Lines changed: 11 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ The easiest way to get an Algo server running is to let it set up a _new_ virtua
63
63
```
64
64
On macOS, you may be prompted to install `cc`. You should press accept if so.
65
65
66
-
5. **List the users to create.** Open `config.cfg` in your favorite text editor. Specify the users you wish to create in the `users` list. If you want to be able to add or delete users later, you **must** select `yes` for the `Do you want to retain the CA key?` prompt during the deployment.
66
+
5. **List the users to create.** Open `config.cfg` in your favorite text editor. Specify the users you wish to create in the `users` list. If you want to be able to add or delete users later, you **must** select `yes` for the `Do you want to retain the CA key?` prompt during the deployment. Make a unique user for each device you plan to setup.
67
67
68
68
6. **Start the deployment.** Return to your terminal. In the Algo directory, run `./algo` and follow the instructions. There are several optional features available. None are required for a fully functional VPN server. These optional features are described in greater detail in [deploy-from-ansible.md](docs/deploy-from-ansible.md).
69
69
@@ -105,14 +105,11 @@ If you prefer to use the built-in IPSEC VPN on Apple devices, or need "Connect o
105
105
106
106
WireGuard is used to provide VPN services on Android. Install the [WireGuard VPN Client](https://play.google.com/store/apps/details?id=com.wireguard.android). Import the corresponding `wireguard/<name>.conf` file to your device, then setup a new connection with it. See the [Android setup instructions](/docs/client-android.md) for more detailed walkthrough.
107
107
108
-
### Windows 10
108
+
### Windows
109
109
110
-
Copy your PowerShell script `windows_{username}.ps1` to the Windows client and run the following command as Administrator to configure the VPN connection.
WireGuard is used to provide VPN services on Windows. Algo generates a WireGuard configuration file, `wireguard/<username>.conf`, for each user defined in `config.cfg`.
114
111
115
-
For a manual installation, see the [Windows setup instructions](/docs/client-windows.md).
112
+
Install the [WireGuard VPN Client](https://www.wireguard.com/install/#windows-7-8-81-10-2012-2016-2019). Import the generated `wireguard/<username>.conf` file to your device, then setup a new connection with it.
116
113
117
114
### Linux Network Manager Clients (e.g., Ubuntu, Debian, or Fedora Desktop)
118
115
@@ -149,12 +146,13 @@ To configure the connection to come up at boot time replace `auto=add` with `aut
149
146
150
147
Depending on the platform, you may need one or multiple of the following files.
151
148
152
-
* cacert.pem: CA Certificate
153
-
* user.mobileconfig: Apple Profile
154
-
* user.p12: User Certificate and Private Key (in PKCS#12 format)
If you have more than one account on your Windows 10 machine (e.g. one with administrator privileges and one without) and would like to have the VPN connection available to all users, pass the parameter `-AllUsers`
4. The command has help information available. To view its full help, run this from Powershell:
21
-
```powershell
22
-
Get-Help -Name .\windows_USER.ps1 -Full | more
23
-
```
24
-
25
-
## Manual installation
26
-
27
-
1. Copy the CA certificate (`cacert.pem`) and user certificate (`USER.p12`) to the client computer
28
-
2. Open PowerShell as Administrator. Navigate to your copied files.
29
-
3. If you haven't already, you will need to change the Execution Policy to allow unsigned scripts to run.
30
-
31
-
```powershell
32
-
Set-ExecutionPolicy Unrestricted -Scope Process
33
-
```
34
-
35
-
4. In the same window, run the necessary commands to install the certificates and create the VPN configuration. Note the lines at the top defining the VPN address, USER.p12 file location, and CA certificate location - change those lines to the IP address of your Algo server and the location you saved those two files. Also note that it will prompt for the "User p12 password", which is printed at the end of a successful Algo deployment.
36
-
37
-
If you have more than one account on your Windows 10 machine (e.g. one with administrator privileges and one without) and would like to have the VPN connection available to all users, then insert the line `AllUserConnection = $true` after `$EncryptionLevel = "Required"`.
* Enables AppArmor, limits CPU and memory access, and drops user privileges
59
57
* Builds a Certificate Authority (CA) with [easy-rsa-ipsec](https://github.com/ValdikSS/easy-rsa-ipsec) and creates one client certificate per user
60
-
* Bundles the appropriate certificates into Apple mobileconfig profiles and Powershell scripts for each user
58
+
* Bundles the appropriate certificates into Apple mobileconfig profiles for each user
61
59
- role: dns_adblocking
62
60
* Installs DNS encryption through [dnscrypt-proxy](https://github.com/jedisct1/dnscrypt-proxy) with blacklists to be updated daily from `adblock_lists` in `config.cfg` - note this will occur even if `dns_encryption` in `config.cfg` is set to `false`
63
61
* Constrains dnscrypt-proxy with AppArmor and cgroups CPU and memory limitations
Copy file name to clipboardExpand all lines: docs/deploy-from-script-or-cloud-init-to-localhost.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,6 @@ The command will prepare the environment and install AlgoVPN with the default pa
18
18
`ONDEMAND_CELLULAR` - "Connect On Demand" when connected to cellular networks. Boolean. Default: false.
19
19
`ONDEMAND_WIFI` - "Connect On Demand" when connected to Wi-Fi. Default: false.
20
20
`ONDEMAND_WIFI_EXCLUDE` - List the names of any trusted Wi-Fi networks where macOS/iOS IPsec clients should not use "Connect On Demand". Comma-separated list.
21
-
`WINDOWS` - To support Windows 10 or Linux Desktop clients. Default: false.
22
21
`STORE_PKI` - To retain the PKI. (required to add users in the future, but less secure). Default: false.
23
22
`DNS_ADBLOCKING` - To install an ad blocking DNS resolver. Default: false.
24
23
`SSH_TUNNELING` - Enable SSH tunneling for each user. Default: false.
@@ -36,7 +35,6 @@ The command will prepare the environment and install AlgoVPN with the default pa
Copy file name to clipboardExpand all lines: docs/faq.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,10 @@
16
16
17
17
No. This project is under active development. We're happy to [accept and fix issues](https://github.com/trailofbits/algo/issues) as they are identified. Use Algo at your own risk. If you find a security issue of any severity, please [contact us on Slack](https://empireslacking.herokuapp.com).
18
18
19
+
## What's the current status of WireGuard?
20
+
21
+
[WireGuard is a work in progress](https://www.wireguard.com/#work-in-progress). It has undergone [substantial](https://www.wireguard.com/formal-verification/) security review, however, its authors are appropriately cautious about its safety and the protocol is subject to change. As a result, WireGuard does not yet have a "stable" 1.0 release. Releases are tagged with their build date -- "0.0.YYYYMMDD" -- and users should be advised to apply new updates when they are available.
22
+
19
23
## Why aren't you using Tor?
20
24
21
25
The goal of this project is not to provide anonymity, but to ensure confidentiality of network traffic. Tor introduces new risks that are unsuitable for Algo's intended users. Namely, with Algo, users are in control over the gateway routing their traffic. With Tor, users are at the mercy of [actively](https://www.securityweek2016.tu-darmstadt.de/fileadmin/user_upload/Group_securityweek2016/pets2016/10_honions-sanatinia.pdf)[malicious](https://web.archive.org/web/20150705184539/https://chloe.re/2015/06/20/a-month-with-badonions/)[exit](https://community.fireeye.com/people/archit.mehta/blog/2014/11/18/onionduke-apt-malware-distributed-via-malicious-tor-exit-node)[nodes](https://www.wired.com/2010/06/wikileaks-documents/).
[WARNING]: Unable to find 'configs/xxx.xxx.xxx.xxx/wireguard//private/dan' in expected paths.
266
264
267
265
fatal: [localhost]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'file'. Error was a <class 'ansible.errors.AnsibleError'>, original message: could not locate file in lookup: configs/xxx.xxx.xxx.xxx/wireguard//private/dan"}
268
-
```
266
+
```
269
267
This error is usually hit when using the local install option on a server that isn't Ubuntu 18.04. You should upgrade your server to Ubuntu 18.04. If this doesn't work, try removing `*.lock` files at /etc/wireguard/ as follows:
### WireGuard: Clients can connect on Wifi but not LTE
414
412
415
-
Certain cloud providers (like AWS Lightsail) don't assign an IPv6 address to your server, but certain cellular carriers (e.g. T-Mobile in the United States, [EE](https://community.ee.co.uk/t5/4G-and-mobile-data/IPv4-VPN-Connectivity/td-p/757881) in the United Kingdom) operate an IPv6-only network. This somehow leads to the Wireguard app not being able to make a connection when transitioning to cell service. Go to the Wireguard app on the device when you're having problems with cell connectivity and select "Export log file" or similar option. If you see a long string of error messages like "`Failed to send data packet write udp6 [::]:49727->[2607:7700:0:2a:0:1:354:40ae]:51820: sendto: no route to host` then you might be having this problem.
413
+
Certain cloud providers (like AWS Lightsail) don't assign an IPv6 address to your server, but certain cellular carriers (e.g. T-Mobile in the United States, [EE](https://community.ee.co.uk/t5/4G-and-mobile-data/IPv4-VPN-Connectivity/td-p/757881) in the United Kingdom) operate an IPv6-only network. This somehow leads to the Wireguard app not being able to make a connection when transitioning to cell service. Go to the Wireguard app on the device when you're having problems with cell connectivity and select "Export log file" or similar option. If you see a long string of error messages like "`Failed to send data packet write udp6 [::]:49727->[2607:7700:0:2a:0:1:354:40ae]:51820: sendto: no route to host` then you might be having this problem.
416
414
417
415
Manually disconnecting and then reconnecting should restore your connection. To solve this, you need to either "force IPv4 connection" if available on your phone, or install an IPv4 APN, which might be available from your carrier tech support. T-mobile's is available [for iOS here under "iOS IPv4/IPv6 fix"](https://www.reddit.com/r/tmobile/wiki/index), and [here is a walkthrough for Android phones](https://www.myopenrouter.com/article/vpn-connections-not-working-t-mobile-heres-how-fix).
418
416
419
-
### "Error 809" or IKE_AUTH requests that never make it to the server
420
-
421
-
On Windows, this issue may manifest with an error message that says "The network connection between your computer and the VPN server could not be established because the remote server is not responding... This is Error 809." On other operating systems, you may try to debug the issue by capturing packets with tcpdump and notice that, while IKE_SA_INIT request and responses are exchanged between the client and server, IKE_AUTH requests never make it to the server.
422
-
423
-
It is possible that the IKE_AUTH payload is too big to fit in a single IP datagram, and so is fragmented. Many consumer routers and cable modems ship with a feature that blocks "fragmented IP packets." Try logging into your router and disabling any firewall settings related to blocking or dropping fragmented IP packets. For more information, see [Issue #305](https://github.com/trailofbits/algo/issues/305).
424
-
425
417
### Error: name 'basestring' is not defined
426
418
427
419
```
@@ -448,29 +440,6 @@ Then rerun the dependency installation explicitly using python 2.7
The problem may happen if you recently moved to a new server, where you have Algo VPN.
454
-
455
-
1. Clear the Networking caches:
456
-
- Run CMD (click windows start menu, type 'cmd', right click on 'Command Prompt' and select "Run as Administrator").
457
-
- Type the commands below:
458
-
```
459
-
netsh int ip reset
460
-
netsh int ipv6 reset
461
-
netsh winsock reset
462
-
```
463
-
464
-
3. Restart your computer
465
-
4. Reset Device Manager adaptors:
466
-
- Open Device Manager
467
-
- Find Network Adapters
468
-
- Uninstall WAN Miniport drivers (IKEv2, IP, IPv6, etc)
469
-
- Click Action > Scan for hardware changes
470
-
- The adapters you just uninstalled should come back
471
-
472
-
The VPN connection should work again
473
-
474
443
### IPsec: Difficulty connecting through router
475
444
476
445
Some routers treat IPsec connections specially because older versions of IPsec did not work properly through [NAT](https://en.wikipedia.org/wiki/Network_address_translation). If you're having problems connecting to your AlgoVPN through a specific router using IPsec you might need to change some settings on the router.
0 commit comments