Skip to content

OpenVPN Install 2.0.1

Choose a tag to compare

@alsyundawy alsyundawy released this 19 Jul 08:23
· 20 commits to master since this release

πŸš€ Release v2.0.1 β€” Stability, Security & Multi-Distribution Expansion

Release Date: 19 July 2026

This release focuses on broader Linux distribution compatibility, stronger security hardening, improved reliability, and better installation consistency across all supported platforms. It also introduces automatic Easy-RSA version detection to ensure deployments always use the latest upstream release. :contentReference[oaicite:0]{index=0}


✨ Highlights

  • βœ… Added support for RHEL 8, AlmaLinux 8, Rocky Linux 8, and Oracle Linux 8
  • πŸ”„ Automatic retrieval of the latest Easy-RSA release from upstream
  • πŸ”’ Enhanced security throughout installation, certificate handling, and file management
  • ⚑ Improved reliability for DNS, firewall, CRL, and Unbound operations
  • πŸ› οΈ Refined helper functions and logging for easier maintenance

βž• Added

Linux Distribution Support

  • Added native support for:
    • RHEL 8
    • AlmaLinux 8
    • Rocky Linux 8
    • Oracle Linux 8

Easy-RSA

  • Added dynamic Easy-RSA version detection and download, ensuring the installer always deploys the latest stable upstream release. :contentReference[oaicite:1]{index=1}

πŸ› οΈ Improvements

Reliability

  • Improved IPv4/IPv6 address discovery using ip -o
  • Centralized logging and helper routines
  • Improved resolver parsing with full IPv6 resolver support
  • More reliable detection of the Unbound service using systemctl is-active

Firewall

  • Improved Firewalld direct rule insertion and removal for fully idempotent behavior

🐞 Bug Fixes

Package Management

  • Fixed package removal commands for:
    • Arch Linux (Pacman)
    • openSUSE (Zypper)

Certificate Management

  • Fixed atomic CRL replacement using mv, preventing temporary VPN interruptions during certificate revocation updates
  • Removed existing .ovpn files before regeneration to eliminate insecure overwrite scenarios

DNS & Validation

  • Hardened IPv4 and IPv6 validation for custom DNS input
  • Prevented empty package arguments when firewall packages are not required

System Compatibility

  • Improved /etc/os-release parsing while avoiding unnecessary shell state pollution

πŸ”’ Security

  • Enforced secure file creation with umask 077
  • Added explicit permission handling using chmod
  • Hardened command execution and dependency validation
  • Improved uninstall resilience and failure recovery
  • Reduced unsafe shell command handling throughout the installer

πŸš€ Release v2.0.0 β€” Official Repository Integration & Advanced DNS Support

Release Date: 19 July 2026

Version 2.0.0 is a major feature release introducing official OpenVPN repository integration, 35 public DNS providers, native dual-stack IPv6 DNS support, local Unbound resolver integration, extensive ShellCheck compliance, and comprehensive security hardening.


✨ Highlights

  • πŸš€ Official OpenVPN 2.6 repository integration
  • 🌐 35 integrated public DNS providers
  • 🌍 Native IPv4 + IPv6 DNS push support
  • πŸ›‘οΈ Local Unbound recursive resolver with DNSSEC hardening
  • βœ… Full ShellCheck compliance improvements
  • ⚑ Cleaner, modular, and more maintainable codebase

βž• Added

Official OpenVPN Repository

Added automatic installation from the official OpenVPN repository for:

  • Debian
  • Ubuntu
  • RHEL
  • Fedora

Public DNS Providers

Integrated 35 public DNS providers, including:

  • Google Public DNS
  • Cloudflare (Standard, Security, Family)
  • Quad9 (Secure, Unsecured, ECS)
  • OpenDNS (Home, FamilyShield)
  • AdGuard (Default, Family, Non-Filtering)
  • AliDNS
  • DNSPod
  • 114DNS
  • Baidu DNS
  • OneDNS
  • DNSPai
  • CleanBrowsing (Security, Adult, Family)
  • Verisign
  • DNS.WATCH
  • Yandex (Basic, Safe, Family)
  • Level3 / Lumen
  • Neustar (Default, Threat Protection, Family)
  • Oracle Dyn
  • Alternate DNS
  • Comodo Secure DNS
  • Freenom World DNS

Networking

  • Added IPv6 DNS push support across all supported DNS providers
  • Added Local Unbound Resolver (Option 1) featuring:
    • DNSSEC validation
    • DNS rebinding protection
    • OpenVPN-optimized configuration

Installer

Added new installer components:

  • installOpenVPNRepo()
  • installUnbound()
  • Automatic Unbound service validation with retry logic

πŸ› οΈ Improvements

Code Quality

  • Replaced repetitive DNS case blocks with an array-driven push_dns() helper
  • Improved restart validation for Unbound with automatic retry (up to 10 attempts)
  • Updated project documentation, headers, feature descriptions, and inline comments

🐞 Bug Fixes

Resolved multiple ShellCheck findings, including:

  • SC2164 β€” Protected all cd operations with proper error handling
  • SC2155 β€” Separated declaration and assignment
  • SC2086 β€” Properly quoted variable expansions
  • SC2006 β€” Replaced legacy backticks with $()
  • SC2166 β€” Replaced legacy test expressions with modern [[ ]]

Additional improvements:

  • Custom DNS validation now fully supports IPv6 addresses

πŸ”’ Security

Unbound Hardening

Enabled:

  • hide-identity
  • hide-version
  • harden-glue
  • harden-dnssec-stripped

Additional protections:

  • DNS rebinding protection for RFC1918 private networks
  • IPv6 ULA rebinding protection
  • use-caps-for-id (0x20 encoding) to improve DNS spoofing resistance

πŸ“¦ Summary

Version Focus
v2.0.1 Platform expansion, reliability improvements, security hardening, Easy-RSA automation
v2.0.0 Official OpenVPN repositories, 35 DNS providers, Unbound integration, IPv6 support, ShellCheck compliance, modular architecture

Full Changelog: 2.0.0...2.0.1