From c9d46a8e801650dccea466f86c81df3fa626713c Mon Sep 17 00:00:00 2001
From: Renato Botelho
Date: Tue, 15 Sep 2015 17:45:00 -0300
Subject: Retire PPTP server, fixes #4226:
- Remove PPTP server and all related code
- Bump config version 12.2
- Write upgrade config code to remove pptpd section and also cleanup
firewall and NAT rules using PPTP interface or src/des
---
src/usr/local/www/diag_backup.php | 3 +-
src/usr/local/www/diag_logs_filter.php | 3 -
src/usr/local/www/diag_logs_vpn.php | 15 +-
src/usr/local/www/firewall_nat_1to1_edit.php | 10 -
src/usr/local/www/firewall_nat_edit.php | 12 +-
src/usr/local/www/firewall_nat_npt_edit.php | 6 +-
src/usr/local/www/firewall_nat_out_edit.php | 6 +-
src/usr/local/www/firewall_rules.php | 8 +-
src/usr/local/www/firewall_rules_edit.php | 5 -
src/usr/local/www/guiconfig.inc | 2 +-
src/usr/local/www/vpn_pptp.php | 509 ---------------------------
src/usr/local/www/vpn_pptp_users.php | 147 --------
src/usr/local/www/vpn_pptp_users_edit.php | 189 ----------
13 files changed, 9 insertions(+), 906 deletions(-)
delete mode 100644 src/usr/local/www/vpn_pptp.php
delete mode 100644 src/usr/local/www/vpn_pptp_users.php
delete mode 100644 src/usr/local/www/vpn_pptp_users_edit.php
(limited to 'src/usr/local')
diff --git a/src/usr/local/www/diag_backup.php b/src/usr/local/www/diag_backup.php
index 943d57d..cc93b5c 100644
--- a/src/usr/local/www/diag_backup.php
+++ b/src/usr/local/www/diag_backup.php
@@ -579,7 +579,6 @@ function build_area_list($showall) {
"nat" => gettext("NAT"),
"openvpn" => gettext("OpenVPN"),
"installedpackages" => gettext("Package Manager"),
- "pptpd" => gettext("PPTP Server"),
"rrddata" => gettext("RRD Data"),
"cron" => gettext("Scheduled Tasks"),
"syslog" => gettext("Syslog"),
@@ -777,4 +776,4 @@ include("foot.inc");
if (is_subsystem_dirty('restore')) {
system_reboot();
-}
\ No newline at end of file
+}
diff --git a/src/usr/local/www/diag_logs_filter.php b/src/usr/local/www/diag_logs_filter.php
index d43f3a9..5f31998 100644
--- a/src/usr/local/www/diag_logs_filter.php
+++ b/src/usr/local/www/diag_logs_filter.php
@@ -168,9 +168,6 @@ function build_if_list() {
if ($config['l2tp']['mode'] == "server")
$interfaces['l2tp'] = "L2TP VPN";
- if ($config['pptpd']['mode'] == "server")
- $interfaces['pptp'] = "PPTP VPN";
-
if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
$interfaces['pppoe'] = "PPPoE Server";
diff --git a/src/usr/local/www/diag_logs_vpn.php b/src/usr/local/www/diag_logs_vpn.php
index 6429a0c..4394080 100755
--- a/src/usr/local/www/diag_logs_vpn.php
+++ b/src/usr/local/www/diag_logs_vpn.php
@@ -69,7 +69,7 @@
##|-PRIV
-$vpns = array('pptp' => 'PPTP', 'poes' => 'PPPoE', 'l2tp' => 'L2TP');
+$vpns = array('poes' => 'PPPoE', 'l2tp' => 'L2TP');
$pgtitle = array(gettext("Status"), gettext("System logs"), gettext("VPN"));
require("guiconfig.inc");
@@ -85,7 +85,7 @@ if (htmlspecialchars($_POST['vpntype'])) {
} elseif (htmlspecialchars($_GET['vpntype'])) {
$vpntype = htmlspecialchars($_GET['vpntype']);
} else {
- $vpntype = "pptp";
+ $vpntype = "poes";
}
if (htmlspecialchars($_POST['mode'])) {
$mode = htmlspecialchars($_POST['mode']);
@@ -95,9 +95,6 @@ if (htmlspecialchars($_POST['mode'])) {
$mode = "login";
}
switch ($vpntype) {
- case 'pptp':
- $logname = "pptps";
- break;
case 'poes':
$logname = "poes";
break;
@@ -168,12 +165,6 @@ $tab_array[] = array(gettext("Settings"), false, "diag_logs_settings.php");
display_top_tabs($tab_array);
$tab_array = array();
-$tab_array[] = array(gettext("PPTP Logins"),
- (($vpntype == "pptp") && ($mode != "raw")),
- "/diag_logs_vpn.php?vpntype=pptp");
-$tab_array[] = array(gettext("PPTP Raw"),
- (($vpntype == "pptp") && ($mode == "raw")),
- "/diag_logs_vpn.php?vpntype=pptp&mode=raw");
$tab_array[] = array(gettext("PPPoE Logins"),
(($vpntype == "poes") && ($mode != "raw")),
"/diag_logs_vpn.php?vpntype=poes");
@@ -239,4 +230,4 @@ display_top_tabs($tab_array, false, 'nav nav-tabs');
- 'Any', 'single' => 'Single host or alias', 'network' => 'Network', '(self)' => 'This Firewall (self)');
- if (have_ruleint_access("pptp"))
- $list['pptp'] = 'PPTP clients';
-
if (have_ruleint_access("pppoe"))
$list['pppoe'] = 'PPPoE clients';
@@ -409,10 +403,6 @@ if ($config['l2tp']['mode'] == "server")
if (have_ruleint_access("l2tp"))
$interfaces['l2tp'] = "L2TP VPN";
-if ($config['pptpd']['mode'] == "server")
- if (have_ruleint_access("pptp"))
- $interfaces['pptp'] = "PPTP VPN";
-
if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
$interfaces['pppoe'] = "PPPoE Server";
diff --git a/src/usr/local/www/firewall_nat_edit.php b/src/usr/local/www/firewall_nat_edit.php
index 7b63ff6..e2c90f7 100644
--- a/src/usr/local/www/firewall_nat_edit.php
+++ b/src/usr/local/www/firewall_nat_edit.php
@@ -534,9 +534,6 @@ function build_srctype_list() {
$sel = is_specialnet($pconfig['src']);
- if (have_ruleint_access("pptp"))
- $list['pptp'] = 'PPTP clients';
-
if (have_ruleint_access("pppoe"))
$list['pppoe'] = 'PPPoE clients';
@@ -559,9 +556,6 @@ function build_dsttype_list() {
$sel = is_specialnet($pconfig['dst']);
$list = array('any' => 'Any', 'single' => 'Single host or alias', 'network' => 'Network', '(self)' => 'This Firewall (self)');
- if (have_ruleint_access("pptp"))
- $list['pptp'] = 'PPTP clients';
-
if (have_ruleint_access("pppoe"))
$list['pppoe'] = 'PPPoE clients';
@@ -669,10 +663,6 @@ if ($config['l2tp']['mode'] == "server")
if (have_ruleint_access("l2tp"))
$interfaces['l2tp'] = "L2TP VPN";
-if ($config['pptpd']['mode'] == "server")
- if (have_ruleint_access("pptp"))
- $interfaces['pptp'] = "PPTP VPN";
-
if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
$interfaces['pppoe'] = "PPPoE Server";
@@ -1265,4 +1255,4 @@ events.push(function(){
//]]>
-add($section);
print($form);
-include("foot.inc");
\ No newline at end of file
+include("foot.inc");
diff --git a/src/usr/local/www/firewall_nat_out_edit.php b/src/usr/local/www/firewall_nat_out_edit.php
index 7b149db..74c0aed 100644
--- a/src/usr/local/www/firewall_nat_out_edit.php
+++ b/src/usr/local/www/firewall_nat_out_edit.php
@@ -472,10 +472,6 @@ if ($config['l2tp']['mode'] == "server")
if (have_ruleint_access("l2tp"))
$interfaces['l2tp'] = "L2TP VPN";
-if ($config['pptpd']['mode'] == "server")
- if (have_ruleint_access("pptp"))
- $interfaces['pptp'] = "PPTP VPN";
-
if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
$interfaces['pppoe'] = "PPPoE Server";
@@ -857,4 +853,4 @@ events.push(function(){
//]]>
-
-
\ No newline at end of file
+
diff --git a/src/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php
index 1630395..c32a226 100644
--- a/src/usr/local/www/firewall_rules_edit.php
+++ b/src/usr/local/www/firewall_rules_edit.php
@@ -1132,9 +1132,6 @@ foreach (get_configured_interface_with_descr() as $ifent => $ifdesc)
if ($config['l2tp']['mode'] == "server" && have_ruleint_access("l2tp"))
$interfaces['l2tp'] = 'L2TP VPN';
-if ($config['pptpd']['mode'] == "server" && have_ruleint_access("pptp"))
- $interfaces['pptp'] = 'PPTP VPN';
-
if (is_pppoe_server_enabled() && have_ruleint_access("pppoe"))
$interfaces['pppoe'] = "PPPoE Server";
@@ -1256,8 +1253,6 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) {
);
if (isset($a_filter[$id]['floating']) || $if == "FloatingRules")
$ruleValues['(self)'] = 'This Firewall (self)';
- if (have_ruleint_access("pptp"))
- $ruleValues['pptp'] = 'PPTP clients';
if (have_ruleint_access("pppoe"))
$ruleValues['pppoe'] = 'PPPoE clients';
if (have_ruleint_access("l2tp"))
diff --git a/src/usr/local/www/guiconfig.inc b/src/usr/local/www/guiconfig.inc
index 5bd0882..9c7b14b 100644
--- a/src/usr/local/www/guiconfig.inc
+++ b/src/usr/local/www/guiconfig.inc
@@ -256,7 +256,7 @@ $wkports = array(
/* TCP flags */
$tcpflags = array("fin", "syn", "rst", "psh", "ack", "urg", "ece", "cwr");
-$specialnets = array("(self)" => "This Firewall", "pptp" => "PPTP clients", "pppoe" => "PPPoE clients", "l2tp" => "L2TP clients");
+$specialnets = array("(self)" => "This Firewall", "pppoe" => "PPPoE clients", "l2tp" => "L2TP clients");
$spiflist = get_configured_interface_with_descr(false, true);
foreach ($spiflist as $ifgui => $ifdesc) {
diff --git a/src/usr/local/www/vpn_pptp.php b/src/usr/local/www/vpn_pptp.php
deleted file mode 100644
index fc918b4..0000000
--- a/src/usr/local/www/vpn_pptp.php
+++ /dev/null
@@ -1,509 +0,0 @@
-.
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
- 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.
-*/
-
-##|+PRIV
-##|*IDENT=page-vpn-vpnpptp
-##|*NAME=VPN: VPN PPTP page
-##|*DESCR=Allow access to the 'VPN: VPN PPTP' page.
-##|*MATCH=vpn_pptp.php*
-##|-PRIV
-
-require("guiconfig.inc");
-require_once("functions.inc");
-require_once("filter.inc");
-require_once("shaper.inc");
-require_once("vpn.inc");
-
-if (!is_array($config['pptpd']['radius'])) {
- $config['pptpd']['radius'] = array();
-}
-$pptpcfg = &$config['pptpd'];
-
-$pconfig['remoteip'] = $pptpcfg['remoteip'];
-$pconfig['localip'] = $pptpcfg['localip'];
-$pconfig['redir'] = $pptpcfg['redir'];
-$pconfig['mode'] = $pptpcfg['mode'];
-$pconfig['wins'] = $pptpcfg['wins'];
-$pconfig['req128'] = isset($pptpcfg['req128']);
-$pconfig['n_pptp_units'] = $pptpcfg['n_pptp_units'];
-$pconfig['pptp_dns1'] = $pptpcfg['dns1'];
-$pconfig['pptp_dns2'] = $pptpcfg['dns2'];
-$pconfig['radiusenable'] = isset($pptpcfg['radius']['server']['enable']);
-$pconfig['radiusissueips'] = isset($pptpcfg['radius']['radiusissueips']);
-$pconfig['radiussecenable'] = isset($pptpcfg['radius']['server2']['enable']);
-$pconfig['radacct_enable'] = isset($pptpcfg['radius']['accounting']);
-$pconfig['radiusserver'] = $pptpcfg['radius']['server']['ip'];
-$pconfig['radiusserverport'] = $pptpcfg['radius']['server']['port'];
-$pconfig['radiusserveracctport'] = $pptpcfg['radius']['server']['acctport'];
-$pconfig['radiussecret'] = $pptpcfg['radius']['server']['secret'];
-$pconfig['radiusserver2'] = $pptpcfg['radius']['server2']['ip'];
-$pconfig['radiusserver2port'] = $pptpcfg['radius']['server2']['port'];
-$pconfig['radiusserver2acctport'] = $pptpcfg['radius']['server2']['acctport'];
-$pconfig['radiussecret2'] = $pptpcfg['radius']['server2']['secret2'];
-$pconfig['radius_acct_update'] = $pptpcfg['radius']['acct_update'];
-$pconfig['radius_nasip'] = $pptpcfg['radius']['nasip'];
-
-if ($_POST) {
-
- if (isset($input_errors))
- unset($input_errors);
- $pconfig = $_POST;
-
- /* input validation */
- if ($_POST['mode'] == "server") {
- $reqdfields = explode(" ", "localip remoteip");
- $reqdfieldsn = array(gettext("Server address"),gettext("Remote start address"));
-
- if ($_POST['radiusenable']) {
- $reqdfields = array_merge($reqdfields, explode(" ", "radiusserver radiussecret"));
- $reqdfieldsn = array_merge($reqdfieldsn,
- array(gettext("RADIUS server address"),gettext("RADIUS shared secret")));
- }
-
- do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
-
- if (($_POST['localip'] && !is_ipaddr($_POST['localip']))) {
- $input_errors[] = gettext("A valid server address must be specified.");
- }
- if (is_ipaddr_configured($_POST['localip'])) {
- $input_errors[] = gettext("'Server address' parameter should NOT be set to any IP address currently in use on this firewall.");
- }
- if (!is_ipaddr($_POST['remoteip'])) {
- $input_errors[] = gettext("A valid remote start address must be specified.");
- }
- if (($_POST['radiusserver'] && !is_ipaddr($_POST['radiusserver']))) {
- $input_errors[] = gettext("A valid RADIUS server address must be specified.");
- }
-
- if (!$input_errors) {
- $subnet_start = ip2ulong($_POST['remoteip']);
- $subnet_end = ip2ulong($_POST['remoteip']) + $_POST['n_pptp_units'] - 1;
-
- if ((ip2ulong($_POST['localip']) >= $subnet_start) &&
- (ip2ulong($_POST['localip']) <= $subnet_end)) {
- $input_errors[] = gettext("The specified server address lies in the remote subnet.");
- }
- // TODO: Should this check be for any local IP address?
- if ($_POST['localip'] == $config['interfaces']['lan']['ipaddr']) {
- $input_errors[] = gettext("The specified server address is equal to the LAN interface address.");
- }
- }
- } else if ($_POST['mode'] == "redir") {
- $reqdfields = explode(" ", "redir");
- $reqdfieldsn = array(gettext("PPTP redirection target address"));
-
- do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
-
- if (($_POST['redir'] && !is_ipaddr($_POST['redir']))) {
- $input_errors[] = gettext("A valid target address must be specified.");
- }
- } else if (isset($config['pptpd']['mode'])) {
- unset($config['pptpd']['mode']);
- }
-
- if (!$input_errors) {
- $pptpcfg['remoteip'] = $_POST['remoteip'];
- $pptpcfg['redir'] = $_POST['redir'];
- $pptpcfg['localip'] = $_POST['localip'];
- $pptpcfg['mode'] = $_POST['mode'];
- $pptpcfg['wins'] = $_POST['wins'];
- $pptpcfg['n_pptp_units'] = $_POST['n_pptp_units'];
- $pptpcfg['radius']['server']['ip'] = $_POST['radiusserver'];
- $pptpcfg['radius']['server']['port'] = $_POST['radiusserverport'];
- $pptpcfg['radius']['server']['acctport'] = $_POST['radiusserveracctport'];
- $pptpcfg['radius']['server']['secret'] = $_POST['radiussecret'];
- $pptpcfg['radius']['server2']['ip'] = $_POST['radiusserver2'];
- $pptpcfg['radius']['server2']['port'] = $_POST['radiusserver2port'];
- $pptpcfg['radius']['server2']['acctport'] = $_POST['radiusserver2acctport'];
- $pptpcfg['radius']['server2']['secret2'] = $_POST['radiussecret2'];
- $pptpcfg['radius']['nasip'] = $_POST['radius_nasip'];
- $pptpcfg['radius']['acct_update'] = $_POST['radius_acct_update'];
-
- if ($_POST['pptp_dns1'] == "") {
- if (isset($pptpcfg['dns1']))
- unset($pptpcfg['dns1']);
- } else
- $pptpcfg['dns1'] = $_POST['pptp_dns1'];
-
- if ($_POST['pptp_dns2'] == "") {
- if (isset($pptpcfg['dns2']))
- unset($pptpcfg['dns2']);
- } else
- $pptpcfg['dns2'] = $_POST['pptp_dns2'];
-
- if($_POST['req128'] == "yes")
- $pptpcfg['req128'] = true;
- else if (isset($pptpcfg['req128']))
- unset($pptpcfg['req128']);
-
- if($_POST['radiusenable'] == "yes")
- $pptpcfg['radius']['server']['enable'] = true;
- else if (isset($pptpcfg['radius']['server']['enable']))
- unset($pptpcfg['radius']['server']['enable']);
-
- if($_POST['radiussecenable'] == "yes")
- $pptpcfg['radius']['server2']['enable'] = true;
- else if (isset($pptpcfg['radius']['server2']['enable']))
- unset($pptpcfg['radius']['server2']['enable']);
-
- if($_POST['radacct_enable'] == "yes")
- $pptpcfg['radius']['accounting'] = true;
- else if (isset($pptpcfg['radius']['accounting']))
- unset($pptpcfg['radius']['accounting']);
-
- if($_POST['radiusissueips'] == "yes") {
- $pptpcfg['radius']['radiusissueips'] = true;
- } else if (isset($pptpcfg['radius']['radiusissueips']))
- unset($pptpcfg['radius']['radiusissueips']);
-
- write_config();
-
- $retval = 0;
- $retval = vpn_pptpd_configure();
- $savemsg = get_std_save_message($retval);
-
- filter_configure();
- }
-}
-
-$pgtitle = array(gettext("VPN"),gettext("VPN PPTP"));
-$shortcut_section = "pptps";
-include("head.inc");
-
-?>
-
-
-
-
-
-
-
-
-