A REST API to proactively manage SSH access by dynamically adding/removing IP addresses in firewalld rules.
Firewalld-rest is a REST application that dynamically updates firewalld rules on Linux servers to provide secure, on-demand SSH access. It implements a proactive security model by default-deny SSH for all IPs and only allows access for authorized IPs via authenticated API calls, preventing brute-force attacks before they happen. It integrates with firewalld using firewall-cmd to programmatically add or remove rich rules for specific IPv4 addresses.
System administrators and DevOps engineers managing Linux servers who need to secure SSH access against brute-force attacks, particularly those using firewalld and seeking a proactive alternative to reactive tools like fail2ban. It is also suitable for teams operating in Kubernetes clusters who require centralized SSH access control across multiple nodes.
Developers choose Firewalld-rest for its proactive security approach, which prevents unauthorized SSH attempts entirely rather than reacting after detection. Its unique selling point is the combination of JWT-secured REST API for manual IP authorization, persistent IP tracking, and seamless integration with firewalld, offering granular control and auditability over SSH access.
A rest application to update firewalld rules on a linux server
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements a default-deny SSH policy, preventing all unauthorized login attempts before they occur, as highlighted in its comparison with reactive tools like fail2ban.
Uses RS256 asymmetric encryption for API endpoints, ensuring only authorized requests with valid private keys can modify rules, detailed in the Authorization section.
Leverages firewall-cmd to programmatically add and remove rich rules for specific IPs, providing seamless control without manual shell commands, as shown in the Firewall-cmd section.
Stores authorized IPs in a file-based database that survives restarts, maintaining consistency and audit trails, mentioned in the Database section.
Supports multi-node clusters with ingress routing examples, making it suitable for containerized environments, as outlined in the Multi-node cluster setup.
Each SSH access requires a manual API call to add or remove IPs, which is cumbersome for teams with frequent access changes or dynamic IPs, lacking automation features.
Demands root access, JWT key generation, firewalld configuration, and systemd service deployment, with multiple steps documented in the installation guide that may deter less experienced users.
Only works with firewalld, so it's incompatible with other Linux firewall managers like iptables or nftables, restricting use in heterogeneous or legacy environments.
The README admits that tests for firewalld rules are not automated, relying on manual contributions, which could impact reliability and maintenance in production.
firewalld-rest is an open-source alternative to the following products: