Home

Awesome

Assimilator<img src="https://github.com/videlanicolas/assimilator/blob/master/media/logo.png" width="100">

Build Status

The first restful API to control all firewall brands. Configure any firewall with restful API calls, no more manual rule configuration. Centralize all your firewalls into one API.

<img src="http://www.psdgraphics.com/wp-content/uploads/2012/05/firewall-security.jpg" width=50 /> Multiplatform

<img src="http://www.iconsdb.com/icons/preview/orange/key-xxl.png" width=50 /> Authentication

<img src="http://cdn.crunchify.com/wp-content/uploads/2012/10/json_logo.png" width=50 /> JSON

<img src="https://www.python.org/static/opengraph-icon-200x200.png" width=50 /> Python

<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Opensource.svg/220px-Opensource.svg.png" width=50 /> Open Source

How it works

All firewalls share a common ground on their configuration, for example:

Assimilator makes it possible to configure via the five RESTful methods all these portions of configuration with JSON objects:

URL Format

/api/site/resource

Example

Request: GET /api/headquarters/config

Response: HTTP 200
{"config" : "<...>"}

Request: POST /api/branch/rules
{"name" : "Test01", "from" : "trust", "to" : "untrust",
"source" : "10.1.1.1", "destination" : "8.8.8.8", "action" : "allow",
"application" : "junos-dns-udp"}
Response: HTTP 201
{}
Request: DELETE /api/branch1/rules
{"name" : "Permit Any"}
Response: HTTP 200
{}

Request: PUT /api/branch2/objects/address-group
{"name" : "Admin_Servers", "members" : [ "Server02" ] }
Response: HTTP 200
{}

Request: PATCH /api/paloalto/headquarters/route
{"name" : "internal", "destination" : "10.0.0.0/8", "next-hop" : "172.16.1.2" }
Response: HTTP 200
{}

Installation

With Docker (recommended):

cd /opt
git clone https://github.com/videlanicolas/assimilator && cd assimilator
./generate_certificate.sh
docker build -t assimilator /opt/assimilator/
docker run -d -p 443:443/tcp assimilator

Without Docker:

cd /opt
git clone https://github.com/videlanicolas/assimilator && cd assimilator
./generate_certificate.sh
sudo ./install.sh

Documentation

Read the <a href="http://assimilator.readthedocs.io/en/latest/">documentation</a>.