diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2006-01-29 02:39:51 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2006-01-29 02:39:51 +0000 |
commit | f242b672713002a2e8fa6ab27a7051f64e35be1f (patch) | |
tree | 85c5275f6882a6a6a97be419777fd008c6396275 /packages | |
parent | c984b6957630ba90c785cdfb047f1edbc75fdc4a (diff) | |
download | pfsense-packages-f242b672713002a2e8fa6ab27a7051f64e35be1f.tar.gz pfsense-packages-f242b672713002a2e8fa6ab27a7051f64e35be1f.tar.bz2 pfsense-packages-f242b672713002a2e8fa6ab27a7051f64e35be1f.zip |
Add spamd_db.php a tool that allows you to whitelist or blacklist items that are in the db.
Diffstat (limited to 'packages')
-rw-r--r-- | packages/spamd.xml | 11 | ||||
-rw-r--r-- | packages/spamd_db.php | 181 | ||||
-rw-r--r-- | packages/spamd_settings.xml | 8 | ||||
-rw-r--r-- | packages/spamd_whitelist.xml | 4 |
4 files changed, 201 insertions, 3 deletions
diff --git a/packages/spamd.xml b/packages/spamd.xml index 900055f3..f8c4e10d 100644 --- a/packages/spamd.xml +++ b/packages/spamd.xml @@ -28,6 +28,10 @@ <tab> <text>SpamD Settings</text> <url>/pkg_edit.php?xml=spamd_settings.xml&id=0</url> + </tab> + <tab> + <text>SpamD Database</text> + <url>/spamd_db.php</url> </tab> </tabs> <additional_files_needed> @@ -49,7 +53,12 @@ <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.com/packages/config/spamd_settings.xml</item> - </additional_files_needed> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/www/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/spamd_db.php</item> + </additional_files_needed> <!-- configpath gets expanded out automatically and config items will be stored in that location --> <configpath>['installedpackages']['spamd']['config']</configpath> diff --git a/packages/spamd_db.php b/packages/spamd_db.php new file mode 100644 index 00000000..09ea4052 --- /dev/null +++ b/packages/spamd_db.php @@ -0,0 +1,181 @@ +<?php +/* $Id$ */ +/* + spamd_db.php + Copyright (C) 2004 Scott Ullrich + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +require("guiconfig.inc"); + +if($_GET['action'] or $_POST['action']) { + if($_GET['action']) + $action = $_GET['action']; + if($_POST['action']) + $action = $_POST['action']; + if($_GET['srcip']) + $srcip = $_GET['srcip']; + if($_POST['srcip']) + $srcip = $_POST['srcip']; + $pkgdb = split("\n", `/usr/local/sbin/spamdb`); + if($action == "whitelist") { + mwexec("/usr/local/sbin/spamdb -a {$srcip}"); + } else if($action == "spamtrap") { + mwexec("/usr/local/sbin/spamdb -a {$srcip} -t"); + } else if($action == "trapped") { + mwexec("/usr/local/sbin/spamdb -a {$srcip} -t"); + } + mwexec("killall -HUP spamlogd"); + exit; +} + +$pgtitle = "SpamD: Database"; +include("head.inc"); + +?> +<body link="#000000" vlink="#000000" alink="#000000"> +<?php include("fbegin.inc"); ?> +<p class="pgtitle"><?=$pgtitle?></font></p> +<form action="spamd_db.php" method="post" name="iform"> +<script src="/javascript/scriptaculous/prototype.js" type="text/javascript"></script> +<script src="/javascript/scriptaculous/scriptaculous.js" type="text/javascript"></script> +<script type="text/javascript" language="javascript" src="row_toggle.js"> +</script> +<script language="javascript"> +function outputrule(req) { + //alert(req.content); +} +if (typeof getURL == 'undefined') { + getURL = function(url, callback) { + if (!url) + throw 'No URL for getURL'; + try { + if (typeof callback.operationComplete == 'function') + callback = callback.operationComplete; + } catch (e) {} + if (typeof callback != 'function') + throw 'No callback function for getURL'; + var http_request = null; + if (typeof XMLHttpRequest != 'undefined') { + http_request = new XMLHttpRequest(); + } + else if (typeof ActiveXObject != 'undefined') { + try { + http_request = new ActiveXObject('Msxml2.XMLHTTP'); + } catch (e) { + try { + http_request = new ActiveXObject('Microsoft.XMLHTTP'); + } catch (e) {} + } + } + if (!http_request) + throw 'Both getURL and XMLHttpRequest are undefined'; + http_request.onreadystatechange = function() { + if (http_request.readyState == 4) { + callback( { success : true, + content : http_request.responseText, + contentType : http_request.getResponseHeader("Content-Type") } ); + } + } + http_request.open('GET', url, true); + http_request.send(null); + } +} +</script> +<?php if ($savemsg) print_info_box($savemsg); ?> +<?php if (file_exists($d_natconfdirty_path)): ?><p> +<?php endif; ?> +<table width="99%" border="0" cellpadding="0" cellspacing="0"> + <tr><td> +<?php + $tab_array = array(); + $tab_array[] = array("SpamD Sources", false, "/pkg.php?xml=spamd.xml"); + $tab_array[] = array("SpamD Whitelist", false, "/pkg.php?xml=spamd_whitelist.xml"); + $tab_array[] = array("SpamD Settings", false, "/pkg_edit.php?xml=spamd_settings.xml&id=0"); + $tab_array[] = array("SpamD Database", true, "/spamd_db.php"); + display_top_tabs($tab_array); +?> + </td></tr> + <tr> + <td> + <div id="mainarea"> + <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> + <tr id="frheader"> + <td class="listhdrr">Action</td> + <td class="listhdrr">Type</td> + <td class="listhdrr">IP</td> + <td class="listhdrr">From</td> + <td class="listhdrr">To</td> + <td class="listhdr">Attempts</td> + </tr> +<?php + $pkgdb = split("\n", `/usr/local/sbin/spamdb`); + $rows = 0; + $lastseenip = ""; + $srcip = "|"; + foreach($pkgdb as $pkgdb_row) { + $dontdisplay = false; + $rowtext = ""; + $rowtext .= "<span class=\"{$rows}\"></span>"; + $rowtext .= "<tr id=\"{$rows}\">"; + $pkgdb_split = split("\|", $pkgdb_row); + $rowtext .= "<td class=\"listr\">"; + $srcip = $pkgdb_split[1]; + $rowtext .= "<a onClick='getURL(\"spamd_db.php?srcip={$srcip}&action=whitelist\", outputrule);' href='#{$rows}'>Whitelist</a> "; + $rowtext .= " | <a onClick='getURL(\"spamd_db.php?srcip={$srcip}&action=spamtrap\", outputrule);' href='#{$rows}'>Blacklist</a> "; + $rowtext .= "</td>"; + $column = 0; + foreach($pkgdb_split as $col) { + if($column == 4 || $column == 5 || $column == 6 || $column == 8) { + $column++; + continue; + } + if($col == "") + $dontdisplay = true; + $col = str_replace("<","",$col); + $col = str_replace(">","",$col); + $rowtext .= "<td class=\"listr\">{$col}</td>"; + $column++; + } + $rowtext .= "</tr>"; + if($srcip == "") + $dontdisplay = true; + if($lastseenip == $srcip) + $dontdisplay = true; + if($dontdisplay == false) { + echo $rowtext; + $lastseenip = $srcip; + } + $rows++; + } +?> + </table> + </div> + </td> + </tr> +</table> +</form> +<?php include("fend.inc"); ?> +</body> +</html> diff --git a/packages/spamd_settings.xml b/packages/spamd_settings.xml index e9f9a053..1dba571b 100644 --- a/packages/spamd_settings.xml +++ b/packages/spamd_settings.xml @@ -29,7 +29,11 @@ <text>SpamD Settings</text> <url>/pkg_edit.php?xml=spamd_settings.xml&id=0</url> <active/> - </tab> + </tab> + <tab> + <text>SpamD Database</text> + <url>/spamd_db.php</url> + </tab> </tabs> <!-- configpath gets expanded out automatically and config items will be stored in that location --> @@ -82,7 +86,7 @@ <field> <fielddescr>White Exp</fielddescr> <fieldname>whiteexp</fieldname> - <description>Adjust the three time parameters for greylisting. White expiration defaults to 864 (hours, approximately 36 days). spamd removes whitelist entries from the database if no mail delivery activity has been seen from the whitelisted address within whiteexp hours from the initial time an address is whitelisted.</description> + <description>Adjust the three time parameters for greylisting. White expiration defaults to 864 (hours, approximately 36 days). SpamD removes whitelist entries from the database if no mail delivery activity has been seen from the whitelisted address within whiteexp hours from the initial time an address is whitelisted.</description> <type>input</type> <size>30</size> <value>25:4:864</value> diff --git a/packages/spamd_whitelist.xml b/packages/spamd_whitelist.xml index 354a002e..cc283872 100644 --- a/packages/spamd_whitelist.xml +++ b/packages/spamd_whitelist.xml @@ -24,6 +24,10 @@ <text>SpamD Settings</text> <url>/pkg_edit.php?xml=spamd_settings.xml&id=0</url> </tab> + <tab> + <text>SpamD Database</text> + <url>/spamd_db.php</url> + </tab> </tabs> <!-- configpath gets expanded out automatically and config items will be stored in that location --> |