diff options
Diffstat (limited to 'src/etc/rc.initial.toggle_sshd')
-rwxr-xr-x | src/etc/rc.initial.toggle_sshd | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/etc/rc.initial.toggle_sshd b/src/etc/rc.initial.toggle_sshd new file mode 100755 index 0000000..695a6c1 --- /dev/null +++ b/src/etc/rc.initial.toggle_sshd @@ -0,0 +1,75 @@ +#! /usr/local/bin/php-cgi -f +<?php +/* + rc.initial.toggle_sshd + sshd - Modified to work on disk based system + Copyright 2004 Scott K Ullrich + + Original Copyright (C) 2004 Fred Mol <fredmol@xs4all.nl>. + 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_once("config.inc"); +require_once("functions.inc"); +require_once("filter.inc"); + +conf_mount_rw(); + +$fp = fopen('php://stdin', 'r'); + +if (isset($config['system']['enablesshd'])) { + echo "SSHD is currently enabled. Would you like to disable? [y/n]? "; + $yn = chop(fgets($fp)); + if ($yn[0] == "y") { + unset($config['system']['enablesshd']); + echo "\nWriting configuration..."; + write_config(); + echo " done.\n"; + echo "\nDisabling SSHD..."; + send_event("service reload sshd"); + echo "\nReloading firewall rules."; + filter_configure(); + echo " done.\n"; + exec("ps awux | grep '/usr/sbin/sshd' | grep -v grep | awk '{print $2}' | xargs kill"); + } + +} else { + echo "SSHD is currently disabled. Would you like to enable? [y/n]? "; + $yn = chop(fgets($fp)); + if ($yn[0] == "y") { + $config['system']['enablesshd'] = true; + echo "\nWriting configuration..."; + write_config(); + echo " done.\n"; + echo "\nEnabling SSHD..."; + send_event("service reload sshd"); + echo "\nReloading firewall rules."; + filter_configure(); + echo " done.\n\n"; + } +} + +fclose($fp); + +conf_mount_ro(); |