178 lines
6.7 KiB
Plaintext
178 lines
6.7 KiB
Plaintext
|
#!/usr/bin/perl -wT
|
||
|
|
||
|
# vim: ft=xml ts=8 sw=4 noet:
|
||
|
#----------------------------------------------------------------------
|
||
|
# heading : Security
|
||
|
# description : Remote access
|
||
|
# navigation : 5000 5200
|
||
|
#----------------------------------------------------------------------
|
||
|
#----------------------------------------------------------------------
|
||
|
# copyright (C) 2002 Mitel Networks Corporation
|
||
|
#
|
||
|
# This program 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.
|
||
|
#
|
||
|
# This program 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 this program; if not, write to the Free Software
|
||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
#----------------------------------------------------------------------
|
||
|
|
||
|
use strict;
|
||
|
use esmith::FormMagick::Panel::remoteaccess;
|
||
|
my $f = esmith::FormMagick::Panel::remoteaccess->new();
|
||
|
$f->display();
|
||
|
|
||
|
=head1 TESTING
|
||
|
|
||
|
|
||
|
=begin testing
|
||
|
|
||
|
use esmith::FormMagick::Tester;
|
||
|
use esmith::TestUtils;
|
||
|
use esmith::ConfigDB;
|
||
|
my $panel = 'remoteaccess';
|
||
|
my $panel_path = "/etc/e-smith/web/functions/".$panel;
|
||
|
my $ua = esmith::FormMagick::Tester->new();
|
||
|
|
||
|
is (mode($panel_path), '4750', "Check permissions on script");
|
||
|
ok ($ua->get_panel($panel), "ABOUT TO RUN L10N TESTS");
|
||
|
is ($ua->{status}, 200, "200 OK");
|
||
|
like($ua->{content}, qr/FORM_TITLE/, "Saw untranslated form title");
|
||
|
ok ($ua->set_language("en-us"), "Set language to U.S. English");
|
||
|
ok ($ua->get_panel($panel), "Get panel");
|
||
|
|
||
|
is ($ua->{status}, 200, "200 OK");
|
||
|
|
||
|
like($ua->{content}, qr/remote access settings/, "Saw translated form title");
|
||
|
|
||
|
# Testing changes
|
||
|
|
||
|
ok ($ua->get_panel($panel), "Testing panel retrieval");
|
||
|
can_ok($ua, "field");
|
||
|
ok ($ua->{form}->find_input('FTPAccess'), 'Finding the FTPAccess field');
|
||
|
ok ($ua->{form}->find_input('sshAccess'), 'Finding the sshAccess field');
|
||
|
ok ($ua->{form}->find_input('sshPermitRootLogin'), 'Finding the sshPermitRootLogin field');
|
||
|
ok ($ua->{form}->find_input('sshTCPPort'), 'Finding the sshTCPPort field');
|
||
|
ok ($ua->{form}->find_input('vpnSessions'), 'Finding the vpnSessions field');
|
||
|
ok ($ua->{form}->find_input('sshPasswordAuthentication'), 'Finding the sshPasswordAuthentication field');
|
||
|
ok ($ua->{form}->find_input('FTPLimits'), 'Finding the FTPLimits field');
|
||
|
ok ($ua->{form}->find_input('TelnetAccess'), 'Finding the TelnetAccess field');
|
||
|
|
||
|
if (destruction_ok()) {
|
||
|
$ua->field('FTPAccess' => 'private');
|
||
|
$ua->field('sshAccess' => 'public');
|
||
|
$ua->field('sshPermitRootLogin' => 'yes');
|
||
|
$ua->field('sshTCPPort' => '22');
|
||
|
$ua->field('vpnSessions' => '10');
|
||
|
$ua->field('sshPasswordAuthentication' => 'yes');
|
||
|
$ua->field('FTPLimits' => 'normal');
|
||
|
$ua->field('TelnetAccess' => 'private');
|
||
|
}
|
||
|
|
||
|
ok ($ua->click("Save"), "Click Save");
|
||
|
is ($ua->{status}, 200, "200 OK");
|
||
|
|
||
|
like($ua->{content}, qr/settings have been saved/, "Saw validation messages");
|
||
|
|
||
|
# Gotta open this later, so we don't cache stale data
|
||
|
my $db = esmith::ConfigDB->open;
|
||
|
|
||
|
SKIP:
|
||
|
{
|
||
|
skip 9, "Unsafe!" unless destruction_ok();
|
||
|
|
||
|
is($db->get('sshd')->prop('access'), 'public', "We have public ssh");
|
||
|
is($db->get('sshd')->prop('PasswordAuthentication'), 'yes', "We have password auth");
|
||
|
is($db->get('sshd')->prop('PermitRootLogin'), 'yes', "We have root login");
|
||
|
is($db->get('sshd')->prop('TCPPort'), '22', "Got the right tcp port for ssh');
|
||
|
is($db->get('sshd')->prop('status'), 'enabled', "ssh is enabled");
|
||
|
|
||
|
is ($db->get('ftp')->prop('access'), 'private', "ftp access is private");
|
||
|
is ($db->get('ftp')->prop('accessLimits'), 'normal', "ftp access limits are normal");
|
||
|
is ($db->get('vpn')->prop('sessions') ,'10', "Got the right session count for vpn");
|
||
|
is ($db->get('vpn')->prop('status') ,'enabled', "vpn is enabled");
|
||
|
is ($db->get('telnet')->prop('access'), 'private', "Private telnet turned on");
|
||
|
}
|
||
|
|
||
|
=end testing
|
||
|
|
||
|
=cut
|
||
|
|
||
|
__DATA__
|
||
|
<form title="FORM_TITLE" header="/etc/e-smith/web/common/head.tmpl"
|
||
|
footer="/etc/e-smith/web/common/foot.tmpl">
|
||
|
<page name="First" post-event="change_settings()"
|
||
|
pre-event="print_status_message()">
|
||
|
|
||
|
<field type="text" id="vpnSessions" size="3" validation="zero_or_positive(), vpn_and_dhcp_range()"
|
||
|
value="get_vpn_sessions()">
|
||
|
<label>LABEL_PPTP</label>
|
||
|
<description>DESC_VPN</description>
|
||
|
</field>
|
||
|
|
||
|
<subroutine src="show_ipsecrw_section()"/>
|
||
|
|
||
|
<subroutine src="show_valid_from_list()"/>
|
||
|
<field type="text" id="validFromNetwork" size="15"
|
||
|
value="" validation="ip_number_or_blank">
|
||
|
<description>DESC_VALID_FROM_ENTRIES</description>
|
||
|
<label>NETWORK</label>
|
||
|
</field>
|
||
|
<field type="text" id="validFromMask" size="15"
|
||
|
value="" validation="subnet_mask_or_blank, validate_network_and_mask">
|
||
|
<label>SUBNET_MASK</label>
|
||
|
</field>
|
||
|
|
||
|
<field type="select"
|
||
|
id="sshAccess"
|
||
|
options=" 'off' => 'NO_ACCESS', 'private' => 'NETWORKS_ALLOW_LOCAL', 'public' => 'NETWORKS_ALLOW_PUBLIC'"
|
||
|
value="get_ssh_access()">
|
||
|
<label>LABEL_SSH</label>
|
||
|
<description>DESC_SSH</description>
|
||
|
</field>
|
||
|
<field type="select"
|
||
|
id="sshPermitRootLogin"
|
||
|
options=" 'no'=>'NO', 'yes'=>'YES'"
|
||
|
value="get_ssh_permit_root_login()">
|
||
|
<label>LABEL_SSH_ADMIN</label>
|
||
|
</field>
|
||
|
<field type="select"
|
||
|
id="sshPasswordAuthentication"
|
||
|
options=" 'no'=>'NO', 'yes'=>'YES'"
|
||
|
value="get_ssh_password_auth()">
|
||
|
<label>LABEL_SSH_PASSWORD_ACCESS</label>
|
||
|
</field>
|
||
|
<field type="text" id="sshTCPPort" size="5"
|
||
|
validation="zero_or_positive"
|
||
|
value="get_ssh_port()">
|
||
|
<label>LABEL_SSH_PORT</label>
|
||
|
</field>
|
||
|
|
||
|
<subroutine src="show_ftp_section()"/>
|
||
|
|
||
|
<subroutine src="show_telnet_section()"/>
|
||
|
|
||
|
<!-- field type="select"
|
||
|
id="serialConsole"
|
||
|
options="
|
||
|
'disabled' => 'DISABLED' ,
|
||
|
'ttyS0' => 'PORT1_ENABLED' ,
|
||
|
'ttyS1' => 'PORT2_ENABLED'
|
||
|
"
|
||
|
value="get_serial_console()">
|
||
|
|
||
|
<label>LABEL_SERIAL_CONSOLE_ACCESS</label>
|
||
|
<description>DESC_SERIAL_CONSOLE_ACCESS</description>
|
||
|
</field -->
|
||
|
|
||
|
<subroutine src="print_button('SAVE')" />
|
||
|
</page>
|
||
|
</form>
|