NAME
Rex::Commands::Iptables - Iptable Management Commands
DESCRIPTION
With this Module you can manage basic Iptables rules.
Version <= 1.0: All these functions will not be reported.
Only open_port and close_port are idempotent.
SYNOPSIS
use Rex::Commands::Iptables;
task "firewall", sub {
iptables_clear;
open_port 22;
open_port [22, 80] => {
dev => "eth0",
};
close_port 22 => {
dev => "eth0",
};
close_port "all";
redirect_port 80 => 10080;
redirect_port 80 => {
dev => "eth0",
to => 10080,
};
default_state_rule;
default_state_rule dev => "eth0";
is_nat_gateway;
iptables t => "nat",
A => "POSTROUTING",
o => "eth0",
j => "MASQUERADE";
};
EXPORTED FUNCTIONS
- open_port($port, $option)
-
Open a port for inbound connections.
task "firewall", sub { open_port 22; open_port [22, 80]; open_port [22, 80], dev => "eth1"; }; task "firewall", sub { open_port 22, dev => "eth1", only_if => "test -f /etc/firewall.managed"; } ;
- close_port($port, $option)
-
Close a port for inbound connections.
task "firewall", sub { close_port 22; close_port [22, 80]; close_port [22, 80], dev => "eth0", only_if => "test -f /etc/firewall.managed"; };
- redirect_port($in_port, $option)
-
Redirect $in_port to an other local port.
task "redirects", sub { redirect_port 80 => 10080; redirect_port 80 => { to => 10080, dev => "eth0", }; };
- iptables(@params)
-
Write standard iptable comands.
task "firewall", sub { iptables t => "nat", A => "POSTROUTING", o => "eth0", j => "MASQUERADE"; iptables t => "filter", i => "eth0", m => "state", state => "RELATED,ESTABLISHED", j => "ACCEPT"; iptables "flush"; iptables -F; iptables flush => "filter"; iptables -F => "filter"; };
- is_nat_gateway
-
This function create a nat gateway for the device the default route points to.
task "make-gateway", sub { is_nat_gateway; };
- default_state_rule(%option)
-
Set the default state rules for the given device.
task "firewall", sub { default_state_rule(dev => "eth0"); };
- iptables_list
-
List all iptables rules.
task "list-iptables", sub { print Dumper iptables_list; };
- iptables_clear
-
Remove all iptables rules.
task "no-firewall", sub { iptables_clear; };