Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7412179
  • 博文数量: 1756
  • 博客积分: 18684
  • 博客等级: 上将
  • 技术积分: 16232
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-02 10:28
个人简介

啥也没写

文章分类

全部博文(1756)

文章存档

2024年(2)

2023年(44)

2022年(39)

2021年(46)

2020年(43)

2019年(27)

2018年(44)

2017年(50)

2016年(47)

2015年(15)

2014年(21)

2013年(43)

2012年(143)

2011年(228)

2010年(263)

2009年(384)

2008年(246)

2007年(30)

2006年(38)

2005年(2)

2004年(1)

分类: LINUX

2011-10-27 13:03:42

续折腾服务器的 VPN。之前已经配置好了 以及 ,还做了 OpenVPN 的 以实现用户跨服务器,但是 L2TP 的用户验证还是需要用 PPP 调用 /etc/ppp/chap-secrets 文件,跨服务器验证貌似也只能 crontab rsync,于是没用过 的我还是往 MySQL 方面想办法。搜索后发现了两个相关的开源项目: 和 ,前者简陋到只有一个 .c 文件,让人无从下手,而后者是基于前者的思路重新开发的,编译文件与文档齐全,而且支持 PostgreSQL,于是决定用之。

首先需要安装 ppp 和 openssl 的 header / lib

aptitude install ppp-dev libssl-dev

下载安装 pppd-sql

cd /usr/src wget tar zxvf pppd-sql-0.8.0.tar.gz cd pppd-sql-0.8.0 ./configure <- 注意结果提示,看看你的数据库服务是否被找到了 ./make ./make install

另外关键的 mysql.so ppp 插件文件不知道为什么没有在 make install 时候安装到应有位置,手工 cp 吧,目标路径按照你系统里面的 pppd 版本号修改。

cp /usr/src/pppd-sql-0.8.0/src/.libs/mysql.so /usr/lib/pppd/2.4.5/

下面修改 ppp 的配置文件,如果你是按照我安装的话,那么就是修改 /etc/ppp/options.xl2tpd 这个文件,加入以下内容:

plugin mysql.so mysql-host MYSQL-HOST mysql-port MYSQL-PORT mysql-user MYSQL-USER mysql-pass MYSQL-PASS mysql-pass-encryption AES mysql-pass-key SALT mysql-database MYSQL-DB mysql-table MYSQL-TABLE mysql-column-user username mysql-column-pass ppppass mysql-column-client-ip client_ip mysql-column-server-ip server_ip mysql-column-update status mysql-exclusive mysql-authoritative

具体的配置请看 man pppd-mysql,数据库和表结构也很简单,我是直接在之前 OpenVPN 的表格基础上修改的。

连接试试看吧,应该没问题了,最终效果是用户名密码在所有服务器的 ipsec+L2TP 以及 OpenVPN 连接方式全部通用。如果你的 ppp 使用 CHAP2 验证密码的话,这个插件只支持 AES 加密,而 OpenVPN 用的是 mysql.PASSWORD(),所以这两个服务不能共享一个密码字段(当然明文除外)。我觉得问题不大,用 PHP 简单写个脚本即可,还可以顺便加上用户修改密码功能,如果再加上支付宝 API 调用的话。。。都可以做全自动化的 VPN 网络销售系统了。。。

转:

阅读(1392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~