Commit Graph

195 Commits

Author SHA1 Message Date
hwdsl2
a207d315f2 Add support for DNS names
- NEW: Add support for using DNS names (e.g. vpn.example.com) as
  the OpenVPN server's address. Users can now select this option
  during interactive install (sudo bash openvpn.sh).
- Example use case: With this new feature, when using a DNS name as
  the server address, users can take a snapshot of the server and
  restore it to a new server with a different IP, then update the
  DNS name to point to the new IP. After that, they can expect the
  VPN to continue to work.
2023-09-11 22:11:20 -05:00
hwdsl2
3e538a7110 Cleanup 2023-09-03 01:38:55 -05:00
hwdsl2
ee3c3dd3d8 Add support for openSUSE 2023-09-03 01:32:41 -05:00
hwdsl2
2537d32d96 Improve IPv6 handling
- When the server does not have a public IPv6 address, push the
  "block-ipv6" option to the client to help prevent IPv6 leaks
  on dual-stacked clients. This option is supported in OpenVPN
  client versions 2.5.x and newer.
  Ref: https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html
- Closes #13. Thanks @do02fw for the suggestion.
2023-07-11 00:35:50 -05:00
hwdsl2
c3eb5b8344 Improve VPN ciphers
- Switch to the faster AES-128-GCM cipher and SHA256.
  Thanks @do02fw for the suggestion in #12.
2023-07-04 22:48:23 -05:00
hwdsl2
40b26321e7 Update to easy-rsa 3.1.5 2023-06-15 00:12:32 -05:00
hwdsl2
53c9a34b4b Update OS check 2023-06-15 00:11:56 -05:00
hwdsl2
3667015a89 Update to easy-rsa 3.1.4 2023-05-25 22:52:40 -05:00
hwdsl2
8e60af5fc2 Update OS check
- Update OS check to detect Amazon Linux 2023, which is not currently
  supported for use with this project.
2023-05-21 22:21:31 -05:00
hwdsl2
55edd78836 Update to easy-rsa v3.1.2 2023-01-27 05:30:49 -06:00
hwdsl2
d63e46e671 Update docs 2023-01-04 19:47:57 -06:00
hwdsl2
f05bf31083 Improve sysctl settings
- For enabling TCP BBR congestion control, add a check to make sure
  tcp_congestion_control exists.
2022-11-20 15:05:02 -06:00
hwdsl2
d394509c7e Bugfix
- Fixed an issue with IPTables rules not persisting after a reboot,
  if both IPsec VPN and OpenVPN are installed on the same server.
  We restart the openvpn-iptables.service in /etc/rc.local to make
  sure the rules are added.
  Ref: https://github.com/hwdsl2/wireguard-install/issues/2
2022-11-17 08:50:54 -06:00
hwdsl2
824d59772e Improve setup
- Refactor setup script into functions for better readability and
  easier maintenance.
2022-11-01 01:19:16 -05:00
hwdsl2
6bdb4cc635 Improve sysctl settings 2022-10-31 01:30:18 -05:00
hwdsl2
6c1d25897f Cleanup 2022-10-28 08:59:09 -05:00
hwdsl2
c1e9ebd446 Update to easy-rsa v3.1.1
- Apply upstream change Nyr/openvpn-install commit f943387,
  with enhancements.
- --no-install-recommends is now required for Debian.
- Cleanup
2022-10-13 22:46:16 -05:00
hwdsl2
b9c2ff1719 Change "block-outside-dns" placement
- Apply upstream change Nyr/openvpn-install commit f2c44de.
- This is mainly to work around a bug in Viscosity for macOS.
2022-10-13 22:35:22 -05:00
hwdsl2
dab8eaebcf Cleanup 2022-10-09 16:16:34 -05:00
hwdsl2
d189d735e3 Improve IP check
- Install iproute (for the "ip" command) in the unlikely cases that
  it is not already installed.
- Abort and exit if server IP cannot be detected.
- Cleanup
2022-10-04 23:50:06 -05:00
hwdsl2
e47b7c5030 Add header 2022-10-03 21:25:09 -05:00
hwdsl2
20e9a5af75 Cleanup 2022-10-01 23:58:30 -05:00
hwdsl2
b07d70376e Add usage 2022-10-01 23:30:55 -05:00
hwdsl2
0e2fd697a6 Cleanup 2022-10-01 23:27:52 -05:00
hwdsl2
bd1c572861 Improve reliability
- Wrap the script in a function to guard against partial download.
2022-10-01 15:01:25 -05:00
hwdsl2
01865085c6 Support auto install
- Support automatic install using default options. To do this,
  users can add the argument "--auto" when running the script.
