Skip to content

OpenVPN Install 2.0.2

Choose a tag to compare

@alsyundawy alsyundawy released this 27 Jul 16:47
· 15 commits to master since this release

🚀 OpenVPN Install v2.0.2

Network Improvements, Compatibility Fixes & Code Quality

25 July 2026

This release introduces a new default VPN network, improves compatibility with existing installations, resolves several edge-case bugs, and further enhances script reliability and maintainability.


✨ Release Highlights

OpenVPN Install v2.0.2 focuses on simplifying long-term maintenance while improving network configuration, firewall compatibility, installer robustness, and overall code quality.


🔄 Changes

🌐 Updated Default VPN Network

The default IPv4 VPN subnet has been changed from:

10.8.0.0/24

to:

172.16.200.0/24

Benefits include:

  • Reduced likelihood of conflicts with existing private networks
  • Better suitability for enterprise and homelab environments
  • Improved compatibility with common LAN addressing schemes

Existing installations remain compatible and are automatically detected during uninstallation.


📦 Distribution Support

To simplify long-term maintenance and testing, support for the following distributions has been removed:

  • openSUSE
  • Arch Linux

The project now focuses on maintaining the most widely deployed and thoroughly tested Linux distributions.


🛠️ Bug Fixes

✅ IPv4 Validation

Resolved an issue in is_valid_ipv4() where IPv4 octets containing leading zeros could trigger Bash octal arithmetic errors.

Example:

192.168.001.100

The validation routine now handles these values safely and consistently.


🔥 firewalld Compatibility

Improved pattern matching within:

firewalld_direct_rule_exists()

to correctly detect firewall rules that include priority prefixes.

This prevents duplicate rule creation and improves compatibility with newer firewalld versions.


🌐 DNS Resolver Detection

Added an additional fallback when parsing:

/etc/resolv.conf

This improves compatibility across systems using different resolver configurations.


📥 EasyRSA Download Parsing

Improved HTTP header parsing by automatically removing carriage return (\r) characters when processing EasyRSA download responses.

This prevents parsing failures on servers that return CRLF-formatted headers.


📄 Client Configuration Generation

Added a more resilient fallback helper:

generate_client_config()

to improve generation of bundled .ovpn client configuration files when the primary method is unavailable.


🔄 Backward Compatibility

The uninstaller now dynamically detects the configured VPN subnet instead of assuming the default value.

This ensures older installations continue to uninstall correctly even if they were created with previous subnet configurations.


⚡ Optimizations

🧹 Centralized Client Configuration Logic

Refactored client configuration generation into a centralized implementation.

Benefits include:

  • Reduced code duplication
  • Easier maintenance
  • Improved consistency
  • Better long-term extensibility

✅ ShellCheck Compliance

The entire project has been reviewed to ensure strict ShellCheck compliance, improving script reliability, readability, and maintainability.


📈 Summary of Improvements

Area Improvements
🌐 Networking Default VPN subnet updated to 172.16.200.0/24
🔥 Firewall Improved firewalld rule detection
📥 Installer More robust EasyRSA download parsing
📄 Client Profiles Added resilient .ovpn generation fallback
🔄 Compatibility Dynamic subnet detection during uninstall
🧹 Code Quality Centralized configuration logic and improved ShellCheck compliance
📦 Maintenance Removed openSUSE and Arch Linux support

👨‍💻 Maintainer

Harry Dertin Sutisna (ALSYUNDAWY)
Alsyundawy IT Solution


🔄 Full Changelog

2.0.1...2.0.2