• No results found

Saruman Documentation

N/A
N/A
Protected

Academic year: 2021

Share "Saruman Documentation"

Copied!
32
0
0

Loading.... (view fulltext now)

Full text

(1)

Tycho Tatitscheff

(2)
(3)

1 Saruman 3

1.1 Most important Urls . . . 3

1.2 Technologies used . . . 3

1.3 Available commands . . . 3

1.4 AMQP json-rpc api. . . 4

2 Options 5 2.1 Command line options . . . 5

3 Assumptions 7 4 Further reading 9 5 Improving saruman: report bugs, fork on github or email us 11 6 Credits 13 7 Information for developers of saruman 15 7.1 Running tests . . . 15

7.2 Python versions . . . 15

7.3 Necessary programs . . . 15

8 Complete documentation from the source code 17 8.1 saruman package . . . 17

9 Entrypoints for saruman 21 10 Changelog for Saruman 23 10.1 0.3.0 (2016-01-03) . . . 23 10.2 0.2.3 (2016-01-03) . . . 23 10.3 0.2.2 (2016-01-03) . . . 23 10.4 0.2.1 (2016-01-03) . . . 23 10.5 0.2.0 (2016-01-03) . . . 23 10.6 0.1.2 (2016-01-03) . . . 23 10.7 0.1.1 (2016-01-03) . . . 23 10.8 0.1.0 (2016-01-03) . . . 24

Python Module Index 25

(4)
(5)

• dns • dhcp

• intruision detection • reverse proxy)

build by a former Iresam. It targets I-Resam need’s first but should be enough flexible to be used elsewhere.

sarumantakes care of the boring bits for you.

Here’s an overview of the documentation we have for you. First the documentation onusingsaruman:

(6)
(7)

Saruman

A simply logic, configuration based, distributable and reliable extended-firewall.

Saruman is a extended firewall (meaning firewall + dns + dhcp +intruision detection + reverse proxy) build by a former Iresam. It targets I-Resam need’s first but should be enough flexible to be used elsewhere.

It still unstable and yet brings not that much. Try at your own risks.

1.1 Most important Urls

• The full documentation is atsaruman.readthedocs.org

• We are on Pypi so we’re only an pip install saruman away from installation on your computer.

• The code is atgithub.com/tychota/saruman. And... we’re automatically being tested by Scrutinizer !

1.2 Technologies used

• Sarumandoes requirePython 3, and if possible the newest version (Python3.5for now) • Itdoes requirean Celery broker : takeRabbitMQ, it is good, fast and reliable.

• Itdoes only workson a recent linux machine : it requiresnftablesandiproute2so a linux 4+ kernel would be a necessity.

1.3 Available commands

Saruman gives you three commands to manage the worker and one to run your firewall. Worker’s commands must be run in root since they manage main parts of your system. Firewall’s one doesn’t need this. The commands are:

• saruman workers enable: start the celery workers on the machine. • saruman workers disable: start the celery workers on the machine. • saruman workers reload: restart the celery workers on the machine.

(8)

• saruman firewall start: start the firewall

1.4 AMQP json-rpc api

Still infant

(9)

Options

2.1 Command line options

These command line options are supported by the release commands (saruman workers enable, saruman workers enable,saruman workers enable, saruman firewall start).

-v, --verbose Run in verbose mode, printing a bit more, mostly only interesting for debugging.

-h, --help Display help text

(10)
(11)

Assumptions

Sarumanoriginated atIresamso there are some assumptions build-in that might or might not fit you but I’m pretty sure it’ll probably fit :-)

• In our case,sarumanis run on a VM cluster so we have different VM handling different stuff For instance one for the netfilter firewall and router, one for dhcp, one for reverse proxy, one for admin site, one for AMQP broker so you have to tag the tasks you create sosarumancould know which VM has to handle what.

That’s just the style we started with. Pretty clear and useful.

(12)
(13)

Further reading

