' + _('Hide Search Matches') + '
') 207 | .appendTo($('#searchbox')); 208 | } 209 | }, 210 | 211 | /** 212 | * init the domain index toggle buttons 213 | */ 214 | initIndexTable : function() { 215 | var togglers = $('img.toggler').click(function() { 216 | var src = $(this).attr('src'); 217 | var idnum = $(this).attr('id').substr(7); 218 | $('tr.cg-' + idnum).toggle(); 219 | if (src.substr(-9) == 'minus.png') 220 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 221 | else 222 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 223 | }).css('display', ''); 224 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 225 | togglers.click(); 226 | } 227 | }, 228 | 229 | /** 230 | * helper function to hide the search marks again 231 | */ 232 | hideSearchWords : function() { 233 | $('#searchbox .highlight-link').fadeOut(300); 234 | $('span.highlighted').removeClass('highlighted'); 235 | }, 236 | 237 | /** 238 | * make the url absolute 239 | */ 240 | makeURL : function(relativeURL) { 241 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 242 | }, 243 | 244 | /** 245 | * get the current relative url 246 | */ 247 | getCurrentURL : function() { 248 | var path = document.location.pathname; 249 | var parts = path.split(/\//); 250 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 251 | if (this == '..') 252 | parts.pop(); 253 | }); 254 | var url = parts.join('/'); 255 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 256 | }, 257 | 258 | initOnKeyListeners: function() { 259 | $(document).keyup(function(event) { 260 | var activeElementType = document.activeElement.tagName; 261 | // don't navigate when in search box or textarea 262 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { 263 | switch (event.keyCode) { 264 | case 37: // left 265 | var prevHref = $('link[rel="prev"]').prop('href'); 266 | if (prevHref) { 267 | window.location.href = prevHref; 268 | return false; 269 | } 270 | case 39: // right 271 | var nextHref = $('link[rel="next"]').prop('href'); 272 | if (nextHref) { 273 | window.location.href = nextHref; 274 | return false; 275 | } 276 | } 277 | } 278 | }); 279 | } 280 | }; 281 | 282 | // quick alias for translations 283 | _ = Documentation.gettext; 284 | 285 | $(document).ready(function() { 286 | Documentation.init(); 287 | }); -------------------------------------------------------------------------------- /docs/build/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/down-pressed.png -------------------------------------------------------------------------------- /docs/build/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/down.png -------------------------------------------------------------------------------- /docs/build/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/file.png -------------------------------------------------------------------------------- /docs/build/_static/fonts/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/RobotoSlab-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/RobotoSlab-Bold.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/build/_static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/build/_static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/videlanicolas/assimilator/568f5d690ddbcd37f55ffd2611fe486a9e41052d/docs/build/_static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/build/_static/js/theme.js: -------------------------------------------------------------------------------- 1 | require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;oJSON REST API wrapper for vendor firewalls.
165 |The first thing you need to do is create a configuration file that adjusts to your needs. Many of these parameters have already been configured for you, but some minimal configuration is needed.
173 |An example configuration file can be found in the repo. This file specifies the initial configuration for Assimilator, this should be mounted as a volume in the Docker container with the ‘-v’ argument on ‘/etc/assimilator/’.
174 |Logfile indicates where logs should be stored.
177 |178 |179 |logfile = /var/log/assimilator.log
The log level that should be logged [DEBUG, INFO, WARN, ERROR, CRIT, FATAL].
180 |181 |182 |loglevel = WARN
The date and time format for the logs, the default is Syslog friendly.
183 |184 |185 |format = %d/%m/%Y %H:%M:%S
The location for the API keys of each user, this file should exist only. API keys are managed through the REST api.
186 |187 |188 |apikeyfile = /etc/assimilator/api.key
The location for all Firewall related authentication. This is managed thorugh the REST api.
189 |190 |191 |firewalls = /etc/assimilator/firewalls.json
Where the API should listen.
192 |193 |194 |address = 0.0.0.0
What port should Assimilator listen to, default is 443.
195 |196 |197 |port = 443
This is the authentication required to modify Firewall credentials and user’s API keys.
201 |From where should Assimilator authenticate users? For now, the only option is ‘static’.
202 |203 |204 |type = static
The user and password required for admin login to the API.
205 |206 |208 |user = admin 207 | password = secret
Same as Key Management, this section describes the admin user and password required to configure Firewall credentials.
212 |From where should Assimilator authenticate users? For now, the only option is ‘static’.
213 |214 |215 |type = static
The user and password required for admin login to the API.
216 |217 |219 |user = admin 218 | password = secret
Assimilator can be installed through Docker or cloned into a directory and run from there. Personally I prefer Docker since it’s more reliable, but both ways work.
172 |The best way to install Assimilator is through Docker:
175 |176 |177 |$ docker pull videlanicolas/assimilator:stable
The latest build is constantly improving, I recomend the stable version or instead the latest tag which are also stable:
178 |179 |180 |$ docker pull videlanicolas/assimilator:1.2.2
Run a container:
181 |182 |183 |$ docker run -d -v /path/to/configuration:/etc/assimilator/ -p 443:443 videlanicolas/assimilator:stable
Docker containers are not peristent, so if you want to maintain your configured Firewalls and API keys you should mount an external directory into the container, that’s what the -v is for.
184 |A.K.A I don’t trust your Docker image.
188 |You can clone the repo from Github and build your image of Assimilator from the dockerfile.
189 |190 |192 |$ git clone https://github.com/videlanicolas/assimilator.git 191 | $ docker build -t assimilator .
If you don’t want to use Docker there is a bash script to install the dependencies. Also there is another bash script to generate a random certificate for HTTPS connections.
193 |194 |198 |$ git clone https://github.com/videlanicolas/assimilator.git 195 | $ chmod +x install.sh generate_certificate.sh 196 | $ ./generate_certificate.sh 197 | $ ./install.sh
Assimilator was built to enable automotion through REST API, using JSON objects for easy understanding. With Assimilator a developer can self-serve his/her access through the network, while also auditors can request information without the need of network engineers. This API wraps around all possible vendor Firewalls, let it be appliances, virtual machines or cloud ACL.
172 |With Assimilator one can automatize Firewall rules easily, just by simply make an HTTP request one can add/remove/modify/view rules and routes.
173 |Altough there are other repos and people working on Firewall automation, this is the only repo that serves an API. I’m currently working alone in this and that’s why I released Assimilator under MIT License, because I need other people to help with other Firewall brands and bug fixes.
176 |180 |198 |MIT License
181 |Copyright (c) 2017
182 |Permission is hereby granted, free of charge, to any person obtaining a copy 183 | of this software and associated documentation files (the “Software”), to deal 184 | in the Software without restriction, including without limitation the rights 185 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 186 | copies of the Software, and to permit persons to whom the Software is 187 | furnished to do so, subject to the following conditions:
188 |The above copyright notice and this permission notice shall be included in all 189 | copies or substantial portions of the Software.
190 |THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 191 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 192 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 193 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 194 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 195 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 196 | SOFTWARE.
197 |