HOW TO RUN: Arguments passed on the Command Line at runtime - Input configuration file of the firewall perl fwanalyzer.pl Here fwanalyzer.pl is the name of the script, all the configuration files which need to be analyzed must be in the same directory. The argument must be the same as the total number of files in the Directory. Checks for all of the following: analysis_engine(){ check_any() //Rules with any in them check_entire_subnet() //Rules where entire subnet allowed check_port_range() //Rules where large range of ports are allowed check_cleartext_protocols() //Rules where clear text protocols like telnet or tftp are used check_redundant_rules() //Rules which are defined twice, once inside object group or which are unnecessary check_default_rules() //Rules which are implied in that particular make of firewall check_deny_log() //Rules which are deny are logged check_firewall_access() //Rules allowing access to the firewall itself } Plan to check in next version: check_redundant_port_rules() //Rules which allow access to same ports check_hit_count_performance() //Rules performance analysis check_justification_rules() //Rules which require a justification Output is in form of multiple text files merged into 1 single text file. Its not the prettiest around but its a start :). Will upload a more detailed ReadMe tomorrow.