#!/usr/bin/perl
#
# PIX Logging Architecture 
# [ Kristof Philipsen ]
#
# This file is part of PIX Logging Architecture
#
# PIX Logging Architecture is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PIX Logging Architecture is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Foobar; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


use DBI;
use CGI;

#
# include configuration 
#
require "conf.pl";	# General Configuration
require "subs.pl";	# Subroutines

# 
# Make Database Connection
#
db_connect();

#
# Get CGI Parameters 
#
$query = new CGI;
$type = $query->param("type");

if ($type eq "") {
    $type="traffic";
}

#
# HTML SECTION
#
printtitle();

print <<EOF;
<span class="titlehead"><b>PIX Logs > Search</b></span>
<br><br>
<span class="main">
Search: <a href="pix_search_logs?type=traffic"><span class="bodylink">traffic logs</span></a> | <a href="pix_search_logs?type=ids"><span class="bodylink">ids logs</span></a> 
<br><br>
<table width="500" cellpadding="0" cellspacing="0" border="0">
<td bgcolor="#000000" align="left" valign="top" height="3"></td>
<tr>
<td align="middle" valign="top" bgcolor="#a7a7a7">
EOF

# 
# TRAFFIC LOGS
#

if ($type eq "traffic") {
print <<EOF;
    	<span class="titlehead"><b>PIX Traffic Logs Search Criteria</b></span>
    	<form action="./pix_search_result_traffic" method="post">
    	</td>
    	<tr>
    	<td bgcolor="#000000" align="left" valign="top" height="3"></td>
    	</table>
EOF
}

#
# IDS LOGS
#

if ($type eq "ids") {
print <<EOF;
	<span class="titlehead"><b>PIX IDS Logs Search Criteria</b></span>
	<form action="./pix_search_result_ids" method="post">
	</td>
	<tr>
	<td bgcolor="#000000" align="left" valign="top" height="3"></td>
	</table>
EOF
}
print <<EOF;
    <table width="500" cellpadding="0" cellspacing="0" border="0">
    <td bgcolor="#5479d8"><span class="button"> >> General Criteria</span</td>
    </table>
    <table width="500" cellpadding="0" cellspacing="0" border="0" bgcolor="#d9d9d9">
    <td align="left" valign="top"><br>
    Logging Resource:
    <select name="resource">
    <option selected value="">All Firewalls
    <option>
EOF
    $getAllResources="SELECT log_resource from traffic_log group by log_resource";
    $AllResources = $db_handle->prepare($getAllResources) or die "Couldn't prepare query '$getAllResources': $DBI::errstr\n";
    $AllResources->execute();
    while ($log_resource = $AllResources->fetchrow) {
    print <<EOF;
    <option value="$log_resource">$log_resource
EOF
    }
print <<EOF;
    </select><br><br>
EOF
if ($type eq "traffic") {
print <<EOF;
    Traffic Action:
    <select name="action">
    <option selected value="">Any
    <option>
    <option value="ACCEPT">ACCEPT
    <option value="DROP">DROP
    </select><br><br>
EOF
}
print <<EOF;
     </td></table>
    <table width="500" cellpadding="0" cellspacing="0" border="0">
    <td bgcolor="#5479d8"><span class="button"> >> TCP/IP Criteria</span</td>
    </table>
    <table width="500" cellpadding="0" cellspacing="0" border="0" bgcolor="#d9d9d9">
    <td><br>
    Src IP: <input type="text" name="src_ip" border="0"></input> 
EOF
    if ($type eq "traffic") {
print <<EOF;
    Src Port: <input type="text" name="src_pt" size="5"></input> 
EOF
    }
print <<EOF;
    <br>
    Dst IP: <input type="text" name="dst_ip" border="0"></input>
EOF
    if ($type eq "traffic") {
print <<EOF;
    Dst Port: <input type="text" name="dst_pt" size="5"></input>
EOF
    }
print <<EOF;
    <br><br>
    </td></table>
    <table width="500" cellpadding="0" cellspacing="0" border="0">
    <td bgcolor="#5479d8"><span class="button"> >> Time Criteria</span</td>
    </table>
    <table width="500" cellpadding="0" cellspacing="0" border="0" bgcolor="#d9d9d9">
    <td><br>

    Start Time: 
    <select name="start_year">
