DavidChayla / FortigateApi

Access Fortigate REST API in python
GNU General Public License v3.0
83 stars 34 forks source link

FortigateApi

Access Fortigate REST API in python

Just connect to your firewall and start automating everything:

Of theses objects:

Access to the firewall through HTTPS (tested ok fortigate firmware 5.2 or 5.4, should work for newer versions).

If an example is worth a thousand words (connect to the fw, create an fw address object, get the json definition of the object, modify the ip address and then delete the object):

import FortigateApi 

fg = FortigateApi.Fortigate('172.30.40.50', 'myvdom', 'admin', 'mypasswd') 

fg.AddFwAddress('srv-A','10.1.1.1/32')
200

fg.GetFwAddress('srv-A')
u'{\n  "http_method":"GET",\n  "results":[\n    {\n      "name":"srv-A",\n      "q_origin_key":"srv-A",\n      "uuid":"2103d064-d520-51e6-de84-16e9ab03b8ae",\n      "subnet":"10.1.1.1 255.255.255.255",\n      "type":"ipmask",\n      "start-ip":"10.1.1.1",\n      "end-ip":"255.255.255.255",\n      "fqdn":"",\n      "country":"",\n      "url":"",\n      "cache-ttl":0,\n      "wildcard":"10.1.1.1 255.255.255.255",\n      "comment":"",\n      "visibility":"enable",\n      "associated-interface":"",\n      "color":0,\n      "tags":[\n      ]\n    }\n  ],\n  "vdom":"dc2",\n  "path":"firewall",\n  "name":"address",\n  "mkey":"srv-A",\n  "status":"success",\n  "http_status":200,\n  "serial":"FWF90D3Z13003141",\n  "version":"v5.2.9",\n  "build":736\n}'

fg.SetFwAddress('srv-A','10.2.2.2/32')
200

fg.DelFwAddress('srv-A')
200

A toolbox of everything you need to manage the fw, used for daily production at Sigma Informatique. Clean and simple (at least i tried to)