From 472aa234296b68a946e160dbf9ee45844d3d3136 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Tue, 6 Nov 2012 17:58:11 -0800 Subject: [PATCH] Work on iscsi authentication --- blue-theme/iscsi-server/images/users.gif | Bin 0 -> 5453 bytes iscsi-server/config | 1 + iscsi-server/config-freebsd | 1 + iscsi-server/config.info | 1 + iscsi-server/images/users.gif | Bin 0 -> 390 bytes iscsi-server/iscsi-server-lib.pl | 26 ++++++++++++++++ iscsi-server/lang/en | 4 +++ iscsi-server/list_users.cgi | 37 +++++++++++++++++++++++ 8 files changed, 70 insertions(+) create mode 100644 blue-theme/iscsi-server/images/users.gif create mode 100644 iscsi-server/images/users.gif create mode 100644 iscsi-server/list_users.cgi diff --git a/blue-theme/iscsi-server/images/users.gif b/blue-theme/iscsi-server/images/users.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6bc5174d8367f74d2adfd07596af8977be40dff GIT binary patch literal 5453 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 literal 0 HcmV?d00001 diff --git a/iscsi-server/config b/iscsi-server/config index 03990a3d3..058407c7f 100644 --- a/iscsi-server/config +++ b/iscsi-server/config @@ -1,4 +1,5 @@ targets_file=/etc/iscsi/targets +auths_file=/etc/iscsi/auths iscsi_server=/usr/sbin/iscsi-target pid_file=/var/run/iscsi-target.pid init_name=netbsd-iscsi diff --git a/iscsi-server/config-freebsd b/iscsi-server/config-freebsd index 144a8ef03..cb1c980d2 100644 --- a/iscsi-server/config-freebsd +++ b/iscsi-server/config-freebsd @@ -1,4 +1,5 @@ targets_file=/usr/local/etc/iscsi/targets +auths_file=/usr/local/etc/iscsi/auths iscsi_server=/usr/local/bin/iscsi-target pid_file=/var/run/iscsi-target.pid init_name=iscsi_target diff --git a/iscsi-server/config.info b/iscsi-server/config.info index 4b6eedbc9..fbe124ef0 100644 --- a/iscsi-server/config.info +++ b/iscsi-server/config.info @@ -1,4 +1,5 @@ targets_file=iSCSI server targets file,0 +auths_file=iSCSI server authentication file,0 iscsi_server=Full path to iSCSI server,0 pid_file=Full path to PID file,0 init_name=Bootup script name,0 diff --git a/iscsi-server/images/users.gif b/iscsi-server/images/users.gif new file mode 100644 index 0000000000000000000000000000000000000000..1952c6e566f84e8d608699f94ad37584d96761a6 GIT binary patch literal 390 zcmV;10eSvMNk%w1VK4wN0HFW?|Ns90003rYX3WgYA^8LW00000EC2ui05AYB00091 zgpaAq?GK}zCRhrEj<(~bg-=I*N{Bk7XCkQBtO4A9vevhOt#Bik%b}7taiUl}fgXZc-CwMmC}&;sQ8dvtwV|R}NHWO7$8K;})k^!KT4C zKyed@cK{b>C=d|#cR+LW$aj{O_;7UDn0d%2!0Fk@<0fdZk;EkBx1c&(c7vD*+gXRo z@L4+G6BVqRv3k;o1`M_|tYw_=_`4yty!%6#oJt)Fl2T>4r1!f`+-t`RO~@0zj;qTp zdyZo%DgIi1O8?DTUu^*2O&=F^wk9d_SBW2kXm~6z`-d-}!hr%E9t3DkV4hft2Jv7# zmS7bNOiXTkbiqpyi&O~0nT!Y$WxfL?J;Dr`5*^N#iCz|q*R7En7$;fAJci1Th@!@x kEda<=r&9$`Z>Ewum1b3#G>|@^Mz!dUv1H4d9a{hZJMDw1g#Z8m literal 0 HcmV?d00001 diff --git a/iscsi-server/iscsi-server-lib.pl b/iscsi-server/iscsi-server-lib.pl index 081e6020b..31ca17cce 100644 --- a/iscsi-server/iscsi-server-lib.pl +++ b/iscsi-server/iscsi-server-lib.pl @@ -474,5 +474,31 @@ foreach my $o (keys %$opts) { &save_iscsi_options_string(join(" ", @str)); } +# list_iscsi_users() +# Parses the auths file and returns an array of users +sub list_iscsi_users +{ +my @rv; +my $fh = "AUTHS"; +my $lnum = 0; +&open_readfile($fh, $config{'auths_file'}) || return ( ); +while(<$fh>) { + s/\r|\n//; + s/\s+$//; + my ($user, $mode, $pass, @rest) = split(/:/, $_); + if ($user) { + my $uinfo = { 'user' => $user, + 'mode' => $mode, + 'pass' => $pass, + 'rest' => \@rest, + 'line' => $lnum }; + push(@rv, $uinfo); + } + $lnum++; + } +close($fh); +return @rv; +} + 1; diff --git a/iscsi-server/lang/en b/iscsi-server/lang/en index 3b0a29890..232006d38 100644 --- a/iscsi-server/lang/en +++ b/iscsi-server/lang/en @@ -138,6 +138,10 @@ manual_desc=Use the text box below to edit the iSCSI server configuration file $ manual_err=Failed to save configuration file manual_edata=No contents entered! +users_title=iSCSI Authentication +users_none=No iSCSI users have been created yet. Clients will be able to access shared devices without authenticating. +users_add=Add a new iSCSI user. + desc_extent=Device to share $1 desc_device=Device combination $1 desc_target=Sharing target $1 diff --git a/iscsi-server/list_users.cgi b/iscsi-server/list_users.cgi new file mode 100644 index 000000000..3a261094e --- /dev/null +++ b/iscsi-server/list_users.cgi @@ -0,0 +1,37 @@ +#!/usr/local/bin/perl +# List all iscsi users + +use strict; +use warnings; +require './iscsi-server-lib.pl'; +our (%text); +my @users = &list_iscsi_users(); + +&ui_print_header(undef, $text{'users_title'}, ""); + +my @links = ( "$text{'users_add'}" ); +if (@users) { + unshift(@links, &select_all_link("d"), &select_invert_link("d")); + print &ui_form_start("delete_devices.cgi"); + print &ui_links_row(\@links); + my @tds = ( "width=5" ); + print &ui_columns_start([ undef, + $text{'users_name'}, + $text{'users_mode'} ], 100, 0, \@tds); + foreach my $e (@users) { + print &ui_checked_columns_row([ + "". + &html_escape($e->{'user'})."", + uc($e->{'mode'}), + ], \@tds, "d", $e->{'user'}); + } + print &ui_columns_end(); + print &ui_links_row(\@links); + print &ui_form_end([ [ undef, $text{'users_delete'} ] ]); + } +else { + print "$text{'users_none'}

\n"; + print &ui_links_row(\@links); + } + +&ui_print_footer("", $text{'index_return'});