52 |
52 |
|
53 |
53 |
$openvpn_prots = array("UDP", "TCP");
|
54 |
54 |
|
|
55 |
$openvpn_dev_mode = array("tun", "tap");
|
|
56 |
|
55 |
57 |
/*
|
56 |
58 |
* The User Auth mode below is disabled because
|
57 |
59 |
* OpenVPN erroneously requires that we provide
|
... | ... | |
246 |
248 |
}
|
247 |
249 |
}
|
248 |
250 |
|
249 |
|
function openvpn_add_keyfile(& $data, & $conf, $mode_id, $directive) {
|
|
251 |
function openvpn_add_keyfile(& $data, & $conf, $mode_id, $directive, $opt = "") {
|
250 |
252 |
global $g;
|
251 |
253 |
|
252 |
254 |
$fpath = $g['varetc_path']."/openvpn/{$mode_id}.{$directive}";
|
... | ... | |
254 |
256 |
chown($fpath, 'nobody');
|
255 |
257 |
chgrp($fpath, 'nobody');
|
256 |
258 |
|
257 |
|
$conf .= "{$directive} {$fpath}\n";
|
|
259 |
$conf .= "{$directive} {$fpath} {$opt}\n";
|
258 |
260 |
}
|
259 |
261 |
|
260 |
262 |
function openvpn_reconfigure($mode,& $settings) {
|
... | ... | |
274 |
276 |
$vpnid = $settings['vpnid'];
|
275 |
277 |
$mode_id = $mode.$vpnid;
|
276 |
278 |
|
277 |
|
$tunname = "tun{$vpnid}";
|
|
279 |
if (isset($settings['dev_mode']))
|
|
280 |
$tunname = "{$settings['dev_mode']}{$vpnid}";
|
|
281 |
else { /* defaults to tun */
|
|
282 |
$tunname = "tun{$vpnid}";
|
|
283 |
$settings['dev_mode'] = "tun";
|
|
284 |
}
|
|
285 |
|
278 |
286 |
if ($mode == "server")
|
279 |
287 |
$devname = "ovpns{$vpnid}";
|
280 |
288 |
else
|
... | ... | |
313 |
321 |
}
|
314 |
322 |
|
315 |
323 |
$conf = "dev {$devname}\n";
|
316 |
|
$conf .= "dev-type tun\n";
|
|
324 |
$conf .= "dev-type {$settings['dev_mode']}\n";
|
317 |
325 |
$conf .= "dev-node /dev/{$tunname}\n";
|
318 |
326 |
$conf .= "writepid {$pfile}\n";
|
319 |
327 |
$conf .= "#user nobody\n";
|
... | ... | |
464 |
472 |
if ($settings['crl'])
|
465 |
473 |
openvpn_add_keyfile($settings['crl'], $conf, $mode_id, "crl-verify");
|
466 |
474 |
if ($settings['tls'])
|
467 |
|
openvpn_add_keyfile($settings['tls'], $conf, $mode_id, "tls-auth");
|
|
475 |
openvpn_add_keyfile($settings['tls'], $conf, $mode_id, "tls-auth", $settings['mode'] == "server_tls" ? "0" : "1");
|
468 |
476 |
break;
|
469 |
477 |
}
|
470 |
478 |
|