- Cleanup
2022-10-01 14:50:01 -05:00
hwdsl2
1b20eadf22 Improve listing clients
- When listing existing clients, show total and improve output.
2022-09-26 22:08:59 -05:00
hwdsl2
ada0f9f853 Add list clients option
- Add an option to list existing clients.
2022-09-25 22:45:22 -05:00
hwdsl2
068dd9bb8e Cleanup 2022-09-24 20:53:28 -05:00
hwdsl2
390bb904ae Improve user input
- On servers with multiple IPv4, use the IP address on the default
  route, instead of asking the user to select.
2022-09-22 00:17:19 -05:00
hwdsl2
bce57f9608 Improve IP check
- Use two different services for getting the server's public IP.
  This improves reliability in case one of them is unavailable.
- Cleanup
2022-09-20 23:22:43 -05:00
hwdsl2
ff40c115d1 Improve user input
- On servers with multiple IPv4 addresses, check if one of them
  matches the server's public IP. If so, select that IP and skip
  the IP selection question.
- If the server is behind NAT, try to find its public IP and
  ask the user only if the IP cannot be found.
- Cleanup
2022-09-20 01:28:42 -05:00
hwdsl2
ef33b06a44 Improve client DNS
- Allow specifying custom DNS server(s) for VPN clients.
- Use Google Public DNS as the default option.
- Cleanup
2022-09-20 00:06:09 -05:00
hwdsl2
f4f7119ae6 Cleanup 2022-09-19 21:40:46 -05:00
hwdsl2
6cbbca398a Improve client revocation
- When revoking a client, remove previously generated client config
  file for the client.
- Cleanup
2022-09-10 00:11:04 -05:00
hwdsl2
efbe7739d3 Improve setup
- When uninstalling the VPN, disable IP forwarding.
2022-09-09 08:53:03 -05:00
hwdsl2
401edc5bde Optimize sysctl settings
- Improve VPN performance by optimizing sysctl settings, such as tuning
  TCP buffer sizes and enabling the TCP BBR congestion control algorithm
  on supported systems (kernel versions 4.20 and newer).
- References:
  https://cloud.google.com/blog/products/networking/tcp-bbr-congestion-control-comes-to-gcp-your-internet-just-got-faster
  https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md
  https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/bbr.md
2022-09-08 23:33:56 -05:00
hwdsl2
fb7de43826 Improve user input
- When adding, exporting or revoking a client, abort and exit if
  the user enters an empty client name or client number.
2022-09-02 23:39:09 -05:00
hwdsl2
3994091cb5 Add client export option
- Add an option to export configuration for an existing client.
2022-09-02 23:24:10 -05:00
hwdsl2
e58d72b585 Improve client config
- When running the script using "sudo", export client configuration
  to the user's home directory instead of /root.
2022-09-02 22:27:39 -05:00
hwdsl2
f169c6a1f8 Add Amazon Linux 2
- Add support for Amazon Linux 2.
2022-09-02 21:54:59 -05:00
hwdsl2
97635f7cb6 Fix resolv.conf detection
- Apply upstream change Nyr/openvpn-install commit d28c8e7.
- Some systems have other DNS servers along with 127.0.0.53 in /etc/resolv.conf.
2022-08-21 22:29:43 -05:00
hwdsl2
661cafe8fc Update nftables check
- The check for nftables is only needed during initial install.
2022-06-04 23:32:42 -05:00
hwdsl2
428249ff10 Improve script reliability
- Retry 'apt-get update' and exit on package install errors.
2022-06-02 08:59:59 -05:00
hwdsl2
5148690a82 Improve script output
- Improve script output to only show useful information to the user
  and hide unneeded output.
2022-05-28 00:42:12 -05:00
hwdsl2
130f51b0d0 Cleanup 2022-05-27 15:52:45 -05:00
hwdsl2
19750a5430 Update nftables check 2022-05-22 22:30:32 -05:00
hwdsl2
923802d116 Cleanup 2022-05-21 13:08:10 -05:00
hwdsl2
7c44e0b694 Improve script output 2022-05-20 18:12:37 -05:00
hwdsl2
2bf4d5e33a Improve script output
- Improve script output to only show useful information to the user
  and hide unneeded output.
2022-05-20 08:43:39 -05:00