diff options
-rwxr-xr-x | usr/local/www/vpn_pppoe_edit.php | 602 |
1 files changed, 305 insertions, 297 deletions
diff --git a/usr/local/www/vpn_pppoe_edit.php b/usr/local/www/vpn_pppoe_edit.php index b7c4ef0..447d82a 100755 --- a/usr/local/www/vpn_pppoe_edit.php +++ b/usr/local/www/vpn_pppoe_edit.php @@ -2,21 +2,21 @@ /* vpn_pppoe_edit.php part of pfSense - + Copyright (C) 2005 Scott Ullrich (sullrich@gmail.com) Copyright (C) 2010 Ermal Luçi 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 @@ -48,7 +48,7 @@ function vpn_pppoe_get_id() { if ($vpnid == $pppoe['id']) $vpnid++; else - return $vpnid; + return $vpnid; } } @@ -62,7 +62,7 @@ $a_pppoes = &$config['pppoes']['pppoe']; $id = $_GET['id']; if (isset($_POST['id'])) - $id = $_POST['id']; + $id = $_POST['id']; if (isset($id) && $a_pppoes[$id]) { $pppoecfg =& $a_pppoes[$id]; @@ -131,9 +131,9 @@ if ($_POST) { $subnet_end = ip2ulong($_POST['remoteip']) + $_POST['pppoe_subnet'] - 1; if ((ip2ulong($_POST['localip']) >= $subnet_start) && (ip2ulong($_POST['localip']) <= $subnet_end)) - $input_errors[] = gettext("The specified server address lies in the remote subnet."); + $input_errors[] = gettext("The specified server address lies in the remote subnet."); if ($_POST['localip'] == get_interface_ip($_POST['interface'])) - $input_errors[] = gettext("The specified server address is equal to an interface ip address."); + $input_errors[] = gettext("The specified server address is equal to an interface ip address."); for($x=0; $x<4999; $x++) { if ($_POST["username{$x}"]) { @@ -155,14 +155,14 @@ if ($_POST) { $pppoecfg['localip'] = $_POST['localip']; $pppoecfg['mode'] = $_POST['mode']; $pppoecfg['interface'] = $_POST['interface']; - $pppoecfg['n_pppoe_units'] = $_POST['n_pppoe_units']; + $pppoecfg['n_pppoe_units'] = $_POST['n_pppoe_units']; $pppoecfg['pppoe_subnet'] = $_POST['pppoe_subnet']; $pppoecfg['descr'] = $_POST['descr']; if ($_POST['radiusserver'] || $_POST['radiusserver2']) { $pppoecfg['radius'] = array(); $pppoecfg['radius']['nasip'] = $_POST['radius_nasip']; - $pppoecfg['radius']['acct_update'] = $_POST['radius_acct_update']; + $pppoecfg['radius']['acct_update'] = $_POST['radius_acct_update']; } if ($_POST['radiusserver']) { $pppoecfg['radius']['server'] = array(); @@ -181,18 +181,18 @@ if ($_POST) { $pppoecfg['radius']['server2']['acctport'] = $_POST['radiusserver2acctport']; } - if ($_POST['pppoe_dns1'] <> "") + if ($_POST['pppoe_dns1'] <> "") $pppoecfg['dns1'] = $_POST['pppoe_dns1']; - if ($_POST['pppoe_dns2'] <> "") + if ($_POST['pppoe_dns2'] <> "") $pppoecfg['dns2'] = $_POST['pppoe_dns2']; if($_POST['radiusenable'] == "yes") $pppoecfg['radius']['server']['enable'] = true; - + if($_POST['radiussecenable'] == "yes") $pppoecfg['radius']['server2']['enable'] = true; - + if($_POST['radacct_enable'] == "yes") $pppoecfg['radius']['accounting'] = true; @@ -217,18 +217,18 @@ if ($_POST) { $pppoecfg['username'] = implode(" ", $users); if (!isset($id)) - $id = count($a_pppoes); - if (file_exists("{$g['tmp_path']}/.vpn_pppoe.apply")) - $toapplylist = unserialize(file_get_contents("{$g['tmp_path']}/.vpn_pppoe.apply")); - else - $toapplylist = array(); + $id = count($a_pppoes); + if (file_exists("{$g['tmp_path']}/.vpn_pppoe.apply")) + $toapplylist = unserialize(file_get_contents("{$g['tmp_path']}/.vpn_pppoe.apply")); + else + $toapplylist = array(); - $toapplylist[] = $pppoecfg['pppoeid']; + $toapplylist[] = $pppoecfg['pppoeid']; $a_pppoes[$id] = $pppoecfg; write_config(); mark_subsystem_dirty('vpnpppoe'); - file_put_contents("{$g['tmp_path']}/.vpn_pppoe.apply", serialize($toapplylist)); + file_put_contents("{$g['tmp_path']}/.vpn_pppoe.apply", serialize($toapplylist)); header("Location: vpn_pppoe.php"); exit; } @@ -242,25 +242,24 @@ include("head.inc"); <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> <?php include("fbegin.inc"); ?> -<script type="text/javascript" src="/javascript/row_helper.js"> -</script> +<script type="text/javascript" src="/javascript/row_helper.js"></script> <input type='hidden' name='username' value='textbox' class="formfld unknown" /> <input type='hidden' name='password' value='textbox' /> <input type='hidden' name='ip' value='textbox' /> <script type="text/javascript"> - rowname[0] = "username"; - rowtype[0] = "textbox"; - rowsize[0] = "20"; + rowname[0] = "username"; + rowtype[0] = "textbox"; + rowsize[0] = "20"; - rowname[1] = "password"; - rowtype[1] = "password"; - rowsize[1] = "20"; + rowname[1] = "password"; + rowtype[1] = "password"; + rowsize[1] = "20"; - rowname[2] = "ip"; - rowtype[2] = "textbox"; - rowsize[2] = "10"; + rowname[2] = "ip"; + rowtype[2] = "textbox"; + rowsize[2] = "10"; </script> <script language="JavaScript"> @@ -281,10 +280,10 @@ function enable_change(enable_over) { document.iform.localip.disabled = 0; document.iform.radiusenable.disabled = 0; document.iform.interface.disabled = 0; - document.iform.n_pppoe_units.disabled = 0; - document.iform.pppoe_subnet.disabled = 0; + document.iform.n_pppoe_units.disabled = 0; + document.iform.pppoe_subnet.disabled = 0; document.iform.pppoe_dns1.disabled = 0; - document.iform.pppoe_dns2.disabled = 0; + document.iform.pppoe_dns2.disabled = 0; if (document.iform.radiusenable.checked || enable_over) { document.iform.radacct_enable.disabled = 0; document.iform.radiusserver.disabled = 0; @@ -322,8 +321,8 @@ function enable_change(enable_over) { } } else { document.iform.interface.disabled = 1; - document.iform.n_pppoe_units.disabled = 1; - document.iform.pppoe_subnet.disabled = 1; + document.iform.n_pppoe_units.disabled = 1; + document.iform.pppoe_subnet.disabled = 1; document.iform.remoteip.disabled = 1; document.iform.descr.disabled = 1; document.iform.localip.disabled = 1; @@ -348,271 +347,280 @@ function enable_change(enable_over) { //--> </script> <form action="vpn_pppoe_edit.php" method="post" name="iform" id="iform"> -<?php if ($input_errors) print_input_errors($input_errors); ?> -<?php if ($savemsg) print_info_box($savemsg); ?> +<?php +if ($input_errors) + print_input_errors($input_errors); +if ($savemsg) + print_info_box($savemsg); +?> <table width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> - <td height="16" colspan="2" class="listtopic" valign="top"><?php echo gettext("PPPoE server configuration"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vtable"> </td> - <td width="78%" class="vtable"> - <input name="mode" type="radio" onclick="enable_change(false)" value="off" - <?php if ($pconfig['mode'] != "server") echo "checked";?>> - <?=gettext("Off"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vtable"> </td> - <td width="78%" class="vtable"> - <input type="radio" name="mode" value="server" onclick="enable_change(false)" <?php if ($pconfig['mode'] == "server") echo "checked"; ?>> - <?=gettext("Enable PPPoE server"); ?></td> - </tr> - - <tr> - <td width="22%" valign="top" class="vncell"><b><?=gettext("Interface"); ?></b></td> - <td width="78%" valign="top" class="vtable"> - - <select name="interface" class="formselect" id="interface"> - <?php - $interfaces = get_configured_interface_with_descr(); - - foreach ($interfaces as $iface => $ifacename): - ?> - <option value="<?=$iface;?>" <?php if ($iface == $pconfig['interface']) echo "selected"; ?>> - <?=htmlspecialchars($ifacename);?> - </option> - <?php endforeach; ?> - </select> <br> - - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Subnet netmask"); ?></td> - <td width="78%" class="vtable"> - <select id="pppoe_subnet" name="pppoe_subnet"> - <?php - for($x=0; $x<33; $x++) { - if($x == $pconfig['pppoe_subnet']) - $SELECTED = " SELECTED"; - else - $SELECTED = ""; - echo "<option value=\"{$x}\"{$SELECTED}>{$x}</option>\n"; - } - ?> - </select> - <br><?=gettext("Hint"); ?>: 24 <?=gettext("is"); ?> 255.255.255.0 - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("No. PPPoE users"); ?></td> - <td width="78%" class="vtable"> - <select id="n_pppoe_units" name="n_pppoe_units"> - <?php - for($x=0; $x<255; $x++) { - if($x == $pconfig['n_pppoe_units']) - $SELECTED = " SELECTED"; - else - $SELECTED = ""; - echo "<option value=\"{$x}\"{$SELECTED}>{$x}</option>\n"; - } - ?> - </select> - <br><?=gettext("Hint: 10 is ten PPPoE clients"); ?> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Server address"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="localip" type="text" class="formfld unknown" id="localip" size="20" value="<?=htmlspecialchars($pconfig['localip']);?>"> - <br/> - <?=gettext("Enter the IP address the PPPoE server should give to clients for use as their \"gateway\""); ?>. - <br/> - <?=gettext("Typically this is set to an unused IP just outside of the client range"); ?>. - <br/> - <br/> - <?=gettext("NOTE: This should NOT be set to any IP address currently in use on this firewall"); ?>.</td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("Remote address range"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="remoteip" type="text" class="formfld unknown" id="remoteip" size="20" value="<?=htmlspecialchars($pconfig['remoteip']);?>"> - <br> - <?=gettext("Specify the starting address for the client IP address subnet"); ?>.<br> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>"> - <br/> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("DNS servers"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="pppoe_dns1" type="text" class="formfld unknown" id="pppoe_dns1" size="20" value="<?=htmlspecialchars($pconfig['pppoe_dns1']);?>"> - <br> - <input name="pppoe_dns2" type="text" class="formfld unknown" id="pppoe_dns2" size="20" value="<?=htmlspecialchars($pconfig['pppoe_dns2']);?>"> - <br> - <?=gettext("If entered they will be given to all PPPoE clients, else LAN DNS and one WAN DNS will go to all clients"); ?><br> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS"); ?></td> - <td width="78%" class="vtable"> - <input name="radiusenable" type="checkbox" id="radiusenable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radiusenable']) echo "checked"; ?>> - <strong><?=gettext("Use a RADIUS server for authentication"); ?><br> - </strong><?=gettext("When set, all users will be authenticated using " . - "the RADIUS server specified below. The local user database " . - "will not be used"); ?>.<br> - <br> - <input name="radacct_enable" type="checkbox" id="radacct_enable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radacct_enable']) echo "checked"; ?>> - <strong><?=gettext("Enable RADIUS accounting"); ?> <br> - <br> - </strong><?=gettext("Sends accounting packets to the RADIUS server"); ?>.<br> - <input name="radiussecenable" type="checkbox" id="radiussecenable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radiussecenable']) echo "checked"; ?>> - <strong><?=gettext("Use Backup RADIUS Server"); ?></strong><br> - <?=gettext("When set, if primary server fails all requests will be sent via backup server"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("NAS IP Address"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="radius_nasip" type="text" class="formfld unknown" id="radius_nasip" size="20" value="<?=htmlspecialchars($pconfig['radius_nasip']);?>"> - <br><?=gettext("RADIUS server NAS IP Address"); ?><br> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq"><?=gettext("RADIUS Accounting Update"); ?></td> - <td width="78%" class="vtable"> - <?=$mandfldhtml;?><input name="radius_acct_update" type="text" class="formfld unknown" id="radius_acct_update" size="20" value="<?=htmlspecialchars($pconfig['radius_acct_update']);?>"> - <br><?=gettext("RADIUS accounting update period in seconds"); ?> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS issued IPs"); ?></td> - <td width="78%" valign="top" class="vtable"> - <input name="radiusissueips" value="yes" type="checkbox" class="formfld" id="radiusissueips"<?php if($pconfig['radiusissueips']) echo " CHECKED"; ?>> - <br><?=gettext("Issue IP Addresses via RADIUS server"); ?>.</td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS server Primary"); ?></td> - <td width="78%" class="vtable"> - <input name="radiusserver" type="text" class="formfld unknown" id="radiusserver" size="20" value="<?=htmlspecialchars($pconfig['radiusserver']);?>"> - <input name="radiusserverport" type="text" class="formfld unknown" id="radiusserverport" size="4" value="<?=htmlspecialchars($pconfig['radiusserverport']);?>"> - <input name="radiusserveracctport" type="text" class="formfld unknown" id="radiusserveracctport" size="4" value="<?=htmlspecialchars($pconfig['radiusserveracctport']);?>"> - <br><?=gettext("Enter the IP address, authentication port and accounting port (optional) of the RADIUS server."); ?><br> - <br> <?=gettext("standard port 1812 and 1813 accounting"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS primary shared secret"); ?></td> - <td width="78%" valign="top" class="vtable"> - <input name="radiussecret" type="password" class="formfld pwd" id="radiussecret" size="20" value="<?=htmlspecialchars($pconfig['radiussecret']);?>"> - <br><?=gettext("Enter the shared secret that will be used to authenticate " . - "to the RADIUS server"); ?>.</td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS server Secondary"); ?></td> - <td width="78%" class="vtable"> - <input name="radiusserver2" type="text" class="formfld unknown" id="radiusserver2" size="20" value="<?=htmlspecialchars($pconfig['radiusserver2']);?>"> - <input name="radiusserver2port" type="text" class="formfld unknown" id="radiusserver2port" size="4" value="<?=htmlspecialchars($pconfig['radiusserver2port']);?>"> - <input name="radiusserver2acctport" type="text" class="formfld unknown" id="radiusserver2acctport" size="4" value="<?=htmlspecialchars($pconfig['radiusserver2acctport']);?>"> - <br><?=gettext("Enter the IP address, authentication port and accounting port (optional) of the backup RADIUS server."); ?><br> - <br> <?=gettext("standard port 1812 and 1813 accounting"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS secondary shared secret"); ?></td> - <td width="78%" valign="top" class="vtable"> - <input name="radiussecret2" type="password" class="formfld pwd" id="radiussecret2" size="20" value="<?=htmlspecialchars($pconfig['radiussecret2']);?>"> - <br> - <?=gettext("Enter the shared secret that will be used to authenticate " . - "to the RADIUS server"); ?>.</td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"><div id="addressnetworkport"><?=gettext("User (s)");?></div></td> - <td width="78%" class="vtable"> - <table id="usertable"> - <tbody> - <tr> - <td><div id="onecolumn"><?=gettext("Username");?></div></td> - <td><div id="twocolumn"><?=gettext("Password");?></div></td> - <td><div id="thirdcolumn"><?=gettext("IP");?></div></td> - </tr> - <?php $counter = 0; - $usernames = $pconfig['username']; - if ($usernames <> "") { - $item = explode(" ", $usernames); - foreach($item as $ww) { - $wws = explode(":", $ww); - $user = $wws[0]; - $passwd = base64_decode($wws[1]); - $ip = $wws[2]; - $tracker = $counter; - ?> - <tr> - <td> - <input name="username<?php echo $tracker; ?>" type="text" class="formfld unknown" id="username<?php echo $tracker; ?>" size="20" value="<?=htmlspecialchars($user);?>" /> - </td> - <td> - <input name="password<?php echo $tracker; ?>" type="password" class="formfld pwd" id="password<?php echo $tracker; ?>" size="20" value="<?=htmlspecialchars($passwd);?>" /> - </td> - <td> - <input name="ip<?php echo $tracker; ?>" type="text" class="formfld unknown" id="ip<?php echo $tracker; ?>" size="10" value="<?=htmlspecialchars($ip);?>" /> - </td> - <td> - <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" /></a> - </td> - </tr> - <?php - $counter++; - } // end foreach - } // end if - ?> - </tbody> - </table> - <a onclick="javascript:addRowTo('usertable'); return false;" href="#"> - <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry");?>" /> - </a> - </td> - </tr> - <tr> - <td height="16" colspan="2" valign="top"></td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"> - <?php if (isset($id)) - echo "<input type='hidden' name='id' id='id' value='{$id}' >"; - ?> - <?php if (isset($pconfig['pppoeid'])) - echo "<input type='hidden' name='pppoeid' id='pppoeid' value='{$pppoeid}' >"; - ?> - <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" onclick="enable_change(true)"/> - <a href="vpn_pppoe.php"><input name="Cancel" type="button" class="formbtn" value="<?=gettext("Cancel"); ?>"></a> - </td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"><span class="vexpl"><span class="red"><strong><?=gettext("Note"); ?>:<br> - </strong></span><?=gettext("don't forget to add a firewall rule to permit " . - "traffic from PPPoE clients"); ?>!</span></td> - </tr> - </table> - </div> - </td> + <tr> + <td> + <div id="mainarea"> + <table class="tabcont" width="100%" border="0" cellpadding="6" cellspacing="0"> + <tr> + <td height="16" colspan="2" class="listtopic" valign="top"><?php echo gettext("PPPoE server configuration"); ?></td> + </tr> + <tr> + <td width="22%" valign="top" class="vtable"> </td> + <td width="78%" class="vtable"> + <input name="mode" type="radio" onclick="enable_change(false)" value="off" + <?php if ($pconfig['mode'] != "server") echo "checked";?>> + <?=gettext("Off"); ?> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vtable"> </td> + <td width="78%" class="vtable"> + <input type="radio" name="mode" value="server" onclick="enable_change(false)" <?php if ($pconfig['mode'] == "server") echo "checked"; ?>> + <?=gettext("Enable PPPoE server"); ?></td> + </tr> + + <tr> + <td width="22%" valign="top" class="vncell"><b><?=gettext("Interface"); ?></b></td> + <td width="78%" valign="top" class="vtable"> + + <select name="interface" class="formselect" id="interface"> +<?php + $interfaces = get_configured_interface_with_descr(); + foreach ($interfaces as $iface => $ifacename): +?> + <option value="<?=$iface;?>" <?php if ($iface == $pconfig['interface']) echo "selected"; ?>> + <?=htmlspecialchars($ifacename);?> + </option> +<?php + endforeach; +?> + </select> <br> + + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Subnet netmask"); ?></td> + <td width="78%" class="vtable"> + <select id="pppoe_subnet" name="pppoe_subnet"> +<?php + for($x=0; $x<33; $x++) { + if($x == $pconfig['pppoe_subnet']) + $SELECTED = " SELECTED"; + else + $SELECTED = ""; + echo "<option value=\"{$x}\"{$SELECTED}>{$x}</option>\n"; + } +?> + </select> + <br><?=gettext("Hint"); ?>: 24 <?=gettext("is"); ?> 255.255.255.0 + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("No. PPPoE users"); ?></td> + <td width="78%" class="vtable"> + <select id="n_pppoe_units" name="n_pppoe_units"> +<?php + for($x=0; $x<255; $x++) { + if($x == $pconfig['n_pppoe_units']) + $SELECTED = " SELECTED"; + else + $SELECTED = ""; + echo "<option value=\"{$x}\"{$SELECTED}>{$x}</option>\n"; + } +?> + </select> + <br><?=gettext("Hint: 10 is ten PPPoE clients"); ?> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Server address"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="localip" type="text" class="formfld unknown" id="localip" size="20" value="<?=htmlspecialchars($pconfig['localip']);?>"> + <br/> + <?=gettext("Enter the IP address the PPPoE server should give to clients for use as their \"gateway\""); ?>. + <br/> + <?=gettext("Typically this is set to an unused IP just outside of the client range"); ?>. + <br/> + <br/> + <?=gettext("NOTE: This should NOT be set to any IP address currently in use on this firewall"); ?>.</td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("Remote address range"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="remoteip" type="text" class="formfld unknown" id="remoteip" size="20" value="<?=htmlspecialchars($pconfig['remoteip']);?>"> + <br> + <?=gettext("Specify the starting address for the client IP address subnet"); ?>.<br> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>"> + <br/> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("DNS servers"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="pppoe_dns1" type="text" class="formfld unknown" id="pppoe_dns1" size="20" value="<?=htmlspecialchars($pconfig['pppoe_dns1']);?>"> + <br> + <input name="pppoe_dns2" type="text" class="formfld unknown" id="pppoe_dns2" size="20" value="<?=htmlspecialchars($pconfig['pppoe_dns2']);?>"> + <br> + <?=gettext("If entered they will be given to all PPPoE clients, else LAN DNS and one WAN DNS will go to all clients"); ?><br> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS"); ?></td> + <td width="78%" class="vtable"> + <input name="radiusenable" type="checkbox" id="radiusenable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radiusenable']) echo "checked"; ?>> + <strong><?=gettext("Use a RADIUS server for authentication"); ?><br> + </strong><?=gettext("When set, all users will be authenticated using " . + "the RADIUS server specified below. The local user database " . + "will not be used"); ?>.<br> + <br> + <input name="radacct_enable" type="checkbox" id="radacct_enable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radacct_enable']) echo "checked"; ?>> + <strong><?=gettext("Enable RADIUS accounting"); ?> <br> + <br> + </strong><?=gettext("Sends accounting packets to the RADIUS server"); ?>.<br> + <input name="radiussecenable" type="checkbox" id="radiussecenable" onclick="enable_change(false)" value="yes" <?php if ($pconfig['radiussecenable']) echo "checked"; ?>> + <strong><?=gettext("Use Backup RADIUS Server"); ?></strong><br> + <?=gettext("When set, if primary server fails all requests will be sent via backup server"); ?></td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("NAS IP Address"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="radius_nasip" type="text" class="formfld unknown" id="radius_nasip" size="20" value="<?=htmlspecialchars($pconfig['radius_nasip']);?>"> + <br><?=gettext("RADIUS server NAS IP Address"); ?><br> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq"><?=gettext("RADIUS Accounting Update"); ?></td> + <td width="78%" class="vtable"> + <?=$mandfldhtml;?><input name="radius_acct_update" type="text" class="formfld unknown" id="radius_acct_update" size="20" value="<?=htmlspecialchars($pconfig['radius_acct_update']);?>"> + <br><?=gettext("RADIUS accounting update period in seconds"); ?> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS issued IPs"); ?></td> + <td width="78%" valign="top" class="vtable"> + <input name="radiusissueips" value="yes" type="checkbox" class="formfld" id="radiusissueips"<?php if($pconfig['radiusissueips']) echo " CHECKED"; ?>> + <br><?=gettext("Issue IP Addresses via RADIUS server"); ?>.</td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS server Primary"); ?></td> + <td width="78%" class="vtable"> + <input name="radiusserver" type="text" class="formfld unknown" id="radiusserver" size="20" value="<?=htmlspecialchars($pconfig['radiusserver']);?>"> + <input name="radiusserverport" type="text" class="formfld unknown" id="radiusserverport" size="4" value="<?=htmlspecialchars($pconfig['radiusserverport']);?>"> + <input name="radiusserveracctport" type="text" class="formfld unknown" id="radiusserveracctport" size="4" value="<?=htmlspecialchars($pconfig['radiusserveracctport']);?>"> + <br><?=gettext("Enter the IP address, authentication port and accounting port (optional) of the RADIUS server."); ?><br> + <br> <?=gettext("standard port 1812 and 1813 accounting"); ?></td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS primary shared secret"); ?></td> + <td width="78%" valign="top" class="vtable"> + <input name="radiussecret" type="password" class="formfld pwd" id="radiussecret" size="20" value="<?=htmlspecialchars($pconfig['radiussecret']);?>"> + <br><?=gettext("Enter the shared secret that will be used to authenticate " . + "to the RADIUS server"); ?>.</td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS server Secondary"); ?></td> + <td width="78%" class="vtable"> + <input name="radiusserver2" type="text" class="formfld unknown" id="radiusserver2" size="20" value="<?=htmlspecialchars($pconfig['radiusserver2']);?>"> + <input name="radiusserver2port" type="text" class="formfld unknown" id="radiusserver2port" size="4" value="<?=htmlspecialchars($pconfig['radiusserver2port']);?>"> + <input name="radiusserver2acctport" type="text" class="formfld unknown" id="radiusserver2acctport" size="4" value="<?=htmlspecialchars($pconfig['radiusserver2acctport']);?>"> + <br><?=gettext("Enter the IP address, authentication port and accounting port (optional) of the backup RADIUS server."); ?><br> + <br> <?=gettext("standard port 1812 and 1813 accounting"); ?></td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("RADIUS secondary shared secret"); ?></td> + <td width="78%" valign="top" class="vtable"> + <input name="radiussecret2" type="password" class="formfld pwd" id="radiussecret2" size="20" value="<?=htmlspecialchars($pconfig['radiussecret2']);?>"> + <br> + <?=gettext("Enter the shared secret that will be used to authenticate " . + "to the RADIUS server"); ?>.</td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell"><div id="addressnetworkport"><?=gettext("User (s)");?></div></td> + <td width="78%" class="vtable"> + <table id="usertable"> + <tbody> + <tr> + <td><div id="onecolumn"><?=gettext("Username");?></div></td> + <td><div id="twocolumn"><?=gettext("Password");?></div></td> + <td><div id="thirdcolumn"><?=gettext("IP");?></div></td> + </tr> +<?php + $counter = 0; + $usernames = $pconfig['username']; + if ($usernames <> ""): + $item = explode(" ", $usernames); + foreach($item as $ww): + $wws = explode(":", $ww); + $user = $wws[0]; + $passwd = base64_decode($wws[1]); + $ip = $wws[2]; + $tracker = $counter; +?> + <tr> + <td> + <input name="username<?php echo $tracker; ?>" type="text" class="formfld unknown" id="username<?php echo $tracker; ?>" size="20" value="<?=htmlspecialchars($user);?>" /> + </td> + <td> + <input name="password<?php echo $tracker; ?>" type="password" class="formfld pwd" id="password<?php echo $tracker; ?>" size="20" value="<?=htmlspecialchars($passwd);?>" /> + </td> + <td> + <input name="ip<?php echo $tracker; ?>" type="text" class="formfld unknown" id="ip<?php echo $tracker; ?>" size="10" value="<?=htmlspecialchars($ip);?>" /> + </td> + <td> + <a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" /></a> + </td> + </tr> +<?php + $counter++; + endforeach; + endif; +?> + </tbody> + </table> + <a onclick="javascript:addRowTo('usertable'); return false;" href="#"> + <img border="0" src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" alt="" title="<?=gettext("add another entry");?>" /> + </a> + </td> + </tr> + <tr> + <td height="16" colspan="2" valign="top"></td> + </tr> + <tr> + <td width="22%" valign="top"> </td> + <td width="78%"> +<?php + if (isset($id)) + echo "<input type='hidden' name='id' id='id' value='{$id}' >"; +?> +<?php + if (isset($pconfig['pppoeid'])) + echo "<input type='hidden' name='pppoeid' id='pppoeid' value='{$pppoeid}' >"; +?> + <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" onclick="enable_change(true)"/> + <a href="vpn_pppoe.php"><input name="Cancel" type="button" class="formbtn" value="<?=gettext("Cancel"); ?>"></a> + </td> + </tr> + <tr> + <td width="22%" valign="top"> </td> + <td width="78%"><span class="vexpl"><span class="red"><strong><?=gettext("Note"); ?>:<br> + </strong></span><?=gettext("don't forget to add a firewall rule to permit " . + "traffic from PPPoE clients"); ?>!</span></td> + </tr> + </table> + </div> + </td> </tr> </table> </form> <script type="text/javascript"> -enable_change(false); + enable_change(false); -field_counter_js = 3; -rows = 1; -totalrows = <?php echo $counter; ?>; -loaded = <?php echo $counter; ?>; + field_counter_js = 3; + rows = 1; + totalrows = <?php echo $counter; ?>; + loaded = <?php echo $counter; ?>; </script> <?php include("fend.inc"); ?> |