ubuntu下基于MySQL验证的PPTP服务的搭建

21 篇文章 0 订阅
1. 安装PPTPD
 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值