Coder Social home page Coder Social logo

shrest4647 / cloudfirewall Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudfirewall/cloudfirewall

0.0 0.0 0.0 61 KB

Firewall for distributed servers across different cloud providers

License: Other

Python 26.79% Shell 1.26% Jupyter Notebook 71.94%

cloudfirewall's Introduction

Cloud Firewall

Cloud Firewall provides firewall for distributed servers across different cloud providers. While each of the cloud providers have their own firewall solutions, it can be difficult to maintain consistency across them. Cloud firewall provides a single dashboard to manage the firewall rules across all cloud providers.

Cloud firewall does not depend on the firewall service provided by the cloud providers, instead the firewall rules are applied at the individual server level using nftables package. In that sense, cloud firewall works independently of the cloud providers.

Requirements

While enforcing and monitoring firewall is the main requirement for building Cloud firewall, here are the additional requirements considered for the development:

  • Be cloud independent.
  • Be easy to deploy; Single server deployment.
  • Be easy to create security groups, apply to servers and monitor them.
  • Continuously monitor the servers for vulnerabilities
  • Monitor unusual activities (or intrusions) from within the network (eg. port scanning, unusual processes, logins)
  • Alert user on detecting suspicious activity

Architecture

The architecture is based on agents. Firewall agents are installed on the client machines which communicate with the Firewall master server via GPRC. The agents receive firewall rules from the server and apply them on the server. Further, the agents continuously monitor the server and reports to the master.

The firewall master server provides REST API to read the status and reports of the individual connected servers which is presented in a web dashboard.

Development

This software is under development and is not ready for use.

To run a development version:

  1. Install the requirements.
pip3 install -r requirements.txt
  1. The communication between the GPRC server and the agents is done via GRPC channel secured with certificates. So, first the certificate needs to be generated. This step assumes that you have OpenSSL installed.
scripts/gen-ca-cert.sh
scripts/gen-server-cert.sh
scripts/gen-agent-cert.sh
  1. All GPRC communication is defined in .proto files inside proto directory. The wrapper for these proto files needs to be generated.
scripts/build-proto.sh
  1. Create .env file by copying .env_example. Make sure to make appropriate changes in the file to suit your needs.
cp .env_example .env
  1. Run the firewall server
python3 cloudfirewall/server/grpc_server.py
  1. Run the agent
python3 cloudfirewall/agent/grpc_client.py

License

Cloud Firewall is free and the source is available under the Server Side Public License (SSPL) v1 License.

cloudfirewall's People

Contributors

xoriole avatar firewall-admin avatar gagan607 avatar shrest4647 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.