CentOS 6.5 下PPTP VPN服务器安装

一、CentOS 6.5 下PPTP VPN服务器安装


1.安装前准备


1.1 第一步:检测是否符合pptp的搭建环境的要求
服务器环境:CentOS6.5
服务器ip地址:10.2.9.42(内网IP)


1.2 如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:
modprobe ppp-compress-18 && echo ok
# 显示“ok”则表明通过


1.3 接下来还需要做另一个检查,输入指令:
cat /dev/net/tun
#如果这条指令显示结果为下面的文本,则表明通过:
//////////////////////////////////////////////
cat: /dev/net/tun: File descriptor in bad state
//////////////////////////////////////////////
# 上述两条均通过,才能安装pptp。否则就只能考虑openvpn,或者请vps空间商的技术客服为你的VPS打开TUN/TAP/PPP功能了,貌似有部分vps控制面板上提供打开TUN/TAP/PPP功能的按钮。


1.4 CentOS 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略:
# 查询当前系统的ppp是否默认集成了,以及ppp的版本
rpm -q ppp
# 用以下命令检查PPP是否支持MPPE(Microsoft Point to Point Encryption,微软点对点加密,PPTPD要求Linux内核支持mppe):
strings '/usr/sbin/pppd' | grep -i mppe | wc --lines
# 如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。




2.安装相关软件


2.1 安装ppp和iptables
# centos默认安装了iptables和ppp,切记将ppp先卸载后再执行这一步
yum install -y perl ppp iptables 


2.2 安装pptpd
2.2.1 常见问题
用yum安装ppp,有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum总是安装最新版本的ppp,那么就需要安装对应版本的pptpd才行(安装错误为:ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64)。


使用下面的命令查看ppp的版本,前提你是yum安装的ppp。
yum list installed ppp
////////////////////////////////////////////////////////////////////////////////////////////
ppp.x86_64                2.4.5-5.el6                @anaconda-CentOS-201311291202.x86_64/6.5
////////////////////////////////////////////////////////////////////////////////////////////


所以,要对根据ppp版本选择对应的pptpd版本。这里我主要列出常用的。
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.4.5——————>pptpd 1.4.0
ppp和pptpd各个版本的下载地址;http://poptop.sourceforge.net/yum/stable/packages/


2.2.2 安装
# 我这里PPP为2.4.5-5.el6,所以下载pptpd-1.4.0-1.el6.x86_64.rpm,下载完之后执行安装操作:
cd /usr
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm




3. 配置VPN


3.1 修改/etc/ppp/options.pptpd
vi /etc/ppp/options.pptpd 
# 将dns修改为:
///////////////////////////
ms-dns 8.8.8.8
ms-dns 8.8.4.4
///////////////////////////


3.2 修改 /etc/pptpd.conf
vi /etc/pptpd.conf
///////////////////////////
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
///////////////////////////
# VPN可以这样理解,Linux客户端使用一个虚拟网络设备ppp0(Windows客户端也可以理解成VPN虚拟网卡),连接到服务器的虚拟网络设备ppp0上,这样客户端就加入了服务器端ppp0所在的网络。 localip就是可以分配给服务器端ppp0的IP地址,remoteip则是将要分配给客户端ppp0(或者虚拟网卡)的。
#这两项都可以是多个IP,一般localip设置一个IP就行了,remoteip则视客户端数目,分配一段IP。其中remoteip的IP段需要和localip的IP段一致。
#   localip和remoteip所处的IP段可以随意些指定,但其范围内不要包含实际网卡eth0的IP地址。一般情况下,使用上面配置文件中的配置就好使了,你需要做的只是把192.168.0.207-217这个IP区间修改成你喜欢的192.168.0.a-b,其中1<a<b<255。


3.3 修改 /etc/ppp/chap-secrets
vi /etc/ppp/chap-secrets
# 在最后一行添加:
///////////////////////////
user pptpd passwd *
///////////////////////////
# 其中pptpd和*是固定的,user是用户名,passwd是密码,可以添加多个用户


# 此时,vpn服务器已经搭建好了,只是客户端还不能访问外网而已,所以接下来就要设置iptables,配置转发规则了。
3.4 修改 /etc/sysctl.conf
vi /etc/sysctl.conf 
///////////////////////////
net.ipv4.ip_forward = 1
///////////////////////////
# 使设置永久生效
sysctl -p


3.5 设置nat规则
# 在root下面新建snat.sh,写入内容并更改权限
vi /root/snat.sh
///////////////////////////
modprobe iptable_nat
modprobe ip_conntrack  
modprobe ip_conntrack_ftp  
modprobe ip_nat_ftp  


iptables -F  
iptables -X  
iptables -Z  
 
# iptables -t nat -A POSTROUTING -o em1 -s 192.168.10.0/24 -j SNAT --to 10.2.9.42
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
///////////////////////////
# 其中-s后的地址是之前remoteip所设置的网段,-o后的网卡是当前vps可以连外网的网卡(这里是em1,可以不填,让其自动选择),--to后的地址是可以连外网的ip(这里是服务器IP,MASQUERADE是伪装,相当于让其自动选择)
# 增加可执行权限
chmod a+x snat.sh




3.6 使iptables生效
sh /root/snat.sh
/etc/init.d/iptables save
/etc/init.d/iptables restart
service pptpd restart


至此,VPN服务器搭建完成。


[网速过慢] 参考 :http://wdj01.blog.51cto.com/1059856/521113
# 执行如下命令
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章