IPTables::Parse man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

IPTables::Parse(3)    User Contributed Perl Documentation   IPTables::Parse(3)

NAME
       IPTables::Parse - Perl extension for parsing iptables firewall rulesets

SYNOPSIS
	 use IPTables::Parse;

	 my %opts = (
	     'iptables' => '/sbin/iptables',
	     'iptout'	=> '/tmp/iptables.out',
	     'ipterr'	=> '/tmp/iptables.err',
	     'debug'	=> 0,
	     'verbose'	=> 0
	 );

	 my $ipt_obj = new IPTables::Parse(%opts)
	     or die "[*] Could not acquire IPTables::Parse object";

	 my $rv = 0;

	 my $table = 'filter';
	 my $chain = 'INPUT';

	 my ($ipt_hr, $rv) = $ipt_obj->default_drop($table, $chain);
	 if ($rv) {
	     if (defined $ipt_hr->{'all'}) {
		 print "The INPUT chain has a default DROP rule for all protocols.\n";
	     } else {
		 for my $proto qw/tcp udp icmp/ {
		     if (defined $ipt_hr->{$proto}) {
			 print "The INPUT chain drops $proto by default.\n";
		     }
		 }
	     }
	 } else {
	     print "[-] Could not parse iptables policy\n";
	 }

	 ($ipt_hr, $rv) = $ipt_obj->default_log($table, $chain);
	 if ($rv) {
	     if (defined $ipt_hr->{'all'}) {
		 print "The INPUT chain has a default LOG rule for all protocols.\n";
	     } else {
		 for my $proto qw/tcp udp icmp/ {
		     if (defined $ipt_hr->{$proto}) {
			 print "The INPUT chain logs $proto by default.\n";
		     }
		 }
	     }
	 } else {
	     print "[-] Could not parse iptables policy\n";
	 }

DESCRIPTION
       The "IPTables::Parse" package provides an interface to parse iptables
       rules on Linux systems through the direct execution of iptables
       commands, or from parsing a file that contains an iptables policy
       listing.	 You can get the current policy applied to a table/chain, look
       for a specific user-defined chain, check for a default DROP policy, or
       determing whether or not logging rules exist.

FUNCTIONS
       The IPTables::Parse extension provides an object interface to the
       following functions:

       chain_policy($table, $chain)
	   This function returns the policy (e.g. 'DROP', 'ACCEPT', etc.) for
	   the specified table and chain:

	     print "INPUT policy: ", $ipt_obj->chain_policy('filter', 'INPUT'), "\n";

       chain_rules($table, $chain)
	   This function parses the specified chain and table and returns an
	   array reference for all rules in the chain.	Each element in the
	   array reference is a hash with the following keys (that contain
	   values depending on the rule): "src", "dst", "protocol", "s_port",
	   "d_port", "target", "packets", "bytes", "intf_in", "intf_out",
	   "to_ip", "to_port", "state", "raw", and "extended".	The "extended"
	   element contains the rule output past the protocol information, and
	   the "raw" element contains the complete rule itself as reported by
	   iptables.

       default_drop($table, $chain)
	   This function parses the running iptables policy in order to
	   determine if the specified chain contains a default DROP rule.  Two
	   values are returned, a hash reference whose keys are the protocols
	   that are dropped by default if a global ACCEPT rule has not
	   accepted matching packets first, along with a return value that
	   tells the caller if parsing the iptables policy was successful.
	   Note that if all protocols are dropped by default, then the hash
	   key 'all' will be defined.

	     ($ipt_hr, $rv) = $ipt_obj->default_drop('filter', 'INPUT');

       default_log($table, $chain)
	   This function parses the running iptables policy in order to
	   determine if the specified chain contains a default LOG rule.  Two
	   values are returned, a hash reference whose keys are the protocols
	   that are logged by default if a global ACCEPT rule has not accepted
	   matching packets first, along with a return value that tells the
	   caller if parsing the iptables policy was successful.  Note that if
	   all protocols are logged by default, then the hash key 'all' will
	   be defined.	An example invocation is:

	     ($ipt_hr, $rv) = $ipt_obj->default_log('filter', 'INPUT');

AUTHOR
       Michael Rash, <mbr@cipherdyne.org>

SEE ALSO
       The IPTables::Parse is used by the IPTables::ChainMgr extension in
       support of the psad, fwsnort, and fwknop projects to parse iptables
       policies (see the psad(8), fwsnort(8), and fwknop(8) man pages).	 As
       always, the iptables(8) provides the best information on command line
       execution and theory behind iptables.

       Although there is no mailing that is devoted specifically to the
       IPTables::Parse extension, questions about the extension will be
       answered on the following lists:

	 The psad mailing list: http://lists.sourceforge.net/lists/listinfo/psad-discuss
	 The fwknop mailing list: http://lists.sourceforge.net/lists/listinfo/fwknop-discuss
	 The fwsnort mailing list: http://lists.sourceforge.net/lists/listinfo/fwsnort-discuss

       The latest version of the IPTables::Parse extension can be found at:

       http://www.cipherdyne.org/modules/

CREDITS
       Thanks to the following people:

	 Franck Joncourt <franck.mail@dthconnex.com>
	 Grant Ferley

AUTHOR
       The IPTables::Parse extension was written by Michael Rash
       <mbr@cipherdyne.org> to support the psad, fwknop, and fwsnort projects.
       Please send email to this address if there are any questions, comments,
       or bug reports.

COPYRIGHT AND LICENSE
       Copyright (C) 2005-2008 by Michael Rash

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself, either Perl version 5.8.5 or, at
       your option, any later version of Perl 5 you may have available.

perl v5.14.0			  2008-10-18		    IPTables::Parse(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net