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 - developers@containership.io
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!