欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux服务器上的PPTP VPN搭建全攻略

程序员文章站 2023-08-28 18:26:11
这篇文章主要介绍了Linux服务器上的PPTP VPN搭建全攻略,尤其对于内地的用于而言还是特别有用的(嗯...),需要的朋友可以参考下... 15-08-11...

pptp的基本概念
首先,先来理解下什么是 pptp。pptp将ppp(point-to-point protocol)帧封装进ip数据报中,通过ip网络如internet或其他企业专用intranet等发送。pptp通过pptp控制连接来创建、维护、终止一条隧道,并使用通用路由封装gre(generic routing encapsulation)对ppp帧进行封装。封装前,ppp帧的有效载荷即有效传输数据一般会经过加密、压缩或是两者的混合处理。pptp协议假定在pptp客户机和pptp服务器之间有连通且可用的ip网络。因此如果pptp客户机本身已经是某ip网络的组成部分,那么即可通过该ip网络与pptp服务器取得连接.mppe只提供连接加密,而不提供端-端加密。端-端加密属于应用层的加密技术,如果应用中要求实现端-端加密,则可在pptp隧道建立之后,使用ipsec对两端的ip数据流进行加密处理。基于internet的pptp服务器即使用pptp协议的vpn服务器,它的一个接口在internet上,另一个接口在intranet上。
pptp连接过程与隧道维护
        pptp控制连接建立在pptp客户机ip地址和pptp服务器ip地址之间,pptp客户机使用动态分配的tcp端口号,而pptp服务器则使用保留tcp端口号1723。pptp控制连接携带pptp呼叫控制和管理信息,用于维护pptp隧道,其中包括周期性地发送回送请求和回送应答消息,以期检测出客户机与服务器之间可能出现的连接中断。pptp控制连接数据包包括一个ip报头,一个tcp报头和pptp控制信息,数据包格式如下。所示的pptp控制连接数据包还包括数据链路层报头和报尾。
Linux服务器上的PPTP VPN搭建全攻略

pptp典型连接过程:
tcp连接由pptp客户机上的一个动态分配的tcp端口到pptp服务器上的tcp端口1723建立。
Linux服务器上的PPTP VPN搭建全攻略

 
搭建pptp vpn
国内访问google一直都是时好时坏的,以前一直使用host文件,或者dns  最近总是不好使,朋友有台美国的vps,这里就想到了搭建一个vpn,下面贴出我的安装步骤
 
# 检查部分
 

复制代码
代码如下:
modprobe ppp-compress-18 && echo 'ok! mppe was found !'

ok! mppe was found ! //说明系统存在mppe

 
# 若不存在,请按以下方式安装注意版本
 
复制代码
代码如下:
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/poptop/mppe%20module%20builder/dkms-2.0.10-1/dkms-2.0.10-1.noarch.rpm

wget http://surfnet.dl.sourceforge.net/project/poptop/mppe%20module%20builder/kernel_ppp_mppe-1.0.2%20dkms-2.0.6/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

rpm -e kernel_ppp_mppe

yum install kernel-devel

rpm -ivh dkms-2.0.10-1.noarch.rpm

rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

# 安装pptpd
 
 

复制代码
代码如下:
# yum -y install ppp


# 下载地址
 

复制代码
代码如下:
# http://surfnet.dl.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/
wget http://surfnet.dl.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz

tar zxf pptpd-1.3.4.tar.gz
cd pptpd-1.3.4
./configure \
--prefix=/soft/pptpd-1.3.4 \
--enable-bcrelay \
--with-libwrap

make

make install

mkdir -p /soft/pptpd-1.3.4/etc

# cp samples/options.pptpd /soft/pptpd-1.3.4/etc


# 配置文件内容如下
 

复制代码
代码如下:
name pptpd

debug

#logwtmp

logfile /var/log/pptpd.log

lock

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

nobsdcomp

novj

novjccomp

nologfd

ms-dns 8.8.8.8

ms-dns 8.8.4.4

 

# pptp主配置文件
 
 

复制代码
代码如下:
cp samples/pptpd.conf /soft/pptpd-1.3.4/etc

option /soft/pptpd-1.3.4/etc/options.pptpd

debug

stimeout 30

localip 192.168.142.136 (本地ip)

remoteip 192.168.142.200-205

 

# 拷贝服务文件
 

复制代码
代码如下:
cp pptpd.init /etc/init.d/pptpd

 

# 添加vpn用户 

复制代码
代码如下:
vi /etc/ppp/chap-secrets


# client server secret ip addresses // 添加用户的格式

chmod +x /etc/init.d/pptpd

sed -i s#/usr/sbin/pptpd#/soft/pptpd-1.3.4/sbin/pptpd\ --conf\ /soft/pptpd-1.3.4/etc/pptpd.conf\ --option\ /soft/pptpd-1.3.4/etc/options.pptpd#g

/etc/init.d/pptpd

/sbin/iptables -t nat -a postrouting -o eth0 -s 192.168.142.0/24 -j masquerade

/sbin/iptables -p forward accept

/sbin/iptables -a input -p tcp -m tcp --dport 1723 -j accept