Net-Firewall-BlockerHelper
Helps manage (un)blocking IPs via various firewalls.
Currently included backends are for...
- ipfw
- pf
The following generic backends are available.
- shell
And the following example/testing backends are available.
- dummy
On the todo list...
- iptables
use Net::Firewall::BlockerHelper;
# create a instance named ssh with a ipfw backend for port 22 tcp
my $fw_helper;
eval {
$fw_helper = Net::Firewall::BlockerHelper->new(
backend => 'ipfw',
ports => ['22'],
protocols => ['tcp'],
name => 'ssh',
);
};
if ($@) {
print 'Error: '
. $Error::Helper::error
. "\nError String: "
. $Error::Helper::errorString
. "\nError Flag: "
. $Error::Helper::errorFlag . "\n";
}
# start the backend
$fw_helper->init_backend;
# ban some IPs
$fw_helper->ban(ban => '1.2.3.4');
$fw_helper->ban(ban => '5.6.7.8');
# unban a IP
$fw_helper->unban(ban => '1.2.3.4');
# get a list of banned IPs
my @banned = $fw_helper->list;
foreach my $ip (@banned) {
print 'Banned IP: '.$ip."\n";
}
# teardown the backend, re-init, and re-ban everything
$fw_helper->re_init;
# teardown the backend
$fw_helper->teardown;
Install
Rquirements...
- Regexp::IPv4
- Regexp::IPv6
- Error::Helper
To install...
perl Makefile.PL
make
make test
make install
Or via cpanm...
cpanm Net::Firewall::BlockerHelper