From: <abe...@us...> - 2013-02-24 02:39:44
|
Revision: 5966 http://astlinux.svn.sourceforge.net/astlinux/?rev=5966&view=rev Author: abelbeck Date: 2013-02-24 02:39:36 +0000 (Sun, 24 Feb 2013) Log Message: ----------- web interface, OpenVPN Client, add support for User/Pass Modified Paths: -------------- branches/1.0/package/webinterface/altweb/admin/firewall.php branches/1.0/package/webinterface/altweb/admin/openvpnclient.php branches/1.0/package/webinterface/altweb/admin/system.php Modified: branches/1.0/package/webinterface/altweb/admin/firewall.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/firewall.php 2013-02-23 21:26:30 UTC (rev 5965) +++ branches/1.0/package/webinterface/altweb/admin/firewall.php 2013-02-24 02:39:36 UTC (rev 5966) @@ -823,9 +823,11 @@ putHtml('Port:<input type="text" size="18" maxlength="64" name="d_lport" value="'.$ldb['d_lport'].'" />'); putHtml('– <input type="text" size="6" maxlength="5" name="d_uport" value="'.$ldb['d_uport'].'" />'); putHtml('</td></tr>'); - putHtml('<tr><td id="nat_ext" class="dialogText" style="visibility: hidden;">'); + putHtml('<tr><td class="dialogText">'); + putHtml('<div id="nat_ext" style="visibility: hidden;">'); putHtml('NAT EXT:'); putHtml('<input type="text" size="16" maxlength="18" name="e_addr" value="'.$ldb['e_addr'].'" />'); + putHtml('</div>'); putHtml('</td><td colspan="2" class="dialogText" style="text-align: right;">'); putHtml('Comment <i>(optional)</i>:<input type="text" size="64" maxlength="64" name="comment" value="'.htmlspecialchars($ldb['comment']).'" />'); putHtml('</td></tr>'); Modified: branches/1.0/package/webinterface/altweb/admin/openvpnclient.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/openvpnclient.php 2013-02-23 21:26:30 UTC (rev 5965) +++ branches/1.0/package/webinterface/altweb/admin/openvpnclient.php 2013-02-24 02:39:36 UTC (rev 5966) @@ -10,6 +10,7 @@ // 04-15-2009 // 08-13-2010, Added QoS Passthrough, setting passtos // 02-13-2013, Added OpenVPN 2.3 IPv6 support +// 02-23-2013, Added User/Pass support // // System location of /mnt/kd/rc.conf.d directory $OVPNCONFDIR = '/mnt/kd/rc.conf.d'; @@ -24,6 +25,11 @@ $openssl = openvpnclientSETUP(); +$auth_method_menu = array ( + '' => 'Certificate', + 'yes' => 'Cert. + User/Pass' +); + $protocol_menu = array ( 'udp' => 'UDP v4', 'tcp-client' => 'TCP v4', @@ -57,6 +63,26 @@ '0' => 'None' ); +// Function: parseUserPass +// +function parseUserPass($user_pass, $type) { + $str = ''; + if ($user_pass !== '') { + $index = 0; + $match = ($type === 'user') ? 1 : 2; + $strtokens = explode(' ', $user_pass); + foreach ($strtokens as $value) { + if ($value !== '') { + if (++$index == $match) { + $str = $value; + break; + } + } + } + } + return($str); +} + // Function: saveOVPNCsettings // function saveOVPNCsettings($conf_dir, $conf_file) { @@ -95,6 +121,13 @@ $value = 'OVPNC_AUTH="'.$_POST['auth_hmac'].'"'; fwrite($fp, "### Auth HMAC\n".$value."\n"); + + if ($_POST['auth_method'] === 'yes' && trim($_POST['auth_user']) !== '' && trim($_POST['auth_pass']) !== '') { + $value = 'OVPNC_USER_PASS="'.trim($_POST['auth_user']).' '.string2RCconfig(trim($_POST['auth_pass'])).'"'; + } else { + $value = 'OVPNC_USER_PASS=""'; + } + fwrite($fp, "### Auth User/Pass\n".$value."\n"); $value = 'OVPNC_NSCERTTYPE="'.$_POST['nscerttype'].'"'; fwrite($fp, "### nsCertType\n".$value."\n"); @@ -260,9 +293,25 @@ } putHtml("</center>"); ?> + <script language="JavaScript" type="text/javascript"> + //<![CDATA[ + function auth_method_change() { + var form = document.getElementById("iform"); + var user_pass = document.getElementById("user_pass"); + switch (form.auth_method.selectedIndex) { + case 0: // Certificate + user_pass.style.visibility = "hidden"; + break; + case 1: // Cert. + User/Pass + user_pass.style.visibility = "visible"; + break; + } + } + //]]> + </script> <center> <table class="layout"><tr><td><center> - <form method="post" action="<?php echo $myself;?>"> + <form id="iform" method="post" action="<?php echo $myself;?>"> <table width="100%" class="stdtable"> <tr><td style="text-align: center;" colspan="2"> <h2>OpenVPN Client Configuration:</h2> @@ -379,6 +428,33 @@ putHtml('</td></tr>'); putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Auth Method:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + if (($auth_method = getVARdef($db, 'OVPNC_USER_PASS')) !== '') { + $auth_method = 'yes'; + } + putHtml('<select name="auth_method" onchange="auth_method_change()">'); + foreach ($auth_method_menu as $key => $value) { + $sel = ($auth_method === $key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml(' '); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<div id="user_pass" style="visibility: hidden;">'); + $user_pass = getVARdef($db, 'OVPNC_USER_PASS'); + $value = parseUserPass($user_pass, 'user'); + putHtml('User: <input type="text" size="16" maxlength="128" value="'.$value.'" name="auth_user" />'); + $value = parseUserPass($user_pass, 'pass'); + $value = htmlspecialchars(RCconfig2string($value)); + putHtml('Pass: <input type="password" size="16" maxlength="128" value="'.$value.'" name="auth_pass" />'); + putHtml('</div>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); putHtml('Require nsCertType:'); putHtml('</td><td style="text-align: left;" colspan="4">'); $nscerttype = getVARdef($db, 'OVPNC_NSCERTTYPE'); @@ -479,6 +555,11 @@ putHtml('</center></td></tr></table>'); putHtml('</center>'); + putHtml('<script language="JavaScript" type="text/javascript">'); + putHtml('//<![CDATA['); + putHtml('auth_method_change();'); + putHtml('//]]>'); + putHtml('</script>'); } // End of HTTP GET require_once '../common/footer.php'; Modified: branches/1.0/package/webinterface/altweb/admin/system.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/system.php 2013-02-23 21:26:30 UTC (rev 5965) +++ branches/1.0/package/webinterface/altweb/admin/system.php 2013-02-24 02:39:36 UTC (rev 5966) @@ -774,6 +774,7 @@ $var === 'STATICHOSTS' || $var === 'PPTP_USER_PASS' || $var === 'OVPN_USER_PASS' || + $var === 'OVPNC_USER_PASS' || $var === 'IPSECM_XAUTH_USER_PASS' || $var === 'IPSEC_PSK_ASSOCIATIONS') { $value = '********'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |