解决开源防火墙 pptp添加用户中断
pfsense是一个很好的开源防火墙,性能各方面也不错,在pptpvpn用户大增的情况下肯定不希望添加一个用户就所有用户连接中断一次这个体验太坑爹了。修改这个需要各位略懂一点代码,肯定不用特别懂,只要知道哪里开始哪里结束就好了。
完成操作一共需要三步:
1.首先使用ssh登录防火墙的shell端。如何登录不会么?那你得去问问度娘了
pfsense使用的是nanobsd系统,因此命令与linux相似与freebsd相同
2.编辑文件(使用vi编辑器初学者最好先看看跟word使用方法差别大了)
vi /etc/inc/vpn.inc
添加一下function,放在哪里无所谓
function vpn_pptpd_setup() {
global $config, $g;
$syscfg = $config[‘system’];
$pptpdcfg = $config[‘pptpd’];
unlink_if_exists(“{$g[‘varetc_path’]}/pptp-vpn/mpd.secret”);
if (empty($pptpdcfg[‘n_pptp_units’])) {
log_error(“Something wrong in the PPTPd configuration. Preventing starting the daemon be
cause issues would arise.”);
return;
}
/* make sure pptp-vpn directory exists */
if (!file_exists(“{$g[‘varetc_path’]}/pptp-vpn”))
mkdir(“{$g[‘varetc_path’]}/pptp-vpn”);
switch ($pptpdcfg[‘mode’]) {
case ‘server’ :
/* write mpd.secret */
$fd = fopen(“{$g[‘varetc_path’]}/pptp-vpn/mpd.secret”, “w”);
if (!$fd) {
printf(“Error: cannot open mpd.secret in vpn_pptpd_configure().\n”);
return 1;
}
$mpdsecret = “”;
if (is_array($pptpdcfg[‘user’])) {
foreach ($pptpdcfg[‘user’] as $user) {
$pass = str_replace(‘\\’, ‘\\\\’, $user[‘password’]);
$pass = str_replace(‘”‘, ‘\”‘, $pass);
$mpdsecret .= “{$user[‘name’]} \”{$pass}\” {$user[‘ip’]}\n”;
}
}
fwrite($fd, $mpdsecret);
fclose($fd);
chmod(“{$g[‘varetc_path’]}/pptp-vpn/mpd.secret”, 0600);
}
}
3.修改vpn前台文件 vi /usr/local/www/vpn_pptp_users.php 将文件中的$retval = vpn_setup();替换为$retval = vpn_pptpd_setup();
if ($_POST) {
$pconfig = $_POST;
if ($_POST[‘apply’]) {
$retval = 0;
$retval = vpn_pptpd_setup();
$savemsg = get_std_save_message($retval);
if ($retval == 0) {
if (is_subsystem_dirty(‘pptpusers’))
clear_subsystem_dirty(‘pptpusers’);
}
}
}
大功告成!怎么样简单么?你可知道这点破玩意儿我找了一下午呢。希望大家使用的时候能给我点支持,谢谢