Mighty fine documementation, the stuff you’re reading now. But some other suggestions, ideas and a different tone might help you improve your firewall. So here are some pointers to other material. And documentation onsarumanas a project; for instance for reporting bugs and fixing the code:

(14)
(15)

Improving saruman: report bugs, fork on github or email us

Did you find a bug? Do you have an improvement? Do you have questions? We runsarumanas a proper open source project on github athttps://github.com/tychota/saruman, so you have three basic options:

• Report bugs or problems athttps://github.com/tychota/saruman/issues! And feature requests too ! Normally you’ll get a quick reply within a day or so, depending on our relative timezones. If you don’t get an answer within a few days, please send off a quick email to remind us.

• Or make a fork, fix the bug or add something and open a pull request.

If you are going to fork saruman, take a look atInformation for developers of sarumanfor setup and test running information.

• You can mailTycho Tatitscheffif you want to ask a question, too. Or if you want to tell us about an idea you have.

(16)
(17)

Credits

• Tycho Tatitscheffis the originator and main author.

• Zest softwarefor their releases manager and also for inspiration (copy paste of most docs).

(18)
(19)

Information for developers of saruman

7.1 Running tests

We like to use Virtual env to get a simple environment and to use pytest to test. When you are in the root folder of yoursarumancheckout, do this:

$ virtualenv ~/venv/saruman --python=`which python3.5` # Or a different python version. $ source ~/venv/firewall/bin/activate

$ python setup.py test

7.2 Python versions

The tests currently pass on python 3.4 and 3.5. Travis continuous integration tests 3.4 and 3.5 for us automatically.

7.3 Necessary programs

To run the firewall and test, you need to have an AMQP broker ! On ubuntu:

$ sudo apt-get install rabbitmq

(20)
(21)

Complete documentation from the source code

8.1 saruman package

8.1.1 Subpackages saruman.actions package Submodules saruman.actions.start module saruman.app package Submodules saruman.app.queue module saruman.conf package Submodules saruman.conf.celery module saruman.helpers package Submodules saruman.helpers.check module saruman.helpers.check.get_celery_worker_status() saruman.helpers.config module saruman.helpers.error_handling module

saruman.helpers.error_handling.error_handling(*args,**kwds)

(22)

saruman.helpers.exceptions module

exceptionsaruman.helpers.exceptions.FirewallGenericError Bases:exceptions.Exception saruman.helpers.logger module saruman.tasks package Subpackages saruman.tasks.iproute2 package Submodules saruman.tasks.iproute2.interfaces module saruman.tasks.kernel package Submodules saruman.tasks.kernel.modprobe module

tasks.kernel.modprobe Contains all the functionalities that help loading or unloading a kernel module

classsaruman.tasks.kernel.modprobe.Check Bases:celery.app.task.Task

Tache de vérification de l’activation d’un module dans le kernel

Vérifie si le module module_nameest activé dans le kernel. Se réfère à une liste des modules autorisés (ainsi, l’utilisateur ne peut pas supprimer le module du filesystem par exemple). La tache tourne dans un context (:py:func:error_handling) qui gère les erreurs

acks_late= False

ignore_result= False

name= ‘kernel.modules.check’

rate_limit= None

request_stack= <celery.utils.threads._LocalStack object>

run(module_name)

Parameters module_name(str) – le nom du module à checker

Returns oui si le module est activé, non sinon

Return type bool

send_error_emails= False

(23)

classsaruman.tasks.kernel.modprobe.Add Bases:celery.app.task.Task

Tache de vérification de l’activation d’un module dans le kernel

Vérifie si le module module_nameest activé dans le kernel. Se réfère à une liste des modules autorisés (ainsi, l’utilisateur ne peut pas supprimer le module du filesystem par exemple). La tache tourne dans un context (:py:func:error_handling) qui gère les erreurs

acks_late= False

ignore_result= False

name= ‘kernel.modules.add’

rate_limit= None

request_stack= <celery.utils.threads._LocalStack object>

run(module_name)

Parameters module_name(str) – le nom du module à checker

