Quentin McGaw
5194361f3b
Fix public IP on restarts, refers to 359
2021-01-29 00:06:55 +00:00
Quentin McGaw
a243d48fb1
Maintenance: improve stream merging
2021-01-26 04:17:22 +00:00
Quentin McGaw
25644d061e
Fix build (lint error)
2021-01-19 14:20:57 +00:00
Quentin McGaw
2c4d577f23
Maintenance: Update golibs and update params
2021-01-10 23:06:09 +00:00
Quentin McGaw
bf6bab7963
(Fix): Exit code 0 when expected (healthcheck fix)
2021-01-04 13:41:56 +00:00
Quentin McGaw
3b91e351b7
Maintenance: using channels instead of wrap functions
2021-01-04 01:49:05 +00:00
Quentin McGaw
657937d272
Maintenance: Add waitgroup to collectStreamLines
2021-01-04 01:46:50 +00:00
Quentin McGaw
cfbf5624e1
Maintenance: rework main function
2021-01-04 01:40:07 +00:00
Quentin McGaw
680aef62ee
(Bug fix): Fix Unbound
...
- Set binary filepath
- Set ca certs filepath
2021-01-02 20:39:24 +00:00
Quentin McGaw
a67efd1ad1
Code maintenance: Using qdm/dns and qdm12/updated
2021-01-02 18:31:39 +00:00
Quentin McGaw
5dcbe79fa8
Move OS package to golibs
2021-01-02 01:57:00 +00:00
Quentin McGaw
ea28c791e6
Code maintenance: http proxy starts from Run func
2020-12-30 22:02:47 +00:00
Quentin McGaw
251555f859
Code maintenance: Shadowsocks loop refactor
2020-12-30 22:01:08 +00:00
Quentin McGaw
fa7bda7ee4
Code maintenance: remove unneeded defaultInterface in Shadowsocks
2020-12-30 21:43:45 +00:00
Quentin McGaw
c6eb5c1785
Bug fix: Plaintext DNS fix ( #326 , #329 )
2020-12-30 20:36:19 +00:00
Quentin McGaw
6f3a074e00
Code maintenance: HTTP proxy loop reworked
...
- Blocking method calls on loop
- Restart proxy when settings change
- Detect server crash error and restart it
2020-12-30 18:44:46 +00:00
Quentin McGaw
a921f9848c
Code maintenance: CLI interface abstraction
2020-12-29 18:24:03 +00:00
Quentin McGaw
bedf613cff
Code maintenance: storage merging reworked
2020-12-29 17:49:38 +00:00
Quentin McGaw
cb64302294
Rename UID and GID to PUID and PGID
2020-12-29 16:44:35 +00:00
Quentin McGaw
8d5f2fec09
Code maintenance: use native Go HTTP client
2020-12-29 02:55:34 +00:00
Quentin McGaw
60e98235ca
Code maintenance: Better deps injection in main.go
2020-12-29 01:21:54 +00:00
Quentin McGaw
f55fb4055f
Code maintenance: OS user abstraction interface
2020-12-29 01:16:53 +00:00
Quentin McGaw
7058373916
Code maintenance: Unix abstraction interface
...
- Used for creating the tun device if it does not exist
- Mocks generated for testing
2020-12-29 01:02:47 +00:00
Quentin McGaw
73479bab26
Code maintenance: OS package for file system
...
- OS custom internal package for file system interaction
- Remove fileManager external dependency
- Closer API to Go's native API on the OS
- Create directories at startup
- Better testability
- Move Unsetenv to os interface
2020-12-29 00:55:31 +00:00
Quentin McGaw
db886163c2
Public IP getter loop refactored
2020-12-28 01:51:55 +00:00
Quentin McGaw
82a02287ac
Public IP endpoint with GET /ip fixing #319
2020-12-27 21:06:00 +00:00
Quentin McGaw
2dc674559e
Re-use username for UID if it exists
2020-12-27 00:36:39 +00:00
Quentin McGaw
4257581f55
Loops and HTTP control server rework ( #308 )
...
- CRUD REST HTTP server
- `/v1` HTTP server prefix
- Retrocompatible with older routes (redirects to v1 or handles the requests directly)
- DNS, Updater and Openvpn refactored to have a REST-like state with new methods to change their states synchronously
- Openvpn, Unbound and Updater status, see #287
2020-12-19 20:10:34 -05:00
Quentin McGaw
fb62910b17
HTTP proxy 24 hours timeout, fix #303
2020-11-21 01:26:02 +00:00
Quentin McGaw
aef14a9f6d
Assimilate PIA v4 as PIA in code
2020-11-10 13:35:49 +00:00
Quentin McGaw
0423388b52
Fix build information setting at build time
2020-11-07 22:31:20 +00:00
Quentin McGaw
a7a7efe9c3
Remove PIA v3 servers support
2020-11-05 02:10:34 +00:00
Quentin McGaw
3b04677f8f
HTTP control server /version endpoint
2020-11-04 14:07:04 +00:00
Quentin McGaw
0c9f74ffa4
HTTP proxy written in Go to replace Tinyproxy ( #269 )
2020-10-31 21:50:31 -04:00
Quentin McGaw
db64dea664
Fix #273 ( #277 ), adding FIREWALL_OUTBOUND_SUBNETS
2020-10-29 19:23:44 -04:00
Quentin McGaw
edc08c46d4
Health server runs on 127.0.0.1:9999, fix #272
2020-10-27 03:28:25 +00:00
Quentin McGaw
0c81154f36
No firewall setup needed for Shadowsocks
2020-10-26 02:52:10 +00:00
Quentin McGaw
ed4fcc17b3
Routing improvements ( #268 )
...
- Fixes #82
- Remove `EXTRA_SUBNETS`
- Remove no longer needed iptables rules
- Reduce routing interface arity
- Routing setup is done in main.go instead of in the firewall
- Routing setup gets reverted at shutdown
2020-10-24 18:05:11 -04:00
Quentin McGaw
ea3b3bc8a3
Netlink Go library to interact with IP routes ( #267 )
2020-10-22 18:55:28 -04:00
Quentin McGaw
9c73faaaeb
Add linters and fix lint issues
2020-10-20 02:45:28 +00:00
Quentin McGaw
c932f48a95
Fixes #254 new variable FIREWALL_INPUT_PORTS ( #260 )
2020-10-18 09:22:28 -04:00
Quentin McGaw
84c1f46ae4
Upgrade dependencies
...
- Use of context for custom http client
- Remove unused nodeid for logger
- Upgrade shadowsocks dependency
2020-10-18 02:24:34 +00:00
Quentin McGaw
b27e637894
HTTP_CONTROL_SERVER_LOG variable, fixes #249
2020-10-17 22:21:20 +00:00
Quentin McGaw
8abc22977c
Fix #261 add variable HTTP_CONTROL_SERVER_PORT
2020-10-17 22:07:15 +00:00
Quentin McGaw
6f4be72785
Using context for HTTP requests
2020-10-17 21:54:09 +00:00
Quentin McGaw
c4354871f7
Single connection written to openvpn configuration ( #258 )
...
- From now only a single OpenVPN connection is written to the OpenVPN configuration file
- If multiple connections are matched given the user parameters (i.e. city, region), it is picked at pseudo random using the current time as the pseudo random seed.
- Not relying on Openvpn picking a random remote address, may refer to #229
- Program is aware of which connection is to be used, in order to use its matching CN for port forwarding TLS verification with PIA v4 servers, see #236
- Simplified firewall mechanisms
2020-10-12 15:29:58 -04:00
Quentin McGaw
ec157f102b
PIA nextgen portforward ( #242 )
...
* Split provider/pia.go in piav3.go and piav4.go
* Change port forwarding signature
* Enable port forwarding parameter for PIA v4
* Fix VPN gateway IP obtention
* Setup HTTP client for TLS with custom cert
* Error message for regions not supporting pf
2020-10-12 10:55:08 -04:00
Quentin McGaw
c5b5ae9ca7
Add warning logs when openvpn cannot connect
2020-09-18 14:28:14 +00:00
Quentin McGaw
1fc1776dbf
Simplify main.go
2020-09-12 19:17:19 +00:00
Quentin McGaw
464c7074d0
Get public IP and version only when DNS is ready
2020-09-12 18:50:42 +00:00