An open API service indexing awesome lists of open source software.

https://github.com/infernovm/openvpn-installer

Automate OpenVPN server setup on Debian, Ubuntu, Fedora, CentOS & Arch Linux with this powerful, easy-to-use installer. Secure your network with fast, reliable VPN deployment featuring optimized encryption, IPv6 support, custom configs & more!
https://github.com/infernovm/openvpn-installer

anonymous arch-linux centos debian encryption fedora installer linux network openvpn security self-hosted ubuntu vpn wireguard

Last synced: 2 months ago
JSON representation

Automate OpenVPN server setup on Debian, Ubuntu, Fedora, CentOS & Arch Linux with this powerful, easy-to-use installer. Secure your network with fast, reliable VPN deployment featuring optimized encryption, IPv6 support, custom configs & more!

Awesome Lists containing this project

README

        

# πŸ”’ OpenVPN Install Script – Fast, Secure, and Easy VPN Deployment



InfernoVM

Easily set up a secure OpenVPN server on **Debian, Ubuntu, Fedora, CentOS, Arch Linux, Oracle Linux, Rocky Linux, and AlmaLinux** with this automated script.

---

## βœ… Key Features

βœ” **Quick Installation** – Deploy a fully functional VPN in minutes.
βœ” **Enhanced Security** – Custom encryption settings for maximum protection.
βœ” **User Management** – Effortlessly add, remove, or manage clients.
βœ” **Multi-Platform Support** – Works on various Linux distributions.
βœ” **Automated Headless Installation** – One-command setup for seamless deployment.

---

## πŸ–₯️ Supported Distributions

| Distribution | Support |
| ------------------- | -------------- |
| AlmaLinux 8 | βœ… |
| Amazon Linux 2 | βœ… |
| Arch Linux | βœ… |
| CentOS 7 | βœ… πŸ€– |
| CentOS Stream >= 8 | βœ… πŸ€– |
| Debian >= 10 | βœ… πŸ€– |
| Fedora >= 35 | βœ… πŸ€– |
| Oracle Linux 8 | βœ… |
| Rocky Linux 8 | βœ… |
| Ubuntu >= 18.04 | βœ… πŸ€– |

*Note: Distributions marked with πŸ€– are regularly tested.*

---

## πŸ“₯ Installation Guide

### Step 1: Download the Script

```bash
curl -O https://raw.githubusercontent.com/InfernoVM/OpenVPN-Installer/main/setup.sh
chmod +x setup.sh
```

### Step 2: Run the Script

```bash
sudo ./setup.sh
```

Follow the prompts to configure your VPN server.

### Step 3: Manage Clients

Once installed, rerun the script to:

- **Add a Client**
- **Remove a Client**
- **Uninstall OpenVPN**

Client configuration files (`.ovpn`) will be saved in your home directory for easy access.

---

## πŸ”„ Automated Headless Installation

To automate the installation:

```bash
AUTO_INSTALL=y ./setup.sh
```

Or set environment variables:

```bash
export AUTO_INSTALL=y
./setup.sh
```

### Customizable Options

- `APPROVE_INSTALL=y`
- `APPROVE_IP=y`
- `IPV6_SUPPORT=n`
- `PORT_CHOICE=1`
- `PROTOCOL_CHOICE=1`
- `DNS=1`
- `COMPRESSION_ENABLED=n`
- `CUSTOMIZE_ENC=n`
- `CLIENT=clientname`
- `PASS=1`

To set the server endpoint behind NAT:

```bash
ENDPOINT=$(curl -4 ifconfig.co)
```

For more customization, modify the `installQuestions()` function in the script.

### πŸ“Œ Headless User Addition

To automate user creation:

```bash
#!/bin/bash
export MENU_OPTION="1"
export CLIENT="foo"
export PASS="1"
./setup.sh
```

---

## πŸ” Advanced Security and Encryption

OpenVPN defaults to **strong encryption settings**, further enhanced by this script:

- **AES-GCM** – Ensures confidentiality, integrity, and authenticity.
- **TLS 1.2** – Enforced for maximum security.
- **ECDSA Certificates** – Default certificate type for efficiency and security.
- **tls-crypt** – Enabled by default for additional privacy and DoS protection.

---

## πŸ€” FAQ

### πŸ”Ή Recommended VPS Providers
- **[InfernoVM](https://infernovm.net)**

### πŸ”Ή Recommended OpenVPN Clients

- **Windows** – [Official OpenVPN Community Client](https://openvpn.net/index.php/download/community-downloads.html)
- **Linux** – Install `openvpn` via your distribution’s package manager ([APT repo](https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos))
- **macOS** – [Tunnelblick](https://tunnelblick.net/), [Viscosity](https://www.sparklabs.com/viscosity/)
- **Android** – [OpenVPN for Android](https://play.google.com/store/apps/details?id=de.blinkt.openvpn)
- **iOS** – [OpenVPN Connect](https://itunes.apple.com/us/app/openvpn-connect/id590379981)

### πŸ”Ή Is This Script NSA-Proof?

No. While it enhances security, **no VPN can guarantee complete anonymity**. Evaluate your threat model accordingly.

### πŸ”Ή Where Can I Find OpenVPN Documentation?

Check the [OpenVPN Manual](https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage) for full documentation.

---

## πŸ”§ Security and Encryption Details

> **Warning**: This section has not been updated for OpenVPN 2.5+.

### πŸ“Œ Compression
- **Default** – Compression is disabled to prevent VORACLE attacks.
- **Supported** – LZ0 and LZ4 (v1/v2) are available but not recommended.

### πŸ“Œ TLS Version
- **Default** – TLS 1.2 enforced (`tls-version-min 1.2`).
- **Support** – Available since OpenVPN 2.3.3.

### πŸ“Œ Certificates
- **Default** – ECDSA with `prime256v1` curve.
- **Supported** – RSA keys (2048, 3072, 4096 bits) and ECDSA curves (`secp384r1`, `secp521r1`).

### πŸ“Œ Data Channel Encryption
- **Default** – AES-128-GCM.
- **Supported** – AES-GCM and AES-CBC with multiple key lengths.

### πŸ“Œ Control Channel Encryption
- **Default** – `TLS-ECDHE-*` with AES-128-GCM and SHA256.
- **Supported** – Configurable based on certificate type (ECDSA or RSA).

### πŸ“Œ Diffie-Hellman Key Exchange
- **Default** – ECDH with `prime256v1`.
- **Supported** – ECDH and classic DH keys.

### πŸ“Œ HMAC Digest Algorithm
- **Default** – SHA256.
- **Supported** – SHA256, SHA384, SHA512.

### πŸ“Œ `tls-auth` and `tls-crypt`
- **Default** – `tls-crypt` enabled for additional security.
- **Supported** – Both `tls-auth` and `tls-crypt`.

---

πŸ“Œ **Why Use This Script?**
βœ” **Fast & Secure** – Minimal setup, maximum security.
βœ” **Customizable** – Adjust settings for your needs.
βœ” **Lightweight & Efficient** – No unnecessary bloat.

➑️ **Download and deploy your VPN today!** πŸš€