send_error_emails= False

serializer= ‘json’

store_errors_even_if_ignored= False

track_started= False

classsaruman.tasks.kernel.modprobe.AddWithArgs Bases:celery.app.task.Task

Tache de vérification de l’activation d’un module dans le kernel

Vérifie si le module module_nameest activé dans le kernel. Se réfère à une liste des modules autorisés (ainsi, l’utilisateur ne peut pas supprimer le module du filesystem par exemple). La tache tourne dans un context (:py:func:error_handling) qui gère les erreurs

acks_late= False

ignore_result= False

name= ‘kernel.modules.addWithArgs’

rate_limit= None

request_stack= <celery.utils.threads._LocalStack object>

run(module_name,module_args)

Parameters

module_name(str) – le nom du module à checker • module_args(dict) – un dictionnaire d’arguments send_error_emails= False

(24)

serializer= ‘json’

store_errors_even_if_ignored= False

track_started= False

classsaruman.tasks.kernel.modprobe.Remove Bases:celery.app.task.Task

acks_late= False

ignore_result= False

name= ‘kernel.modules.remove’

rate_limit= None

request_stack= <celery.utils.threads._LocalStack object>

run(module_name) send_error_emails= False serializer= ‘json’ store_errors_even_if_ignored= False track_started= False saruman.tasks.misc package Submodules saruman.tasks.misc.hello_world module

(25)

Entrypoints for saruman

Sarumanuse an unique cli-entrypoint, that useclickto parse command line arguments

(26)
(27)

Changelog for Saruman

10.1 0.3.0 (2016-01-03)

• big modifications of the documentation structure

10.2 0.2.3 (2016-01-03)

• fixing badges and coverage in testing

10.3 0.2.2 (2016-01-03)

• testing works

10.4 0.2.1 (2016-01-03)

• fixing a lot of nasty issues

10.5 0.2.0 (2016-01-03)

• adding sphinx documentation • adding CI coverage

• fixing nasty unpack in modprobe.py

10.6 0.1.2 (2016-01-03)

• fixing some typo.

10.7 0.1.1 (2016-01-03)

• remove download urls as we use sdist

(28)

10.8 0.1.0 (2016-01-03)

• add zest.release to perform check on release an better automation • add some yaml config files

(29)

s

saruman.actions.start,17 saruman.app.queue,17 saruman.conf.celery,17 saruman.helpers.check,17 saruman.helpers.config,17 saruman.helpers.error_handling,17 saruman.helpers.exceptions,18 saruman.helpers.logger,18 saruman.tasks.kernel.modprobe,18 saruman.tasks.misc.hello_world,20 25

(30)
(31)

A

acks_late (saruman.tasks.kernel.modprobe.Add at-tribute),19 acks_late (saruman.tasks.kernel.modprobe.AddWithArgs attribute),19 acks_late (saruman.tasks.kernel.modprobe.Check attribute),18 acks_late (saruman.tasks.kernel.modprobe.Remove attribute),20

Add (class in saruman.tasks.kernel.modprobe),19 AddWithArgs (class in

saru-man.tasks.kernel.modprobe),19

C

Check (class in saruman.tasks.kernel.modprobe), 18

E

error_handling() (in module saru-man.helpers.error_handling),17

F

FirewallGenericError,18

G

get_celery_worker_status() (in module saru-man.helpers.check),17

I

ignore_result (saru-man.tasks.kernel.modprobe.Add at-tribute),19 ignore_result (saru-man.tasks.kernel.modprobe.AddWithArgs attribute),19 ignore_result (saru-man.tasks.kernel.modprobe.Check attribute),18 ignore_result (saru-man.tasks.kernel.modprobe.Remove attribute),20

N

name (saruman.tasks.kernel.modprobe.Add attribute),19 name (saruman.tasks.kernel.modprobe.AddWithArgs attribute),19

name (saruman.tasks.kernel.modprobe.Check at-tribute),18

