Cisco-ACL

 view release on metacpan or  search on metacpan

bin/aclmaker.pl  view on Meta::CPAN

    $params{protocol} = 'ip';
}
else {
    $params{protocol} = $cgi->param('protocol');
}
for my $param( qw|src_addr src_port dst_addr dst_port| ) {
    $params{$param} = [ map { scalar(s/^\s+//, s/\s+$//, $_) }
        split(/,/, $cgi->param($param)) ];
}

# create a Cisco::ACL object
my $acl = Cisco::ACL->new( %params );

# get back the ACLs and print them out
if( my $acls = $acl->acls ) {
    for( @{ $acls } ) {
        print "$_\n";
    }
}
else {
    print "could not parse input parms\n";
}

__END__


=head1 INPUT PARAMETERS

aclmaker.pl takes six input arguments:

=over 4

=item * permit_or_deny

One of C<permit> or C<deny>.

=item * src_addr

Source and destination addresses may be specified in any combination of
three syntaxes: a single IP address, a range of addresses in the format
a.a.a.a-b.b.b.b or a.a.a.a-b, or a CIDR block in the format x.x.x.x/nn. You
may supply a comma-separated list of any or all of these formats. Use the
word "any" to specify all addresses. For example, all of the following are
legal:

  10.10.10.20
  10.10.10.10-200
  20.20.20.20-30.30.30.30
  10.10.10.20
  10.10.10.10-200
  10.10.10.10/8,45.45.45.45 

=item * src_port

Ports may be specified as a singe port, a range of ports in the form
xxxx-yyyy, or a comma separated list of any combination of those. The valid
range is 0-65535.

=item * dst_addr

As with src_addr but for the destination endpoint.

=item * dst_port

As with src_port but tor the destination endpoint.

=item * protocol

The protocol for the ACL. One of C<tcp>, C<udp> or C<ip>. For compatibility
the value C<both> is interpreted as C<ip>.

=back

=head1 OUTPUT

The output of aclmaker.pl is by design rather plain. Given the following
input parms:

=over 4

=item * permit_or_deny = deny

=item * src_addr = 192.168.0.1/24

=item * src_port = any

=item * dst_addr = any

=item * dst_port = 25

=item * protocol = tcp

=back

The output is:

  deny tcp 192.168.0.0 0.0.0.255 any eq 25
  
=head1 SEE ALSO

Cisco::ACL

=head1 AUTHOR

James FitzGibbon, E<lt>jfitz@CPAN.orgE<gt>.

Chris De Young (chd AT chud DOT net) wrote acl.pl, the guts of which are in
Cisco::ACL but the interface of which this script emulates.

=head1 COPYRIGHT

This module is free software.  You may use and/or modify it under the
same terms as perl itself.

=cut

#
# EOF



( run in 0.992 second using v1.01-cache-2.11-cpan-870870ed90f )