This repository hosts the FWUnify prototype, developed for managing multiple firewalls in corporate networks.
To use this application, simply create and run a Docker container using the image available here.
Or, if you wish, you can also build the image yourself with the provided Dockerfile.
You can find some examples of firewall rules at intent_example, use curl to send those rules to your running FWUnify environment:
cd intent_examples
curl -u user1:user1 --data-binary "@intent_acl_1.txt" -X POST http://localhost:5000Now you can verify the firewall rules, such as with iptables:
sudo iptables -LTo remove a rule, edit it replacing the "add" marker with "del" and send the intent again with curl, or if you prefer, run the command below:
sudo iptables -FFirst, make sure you have the following requirements:
Then, start by using pipenv to install all dependencies:
pipenv install -dWARNING: Ensure that the SSH service is enabled and that the settings in /etc/ssh/sshd_config do allow for text password access
Create an user to be used by FWUnify:
sudo useradd -G sudo -p fwunify fwunifyAccess the virtual environment
pipenv shellMake sure RabbitMQ services are enabled and working:
sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restartIf everything is setup and working, then it's time to start the micro-services required for FWUnify to work:
bash scripts/start_microservices.shLastly, run FWUnify with:
python src/api.pyDevelopment: Maurício Fiorenza
Guidance: Diego Kreutz