1. 安装PPTPD
remoteip 是客户端的可分配 ip 地址
3.编辑/etc/ppp/pptpd-options
将ms-dns前面的注释去掉,并修改为如下内容。
refuse-pap(拒绝pap身份认证模式。)
refuse-chap(拒绝chap身份认证模式。)
refuse-mschap(拒绝mschap身份认证模式。)
require-mschap-v2(在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。)
require-mppe-128(MPPE 模块使用 128 位加密。)
ms-dns 8.8.8.8 (ppp 为 Windows 客户端提供 DNS 服务器 IP 地址。)
proxyarp (建立 ARP 代理键值。)
nodefaultroute(不替换默认路由)
debug(开启调试模式,相关信息记录在 /var/logs/message 中。)
lock(锁定客户端 PTY 设备文件。)
nobsdcomp (禁用 BSD 压缩模式。)
4.添加VPN用户。编辑/etc/ppp/chap-secrets
服务器名可以是pptpd或l2tpd(区分大小写),*号代表全部。
密码以明文填写,不需进行加密。
最后的*号代表从remoteip指定的IP段随机分配,如果指定了IP地址,那么该IP地址就是该用户登录时分配的IP地址。
-------------------------------------------------------
在Windows网络连接中新建个VPN连接,填写/etc/ppp/chap-secrets中对应的用户名密码就应该可以连接成功了。
上述是通过 /etc/ppp/chap-secrets 这个文件中的内容进行VPN用户的身份认证的。
下面将配置通过MySQL数据库表中的数据的验证。
-------------------------------------------------------
5.创建数据库表结构
password: 登录的密码
status : 连接中值为1,断开时值为0
clientip: 分配给客户端的IP地址
serverip: (自己没搞明白这个是啥意思)
6.安装pppd-sql
首先需要安装ppp,openssl和MySQL的 header / lib
7.编辑 /etc/ppp/pptpd-options
详细的配置信息解释可以通过 man pppd-mysql 查看。
-------------------------------------------------------
配置过程会用到的命令
http://support.microsoft.com/kb/923944/zh (VPN错误代号的解释)
http://blog.istef.info/2008/10/17/ubuntu-pptp-server/
http://wangyan.org/blog/debian-pptp-vpn.html
http://www.linux-field.com/archives/752
http://babelize.org/pppd-sql.php
apt-get -y update
apt-get -y install pptpd
2.编辑 /etc/pptpd.conf
vim /etc/pptpd.conf
在文件最后添加如下内容:
localip 192.168.0.86
remoteip 192.168.0.60-80,192.168.0.100
localip 是VPN连通后服务器的 ip 地址
remoteip 是客户端的可分配 ip 地址
3.编辑/etc/ppp/pptpd-options
将ms-dns前面的注释去掉,并修改为如下内容。
ms-dns 8.8.8.8
ms-dns 8.8.4.4
并且在文件的最后加上log文件的配置
logfile /var/log/pptpd.log
name pptpd(pptpd服务名,可以随便填写。)refuse-pap(拒绝pap身份认证模式。)
refuse-chap(拒绝chap身份认证模式。)
refuse-mschap(拒绝mschap身份认证模式。)
require-mschap-v2(在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。)
require-mppe-128(MPPE 模块使用 128 位加密。)
ms-dns 8.8.8.8 (ppp 为 Windows 客户端提供 DNS 服务器 IP 地址。)
proxyarp (建立 ARP 代理键值。)
nodefaultroute(不替换默认路由)
debug(开启调试模式,相关信息记录在 /var/logs/message 中。)
lock(锁定客户端 PTY 设备文件。)
nobsdcomp (禁用 BSD 压缩模式。)
4.添加VPN用户。编辑/etc/ppp/chap-secrets
vim /etc/ppp/chap-secrets
添加用户密码信息如下:
# Secrets for authentication using CHAP
# client server secret IP addresses
test01 pptpd test1234 *
chap-secrets 文件为4段,分别是:用户名、服务器名称、密码、分配给客户端的IP。服务器名可以是pptpd或l2tpd(区分大小写),*号代表全部。
密码以明文填写,不需进行加密。
最后的*号代表从remoteip指定的IP段随机分配,如果指定了IP地址,那么该IP地址就是该用户登录时分配的IP地址。
-------------------------------------------------------
在Windows网络连接中新建个VPN连接,填写/etc/ppp/chap-secrets中对应的用户名密码就应该可以连接成功了。
上述是通过 /etc/ppp/chap-secrets 这个文件中的内容进行VPN用户的身份认证的。
下面将配置通过MySQL数据库表中的数据的验证。
-------------------------------------------------------
5.创建数据库表结构
create database vpn;
use vpn;
CREATE TABLE `vpnuser` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(16) NOT NULL,
`password` varchar(32) NOT NULL,
`status` int(11) NOT NULL default '0',
`clientip` varchar(15) NOT NULL,
`serverip` varchar(15) NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `vpnuser` (`username`, `password`, `status`, `clientip`, `serverip`) VALUES
('zhongjiwei', 'test1234', 1, '192.168.0.80', '192.168.0.114');
username: 登录的用户名password: 登录的密码
status : 连接中值为1,断开时值为0
clientip: 分配给客户端的IP地址
serverip: (自己没搞明白这个是啥意思)
6.安装pppd-sql
首先需要安装ppp,openssl和MySQL的 header / lib
apt-get install ppp-dev libssl-dev libmysqlclient-dev
下载安装pppd-sql。
wget -c http://babelize.org/download/pppd-sql/pppd-sql-0.8.0.tar.gz
tar zxvf pppd-sql-0.8.0.tar.gz
cd pppd-sql-0.8.0
./configure && make && make install
将mysql.so ppp插件复制到相应的pppd的目录中
cp -pf /usr/src/pppd-sql-0.8.0/src/.libs/mysql.so /usr/lib/pppd/2.4.5/
7.编辑 /etc/ppp/pptpd-options
vim /etc/ppp/pptpd-options
在文件末尾加入数据库配置信息:
plugin mysql.so
mysql-host localhost
mysql-port 3306
mysql-user root
mysql-pass rootadmin
mysql-pass-encryption NONE
#mysql-pass-key SALT
mysql-database vpn
mysql-table vpnuser
mysql-column-user username
mysql-column-pass password
mysql-column-client-ip clientip
mysql-column-server-ip serverip
mysql-column-update status
mysql-exclusive
mysql-authoritative
#mysql-exclusive: 防止同一用户重复登录,必须于mysql-column-update配合使用,并且要设置mysql-authoritative选项
详细的配置信息解释可以通过 man pppd-mysql 查看。
-------------------------------------------------------
配置过程会用到的命令
#重启
/etc/init.d/pptpd restart
#查看端口
netstat -anp | grep pptpd
#查看进程
ps aux | grep pptpd
------------------------------------------------------
参考:http://support.microsoft.com/kb/923944/zh (VPN错误代号的解释)
http://blog.istef.info/2008/10/17/ubuntu-pptp-server/
http://wangyan.org/blog/debian-pptp-vpn.html
http://www.linux-field.com/archives/752
http://babelize.org/pppd-sql.php