tesserarius
v0.3.2
Published
Basic iptables manipulation in nodejs
Downloads
10
Keywords
Readme
tesserarius
About
Build Status
Description
Basic iptables manipulation in nodejs.
Disclaimer
For now, tesserarius shells out when manipulating iptables rules. This will change in the future.
Author
ContainerShip Developers - [email protected]
Getting Started
Installation
npm install tesserarius --save
Examples
####Instantiation Instantiate a new tesserarius object.
const Tesserarius = require("tesserarius");
const tesserarius = new Tesserarius();
Creating a Chain
Creates a new chain with the given name
tesserarius.create_chain('MyChain', (err) => {
if(err) {
throw err;
}
});
Set Chain Policy
Sets the policy of a given chain
tesserarius.set_policy('MyChain', 'DROP', (err) => {
if(err) {
throw err;
}
});
Add Rule to Chain
Adds a rule with the given specifications to the chain if it does not already exist
const rule = {
interface: 'eth0',
policy: 'ACCEPT',
protocol: 'tcp',
destination_port: 22,
source: '10.0.10.0/24'
}
tesserarius.add_rule('MyChain', rule, (err) => {
if(err) {
throw err;
}
});
Remove Rule from Chain
Removes a rule with the given specifications from the chain if it exists
const rule = {
interface: 'eth0',
policy: 'ACCEPT',
protocol: 'tcp',
destination_port: 22,
source: '10.0.10.0/24'
}
tesserarius.delete_rule('MyChain', rule, (err) => {
if(err) {
throw err;
}
});
Set Chain Rules
Resets the chain rules to the given rules
const rules = [
{
interface: 'eth0',
policy: 'ACCEPT',
protocol: 'tcp',
destination_port: 22,
source: '10.0.10.0/24'
},
{
interface: 'eth0',
policy: 'ACCEPT',
protocol: 'tcp',
destination_port: 22,
source: '10.0.12.0/24'
}
]
tesserarius.set_rules('MyChain', rules, (err) => {
if(err) {
throw err;
}
});
Get Chain Rules
Returns an array of the given chain's rules
tesserarius.get_rules('MyChain', (err, rules) => {
if(err) {
throw err;
}
console.log(rules);
});
Flush
Flushes a given chain, or all chains if chain is omitted
tesserarius.flush('MyChain', (err) => {
if(err) {
throw err;
}
});
Contributing
Pull requests and issues are encouraged!