name (saruman.tasks.kernel.modprobe.Remove at-tribute),20

R

rate_limit (saruman.tasks.kernel.modprobe.Add attribute),19 rate_limit (saruman.tasks.kernel.modprobe.AddWithArgs attribute),19 rate_limit (saruman.tasks.kernel.modprobe.Check attribute),18 rate_limit (saruman.tasks.kernel.modprobe.Remove attribute),20

Remove (class in saruman.tasks.kernel.modprobe), 20 request_stack (saru-man.tasks.kernel.modprobe.Add at-tribute),19 request_stack (saru-man.tasks.kernel.modprobe.AddWithArgs attribute),19 request_stack (saru-man.tasks.kernel.modprobe.Check attribute),18 request_stack (saru-man.tasks.kernel.modprobe.Remove attribute),20 run() (saruman.tasks.kernel.modprobe.Add method),19 27

(32)

run() (saruman.tasks.kernel.modprobe.AddWithArgs method),19 run() (saruman.tasks.kernel.modprobe.Check method),18 run() (saruman.tasks.kernel.modprobe.Remove method),20

S

saruman.actions.start (module),17 saruman.app.queue (module),17 saruman.conf.celery (module),17 saruman.helpers.check (module),17 saruman.helpers.config (module),17 saruman.helpers.error_handling (module),17 saruman.helpers.exceptions (module),18 saruman.helpers.logger (module),18 saruman.tasks.kernel.modprobe (module),18 saruman.tasks.misc.hello_world (module),20 send_error_emails (saru-man.tasks.kernel.modprobe.Add at-tribute),19 send_error_emails (saru-man.tasks.kernel.modprobe.AddWithArgs attribute),19 send_error_emails (saru-man.tasks.kernel.modprobe.Check attribute),18 send_error_emails (saru-man.tasks.kernel.modprobe.Remove attribute),20

serializer (saruman.tasks.kernel.modprobe.Add at-tribute),19 serializer (saruman.tasks.kernel.modprobe.AddWithArgs attribute),19 serializer (saruman.tasks.kernel.modprobe.Check attribute),19 serializer (saruman.tasks.kernel.modprobe.Remove attribute),20 store_errors_even_if_ignored (saru-man.tasks.kernel.modprobe.Add at-tribute),19 store_errors_even_if_ignored (saru-man.tasks.kernel.modprobe.AddWithArgs attribute),20 store_errors_even_if_ignored (saru-man.tasks.kernel.modprobe.Check attribute),19 store_errors_even_if_ignored (saru-man.tasks.kernel.modprobe.Remove attribute),20

T

track_started (saru-man.tasks.kernel.modprobe.Add at-tribute),19 track_started (saru-man.tasks.kernel.modprobe.AddWithArgs attribute),20 track_started (saru-man.tasks.kernel.modprobe.Check attribute),19 track_started (saru-man.tasks.kernel.modprobe.Remove attribute),20 28 Index

References

Related documents

When someone is struggling with their emotional health there are things we can do to help including listening to that person, without judgement, giving someone time and

The Archdiocese of New York (ADNY) and Villanova University Center for Church Management and Business Ethics have agreed to a collaborative initiative to offer a unique program of

Thanking: Thanks for getting back to me so quickly (note: please copy the tone and emphasis carefully here.)!. Reacting:

The candidates, given a multi-story structure, a charged hose line with nozzle, and working as a team, shall demonstrate proper procedures for extinguishing an interior.. fire on

Keywords: intimate partner violence (IPV); parenting; children; mother–child interactions; behavioral problems: Child Behavior Checklist (CBCL); shelters.. Violence Experienced

Moss et al., (2008) administered the tests to healthy adults in a cubicle infused with the aroma of Peppermint essential oil and found that overall quality

The results of this study show that people in  the risk is valued condition took significantly more risks than people in the safety seeking is  socially valued condition, which

The City aims to address homelessness through a collaborative approach with Los Angeles County that includes preventing households from entering homelessness, subsidizing