<option selected value="">-year-
<option>
<option value="2000">2000
<option value="2001">2001
<option value="2002">2002
<option value="2003">2003
<option value="2004">2004
<option value="2005">2005
<option value="2006">2006
<option value="2007">2007
<option value="2008">2008
<option value="2009">2009
<option value="2010">2010
</select>
<select name="start_month">
<option selected value="">-month-
<option>
<option value="01">Jan
<option value="02">Feb
<option value="03">Mar
<option value="04">Apr
<option value="05">May
<option value="06">Jun
<option value="07">Jul
<option value="08">Aug
<option value="09">Sep
<option value="10">Oct
<option value="11">Nov
<option value="12">Dec
</select>
<select name="start_day">
<option selected value="">-day-
<option>
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="start_hour">
<option selected value="">-hour-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
</select>
<select name="start_min">
<option selected value="">-min-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
<option value="32">32
<option value="33">33
<option value="34">34
<option value="35">35
<option value="36">36
<option value="37">37
<option value="38">38
<option value="39">39
<option value="40">40
<option value="41">41
<option value="42">42
<option value="43">43
<option value="44">44
<option value="45">45
<option value="46">46
<option value="47">47
<option value="48">48
<option value="49">49
<option value="50">50
<option value="51">51
<option value="52">52
<option value="53">53
<option value="54">54
<option value="55">55
<option value="57">56
<option value="58">58
<option value="59">59

</select>
<select name="start_sec">
<option selected value="">-sec-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
<option value="32">32
<option value="33">33
<option value="34">34
<option value="35">35
<option value="36">36
<option value="37">37
<option value="38">38
<option value="39">39
<option value="40">40
<option value="41">41
<option value="42">42
<option value="43">43
<option value="44">44
<option value="45">45
<option value="46">46
<option value="47">47
<option value="48">48
<option value="49">49
<option value="50">50
<option value="51">51
<option value="52">52
<option value="53">53
<option value="54">54
<option value="55">55
<option value="57">56
<option value="58">58
<option value="59">59
</select>
<br>
End Time:&nbsp;
    <select name="end_year">
<option selected value="">-year-
<option>
<option value="2000">2000
<option value="2001">2001
<option value="2002">2002
<option value="2003">2003
<option value="2004">2004
<option value="2005">2005
<option value="2006">2006
<option value="2007">2007
<option value="2008">2008
<option value="2009">2009
<option value="2010">2010
</select>
<select name="end_month">
<option selected value="">-month-
<option>
<option value="01">Jan
<option value="02">Feb
<option value="03">Mar
<option value="04">Apr
<option value="05">May
<option value="06">Jun
<option value="07">Jul
<option value="08">Aug
<option value="09">Sep
<option value="10">Oct
<option value="11">Nov
<option value="12">Dec
</select>
<select name="end_day">
<option selected value="">-day-
<option>
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
</select>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="end_hour">
<option selected value="">-hour-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
</select>
<select name="end_min">
<option selected value="">-min-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
<option value="32">32
<option value="33">33
<option value="34">34
<option value="35">35
<option value="36">36
<option value="37">37
<option value="38">38
<option value="39">39
<option value="40">40
<option value="41">41
<option value="42">42
<option value="43">43
<option value="44">44
<option value="45">45
<option value="46">46
<option value="47">47
<option value="48">48
<option value="49">49
<option value="50">50
<option value="51">51
<option value="52">52
<option value="53">53
<option value="54">54
<option value="55">55
<option value="57">56
<option value="58">58
<option value="59">59
                                                                                                                                                                                          
</select>
<select name="end_sec">
<option selected value="0">-sec-
<option>
<option value="00">00
<option value="01">01
<option value="02">02
<option value="03">03
<option value="04">04
<option value="05">05
<option value="06">06
<option value="07">07
<option value="08">08
<option value="09">09
<option value="10">10
<option value="11">11
<option value="12">12
<option value="13">13
<option value="14">14
<option value="15">15
<option value="16">16
<option value="17">17
<option value="18">18
<option value="19">19
<option value="20">20
<option value="21">21
<option value="22">22
<option value="23">23
<option value="24">24
<option value="25">25
<option value="26">26
<option value="27">27
<option value="28">28
<option value="29">29
<option value="30">30
<option value="31">31
<option value="32">32
<option value="33">33
<option value="34">34
<option value="35">35
<option value="36">36
<option value="37">37
<option value="38">38
<option value="39">39
<option value="40">40
<option value="41">41
<option value="42">42
<option value="43">43
<option value="44">44
<option value="45">45
<option value="46">46
<option value="47">47
<option value="48">48
<option value="49">49
<option value="50">50
<option value="51">51
<option value="52">52
<option value="53">53
<option value="54">54
<option value="55">55
<option value="57">56
<option value="58">58
<option value="59">59
</select><br><br>
</td>
<tr>
<td bgcolor="#000000" align="left" valign="top" height="3"></td>
<tr>
<td bgcolor="#a7a7a7" align="left" valign="top">
<input type="submit" value="Search">
<input type="reset" value="Reset">
</form>
</td>
<tr>
<td bgcolor="#000000" align="left" valign="top" height="3"></td>
</table>
EOF


#
# Disconnect Database
#
$db_handle->disconnect();

