diff options
Diffstat (limited to 'config/frickin')
-rwxr-xr-x | config/frickin/bin/frickin | bin | 0 -> 470088 bytes | |||
-rw-r--r-- | config/frickin/frickin.inc | 137 | ||||
-rw-r--r-- | config/frickin/frickin.xml | 89 |
3 files changed, 226 insertions, 0 deletions
diff --git a/config/frickin/bin/frickin b/config/frickin/bin/frickin Binary files differnew file mode 100755 index 00000000..450dd733 --- /dev/null +++ b/config/frickin/bin/frickin diff --git a/config/frickin/frickin.inc b/config/frickin/frickin.inc new file mode 100644 index 00000000..ac7c7572 --- /dev/null +++ b/config/frickin/frickin.inc @@ -0,0 +1,137 @@ +<?php + +/* $Id$ */ +/* + frickin.inc + Copyright (C) 2006 Scott Ullrich + part of pfSense + 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. +*/ + +function frickin_custom_php_install_command() { + global $config; + $fout = fopen("/usr/local/etc/rc.d/frickin.sh", "w"); + fwrite($fout, "#!/bin/sh\n# This package was automatically generated\n# by the pfSense package system.\n\n"); + fwrite($fout, "# PACKAGE: Frickin Proxy\n"); + fwrite($fout, "# EXECUTABLE: frickin\n"); + fwrite($fout, "/usr/local/bin/frickin"); + fwrite($fout, " -c /usr/local/etc/frickin.conf"); + fwrite($fout, " &\n"); + fclose($fout); + + $fout = fopen("/usr/local/etc/frickin.conf", "w"); + $frickin_conf = <<<EOD + +proxy { + user = "nobody"; + group = "nobody"; + client { + queue = 5; # Maximum connection queue size + max = 100; # Maximum number of concurrent clients + multiple = FALSE; # Allow multiple connections from same ip + } + session { + connect = 15; # Connect timout (seconds) + idle = 60; # Idle timeout (seconds) + } +} + +listeners { + default { + name = "Frickin PPTP Proxy"; + vendor = "Placid Development"; + ip = "127.0.0.1"; + port = 1723; + } +} + +EOD; + + fwrite($fout, "{$frickin_conf}"); + fclose($fout); + + mwexec("/usr/bin/killall frickin"); + mwexec("chmod a+rx /usr/local/etc/rc.d/frickin.sh"); + mwexec("/usr/local/etc/rc.d/frickin.sh"); + +// file_notice("System -> Advanced -> Scrub", "pfSenses scrub option has been disabled. See http://www.openbsd.org/faq/pf/scrub.html for more info.", "Scrub"); +// $config['system']['scrubnodf'] = "enabled"; +// write_config(); + + filter_configure(); +} + +function frickin_custom_php_deinstall_command() { + global $config; + +// unset($config['system']['scrubnodf']); +// file_notice("System -> Advanced -> Scrub", "pfSenses scrub option has been enabled. See http://www.openbsd.org/faq/pf/scrub.html for more info.", "Scrub"); +// write_config(); + + unlink_if_exists("/usr/local/etc/rc.d/frickin.sh"); + unlink_if_exists("/usr/local/bin/frickin"); + + mwexec("killall frickin"); + + filter_configure(); +} + +function frickin_generate_rules($type) { + global $config; + + $rules = ""; + + $frickin_conf = $config['installedpackages']['frickin']['config'][0]; + if (!is_process_running('frickin')) { + log_error("Frickin is installed but not started. Not installing redirect rules."); + return; + } + + $ifaces = explode(',', $frickin_conf['active_interface']); + $ifaces = array_map('convert_friendly_interface_to_real_interface_name', $ifaces); + + switch($type) { + case 'nat': + foreach ($ifaces as $iface) { + if(!$iface) { + //log_error("Not installing frickin pptp proxy rule. Please set it up"); + //continue; + } + $rules .= "rdr on $iface proto tcp from any to any port = 1723 -> 127.0.0.1\n"; + $rules .= "rdr on $iface inet proto gre all -> 127.0.0.1\n"; + } + break; + case 'filter': + $ext_if = get_real_wan_interface(); + $rules .= "pass out on $ext_if proto gre from any to any keep state\n"; + $rules .= "pass in on $ext_if proto gre from any to any keep state\n"; + break; + default: + break; + } + + return $rules; +} + +?>
\ No newline at end of file diff --git a/config/frickin/frickin.xml b/config/frickin/frickin.xml new file mode 100644 index 00000000..6df9694e --- /dev/null +++ b/config/frickin/frickin.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> +<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> +<packagegui> + <copyright> + <![CDATA[ +/* $Id$ */ +/* ========================================================================== */ +/* + authng.xml + part of pfSense (http://www.pfSense.com) + Copyright (C) 2007 to whom it may belong + All rights reserved. + + Based on m0n0wall (http://m0n0.ch/wall) + Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>. + 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. + */ +/* ========================================================================== */ + ]]> + </copyright> + <description>Describe your package here</description> + <requirements>Describe your package requirements here</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>frickin</name> + <version>2.0-BETA1</version> + <title>none</title> + <include_file>/usr/local/pkg/frickin.inc</include_file> + <menu> + <name>Frickin PPTP</name> + <tooltiptext>Setup Frickin PPTP Proxy specific settings</tooltiptext> + <section>Services</section> + <url>/pkg_edit.php?xml=frickin.xml&id=0</url> + </menu> + <configpath>installedpackages->package->frickin->configuration->settings</configpath> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>077</chmod> + <item>http://www.pfsense.com/packages/config/frickin/frickin.inc</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/bin/</prefix> + <chmod>077</chmod> + <item>http://www.pfsense.com/packages/config/frickin/bin/frickin</item> + </additional_files_needed> + <fields> + <field> + <fielddescr>Proxy interface</fielddescr> + <fieldname>active_interface</fieldname> + <description>The interface(s) the proxy server will bind to.</description> + <type>interfaces_selection</type> + <required/> + <default_value>lan</default_value> + <multiple/> + </field> + </fields> + <custom_add_php_command> + frickin_custom_php_install_command(); + </custom_add_php_command> + <custom_php_install_command> + frickin_custom_php_install_command(); + </custom_php_install_command> + <custom_php_deinstall_command> + frickin_custom_php_deinstall_command(); + </custom_php_deinstall_command> +</packagegui> |