#! /usr/bin/perl # # Purpose: # FlowTracker.cgi creates the FlowTracker web page for inputting # selection criteria. # # Description: # # FlowTracker.cgi will create an form for accepting parameters to control # the filtering and selection of Netflow data in the generation of a # FlowTracker set of graphs. # # Input arguments: # Name Description # ----------------------------------------------------------------------- # none # # Modification history: # Author Date Vers. Description # ----------------------------------------------------------------------- # J. Loiacono 07/04/2006 3.0 Original version. # J. Loiacono 12/25/2006 3.1 Added listing of Archived trackings # J. Loiacono 02/14/2007 3.2 Changes to incoporate Groups # #$Author$ #$Date$ #$Header$ # ########################################################################### # # BEGIN EXECUTABLE STATEMENTS # use FlowViewer_Configuration; use FlowViewer_Utilities; if ($debug_tracker eq "Y") { open (DEBUG,">$work_directory/DEBUG_TRACKER"); } print "Content-type:text/html\n\n"; print "\n"; print "
\n"; print "\n";
# Create a Tracker directory if it doesn't exist
if (!-e $tracker_directory) {
mkdir($tracker_directory,$html_dir_perms) || die "cannot mkdir $tracker_directory: $!";
chmod $html_dir_perms, $tracker_directory;
$group_directory = "$tracker_directory/GROUPS";
mkdir($group_directory,$html_dir_perms) || die "cannot mkdir $group_directory: $!";
chmod $html_dir_perms, $group_directory;
print "";
print "\n";
print " The directory for storing Tracking files has been created:\n\n";
print " $tracker_directory\n\n";
print " Please ensure this directory has adequate permissions for your\n";
print " web server process owner (e.g., 'apache') to write into it.\n\n";
print "";
$new_directory = 1;
}
# Copy image into Tracker directory
$copy_command = "cp $cgi_bin_directory/FlowTracker.png $tracker_directory";
system($copy_command);
# Create directory to keep Tracker filter files, if it doesn't exist already
if (!-e $filter_directory) {
mkdir($filter_directory,$filter_dir_perms) || die "Cannot mkdir Tracker filter directory: $filter_directory: $!";
chmod $filter_dir_perms, $filter_directory;
print "";
print " The directory for storing Tracking Filter files has been created:\n\n";
print " $filter_directory\n\n";
print " Please ensure this directory has adequate permissions for your\n";
print " web server process owner (e.g., 'apache') to write into it.\n\n";
print "";
$new_directory = 1;
}
# Create directory to keep Tracker RRDtool files, if it doesn't exist already
if (!-e $rrdtool_directory) {
mkdir($rrdtool_directory,$rrd_dir_perms) || die "Cannot mkdir Tracker RRDtool directory: $rrdtool_directory: $!";
chmod $rrd_dir_perms, $rrdtool_directory;
print "";
print " The directory for storing Tracking RRDtool files has been created:\n\n";
print " $rrdtool_directory\n\n";
print " Please ensure this directory has adequate permissions for your\n";
print " web server process owner (e.g., 'apache') to write into it.\n\n";
print "";
$new_directory = 1;
}
if ($new_directory) {
print "";
print " RETURN\n";
print "";
exit;
}
$query_string = $ENV{'QUERY_STRING'};
if ($query_string ne "") {
$query_string =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/ge ;
chop $query_string;
@fields = split(/&/,$query_string);
foreach $input_field (@fields) {
($field,$field_value) = split(/=/,$input_field);
if ($field eq "device_name") { $selected_device_name = $field_value; }
if ($field eq "start_date") { $start_date = $field_value; }
if ($field eq "start_time") { $start_time = $field_value; }
if ($field eq "end_date") { $end_date = $field_value; }
if ($field eq "end_time") { $end_time = $field_value; }
if ($field eq "source_addresses") { $source_address = $field_value; }
if ($field eq "source_ports") { $source_port = $field_value; }
if ($field eq "source_ifs") { $source_if = $field_value; }
if ($field eq "source_ases") { $source_as = $field_value; }
if ($field eq "dest_addresses") { $dest_address = $field_value; }
if ($field eq "dest_ports") { $dest_port = $field_value; }
if ($field eq "dest_ifs") { $dest_if = $field_value; }
if ($field eq "dest_ases") { $dest_as = $field_value; }
if ($field eq "protocols") { $protocols = $field_value; }
if ($field eq "tos_fields") { $tos_fields = $field_value; }
if ($field eq "tcp_flags") { $tcp_flags = $field_value; }
if ($field eq "tracking_label") { $tracking_label = $field_value; }
if ($field eq "general_comment") { $general_comment = $field_value; }
}
}
# Create the header portion of the FlowTracker webpage
print "Filter Criteria:\n\n";
print "\n";
print "\n";
print "\n";
print "\n";