{"id":15056942,"url":"https://github.com/aditya1404sal/vulcanguard","last_synced_at":"2026-02-19T06:30:45.509Z","repository":{"id":244439593,"uuid":"815249640","full_name":"Aditya1404Sal/VulcanGuard","owner":"Aditya1404Sal","description":"Vulcan Guard is a comprehensive network management tool designed to mitigate DDOS attacks","archived":false,"fork":false,"pushed_at":"2024-10-29T20:57:43.000Z","size":35074,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T20:23:26.951Z","etag":null,"topics":["ebpf","golang","load-balancer","packet-filter","ratelimiter","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aditya1404Sal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-14T17:19:08.000Z","updated_at":"2024-10-29T20:57:47.000Z","dependencies_parsed_at":"2024-07-07T20:03:12.300Z","dependency_job_id":"68c9813e-ab76-4a11-997f-89505c3d3c70","html_url":"https://github.com/Aditya1404Sal/VulcanGuard","commit_stats":null,"previous_names":["aditya1404sal/suboptimal-firewall","aditya1404sal/vulcanguard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aditya1404Sal%2FVulcanGuard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aditya1404Sal%2FVulcanGuard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aditya1404Sal%2FVulcanGuard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aditya1404Sal%2FVulcanGuard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aditya1404Sal","download_url":"https://codeload.github.com/Aditya1404Sal/VulcanGuard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239140452,"owners_count":19588426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebpf","golang","load-balancer","packet-filter","ratelimiter","reverse-proxy"],"created_at":"2024-09-24T21:59:05.452Z","updated_at":"2025-10-15T09:14:51.241Z","avatar_url":"https://github.com/Aditya1404Sal.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vulcan-Guard\n\n## Overview\n\n**Vulcan Guard** is a network management tool designed to test network security and performance. It combines a rate limiter, an eBPF-based XDP (Express Data Path) packet filter, and a load balancer with multiple algorithm support to provide a working firewall solution :D.\n\n## Features\n\n1. **Rate Limiter**:\n   - Controls the rate of incoming traffic to prevent overwhelming the network.\n   - Protects against DDoS attacks and ensures fair usage of network resources.\n   - Supports sticky HTTP session brownlisting: If a valid request with a session ID exceeds a pseudo rate of X requests in Y seconds, the source IP will be temporarily brownlisted (ie: denied service for a set Duration).\n\n2. **eBPF-based XDP Packet Filter**:\n   - Utilizes eBPF (Extended Berkeley Packet Filter) for high-performance packet filtering.\n   - Operates at the lowest point in the network stack for minimal latency.\n   - Customizable filtering rules to suit specific security needs.\n\n3. **Load Balancer**:\n   - **Round Robin Algorithm**:\n     - Distributes incoming traffic evenly across multiple servers.\n     - Ensures optimal resource utilization and enhances the performance and reliability of services.\n\n   - **Least Connection Algorithm**:\n     - Selects the server with the fewest active connections to distribute incoming traffic.\n     - Helps optimize server load balancing by directing requests to the least loaded server.\n     - Supports sticky sessions to maintain client-server affinity for HTTP sessions.\n\n## Installation\n\n### Prerequisites\n\n- Linux operating system with kernel version 4.14 or higher.\n- `libbpf` library installed.\n- `GCC` or `Clang` compiler.\n- `Go` version `1.22.0` or higher\n\n### Steps\n\n1. Clone the repository:\n   ```sh\n   git clone https://github.com/yourusername/suboptimal-Firewall.git\n   cd suboptimal-Firewall\n   ```\n\n2. Build the project:\n   ```sh\n   go build \n   ```\n3. Add the binary to the global scope\n\n```bash\n#If using zsh\nnano ~/.zshrc\n#if using bash\nnano ~/.bashrc\n```\n\nand add the path to the binary using\n\n```bash\nexport PATH=\"$PATH:/complete_path_to_cloned_repo/Suboptimal-firewall\"\n```\n\n4. Run the firewall:\n   ```sh\n   sudo Firewall\n   ```\n\n5. Stopping The firewall:\n   ```sh\n   Ctrl+C\n   ```\n\n## Configuration\n\nAdd a list of backend servers or URLs for Loadbalancing in \nhttps://github.com/Aditya1404Sal/Suboptimal-firewall/blob/6336a34363dd23fe10c6f9a3aa0cedbd51a6c73a/main.go#L88\n\n\n### eBPF-based XDP Packet Filter\n\nModify the eBPF filtering rules in `PacketFilter/pkfilter.c` file according to your usage (Optional) :\n```c\nSEC(\"xdp\")\nint xdp_filter(struct xdp_md *ctx) {\n    // Custom filtering logic\n    return XDP_PASS;\n}\n```\n\n\n## Usage\n\n### Starting the Firewall\n\nTo start the firewall with default settings:\n```sh\nsudo Firewall\n```\n\n### Logs and Monitoring\n\nLogs are stored in the root `/` directory. Monitor the firewall status and performance:\n```sh\ntail -f Firewall.log\n```\n# ⚠️ Disclaimer ⚠️\nWARNING: Vulcan-Guard is Underdeveloped\n\nThis project is currently  **NOT SUITABLE** for production environments. It is intended purely for learning and educational purposes . The current version lacks extensive testing, which can lead to security vulnerabilities, performance issues, and other critical problems.\n\nUse at Your Own Risk\n\nThe creator of this tool will not be held liable for any damages or negative outcomes resulting from its use. By using this tool, you acknowledge the potential risks and agree that the responsibility for any issues lies solely with you.\n\nFuture Development Needed\n\nFurther work is required to make this project a stable and reliable tool. Contributions and feedback are warmly welcomed to help improve its functionality and security.\n\n## Contributing\n\nI welcome contributions to improve suboptimal-Firewall. Please follow these steps to contribute:\n\n1. Fork the repository.\n2. Create a new branch: `git checkout -b feature-branch`.\n3. Make your changes and commit them: `git commit -m 'Add new feature'`.\n4. Push to the branch: `git push origin feature-branch`.\n5. Open a pull request.\n\n## Credits\n\nThe eBPF-based XDP Packet Filter implementation in this project is inspired by the article [\"Simple XDP Firewall with Golang\"](https://dev.to/xenbytes/simple-xdp-firewall-with-golang-1da3) by Hasan Behbahani. This article provided a solid foundation upon which I built the dynamic channel-based IP management system, enabling real-time IP blacklisting and automatic unblocking of temporarily blocked IPs.\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faditya1404sal%2Fvulcanguard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faditya1404sal%2Fvulcanguard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faditya1404sal%2Fvulcanguard/lists"}