From 4d1afb6ab23c1ae8e90209b6988cba17e4b38721 Mon Sep 17 00:00:00 2001 From: jim-p Date: Tue, 1 Mar 2011 12:10:00 -0500 Subject: Finish up shared key client export (for non-pfsense clients) --- .../vpn_openvpn_export_shared.php | 445 +++++++++++++++++++++ 1 file changed, 445 insertions(+) create mode 100644 config/openvpn-client-export/vpn_openvpn_export_shared.php (limited to 'config/openvpn-client-export/vpn_openvpn_export_shared.php') diff --git a/config/openvpn-client-export/vpn_openvpn_export_shared.php b/config/openvpn-client-export/vpn_openvpn_export_shared.php new file mode 100644 index 00000000..95cc37bd --- /dev/null +++ b/config/openvpn-client-export/vpn_openvpn_export_shared.php @@ -0,0 +1,445 @@ + $server) { + if (isset($server['disable'])) + continue; + $ras_user = array(); + if ($server['mode'] != "p2p_shared_key") + continue; + + $ras_serverent = array(); + $prot = $server['protocol']; + $port = $server['local_port']; + if ($server['description']) + $name = "{$server['description']} {$prot}:{$port}"; + else + $name = "Shared Key Server {$prot}:{$port}"; + $ras_serverent['index'] = $sindex; + $ras_serverent['name'] = $name; + $ras_server[] = $ras_serverent; +} + +$id = $_GET['id']; +if (isset($_POST['id'])) + $id = $_POST['id']; + +$act = $_GET['act']; +if (isset($_POST['act'])) + $act = $_POST['act']; + +$error = false; + +if(($act == "skconf") || ($act == "skzipconf")) { + $srvid = $_GET['srvid']; + if (($srvid === false) || ($config['openvpn']['openvpn-server'][$srvid]['mode'] != "p2p_shared_key")) { + pfSenseHeader("vpn_openvpn_export.php"); + exit; + } + + if (empty($_GET['useaddr'])) { + $error = true; + $input_errors[] = "You need to specify an IP or hostname."; + } else + $useaddr = $_GET['useaddr']; + + $proxy = ""; + if (!empty($_GET['proxy_addr']) || !empty($_GET['proxy_port'])) { + $proxy = array(); + if (empty($_GET['proxy_addr'])) { + $error = true; + $input_errors[] = "You need to specify an address for the proxy port."; + } else + $proxy['ip'] = $_GET['proxy_addr']; + if (empty($_GET['proxy_port'])) { + $error = true; + $input_errors[] = "You need to specify a port for the proxy ip."; + } else + $proxy['port'] = $_GET['proxy_port']; + $proxy['proxy_authtype'] = $_GET['proxy_authtype']; + if ($_GET['proxy_authtype'] != "none") { + if (empty($_GET['proxy_user'])) { + $error = true; + $input_errors[] = "You need to specify a username with the proxy config."; + } else + $proxy['user'] = $_GET['proxy_user']; + if (!empty($_GET['proxy_user']) && empty($_GET['proxy_password'])) { + $error = true; + $input_errors[] = "You need to specify a password with the proxy user."; + } else + $proxy['password'] = $_GET['proxy_password']; + } + } + + $exp_name = openvpn_client_export_prefix($srvid); + if ($act == "skzipconf") + $zipconf = true; + $exp_data = openvpn_client_export_sharedkey_config($srvid, $useaddr, $proxy, $zipconf); + if (!$exp_data) { + $input_errors[] = "Failed to export config files!"; + $error = true; + } + if (!$error) { + if ($zipconf) { + $exp_name = urlencode($exp_data); + $exp_size = filesize("{$g['tmp_path']}/{$exp_data}"); + } else { + $exp_name = urlencode($exp_name."-config.ovpn"); + $exp_size = strlen($exp_data); + } + + header('Pragma: '); + header('Cache-Control: '); + header("Content-Type: application/octet-stream"); + header("Content-Disposition: attachment; filename={$exp_name}"); + header("Content-Length: $exp_size"); + if ($zipconf) + readfile("{$g['tmp_path']}/{$exp_data}"); + else + echo $exp_data; + + @unlink("{$g['tmp_path']}/{$exp_data}"); + exit; + } +} + +include("head.inc"); + +?> + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
Shared Key Server + +
Host Name Resolution + + + + +
+ +
+ +
+
Use HTTP Proxy + + + + + +
+ + + + + Use HTTP proxy to communicate with the server. + +
+ + + + + + + + +
+ + + + + +
 
Client Configuration Packages
+ + + + + +
+ + + + + +
+
+
+ + + -- cgit v1.2.3