aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2009-10-16 22:31:01 -0400
committerScott Ullrich <sullrich@pfsense.org>2009-10-16 22:31:01 -0400
commitb445055499c8ed51acfaaa0020616c06f558de68 (patch)
treeae87e72bc633162275700932a1db696d6cfec6ec
parenta27686574094958e8bec10103e1ffd9ebd58bd60 (diff)
downloadpfsense-packages-b445055499c8ed51acfaaa0020616c06f558de68.tar.gz
pfsense-packages-b445055499c8ed51acfaaa0020616c06f558de68.tar.bz2
pfsense-packages-b445055499c8ed51acfaaa0020616c06f558de68.zip
Adding anyterm package + stunnel support
-rw-r--r--config/anyterm/access_anyterm.php44
-rw-r--r--config/anyterm/anyterm.inc108
-rw-r--r--config/anyterm/anyterm.xml27
-rwxr-xr-xconfig/anyterm/binaries7/anytermdbin0 -> 3111332 bytes
-rwxr-xr-xpkg_config.7.xml11
-rwxr-xr-xpkg_config.8.xml11
6 files changed, 196 insertions, 5 deletions
diff --git a/config/anyterm/access_anyterm.php b/config/anyterm/access_anyterm.php
new file mode 100644
index 00000000..bcbaa102
--- /dev/null
+++ b/config/anyterm/access_anyterm.php
@@ -0,0 +1,44 @@
+<?php
+/*
+ access_anyterm.php
+ pfSense package (http://www.pfSense.com)
+ Copyright (C) 2009 Scott Ullrich <sullrich@pfsense.org>
+ 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($config['installedpackages']['anyterm']['config']['stunnelport']) {
+ $port = $config['installedpackages']['anyterm']['config']['port'];
+ $httpors = "http";
+} else {
+ $port = $config['installedpackages']['anyterm']['config']['stunnelport'];
+ $httpors = "https";
+}
+
+$location = "{$SERVER['SERVER_ADDR']}:{$port}";
+
+Header("Location: {$httpors}://{$location}");
+
+?> \ No newline at end of file
diff --git a/config/anyterm/anyterm.inc b/config/anyterm/anyterm.inc
new file mode 100644
index 00000000..6ae26147
--- /dev/null
+++ b/config/anyterm/anyterm.inc
@@ -0,0 +1,108 @@
+<?php
+/*
+ anyterm.inc
+ pfSense package (http://www.pfSense.com)
+ Copyright (C) 2009 Scott Ullrich <sullrich@pfsense.org>
+ 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 anyterm_deinstall() {
+ global $g, $config;
+ conf_mount_rw();
+ exec("killall anytermd");
+ exec("rm /usr/local/etc/rc.d/anyterm.sh");
+ exec("rm /usr/local/sbin/anytermd");
+}
+
+function anyterm_install() {
+ global $g, $config;
+
+ conf_mount_rw();
+
+ // Grab latest version of executablevi /
+ $freebsdv=trim(`uname -r | cut -d'.' -f1`);
+ `fetch -q -o /usr/local/sbin/ http://www.pfsense.org/packages/config/anyterm/binaries{$freebsdv}/anytermd`;
+ exec("chmod a+rx /usr/local/sbin/anyterm");
+
+ if($config['installedpackages']['anyterm']['config']['username'])
+ $port = " --port {$config['installedpackages']['anyterm']['config']['port']}";
+
+ // This will bring up the pfSense style menu
+ $anytermd_command = "anytermd --user root --command \"/usr/libexec/getty Pc\" --auth trivial $port";
+
+ $anyterm = <<<EOD
+#!/bin/sh
+
+# PROVIDE: anyterm
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="anyterm"
+rcvar=`set_rcvar`
+command="/usr/local/bin/anyterm"
+anyterm_enable=\${anyterm-"YES"}
+
+start_cmd="anyterm_start"
+stop_postcmd="anyterm_stop"
+
+load_rc_config \$name
+
+anyterm_start () {
+ if [ -f /var/etc/anyterm.conf ]; then
+ /usr/bin/env \
+ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
+ killall anytermd \
+ $anytermd_command
+ fi
+}
+
+anyterm_stop () {
+ echo "Stopping anyterm."
+ killall anyterm
+}
+
+run_rc_command "\$1"
+
+EOD;
+
+ // Write out file
+ $fd = fopen("/usr/local/etc/rc.d/anyterm.sh", "w");
+ fwrite($fd, $anyterm);
+ fclose($fd);
+ // Make executable
+ exec("chmod a+rx /usr/local/etc/rc.d/anyterm.sh")
+
+ // Write out Anyterm configuration file (username and password for auth)
+ $fd = fopen("/var/etc/anyterm.conf", "w");
+ fwrite($fd, $config['installedpackages']['anyterm']['config']['username'] . "\n");
+ fwrite($fd, $config['installedpackages']['anyterm']['config']['password'] . "\n");
+ fclose($fd);
+ exec("chmod a-r /var/etc/anyterm.conf ; chmod ug+r /var/etc/anyterm.conf ; killall anytermd");
+ exec($anytermd_command);
+
+}
+
+?> \ No newline at end of file
diff --git a/config/anyterm/anyterm.xml b/config/anyterm/anyterm.xml
index 4bd1b445..0b87767d 100644
--- a/config/anyterm/anyterm.xml
+++ b/config/anyterm/anyterm.xml
@@ -8,7 +8,7 @@
/* ========================================================================== */
/*
anyterm.xml
- part of pfSense (http://www.pfSense.com)
+ pfSense package (http://www.pfSense.com)
Copyright (C) 2009 Scott Ullrich
All rights reserved.
*/
@@ -53,7 +53,7 @@
<name>anyterm</name>
<rcfile>anyterm.sh</rcfile>
<executable>anytermd</executable>
- <description>The Reliable, High Performance TCP/HTTP Load Balancer</description>
+ <description>Ajax Interactive Shell</description>
</service>
<configpath>installedpackages->anyterm->config</configpath>
<additional_files_needed>
@@ -61,23 +61,40 @@
<chmod>077</chmod>
<item>http://www.pfsense.com/packages/config/anyterm/anyterm.inc</item>
</additional_files_needed>
+ <tabs>
+ <tab>
+ <text>Settings</text>
+ <url>/pkg.php?xml=spamd.xml</url>
+ <active/>
+ </tab>
+ <tab>
+ <text>Ajax Shell</text>
+ <url>access_anyterm.php</url>
+ </tab>
+ </tabs>
<fields>
<field>
<fielddescr>Username</fielddescr>
<fieldname>username</fieldname>
- <description>Enter the username for Anyterm</description>
+ <description>Enter the username for accessing Anyterm</description>
<type>input</type>
</field>
<field>
<fielddescr>Password</fielddescr>
<fieldname>password</fieldname>
- <description>Enter the password for Anyterm</description>
+ <description>Enter the password for accessing Anyterm</description>
<type>password</type>
</field>
<field>
<fielddescr>Port</fielddescr>
<fieldname>port</fieldname>
- <description>Enter the port that Anyterm will listen on.</description>
+ <description>Enter the port that Anyterm will listen on Default is 8080.</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>STunnel Port</fielddescr>
+ <fieldname>stunnelport</fieldname>
+ <description>[OPTIONAL] If you have setup a STunnel forward enter its port here.</description>
<type>input</type>
</field>
</fields>
diff --git a/config/anyterm/binaries7/anytermd b/config/anyterm/binaries7/anytermd
new file mode 100755
index 00000000..ce5304e7
--- /dev/null
+++ b/config/anyterm/binaries7/anytermd
Binary files differ
diff --git a/pkg_config.7.xml b/pkg_config.7.xml
index b9f37e1c..d9bb39ba 100755
--- a/pkg_config.7.xml
+++ b/pkg_config.7.xml
@@ -3,6 +3,17 @@
<pfsensepkgs>
<packages>
<package>
+ <name>anyterm</name>
+ <descr>Ajax Interactive Shell - Have you ever wanted SSH or telnet access to your system from an “internet desert” - from behind a strict firewall, from an internet cafe, or even from a mobile phone? Anyterm is a combination of a web page and a process that runs on your web server that provides this access. WARNING! We suggest using Stunnel in combination with this package!</descr>
+ <website>http://haproxy.1wt.eu/</website>
+ <category>Diagnostics</category>
+ <version>0.1</version>
+ <status>ALPHA</status>
+ <required_version>1.2.3</required_version>
+ <config_file>http://www.pfsense.com/packages/config/anyterm/anyterm.xml</config_file>
+ <configurationfile>anyterm.xml</configurationfile>
+ </package>
+ <package>
<name>haproxy</name>
<descr>The Reliable, High Performance TCP/HTTP Load Balancer</descr>
<website>http://haproxy.1wt.eu/</website>
diff --git a/pkg_config.8.xml b/pkg_config.8.xml
index 8f965c57..1836de21 100755
--- a/pkg_config.8.xml
+++ b/pkg_config.8.xml
@@ -3,6 +3,17 @@
<pfsensepkgs>
<packages>
<package>
+ <name>anyterm</name>
+ <descr>Ajax Interactive Shell - Have you ever wanted SSH or telnet access to your system from an “internet desert” - from behind a strict firewall, from an internet cafe, or even from a mobile phone? Anyterm is a combination of a web page and a process that runs on your web server that provides this access. WARNING! We suggest using Stunnel in combination with this package!</descr>
+ <website>http://haproxy.1wt.eu/</website>
+ <category>Diagnostics</category>
+ <version>0.1</version>
+ <status>ALPHA</status>
+ <required_version>1.2.3</required_version>
+ <config_file>http://www.pfsense.com/packages/config/anyterm/anyterm.xml</config_file>
+ <configurationfile>anyterm.xml</configurationfile>
+ </package>
+ <package>
<name>haproxy</name>
<descr>The Reliable, High Performance TCP/HTTP Load Balancer</descr>
<website>http://haproxy.1wt.eu/</website>